diff src/share/vm/opto/doCall.cpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents fdad2932c73f
children 89152779163c
line wrap: on
line diff
--- a/src/share/vm/opto/doCall.cpp	Tue Apr 01 14:09:03 2014 +0200
+++ b/src/share/vm/opto/doCall.cpp	Tue Apr 01 13:57:07 2014 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -161,8 +161,19 @@
 
     // Try inlining a bytecoded method:
     if (!call_does_dispatch) {
-      InlineTree* ilt = InlineTree::find_subtree_from_root(this->ilt(), jvms->caller(), jvms->method());
+      InlineTree* ilt;
+      if (UseOldInlining) {
+        ilt = InlineTree::find_subtree_from_root(this->ilt(), jvms->caller(), jvms->method());
+      } else {
+        // Make a disembodied, stateless ILT.
+        // TO DO:  When UseOldInlining is removed, copy the ILT code elsewhere.
+        float site_invoke_ratio = prof_factor;
+        // Note:  ilt is for the root of this parse, not the present call site.
+        ilt = new InlineTree(this, jvms->method(), jvms->caller(), site_invoke_ratio, MaxInlineLevel);
+      }
       WarmCallInfo scratch_ci;
+      if (!UseOldInlining)
+        scratch_ci.init(jvms, callee, profile, prof_factor);
       bool should_delay = false;
       WarmCallInfo* ci = ilt->ok_to_inline(callee, jvms, profile, &scratch_ci, should_delay);
       assert(ci != &scratch_ci, "do not let this pointer escape");
@@ -250,7 +261,7 @@
           CallGenerator* miss_cg;
           Deoptimization::DeoptReason reason = morphism == 2 ?
                                     Deoptimization::Reason_bimorphic :
-                                    (speculative_receiver_type == NULL ? Deoptimization::Reason_class_check : Deoptimization::Reason_speculate_class_check);
+                                    Deoptimization::Reason_class_check;
           if ((morphism == 1 || (morphism == 2 && next_hit_cg != NULL)) &&
               !too_many_traps(jvms->method(), jvms->bci(), reason)
              ) {