summaryrefslogtreecommitdiffstats
path: root/llvm/utils/DSAextract.py
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2014-01-02 03:31:36 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2014-01-02 03:31:36 +0000
commit0d10a9d5796d278e396c26388165e2eec81f5233 (patch)
tree0fc14d330b021f5f9b25b036d92ef16bbf520e94 /llvm/utils/DSAextract.py
parent18787628a7ef9a06e26276f0d9c2ef60854f5816 (diff)
downloadbcm5719-llvm-0d10a9d5796d278e396c26388165e2eec81f5233.tar.gz
bcm5719-llvm-0d10a9d5796d278e396c26388165e2eec81f5233.zip
BasicAA: Fix value equality and phi cycles
When there are cycles in the value graph we have to be careful interpreting "Value*" identity as "value" equivalence. We interpret the value of a phi node as the value of its operands. When we check for value equivalence now we make sure that the "Value*" dominates all cycles (phis). %0 = phi [%noaliasval, %addr2] %l = load %ptr %addr1 = gep @a, 0, %l %addr2 = gep @a, 0, (%l + 1) store %ptr ... Before this patch we would return NoAlias for (%0, %addr1) which is wrong because the value of the load is from different iterations of the loop. Tested on x86_64 -mavx at O3 and O3 -flto with no performance or compile time regressions. PR18068 radar://15653794 llvm-svn: 198290
Diffstat (limited to 'llvm/utils/DSAextract.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud