summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2011-06-21 03:22:38 +0000
committerAndrew Trick <atrick@apple.com>2011-06-21 03:22:38 +0000
commit69d4452f2e04f7b1d118bc0d8e6b09898ea547bc (patch)
tree00d58dd9ca5b41ab21a6350978450334cb1f2896 /llvm/test/Transforms
parent5364847a84272b0a8ade22f2a2e97cfead90eb33 (diff)
downloadbcm5719-llvm-69d4452f2e04f7b1d118bc0d8e6b09898ea547bc.tar.gz
bcm5719-llvm-69d4452f2e04f7b1d118bc0d8e6b09898ea547bc.zip
indvars -disable-iv-rewrite: Adds support for eliminating identity
ops. This is a rewrite of the IV simplification algorithm used by -disable-iv-rewrite. To avoid perturbing the default mode, I temporarily split the driver and created SimplifyIVUsersNoRewrite. The idea is to avoid doing opcode/pattern matching inside IndVarSimplify. SCEV already does it. We want to optimize with the full generality of SCEV, but optimize def-use chains top down on-demand rather than rewriting the entire expression bottom-up. This was easy to do for operations that SCEV can prove are identity function. So we're now eliminating bitmasks and zero extends this way. A result of this rewrite is that indvars -disable-iv-rewrite no longer requires IVUsers. llvm-svn: 133502
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/IndVarSimplify/iv-zext.ll1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/test/Transforms/IndVarSimplify/iv-zext.ll b/llvm/test/Transforms/IndVarSimplify/iv-zext.ll
index 00018ec6f17..3a05c893fb4 100644
--- a/llvm/test/Transforms/IndVarSimplify/iv-zext.ll
+++ b/llvm/test/Transforms/IndVarSimplify/iv-zext.ll
@@ -1,4 +1,5 @@
; RUN: opt < %s -indvars -S | FileCheck %s
+; RUN: opt < %s -indvars -disable-iv-rewrite -S | FileCheck %s
; CHECK-NOT: and
; CHECK-NOT: zext
OpenPOWER on IntegriCloud