Could gatekeeper help review this fix? In SSA::Create_CODEMAP ILOAD folding is performed during coderep setup. The problem is iload folding may revive some dead phi/chi node.
For example STMT1 sym2v4 = chi(sym2v3) NOT LIVE default_vsym_v4 = chi(default_vsym_v3) LIVE .... STMT2 ILOAD mu(default_vsym_v4) ... STMT3 sym2v5 = chi(sym2v3) LIVE // sym2v3 is propagate down from above dead chi. default_vsym_v5 = chi(default_vsym_v4) If sym2v4 may use at STMT2, ILOAD's MU node must on STMT1's chi list (because MU node must alias with sym2, otherwise its alias issue). And MU node's corresponding CHI node must live on STMT1, because set_required_mu will set chi node live. So it's okay for DSE to mark fisrt CHI dead if STMT1 and STMT3 write same memory location. 1. It will not make STMT1 dead, because the other chi node is live. 2. ILOAD's MU node's def statment still STMT1 If ILOAD folding transform ILOAD to LDID and LDID's AUX is sym2. ILOD_FOLDING revives dead chi sym2v4 = chi(sym2v3) without update the late chi node's opnd. This introduce overlapped between sym2v3 and sym2v4. Fix is rename CODEMAP if iload folding revive dead phi/chi node. OPT_REVISE_SSA::Fold_lda_indirects also rename CODEMAP after optimization. Fix is 1. record in htable, if dead chi/phi node is revived in SSA::Create_CODEMAP. This only happends when ILOAD_Folding happens and find corresponding chi/phi is dead. 2. After SSA::Create_CODEMAP, rename coderep if dead chi/phi node is revive in CODEMAP setup. Different with fixing in DSE to mark first chi node live, this fix not affect DSE, so not affect performance. And this is verified with spec2006.rate on xeon. Regards Shi Hui
revive_rename.patch
Description: Binary data
------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel