aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Utils/CloneFunction.cpp
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
commit2fabd464ae9fd33f068066e3fc3d0caa7ea2279d (patch)
treec03f566a9ca6c3263b3d33d4aafcf7481fd69491 /lib/Transforms/Utils/CloneFunction.cpp
parenta88a0ca8082006b37d14d8aee4a644b20bae8bc9 (diff)
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133502 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/CloneFunction.cpp')
0 files changed, 0 insertions, 0 deletions