Mercurial > hg > truffle
changeset 5039:f3d2447db2d9
added detection for endless recompilation
separated C1 and Graal specific globals
fixed jump branch probability
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Tue, 06 Mar 2012 11:11:27 -0800 |
parents | 1b907994bf2d |
children | 4d6e5ddf70e5 |
files | graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodData.java graal/com.oracle.max.graal.hotspot/src/com/oracle/max/graal/hotspot/ri/HotSpotMethodResolvedImpl.java graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/NewInstanceNode.java src/cpu/x86/vm/c1_globals_x86.hpp src/cpu/x86/vm/templateInterpreter_x86_64.cpp src/share/vm/oops/methodDataOop.cpp |
diffstat | 6 files changed, 27 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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());
--- 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.*;
--- 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);
--- 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); }
--- 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); }