summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2017-12-14 10:36:31 +0000
committerFedor Sergeev <fedor.sergeev@azul.com>2017-12-14 10:36:31 +0000
commitbfac46c5f457cb6ea580d661ac5c5e05cc620334 (patch)
tree77e224bcfde3d8a6bb262d582ed07cd38206d380 /test/Transforms
parent45b92d7fda370ca7c375d244c19e81292fe25c86 (diff)
[PM][InstCombine] fixing omission of AliasAnalysis in new-pass-manager's version of InstCombine
Summary: Passing AliasAnalysis results instead of nullptr appears to work just fine. A couple new-pass-manager tests updated to align with new order of analyses. Reviewers: chandlerc, spatel, craig.topper Reviewed By: chandlerc Subscribers: mehdi_amini, eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D41203 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320687 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/InstCombine/store-load-unaliased-gep.ll23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/store-load-unaliased-gep.ll b/test/Transforms/InstCombine/store-load-unaliased-gep.ll
new file mode 100644
index 00000000000..cdeee317055
--- /dev/null
+++ b/test/Transforms/InstCombine/store-load-unaliased-gep.ll
@@ -0,0 +1,23 @@
+; RUN: opt -instcombine %s -S 2>&1 | FileCheck %s
+; RUN: opt -aa-pipeline=basic-aa -passes=instcombine %s -S 2>&1 | FileCheck %s
+
+; Checking successful store-load optimization of array length.
+; Function below should deduce just to "return length".
+; Doable only if instcombine has access to alias-analysis.
+
+define i32 @test1(i32 %length) {
+; CHECK-LABEL: entry:
+entry:
+ %array = alloca i32, i32 2
+ ; CHECK-NOT: %array
+
+ %length_gep = getelementptr inbounds i32, i32 * %array, i32 0
+ %value_gep = getelementptr inbounds i32, i32 * %array, i32 1
+ store i32 %length, i32 * %length_gep
+ store i32 0, i32 * %value_gep
+ %loaded_length = load i32, i32 * %length_gep
+ ; CHECK-NOT: %loaded_length = load i32
+
+ ret i32 %loaded_length
+ ; CHECK: ret i32 %length
+}