Mercurial > hg > truffle
view agent/make/mkinstall @ 9126:bc26f978b0ce
HotSpotResolvedObjectType: implement hasFinalizeSubclass() correctly
don't use the (wrong) cached value, but ask the runtime on each request.
Fixes regression on xml.* benchmarks @ specjvm2008. The problem was:
After the constructor of Object was deoptimized due to an assumption violation,
it was recompiled again after some time. However, on recompilation, the value
of hasFinalizeSubclass for the class was not updated and it was compiled again
with a, now wrong, assumption, which then triggers deoptimization again.
This was repeated until it hit the recompilation limit (defined by
PerMethodRecompilationCutoff), and therefore only executed by the interpreter
from now on, causing the performance regression.
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Mon, 15 Apr 2013 19:54:58 +0200 |
parents | a61af66fc99e |
children | 4fe850c65ed1 |
line wrap: on
line source
# make the directories SA_NAME=sa17 SA_TEST=$SA_NAME/test mkdir $SA_NAME mkdir $SA_NAME/solaris mkdir $SA_NAME/solaris/amd64 mkdir $SA_NAME/solaris/sparc mkdir $SA_NAME/solaris/sparcv9 mkdir $SA_NAME/solaris/i386 mkdir $SA_NAME/linux mkdir $SA_NAME/linux/i386 mkdir $SA_NAME/linux/ia64 mkdir $SA_NAME/linux/amd64 mkdir $SA_NAME/win32 mkdir $SA_NAME/win32/i386 mkdir $SA_NAME/win32/ia64 mkdir $SA_NAME/win32/amd64 mkdir $SA_TEST # make sa.jar jar -cvf $SA_NAME/sa.jar -C ../build/classes . # copy the native libraries cp ../src/os/solaris/proc/amd64/libsaproc.so $SA_NAME/solaris/amd64 cp ../src/os/solaris/proc/sparc/libsaproc.so $SA_NAME/solaris/sparc cp ../src/os/solaris/proc/sparcv9/libsaproc.so $SA_NAME/solaris/sparcv9 cp ../src/os/solaris/proc/i386/libsaproc.so $SA_NAME/solaris/i386 cp ../src/os/linux/i386/libsaproc.so $SA_NAME/linux/i386 cp ../src/os/linux/ia64/libsaproc.so $SA_NAME/linux/ia64 cp ../src/os/linux/amd64/libsaproc.so $SA_NAME/linux/amd64 cp ../src/os/win32/windbg/i386/sawindbg.dll $SA_NAME/win32/i386 cp ../src/os/win32/windbg/ia64/sawindbg.dll $SA_NAME/win32/ia64 cp ../src/os/win32/windbg/amd64/sawindbg.dll $SA_NAME/win32/amd64 # copy Unix (Solaris and Linux) shell scripts cp saenv.sh $SA_NAME ; chmod 755 $SA_NAME/saenv.sh cp saenv64.sh $SA_NAME ; chmod 755 $SA_NAME/saenv64.sh cp clhsdbproc.sh $SA_NAME ; chmod 755 $SA_NAME/clhsdbproc.sh cp clhsdbproc64.sh $SA_NAME ; chmod 755 $SA_NAME/clhsdbproc64.sh cp dumpflagsproc.sh $SA_NAME ; chmod 755 $SA_NAME/dumpflagsproc.sh cp dumpflagsproc64.sh $SA_NAME ; chmod 755 $SA_NAME/dumpflagsproc64.sh cp dumpsyspropsproc.sh $SA_NAME ; chmod 755 $SA_NAME/dumpsyspropsproc.sh cp dumpsyspropsproc64.sh $SA_NAME ; chmod 755 $SA_NAME/dumpsyspropsproc64.sh cp finalizerinfoproc.sh $SA_NAME ; chmod 755 $SA_NAME/finalizerinfoproc.sh cp finalizerinfoproc64.sh $SA_NAME ; chmod 755 $SA_NAME/finalizerinfoproc64.sh cp heapdumpproc.sh $SA_NAME ; chmod 755 $SA_NAME/heapdumpproc.sh cp heapdumpproc64.sh $SA_NAME ; chmod 755 $SA_NAME/heapdumpproc64.sh cp heapsumproc.sh $SA_NAME ; chmod 755 $SA_NAME/heapsumproc.sh cp heapsumproc64.sh $SA_NAME ; chmod 755 $SA_NAME/heapsumproc64.sh cp hsdbproc.sh $SA_NAME ; chmod 755 $SA_NAME/hsdbproc.sh cp hsdbproc64.sh $SA_NAME ; chmod 755 $SA_NAME/hsdbproc64.sh cp jcoreproc.sh $SA_NAME ; chmod 755 $SA_NAME/jcoreproc.sh cp jcoreproc64.sh $SA_NAME ; chmod 755 $SA_NAME/jcoreproc64.sh cp jdbcore.sh $SA_NAME ; chmod 755 $SA_NAME/jdbcore.sh cp jdbcore64.sh $SA_NAME ; chmod 755 $SA_NAME/jdbcore64.sh cp jdbproc.sh $SA_NAME ; chmod 755 $SA_NAME/jdbproc.sh cp jdbproc64.sh $SA_NAME ; chmod 755 $SA_NAME/jdbproc64.sh cp jhistoproc.sh $SA_NAME ; chmod 755 $SA_NAME/jhistoproc.sh cp jhistoproc64.sh $SA_NAME ; chmod 755 $SA_NAME/jhistoproc64.sh cp jsdbproc.sh $SA_NAME ; chmod 755 $SA_NAME/jsdbproc.sh cp jsdbproc64.sh $SA_NAME ; chmod 755 $SA_NAME/jsdbproc64.sh cp jstackproc.sh $SA_NAME ; chmod 755 $SA_NAME/jstackproc.sh cp jstackproc64.sh $SA_NAME ; chmod 755 $SA_NAME/jstackproc64.sh cp permstatproc.sh $SA_NAME ; chmod 755 $SA_NAME/permstatproc.sh cp permstatproc64.sh $SA_NAME ; chmod 755 $SA_NAME/permstatproc64.sh cp pmapproc.sh $SA_NAME ; chmod 755 $SA_NAME/pmapproc.sh cp pmapproc64.sh $SA_NAME ; chmod 755 $SA_NAME/pmapproc64.sh cp pstackproc.sh $SA_NAME ; chmod 755 $SA_NAME/pstackproc.sh cp pstackproc64.sh $SA_NAME ; chmod 755 $SA_NAME/pstackproc64.sh cp soqlproc.sh $SA_NAME ; chmod 755 $SA_NAME/soqlproc.sh cp soqlproc64.sh $SA_NAME ; chmod 755 $SA_NAME/soqlproc64.sh cp start-debug-server $SA_NAME ; chmod 755 $SA_NAME/start-debug-server cp start-debug-server-proc.sh $SA_NAME ; chmod 755 $SA_NAME/start-debug-server-proc.sh cp start-debug-server-proc64.sh $SA_NAME ; chmod 755 $SA_NAME/start-debug-server-proc64.sh cp start-rmiregistry.sh $SA_NAME ; chmod 755 $SA_NAME/start-rmiregistry.sh # copy Windows batch files cp saenv.bat $SA_NAME ; chmod 755 $SA_NAME/saenv.bat cp saenv64.bat $SA_NAME ; chmod 755 $SA_NAME/saenv64.bat cp clhsdbwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/clhsdbwindbg.bat cp clhsdbwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/clhsdbwindbg64.bat cp dumpflagswindbg.bat $SA_NAME ; chmod 755 $SA_NAME/dumpflagswindbg.bat cp dumpflagswindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/dumpflagswindbg64.bat cp dumpsyspropswindbg.bat $SA_NAME ; chmod 755 $SA_NAME/dumpsyspropswindbg.bat cp dumpsyspropswindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/dumpsyspropswindbg64.bat cp finalizerinfowindbg.bat $SA_NAME ; chmod 755 $SA_NAME/finalizerinfowindbg.bat cp finalizerinfowindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/finalizerinfowindbg64.bat cp heapdumpwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/heapdumpwindbg.bat cp heapdumpwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/heapdumpwindbg64.bat cp heapsumwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/heapsumwindbg.bat cp heapsumwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/heapsumwindbg64.bat cp hsdbwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/hsdbwindbg.bat cp hsdbwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/hsdbwindbg64.bat cp jcorewindbg.bat $SA_NAME ; chmod 755 $SA_NAME/jcorewindbg.bat cp jcorewindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/jcorewindbg64.bat cp jhistowindbg.bat $SA_NAME ; chmod 755 $SA_NAME/jhistowindbg.bat cp jhistowindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/jhistowindbg64.bat cp jsdbwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/jsdbwindbg.bat cp jsdbwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/jsdbwindbg64.bat cp jstackwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/jstackwindbg.bat cp jstackwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/jstackwindbg64.bat cp permstatwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/permstatwindbg.bat cp permstatwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/permstatwindbg64.bat cp pmapwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/pmapwindbg.bat cp pmapwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/pmapwindbg64.bat cp pstackwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/pstackwindbg.bat cp pstackwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/pstackwindbg64.bat cp soqlwindbg.bat $SA_NAME ; chmod 755 $SA_NAME/soqlwindbg.bat cp soqlwindbg64.bat $SA_NAME ; chmod 755 $SA_NAME/soqlwindbg64.bat cp start-debug-server-windbg.bat $SA_NAME ; chmod 755 $SA_NAME/start-debug-server-windbg.bat cp start-debug-server-windbg64.bat $SA_NAME ; chmod 755 $SA_NAME/start-debug-server-windbg64.bat cp start-rmiregistry.bat $SA_NAME ; chmod 755 $SA_NAME/start-rmiregistry.bat # make the libproc test cd ../test/libproc ; make; cd ../../make # copy libproc test suite cp ../test/libproc/README $SA_TEST/README-libproc cp ../test/libproc/libproctest.sh $SA_TEST ; chmod 755 $SA_TEST/libproctest.sh cp ../test/libproc/libproctest64.sh $SA_TEST ; chmod 755 $SA_TEST/libproctest64.sh cp ../test/libproc/*.class $SA_TEST # copy RMI security policy file cp grantAll.policy $SA_NAME # copy documentation mkdir $SA_NAME/doc cp ../doc/*.html $SA_NAME/doc chmod 644 $SA_NAME/doc/*.html # make lib dir and copy other jar files mkdir $SA_NAME/lib cp ../src/share/lib/*.jar $SA_NAME/lib # tar and gzip tar -cvf $SA_NAME.tar $SA_NAME gzip $SA_NAME.tar # cleanup \rm -rf $SA_NAME