llvm-6502/lib
Tom Stellard ffb9f967d8 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
2014-04-11 19:35:37 +00:00
..
Analysis Merging r198290: 2014-04-11 19:35:37 +00:00
AsmParser Merging r196158: 2013-12-09 21:06:30 +00:00
Bitcode Merging r196158: 2013-12-09 21:06:30 +00:00
CodeGen Merging r196970: 2014-04-11 19:35:34 +00:00
DebugInfo DebugInfo: Make pubnames header printing similar to unit header printing 2013-11-01 17:53:30 +00:00
ExecutionEngine Merging r197483: 2013-12-24 06:50:45 +00:00
IR Merging r196172: 2013-12-09 21:07:27 +00:00
IRReader [llvm-c] Expose IRReader interface 2013-11-06 09:21:15 +00:00
Linker Revert "Move copying of global initializers below the cloning of functions." 2013-11-09 00:43:18 +00:00
LTO Use array_pod_sort instead of std::sort 2013-11-16 16:15:56 +00:00
MC Merging r196970: 2014-04-11 19:35:34 +00:00
Object Path: Recognize COFF import library file magic. 2013-11-15 21:22:02 +00:00
Option Use startswith_lower() where possible. 2013-11-04 19:22:50 +00:00
Support Merging r197718: 2013-12-20 04:26:57 +00:00
TableGen Fix most memory leaks in tablegen. 2013-10-31 04:07:41 +00:00
Target Merging r196970: 2014-04-11 19:35:34 +00:00
Transforms Merging r199570: 2014-04-09 00:20:38 +00:00
CMakeLists.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
LLVMBuild.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
Makefile Reformat Makefile. No other changes. 2013-10-30 04:03:03 +00:00