diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2014-04-11 19:35:37 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2014-04-11 19:35:37 +0000 |
commit | ffb9f967d83cf680eb1bfea1fdd995ccef34223e (patch) | |
tree | 4492da57442c30e9c641df2dd83a2f1a969a7995 /test/.clang-format | |
parent | ad17ccef24b2078275201d62c1feaa1aad6be8e3 (diff) | |
download | llvm-ffb9f967d83cf680eb1bfea1fdd995ccef34223e.tar.gz llvm-ffb9f967d83cf680eb1bfea1fdd995ccef34223e.tar.bz2 llvm-ffb9f967d83cf680eb1bfea1fdd995ccef34223e.tar.xz |
Merging r198290:
------------------------------------------------------------------------
r198290 | aschwaighofer | 2014-01-01 22:31:36 -0500 (Wed, 01 Jan 2014) | 23 lines
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
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@206051 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/.clang-format')
0 files changed, 0 insertions, 0 deletions