8165661: SPECjvm2008-crypto.signverify regression in 9-b105
authorrraghavan
Fri, 21 Oct 2016 13:07:32 -0700
changeset 42041 f316fd20ed98
parent 42040 70ec5a09a0d5
child 42042 681bd315c66e
8165661: SPECjvm2008-crypto.signverify regression in 9-b105 Summary: Reverted part change done earlier for 8145322 - removed the (CastII (AddI x const)) -> (AddI (CastII x) const) transformation Reviewed-by: roland, kvn, thartmann
hotspot/src/share/vm/opto/castnode.cpp
--- a/hotspot/src/share/vm/opto/castnode.cpp	Fri Oct 21 20:12:47 2016 +0200
+++ b/hotspot/src/share/vm/opto/castnode.cpp	Fri Oct 21 13:07:32 2016 -0700
@@ -224,30 +224,6 @@
     return progress;
   }
 
-  // transform:
-  // (CastII (AddI x const)) -> (AddI (CastII x) const)
-  // So the AddI has a chance to be optimized out
-  if (in(1)->Opcode() == Op_AddI) {
-    Node* in2 = in(1)->in(2);
-    const TypeInt* in2_t = phase->type(in2)->isa_int();
-    if (in2_t != NULL && in2_t->singleton()) {
-      int in2_const = in2_t->_lo;
-      const TypeInt* current_type = _type->is_int();
-      jlong new_lo_long = ((jlong)current_type->_lo) - in2_const;
-      jlong new_hi_long = ((jlong)current_type->_hi) - in2_const;
-      int new_lo = (int)new_lo_long;
-      int new_hi = (int)new_hi_long;
-      if (((jlong)new_lo) == new_lo_long && ((jlong)new_hi) == new_hi_long) {
-        Node* in1 = in(1)->in(1);
-        CastIINode* new_cast = (CastIINode*)clone();
-        AddINode* new_add = (AddINode*)in(1)->clone();
-        new_cast->set_type(TypeInt::make(new_lo, new_hi, current_type->_widen));
-        new_cast->set_req(1, in1);
-        new_add->set_req(1, phase->transform(new_cast));
-        return new_add;
-      }
-    }
-  }
   // Similar to ConvI2LNode::Ideal() for the same reasons
   if (can_reshape && !phase->C->major_progress()) {
     const TypeInt* this_type = this->type()->is_int();