hotspot/src/share/vm/opto/compile.cpp
changeset 46630 75aa3e39d02c
parent 46625 edefffab74e2
child 46796 ec791efbdecf
equal deleted inserted replaced
46629:8eeacdc76bf2 46630:75aa3e39d02c
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
  3403         if (!is_uncommon ) {
  3403         if (!is_uncommon ) {
  3404           // Is it safe to skip?
  3404           // Is it safe to skip?
  3405           for (uint i = 0; i < in->outcnt(); i++) {
  3405           for (uint i = 0; i < in->outcnt(); i++) {
  3406             Node* u = in->raw_out(i);
  3406             Node* u = in->raw_out(i);
  3407             if (!u->is_SafePoint() ||
  3407             if (!u->is_SafePoint() ||
  3408                  u->is_Call() && u->as_Call()->has_non_debug_use(n)) {
  3408                 (u->is_Call() && u->as_Call()->has_non_debug_use(n))) {
  3409               safe_to_skip = false;
  3409               safe_to_skip = false;
  3410             }
  3410             }
  3411           }
  3411           }
  3412         }
  3412         }
  3413         if (safe_to_skip) {
  3413         if (safe_to_skip) {
  3835   case T_DOUBLE:  return (_v._value.j == other._v._value.j);
  3835   case T_DOUBLE:  return (_v._value.j == other._v._value.j);
  3836   case T_OBJECT:
  3836   case T_OBJECT:
  3837   case T_ADDRESS: return (_v._value.l == other._v._value.l);
  3837   case T_ADDRESS: return (_v._value.l == other._v._value.l);
  3838   case T_VOID:    return (_v._value.l == other._v._value.l);  // jump-table entries
  3838   case T_VOID:    return (_v._value.l == other._v._value.l);  // jump-table entries
  3839   case T_METADATA: return (_v._metadata == other._v._metadata);
  3839   case T_METADATA: return (_v._metadata == other._v._metadata);
  3840   default: ShouldNotReachHere();
  3840   default: ShouldNotReachHere(); return false;
  3841   }
  3841   }
  3842   return false;
       
  3843 }
  3842 }
  3844 
  3843 
  3845 static int type_to_size_in_bytes(BasicType t) {
  3844 static int type_to_size_in_bytes(BasicType t) {
  3846   switch (t) {
  3845   switch (t) {
  3847   case T_INT:     return sizeof(jint   );
  3846   case T_INT:     return sizeof(jint   );
  3852     // We use T_VOID as marker for jump-table entries (labels) which
  3851     // We use T_VOID as marker for jump-table entries (labels) which
  3853     // need an internal word relocation.
  3852     // need an internal word relocation.
  3854   case T_VOID:
  3853   case T_VOID:
  3855   case T_ADDRESS:
  3854   case T_ADDRESS:
  3856   case T_OBJECT:  return sizeof(jobject);
  3855   case T_OBJECT:  return sizeof(jobject);
  3857   }
  3856   default:
  3858 
  3857     ShouldNotReachHere();
  3859   ShouldNotReachHere();
  3858     return -1;
  3860   return -1;
  3859   }
  3861 }
  3860 }
  3862 
  3861 
  3863 int Compile::ConstantTable::qsort_comparator(Constant* a, Constant* b) {
  3862 int Compile::ConstantTable::qsort_comparator(Constant* a, Constant* b) {
  3864   // sort descending
  3863   // sort descending
  3865   if (a->freq() > b->freq())  return -1;
  3864   if (a->freq() > b->freq())  return -1;