On Dec 18, 2010, at 3:17 PM, Kirk wrote: > I wasn't able to find anything that said, total is dead, get rid of it.. and > then loop is empty, get rid of it. But, if it's not there.. I didn't miss > anything.
The hotspot optimizer is designed so that dead code elimination happens when a part of the sea-of-nodes graph becomes unreachable and is "garbage collected". So there's no "kill this code" step that will reliably show up in the log. The code's graph nodes just stop being reachable. >> Given that 'total' is a dead value, you will end up with an empty loop. The >> loop probably disappears also. So your dead method will have an empty body. >> Perhaps it will deopt at the end of the loop, if the exit branch is not >> taken until after compilation. >> >>> 1% com.kodewerk.mbm.DeadCode::deadMethod @ 12 (33 bytes) >> = compilation task 1, type = osr, osr entry point = bci:12 > > Out of curiosity, the first compile_id tag was for java/lang/String hashCode > and it's id was 1. The inlining compile_id also started with an id of 1. Is > this because two threads are at work? The code is single threaded. For no particularly good reason, the OSR tasks are numbered separately from the regular ones. It's one of those deformities that is never quite annoying enough to fix. For using +PrintAssembly on Mac, try putting this on your $DYLD_LIBRARY_PATH: http://kenai.com/projects/base-hsdis/downloads/download/hsdis-i386.dylib I think it needs to be named "hsdis.so" or "hsdis.0.so". -- John -- You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en.
