I am on vacation today and tomorrow. Can other gatekeepers review this? Thx.
-Mei
From: Hui Shi [mailto:kalin....@gmail.com]
Sent: Wednesday, June 29, 2011 11:36 PM
To: open64-devel@lists.sourceforge.net
Subject: [Open64-devel] Code review for bug#707, liverange overlap after setup
CODEMAP [WOPT]
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
------------------------------------------------------------------------------
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