couple of compiler fixes for permgen elimination
roland.westrelin at oracle.com
Wed Apr 25 07:04:14 PDT 2012
- the assert in CodeCache::gc_epilogue() needs to take into account compiledICHolderOops that were allocated but for which the call site was not yet patched. It's possible if a GC happens in SharedRuntime::resolve_sub_helper() when the CompiledIC_lock is acquired.
- this fix undoes a change that Tom did and which causes TypeAryPtr::NARROWOOPS (array of compressed oops) to not be found as pointers to narrow oops (the compiled code loads a compressed reference as a 64 bit reference directly). I did extensive testing and nothing broke. Tom confirmed that he's unsure why he made the change in the first place.
I hit an other assert once:
assert(!is_zombie() && !is_unloaded()) failed: should not call follow on zombie or unloaded nmethod
I'm trying to reproduce it and will work on it if I can.
More information about the hotspot-compiler-dev