summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2014-04-11 19:35:37 +0000
committerTom Stellard <thomas.stellard@amd.com>2014-04-11 19:35:37 +0000
commitffb9f967d83cf680eb1bfea1fdd995ccef34223e (patch)
tree4492da57442c30e9c641df2dd83a2f1a969a7995 /test/Transforms
parentad17ccef24b2078275201d62c1feaa1aad6be8e3 (diff)
downloadllvm-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/Transforms')
-rw-r--r--test/Transforms/ObjCARC/weak-copies.ll2
-rw-r--r--test/Transforms/ObjCARC/weak-dce.ll2
2 files changed, 2 insertions, 2 deletions
diff --git a/test/Transforms/ObjCARC/weak-copies.ll b/test/Transforms/ObjCARC/weak-copies.ll
index 5dab4e049e..599689bc36 100644
--- a/test/Transforms/ObjCARC/weak-copies.ll
+++ b/test/Transforms/ObjCARC/weak-copies.ll
@@ -1,4 +1,4 @@
-; RUN: opt -S -basicaa -objc-arc < %s | FileCheck %s
+; RUN: opt -S -domtree -basicaa -objc-arc < %s | FileCheck %s
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin11.0.0"
diff --git a/test/Transforms/ObjCARC/weak-dce.ll b/test/Transforms/ObjCARC/weak-dce.ll
index f09467182b..787fb905fd 100644
--- a/test/Transforms/ObjCARC/weak-dce.ll
+++ b/test/Transforms/ObjCARC/weak-dce.ll
@@ -1,4 +1,4 @@
-; RUN: opt -S -basicaa -objc-arc < %s | FileCheck %s
+; RUN: opt -S -domtree -basicaa -objc-arc < %s | FileCheck %s
; rdar://11434915
; Delete the weak calls and replace them with just the net retain.