--- old/src/share/vm/code/codeCache.cpp 2015-08-28 10:34:22.818558771 +0200 +++ new/src/share/vm/code/codeCache.cpp 2015-08-28 10:34:22.746558774 +0200 @@ -745,13 +745,12 @@ void CodeCache::gc_epilogue() { assert_locked_or_safepoint(CodeCache_lock); - NMethodIterator iter; - while(iter.next()) { - nmethod* nm = iter.method(); - if (!nm->is_zombie()) { - if (needs_cache_clean()) { - // Clean ICs of unloaded nmethods as well because they may reference other - // unloaded nmethods that may be flushed earlier in the sweeper cycle. + NOT_DEBUG(if (needs_cache_clean())) { + NMethodIterator iter; + while(iter.next_alive()) { + nmethod* nm = iter.method(); + assert(!nm->is_unloaded(), "Tautology"); + DEBUG_ONLY(if (needs_cache_clean())) { nm->cleanup_inline_caches(); } DEBUG_ONLY(nm->verify());