diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-03-16 21:53:05 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-03-16 21:53:05 +0000 |
commit | d1d6b5cce260808deeac0227b00f6f81a20b2c6f (patch) | |
tree | df35ecccc9fe1d71c82392ee45d624563b672491 /include/llvm/Transforms | |
parent | 714554d70717c73e0542ca93df36fa78765f87af (diff) | |
download | external_llvm-d1d6b5cce260808deeac0227b00f6f81a20b2c6f.zip external_llvm-d1d6b5cce260808deeac0227b00f6f81a20b2c6f.tar.gz external_llvm-d1d6b5cce260808deeac0227b00f6f81a20b2c6f.tar.bz2 |
For each loop, keep track of all the IV expressions inserted indexed by
stride. For a set of uses of the IV of a stride which is a multiple
of another stride, do not insert a new IV expression. Rather, reuse the
previous IV and rewrite the uses as uses of IV expression multiplied by
the factor.
e.g.
x = 0 ...; x ++
y = 0 ...; y += 4
then use of y can be rewritten as use of 4*x for x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26803 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms')
-rw-r--r-- | include/llvm/Transforms/Scalar.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/include/llvm/Transforms/Scalar.h b/include/llvm/Transforms/Scalar.h index 701460d..c830a60 100644 --- a/include/llvm/Transforms/Scalar.h +++ b/include/llvm/Transforms/Scalar.h @@ -132,15 +132,11 @@ FunctionPass *createLICMPass(); //===----------------------------------------------------------------------===// // // LoopStrengthReduce - This pass is strength reduces GEP instructions that use -// a loop's canonical induction variable as one of their indices. The -// MaxTargetAMSize is the largest element size that the target architecture -// can handle in its addressing modes. Power of two multipliers less than or -// equal to this value are not reduced. It also takes an optional second -// parameter used to consult the target machine whether certain transformations -// are profitable. -// -FunctionPass *createLoopStrengthReducePass(unsigned MaxTargetAMSize = 1, - const TargetLowering *TLI = NULL); +// a loop's canonical induction variable as one of their indices. It takes an +// optional parameter used to consult the target machine whether certain +// transformations are profitable. +// +FunctionPass *createLoopStrengthReducePass(const TargetLowering *TLI = NULL); //===----------------------------------------------------------------------===// // |