Mercurial > hg > truffle
comparison src/share/vm/compiler/compileBroker.cpp @ 1433:efba53f86c4f
various fixes and enhancements
* correct refmap->oopmap conversion (register numbering, stack slot numbering)
* fixes for inlining (correct scoping in exception handler lookup, NPE in scope conversion)
* support for "jump to runtime stub" (patching code needs to be aware of jmp instruction)
* provide more information about methods (to allow inlining: has_balanced_monitors, etc.)
* fixes to signature type lookup
* isSubTypeOf: correct handling of array classes
* RiType: componentType/arrayOf
* prologue: inline cache check, icmiss stub
* klass state check (resolved but not initialized) in newinstance
* card table write barriers
* c1x classes are optional (to allow running c1 without them)
* correct for stored frame pointer in calling conventions (methods with arguments on stack)
* getType(Class<?>) for some basic types, used for optimizations and folding
* RiMethod/RiType: throw exception instead of silent failure on unsupported operations
* RiType: resolved/unresolved array type support
* refactoring: new on-demand template generation mechanism
* optimizations: template specialization for no_null_check, given length, etc.
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Thu, 16 Sep 2010 19:42:20 -0700 |
parents | 1ecc8f0aad00 |
children | 72cfb36c6bb2 |
comparison
equal
deleted
inserted
replaced
1432:b61a43cd1255 | 1433:efba53f86c4f |
---|---|
861 bool blocking = false; | 861 bool blocking = false; |
862 | 862 |
863 // Acquire our lock. | 863 // Acquire our lock. |
864 { | 864 { |
865 MutexLocker locker(_method_queue->lock(), THREAD); | 865 MutexLocker locker(_method_queue->lock(), THREAD); |
866 | 866 /* |
867 if (Thread::current()->is_Compiler_thread() && CompilerThread::current()->is_compiling()) { | 867 if (Thread::current()->is_Compiler_thread() && CompilerThread::current()->is_compiling()) { |
868 | 868 |
869 TRACE_C1X_1("Recursive compile %s!", method->name_and_sig_as_C_string()); | 869 TRACE_C1X_1("Recursive compile %s!", method->name_and_sig_as_C_string()); |
870 method->set_not_compilable(); | 870 //method->set_not_compilable(); |
871 return; | 871 return; |
872 } | 872 } |
873 | 873 */ |
874 // Make sure the method has not slipped into the queues since | 874 // Make sure the method has not slipped into the queues since |
875 // last we checked; note that those checks were "fast bail-outs". | 875 // last we checked; note that those checks were "fast bail-outs". |
876 // Here we need to be more careful, see 14012000 below. | 876 // Here we need to be more careful, see 14012000 below. |
877 if (compilation_is_in_queue(method, osr_bci)) { | 877 if (compilation_is_in_queue(method, osr_bci)) { |
878 return; | 878 return; |