Commit Graph

47 Commits

Author SHA1 Message Date
Nate Begeman
eaa13851a7 Initial implementation of the strength reduction for GEP instructions in
loops.  This optimization is not turned on by default yet, but may be run
with the opt tool's -loop-reduce flag.  There are many FIXMEs listed in the
code that will make it far more applicable to a wide range of code, but you
have to start somewhere :)

This limited version currently triggers on the following tests in the
MultiSource directory:
pcompress2: 7 times
cfrac: 5 times
anagram: 2 times
ks: 6 times
yacr2: 2 times


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17134 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-18 21:08:22 +00:00
Chris Lattner
8e47e7292c Do not prototype any of these passes as returning Pass*. Instead, be specific
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16431 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:41:39 +00:00
Chris Lattner
264532cd31 Remove unused pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16338 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 16:34:08 +00:00
Chris Lattner
f1fccfd6a8 Expose breakcriticaledges as a functionpass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15370 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-31 10:02:24 +00:00
Brian Gaeke
96d4bf7aee Make the create...() functions for some of these passes return a FunctionPass *.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15276 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-27 17:43:21 +00:00
Chris Lattner
3ede6adf18 New prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15102 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-22 08:07:30 +00:00
Chris Lattner
288c92c16b Prototype for new ConstantExpr lowering pass, contributed by Vladimir Prus!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14397 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 07:41:06 +00:00
Chris Lattner
bab838e76d Add a new prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13685 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:16:13 +00:00
Chris Lattner
8277567dc6 Add accessor for a Loop Unswitching pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13066 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-19 06:28:37 +00:00
Chris Lattner
4c174a7bba Add prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13029 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-18 05:20:32 +00:00
Chris Lattner
0c58897d1c Improve description, add warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12570 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-31 21:59:07 +00:00
Chris Lattner
18bdbc3dda Add a simple select instruction lowering pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12540 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-30 18:41:10 +00:00
Chris Lattner
4eddf37ee3 Move loop extractor to the IPO header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12374 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-14 02:36:34 +00:00
Misha Brukman
dddea54b11 Add the prototype for the LoopExtractor Pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11937 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-28 03:33:17 +00:00
Misha Brukman
a92666decd Fix spelling of `tendency'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11378 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 16:23:14 +00:00
Chris Lattner
fdd13f6afe Expose a pass ID for lower-invoke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11377 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-13 16:16:35 +00:00
Brian Gaeke
d0fde30ce8 Put all LLVM code into the llvm namespace, as per bug 109.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
Chris Lattner
4a05ba0ab5 Move isCriticalEdge & SplitCritical edge out of this file, which is only
for passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9851 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-10 04:09:44 +00:00
Misha Brukman
d24fdda8e9 Declare FunctionPasses as such.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9767 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-07 17:19:39 +00:00
John Criswell
6fbcc26f14 Added LLVM copyright header (for lack of a better term).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 20:19:47 +00:00
Chris Lattner
98bf436e2e Rename loop preheaders pass to loop simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9061 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-12 21:52:28 +00:00
Chris Lattner
5e5252b4c9 Add new prototype for createLowerInvokePass(). Make simplifycfg be a
functionpass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8870 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-05 19:15:13 +00:00
Chris Lattner
48486893f4 Standardize header file comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 18:37:50 +00:00
Chris Lattner
3fc6ef1bb9 Expose the TCE pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8619 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 05:14:13 +00:00
Chris Lattner
065a616ada Fix spell-o's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8431 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-10 05:29:43 +00:00
Chris Lattner
3dc48c54de Add RPR prototype here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8314 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:44:42 +00:00
Chris Lattner
2757af2d47 Change the RaiseAllocations pass from being a BasicBlockPass to being a Pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8279 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 03:14:00 +00:00
Brian Gaeke
bf3c4cfaad Factory methods for function passes now return type FunctionPass *.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7839 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-14 06:09:32 +00:00
Brian Gaeke
19df3876e6 Factory methods for FunctionPasses now return type FunctionPass *.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-13 18:18:15 +00:00
Chris Lattner
1ee7855dfa Add prototype for tail-dup pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6847 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-22 20:10:42 +00:00
Chris Lattner
a161f0c7c9 Expose proto for SRoA pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6348 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-27 15:52:45 +00:00
Misha Brukman
82c89b9f3a Hopefully, the final fix for `[Pp]ropogate'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6251 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-20 21:01:22 +00:00
Chris Lattner
3b1ca40d5d Add stub to create lowerSwitches pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5866 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 16:24:19 +00:00
Chris Lattner
e802a023d9 Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4075 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 21:06:27 +00:00
Chris Lattner
f6b684c505 Checkin new loop-preheader insertion pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3943 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-26 16:17:33 +00:00
Chris Lattner
1751b7ed27 Change LowerAllocations pass to 'require' TargetData instead of it being
passed in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3930 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-25 23:47:49 +00:00
Chris Lattner
87944916a4 Expose passinfo from BreakCriticalEdges pass so that it may be "Required" by
other passes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3906 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 15:42:27 +00:00
Chris Lattner
119e9ea33b Add new BreakCriticalEdges pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3902 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 00:08:37 +00:00
Vikram S. Adve
be376cf6d4 Allow transformation DecomposeArrayRef(GetElementPtrInst* GEP) to
be invoked on a single instruction at a time, for use in other passes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3751 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16 16:07:19 +00:00
Chris Lattner
513d3e8fc5 Include stub for correlated expression elimination pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3597 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:39:29 +00:00
Chris Lattner
378fb1df55 Merge the contents of ChangeAllocations.h into Scalar.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3028 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 19:37:38 +00:00
Chris Lattner
b8bcb086f7 Expose CFG simplification pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2696 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-21 20:04:15 +00:00
Chris Lattner
0fe2153507 Add prototype for LICM pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2612 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 22:44:16 +00:00
Chris Lattner
531823f125 Add prototype for the PiNodeInserter pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2592 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-10 05:40:37 +00:00
Chris Lattner
540d63cbc7 Add expr reassociation pass prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2558 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-08 22:19:01 +00:00
Chris Lattner
1ea5c56795 Spell aggressive right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2549 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 22:12:52 +00:00
Chris Lattner
332f3679d0 New header file to replace all of the Scalar/*.h files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2533 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 19:37:18 +00:00