couple of compiler fixes for permgen elimination

Roland Westrelin roland.westrelin at oracle.com
Wed Apr 25 07:04:14 PDT 2012


http://java-rts.fr.oracle.com/mackdrive/export/jrts/work/rw140007/permgen/hotspot/fixes1/webrev/

- 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.

Roland.


More information about the hotspot-compiler-dev mailing list