[PATCH] D20949: [AggressiveAntiDepBreaker] Don't change aliased registers of liveins to alive in StartBlock
Chuang-Yu Cheng via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 14 03:17:49 PDT 2016
cycheng added a comment.
[Discussion in mail]
Hal:
I think the real question here is, can you have:
BB1:
def r
use r
BB2:
live-ins: R
use R
or something along those lines? If so, does this work correctly?
CY:
Yes, it is still work correctly! Because:
Case1:
BB1:
def R => R=g0 (Now, R is dead, i.e. enter into new life cycle)
use R => use: R=g0 (because R is live)
def r => (assume this is the last define) r=gM -> g0 (via R)
use r => last use: g0 -> gM
BB2:
live-ins: R
use R
Case2:
BB1:
ln1 def r => r=g0
ln2 use r => use: g0 (it is live because of ln7)
ln3
ln4 def R => R=gM->g0 (via r)
ln5 use R => use: R=g0->gM (last use)
ln6
ln7 def R => R=g0 (Now, R is dead, i.e. enter into new life cycle, update alias' live-info)
ln8 use R => use: R=g0 (because R is live)
BB2:
live-ins: R
use R
http://reviews.llvm.org/D20949
More information about the llvm-commits
mailing list