8145579: SimpleThresholdPolicy assumes non-trivial methods to be trivial
authordlong
Tue, 05 Dec 2017 10:38:31 -0800
changeset 48310 0dc66cdf4720
parent 48309 1a0499fd252e
child 48311 d18861f20c0e
8145579: SimpleThresholdPolicy assumes non-trivial methods to be trivial Reviewed-by: shade, kvn, thartmann
src/hotspot/share/c1/c1_GraphBuilder.cpp
--- a/src/hotspot/share/c1/c1_GraphBuilder.cpp	Tue Dec 05 09:49:23 2017 -0800
+++ b/src/hotspot/share/c1/c1_GraphBuilder.cpp	Tue Dec 05 10:38:31 2017 -0800
@@ -1439,6 +1439,9 @@
   }
 
   if (needs_check) {
+    // Not a trivial method because C2 can do better with inlined check.
+    compilation()->set_would_profile(true);
+
     // Perform the registration of finalizable objects.
     ValueStack* state_before = copy_state_for_exception();
     load_local(objectType, 0);
@@ -3556,6 +3559,9 @@
 }
 
 bool GraphBuilder::try_inline_intrinsics(ciMethod* callee, bool ignore_return) {
+  // Not a trivial method because C2 may do intrinsics better.
+  compilation()->set_would_profile(true);
+
   // For calling is_intrinsic_available we need to transition to
   // the '_thread_in_vm' state because is_intrinsic_available()
   // accesses critical VM-internal data.