RFR (M): 8039298: assert(base == NULL || t_adr->isa_rawptr() || ...
igor.veresov at oracle.com
Fri May 2 23:36:38 UTC 2014
On May 1, 2014, at 10:52 AM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> This assert was added for 6711117 when we observed "NULL+off" non-raw address type. It was fixed by delaying a memory node processing if its inputs are on IGVN worklist or address types do not match.
> Recently we start hitting this assert for big graphs when control path become dead but due to the nodes order in IGVN worklist data nodes on dead path were processed first. As result we get TOP or NULL dead address base for memory nodes.
> I am suggesting 2 ways solution.
> First, convert the assert into the runtime check to skip IGVN optimizations for such memory nodes. I ran performance tests and did not see regression.
> Second, eliminate dead nodes more aggressively. The method kill_dead_code() will eliminate dead loops (except irreducible), dead regions and nodes which have only TOP or NULL inputs. I have to add the code to mark presence of irreducible loops for that.
> Test ctw, jtreg, jprt.
More information about the hotspot-compiler-dev