OSDN Git Service

Reapply the new LoopStrengthReduction code, with compile time and
authorDan Gohman <gohman@apple.com>
Fri, 12 Feb 2010 10:34:29 +0000 (10:34 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 12 Feb 2010 10:34:29 +0000 (10:34 +0000)
commitd7df9e124368e5e48122aef8154f39b0346226f5
tree0571ce42ea03d210844a627baea045fa36f16df5
parent4a08b90bc70e6a988fd3988fb7f11718ffe00808
Reapply the new LoopStrengthReduction code, with compile time and
bug fixes, and with improved heuristics for analyzing foreign-loop
addrecs.

This change also flattens IVUsers, eliminating the stride-oriented
groupings, which makes it easier to work with.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95975 91177308-0d34-0410-b5e6-96231b3b80d8
35 files changed:
include/llvm/Analysis/IVUsers.h
include/llvm/Analysis/ScalarEvolutionExpander.h
lib/Analysis/IVUsers.cpp
lib/Analysis/ScalarEvolutionExpander.cpp
lib/CodeGen/LLVMTargetMachine.cpp
lib/Transforms/Scalar/IndVarSimplify.cpp
lib/Transforms/Scalar/LoopStrengthReduce.cpp
test/CodeGen/ARM/arm-negative-stride.ll
test/CodeGen/ARM/lsr-code-insertion.ll
test/CodeGen/Thumb2/lsr-deficiency.ll
test/CodeGen/Thumb2/thumb2-ifcvt1.ll
test/CodeGen/X86/2006-05-11-InstrSched.ll
test/CodeGen/X86/2007-03-15-GEP-Idx-Sink.ll
test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
test/CodeGen/X86/full-lsr.ll
test/CodeGen/X86/iv-users-in-other-loops.ll
test/CodeGen/X86/loop-strength-reduce-2.ll
test/CodeGen/X86/loop-strength-reduce-3.ll
test/CodeGen/X86/loop-strength-reduce.ll
test/CodeGen/X86/loop-strength-reduce4.ll
test/CodeGen/X86/loop-strength-reduce8.ll
test/CodeGen/X86/lsr-reuse.ll [new file with mode: 0644]
test/CodeGen/X86/masked-iv-safe.ll
test/CodeGen/X86/pr3495.ll
test/Transforms/IndVarSimplify/addrec-gep.ll
test/Transforms/LoopStrengthReduce/2008-08-06-CmpStride.ll
test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-0.ll
test/Transforms/LoopStrengthReduce/change-compare-stride-trickiness-1.ll
test/Transforms/LoopStrengthReduce/count-to-zero.ll
test/Transforms/LoopStrengthReduce/invariant_value_first.ll
test/Transforms/LoopStrengthReduce/invariant_value_first_arg.ll
test/Transforms/LoopStrengthReduce/ops_after_indvar.ll
test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll
test/Transforms/LoopStrengthReduce/remove_indvar.ll
test/Transforms/LoopStrengthReduce/use_postinc_value_outside_loop.ll