Hello, Can gatekeeper review the attached fix for bug #707(https://bugs.open64.net/show_bug.cgi?id=707) please? Thank you.
=========================================================================================
In WOPT, after SSA pointer alias analysis, DSE is performed. So, you
will have code like the following (BB3 dom BB12):
BB3: ISTORE .. *s1
v_2 <- chi (v_1) NOT LIVE *s2
BB12: ILOAD ... *s3
v_3 <- chi(v_1) *s4 // was v_3 <- chi(v_2)
before DSE
Then, in SSA::Create_CODEMAP, while processing the ILOAD WHIRL (*s3)
node, we try to fold it by calling Iload_folded function
which in some cases may resurrect a dead CHI node (*s2). In this case,
(*s2) is resurrected without changing back the
reference of v_1 in (*s4). This causes the live range of v_2 and v_1
to intersect after SSA::Create_CODEMAP and caused
assertion failure in opt_verify. The fix is to undo what DSE did by
changing all the subsequent references of (*s2)'s operand
into its result.
==========================================================================================
--Feng Zhou
bug707_v1.patch
Description: Binary data
------------------------------------------------------------------------------ The modern datacenter depends on network connectivity to access resources and provide services. The best practices for maximizing a physical server's connectivity to a physical network are well understood - see how these rules translate into the virtual world? http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________ Open64-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/open64-devel
