diff options
author | Fedor Sergeev <fedor.sergeev@azul.com> | 2017-12-14 10:36:31 +0000 |
---|---|---|
committer | Fedor Sergeev <fedor.sergeev@azul.com> | 2017-12-14 10:36:31 +0000 |
commit | bfac46c5f457cb6ea580d661ac5c5e05cc620334 (patch) | |
tree | 77e224bcfde3d8a6bb262d582ed07cd38206d380 /test/Transforms | |
parent | 45b92d7fda370ca7c375d244c19e81292fe25c86 (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.ll | 23 |
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 +} |