# HG changeset patch # User Christian Haeubl # Date 1331061087 28800 # Node ID f3d2447db2d9999b65dae6278b3294fb73e7e5de # Parent 1b907994bf2d99c479ab6d8a45eab9787e754cfa added detection for endless recompilation separated C1 and Graal specific globals fixed jump branch probability diff -r 1b907994bf2d -r f3d2447db2d9 graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodData.java --- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodData.java Mon Mar 05 12:40:54 2012 -0800 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodData.java Tue Mar 06 11:11:27 2012 -0800 @@ -302,7 +302,7 @@ @Override public double getBranchTakenProbability(HotSpotMethodData data, int position) { - return 1; + return getExecutionCount(data, position) != 0 ? 1 : 0; } @Override diff -r 1b907994bf2d -r f3d2447db2d9 graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodResolvedImpl.java --- a/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodResolvedImpl.java Mon Mar 05 12:40:54 2012 -0800 +++ b/graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodResolvedImpl.java Tue Mar 06 11:11:27 2012 -0800 @@ -238,6 +238,7 @@ return ((HotSpotTypeResolvedImpl) holder()).constantPool(); } + @Override public void dumpProfile() { TTY.println("profile info for %s", this); TTY.println("canBeStaticallyBound: " + canBeStaticallyBound()); diff -r 1b907994bf2d -r f3d2447db2d9 graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/NewInstanceNode.java --- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/NewInstanceNode.java Mon Mar 05 12:40:54 2012 -0800 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/NewInstanceNode.java Tue Mar 06 11:11:27 2012 -0800 @@ -25,7 +25,6 @@ import java.util.*; import com.oracle.max.cri.ri.*; -import com.oracle.max.graal.debug.*; import com.oracle.max.graal.graph.*; import com.oracle.max.graal.nodes.*; import com.oracle.max.graal.nodes.spi.*; diff -r 1b907994bf2d -r f3d2447db2d9 src/cpu/x86/vm/c1_globals_x86.hpp --- a/src/cpu/x86/vm/c1_globals_x86.hpp Mon Mar 05 12:40:54 2012 -0800 +++ b/src/cpu/x86/vm/c1_globals_x86.hpp Tue Mar 06 11:11:27 2012 -0800 @@ -37,27 +37,41 @@ define_pd_global(bool, ResizeTLAB, true ); define_pd_global(bool, InlineIntrinsics, true ); define_pd_global(bool, PreferInterpreterNativeStubs, false); -define_pd_global(bool, ProfileTraps, true ); // changed for GRAAL -define_pd_global(bool, UseOnStackReplacement, true ); define_pd_global(bool, TieredCompilation, false); -define_pd_global(intx, CompileThreshold, 4500 ); // changed for GRAAL define_pd_global(intx, BackEdgeThreshold, 100000); define_pd_global(intx, OnStackReplacePercentage, 933 ); define_pd_global(intx, FreqInlineSize, 325 ); define_pd_global(intx, NewSizeThreadIncrease, 4*K ); -define_pd_global(intx, InitialCodeCacheSize, 4*M); // changed for GRAAL -define_pd_global(intx, ReservedCodeCacheSize, 48*M ); // changed for GRAAL -define_pd_global(bool, ProfileInterpreter, true ); // changed for GRAAL -define_pd_global(intx, CodeCacheExpansionSize, 64*K ); // changed for GRAAL -define_pd_global(uintx,CodeCacheMinBlockLength, 4); // changed for GRAAL define_pd_global(uintx,PermSize, 12*M ); define_pd_global(uintx,MaxPermSize, 64*M ); define_pd_global(bool, NeverActAsServerClassMachine, true ); define_pd_global(uint64_t,MaxRAM, 1ULL*G); define_pd_global(bool, CICompileOSR, true ); -define_pd_global(intx, TypeProfileWidth, 8 ); // changed for GRAAL + +#ifdef GRAAL +define_pd_global(bool, ProfileTraps, true ); +define_pd_global(bool, UseOnStackReplacement, false); +define_pd_global(intx, CompileThreshold, 4500 ); +define_pd_global(intx, InitialCodeCacheSize, 4*M ); +define_pd_global(intx, ReservedCodeCacheSize, 48*M ); +define_pd_global(bool, ProfileInterpreter, true ); +define_pd_global(intx, CodeCacheExpansionSize, 64*K ); +define_pd_global(uintx,CodeCacheMinBlockLength, 4); +define_pd_global(intx, TypeProfileWidth, 8); +#else +define_pd_global(bool, ProfileTraps, false); +define_pd_global(bool, UseOnStackReplacement, true ); +define_pd_global(intx, CompileThreshold, 1500 ); +define_pd_global(intx, InitialCodeCacheSize, 160*K); +define_pd_global(intx, ReservedCodeCacheSize, 32*M ); +define_pd_global(bool, ProfileInterpreter, false); +define_pd_global(intx, CodeCacheExpansionSize, 32*K ); +define_pd_global(uintx,CodeCacheMinBlockLength, 1); +define_pd_global(intx, TypeProfileWidth, 0); +#endif // GRAAL #endif // !TIERED + define_pd_global(bool, RoundFPResults, true ); define_pd_global(bool, LIRFillDelaySlots, false); diff -r 1b907994bf2d -r f3d2447db2d9 src/cpu/x86/vm/templateInterpreter_x86_64.cpp --- a/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Mon Mar 05 12:40:54 2012 -0800 +++ b/src/cpu/x86/vm/templateInterpreter_x86_64.cpp Tue Mar 06 11:11:27 2012 -0800 @@ -346,7 +346,7 @@ // Test to see if we should create a method data oop __ cmp32(rcx, ExternalAddress((address)&InvocationCounter::InterpreterProfileLimit)); __ jcc(Assembler::less, *profile_method_continue); - + // if no method data exists, go to profile_method __ test_method_data_pointer(rax, *profile_method); } diff -r 1b907994bf2d -r f3d2447db2d9 src/share/vm/oops/methodDataOop.cpp --- a/src/share/vm/oops/methodDataOop.cpp Mon Mar 05 12:40:54 2012 -0800 +++ b/src/share/vm/oops/methodDataOop.cpp Tue Mar 06 11:11:27 2012 -0800 @@ -868,7 +868,7 @@ // TODO (ch) enable this in the fastdebug build only once we are more stable ResourceMark m; tty->print_cr("WARN: endless recompilation of %s. Method was set to not compilable.", method()->name_and_sig_as_C_string()); - vm_exit(1); + ShouldNotReachHere(); #endif method()->set_not_compilable(CompLevel_full_optimization); }