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

Attachment: 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

Reply via email to