diff options
| author | Wei Mi <wmi@google.com> | 2016-02-03 17:05:12 +0000 |
|---|---|---|
| committer | Wei Mi <wmi@google.com> | 2016-02-03 17:05:12 +0000 |
| commit | ed133978a0eed72b40f1a86c220445acb24f32f9 (patch) | |
| tree | f2c6e1ad7942af2d652c4ba3b28f7e3749d942c6 /llvm/test/Transforms/IndVarSimplify/udiv.ll | |
| parent | 38a36c4f1ca7a0a42ac6524a9f0a5a701f3bc88a (diff) | |
| download | bcm5719-llvm-ed133978a0eed72b40f1a86c220445acb24f32f9.tar.gz bcm5719-llvm-ed133978a0eed72b40f1a86c220445acb24f32f9.zip | |
[SCEV] Try to reuse existing value during SCEV expansion
Current SCEV expansion will expand SCEV as a sequence of operations
and doesn't utilize the value already existed. This will introduce
redundent computation which may not be cleaned up throughly by
following optimizations.
This patch introduces an ExprValueMap which is a map from SCEV to the
set of equal values with the same SCEV. When a SCEV is expanded, the
set of values is checked and reused whenever possible before generating
a sequence of operations.
Differential Revision: http://reviews.llvm.org/D12090
llvm-svn: 259662
Diffstat (limited to 'llvm/test/Transforms/IndVarSimplify/udiv.ll')
| -rw-r--r-- | llvm/test/Transforms/IndVarSimplify/udiv.ll | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/test/Transforms/IndVarSimplify/udiv.ll b/llvm/test/Transforms/IndVarSimplify/udiv.ll index 45c703c99dd..b3f2c2a6a66 100644 --- a/llvm/test/Transforms/IndVarSimplify/udiv.ll +++ b/llvm/test/Transforms/IndVarSimplify/udiv.ll @@ -127,12 +127,12 @@ declare i32 @atoi(i8* nocapture) nounwind readonly declare i32 @printf(i8* nocapture, ...) nounwind -; IndVars shouldn't be afraid to emit a udiv here, since there's a udiv in -; the original code. +; IndVars doesn't emit a udiv in for.body.preheader since SCEVExpander::expand will +; find out there's already a udiv in the original code. ; CHECK-LABEL: @foo( ; CHECK: for.body.preheader: -; CHECK-NEXT: udiv +; CHECK-NOT: udiv define void @foo(double* %p, i64 %n) nounwind { entry: |

