History log of /external/llvm/include/llvm/Transforms/Scalar.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
78435f6bb7574d3d26f8c5151e2c140c525b7994 21-Jul-2012 Nuno Lopes <nunoplopes@sapo.pt> move the bounds checking pass to the instrumentation folder, where it belongs. I dunno why in the world I dropped it in the Scalar folder in the first place.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
2114a8aaba99e901735e69818bb789757ed05cfd 21-Jun-2012 Nadav Rotem <nadav.rotem@intel.com> Add a number of threshold arguments to the SRA pass.

A patch by Tom Stellard with minor changes.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
5c525b59d5e0036a778d278eeff4832edfd41357 22-May-2012 Nuno Lopes <nunoplopes@sapo.pt> add a new pass to instrument loads and stores for run-time bounds checking
move EmitGEPOffset from InstCombine to Transforms/Utils/Local.h

(a draft of this) patch reviewed by Andrew, thanks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
2f6263c96a6ed234b8d314cc35c8e2fcc3e81ccc 17-Jan-2012 Dan Gohman <gohman@apple.com> Add a new ObjC ARC optimization pass to eliminate unneeded
autorelease push+pop pairs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
0572c7d31ec0b8636906a66cb5f4215be85ed5e0 08-Dec-2011 Eli Friedman <eli.friedman@gmail.com> Remove reference to dead GEPSplitterPass. PR11506.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
827454e6e28cfed93db990b03b720ef7c23e6917 17-Oct-2011 Devang Patel <dpatel@apple.com> svn mv Target/ARM/ARMGlobalMerge.cpp Transforms/Scalar/GlobalMerge.cpp

There is no reason to have simple IR level pass in lib/Target.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
f940a1a869b4fe6f857e7fd8aeb97e7b7e9b390e 31-Aug-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove the old tail duplication pass. It is not used and is unable to update
ssa, so it has to be run really early in the pipeline. Any replacement
should probably use the SSAUpdater.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
9da9934e27dfb48de77b80a3e20ed2d869b52024 06-Jul-2011 Jakub Staszak <jstaszak@apple.com> Introduce "expect" intrinsic instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
9fbd318d36e618fb08fb53bb48b7c848e617a8a7 16-Jun-2011 John McCall <rjmccall@apple.com> The ARC language-specific optimizer. Credit to Dan Gohman.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133108 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
32644d9bfdacac3a3ffa71ace5b2c2fdb58c8702 13-Apr-2011 Junjie Gu <jgu222@gmail.com> Passing unroll parameters (unroll-count, threshold, and partial unroll) via LoopUnroll class's ctor. Doing so
will allow multiple context with different loop unroll parameters to run. This is a minor change and no effect
on existing application.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1551abdea6206870df86f730a289a74ef506d259 28-Feb-2011 Dan Gohman <gohman@apple.com> Delete the SimplifyHalfPowrLibCalls pass, which was unused, and
only existed as the result of a misunderstanding.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
b1686c32fc694636cbf15a59b23b2a741b65ecf4 18-Jan-2011 Cameron Zwarich <zwarich@apple.com> Remove outdated references to dominance frontiers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123724 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
b352d6eb49927a7c707cbd9046cfc525b0c3f2d7 14-Jan-2011 Chris Lattner <sabre@nondot.org> split SROA into two passes: one that uses DomFrontiers (-scalarrepl)
and one that uses SSAUpdater (-scalarrepl-ssa)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
832f61117d69019376c4aabedd4de3831279e288 03-Jan-2011 Cameron Zwarich <zwarich@apple.com> Add a new loop-instsimplify pass, with the intention of replacing the instance
of instcombine that is currently in the middle of the loop pass pipeline. This
commit only checks in the pass; it will hopefully be enabled by default later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
12be936cc912b1ff4d1c73c7f2c805a3462da1ab 02-Jan-2011 Chris Lattner <sabre@nondot.org> sketch out a new early cse pass. No functionality yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
b0db161f5b85c4a31046d2271d9e270991b53a15 26-Dec-2010 Chris Lattner <sabre@nondot.org> Start of a pass for recognizing memset and memcpy idioms.
No functionality yet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
43ff68ded09bf6f722548fa6c62d742483bd133c 20-Dec-2010 Duncan Sands <baldrick@free.fr> Add a new convenience pass for testing InstructionSimplify. Previously
it could only be tested indirectly, via instcombine, gvn or some other
pass that makes use of InstructionSimplify, which means that testcases
had to be carefully contrived to dance around any other transformations
that that pass did.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
d82e9e7d939bb4b4f4773e9853c061e14188f705 08-Oct-2010 Devang Patel <dpatel@apple.com> Remove LoopIndexSplit pass. It is neither maintained nor used by anyone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
25e9405272630204eb721d8b6ab47a5a25f24885 31-Aug-2010 Owen Anderson <resistor@mac.com> Rename ValuePropagation to a more descriptive CorrelatedValuePropagation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
5f88af537637831451ff9ffa08c597e05e7dc9fb 28-Aug-2010 Chris Lattner <sabre@nondot.org> remove the ABCD and SSI passes. They don't have any clients that
I'm aware of, aren't maintained, and LVI will be replacing their value.
nlewycky approved this on irc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a0b59f6bd23afaeba923b94f46838cffd5218a12 28-Aug-2010 Owen Anderson <resistor@mac.com> Add a prototype of a new peephole optimizing pass that uses LazyValue info to simplify PHIs and select's.
This pass addresses the missed optimizations from PR2581 and PR4420.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
60493c3f4ff9b20f43a3abc605bc64642de75b59 06-Aug-2010 Dan Gohman <gohman@apple.com> Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg")
instead, as an example of what this looks like.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
90c579de5a383cee278acc3f7e7b9d0a656e6a35 06-Aug-2010 Owen Anderson <resistor@mac.com> Reapply r110396, with fixes to appease the Linux buildbot gods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1f74590e9d1b9cf0f1f81a156efea73f76546e05 06-Aug-2010 Owen Anderson <resistor@mac.com> Revert r110396 to fix buildbots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
9ccaf53ada99c63737547c0235baeb8454b04e80 06-Aug-2010 Owen Anderson <resistor@mac.com> Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3bababf880bfeaf1bcda7e4f808007621b6bfac8 03-Aug-2010 Peter Collingbourne <peter@pcc.me.uk> Add an atomic lowering pass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
28a193ed8b4b37593afb76f9130eacf393ea9383 07-May-2010 Dan Gohman <gohman@apple.com> Add an LLVM IR version of code sinking. This uses the same simple algorithm
as MachineSink, but it isn't constrained by MachineInstr-level details.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
c6f0aadc3b4f7e79bd3f4e59b1192f770fc63a5d 27-Apr-2010 Chris Lattner <sabre@nondot.org> Fix a problem that lower invoke has with allocas (PR6694), and
add a version of createLowerInvokePass that allows the client
to specify whether it wants "expensive" or "cheap" lowering.

Patch by Alex Mac!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
fd649015795ec187dace55f6c00e9d0999ba0373 13-Apr-2010 Owen Anderson <resistor@mac.com> SCCVN, we hardly knew ye!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
b29d7d25423bc91a06a8a16aee3ff0ea96980706 28-Feb-2010 Bob Wilson <bob.wilson@apple.com> Revert r97245 which seems to be causing performance problems.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
8561dcd7306f4a4d45b1f2372e7cd40a753f2cc6 26-Feb-2010 Bob Wilson <bob.wilson@apple.com> Move the EnableFullLoadPRE flag from a separate command-line option to an
argument of createGVNPass and set it automatically for -O3.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
60df9077ebe2a38723beadedd88e349f9aa214cb 26-Feb-2010 Bob Wilson <bob.wilson@apple.com> Remove unused "NoPRE" parameter in GVN and createGVNPass().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
d2592ff69ba86d8d5da5b598429f373cb2842699 09-Feb-2010 Eric Christopher <echristo@apple.com> Pull these back out, they're a little too aggressive and time
consuming for a simple optimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1926b648e132631282aa15d25e4f8278f87c24fb 09-Feb-2010 Eric Christopher <echristo@apple.com> Add a new pass to do llvm.objsize lowering using SCEV.
Initial skeleton and SCEVUnknown lowering implemented,
the rest should come relatively quickly. Move testcase
to new directory.

Move pass to right before SimplifyLibCalls - which is
moved down a bit so we can take advantage of a few opts.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
4ec01b268e85b62b0eabe27d8fd97e8066a81b8f 14-Nov-2009 Dan Gohman <gohman@apple.com> Add an option for running GVN with redundant load processing disabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
f8fb7c26ee251e71be8a5372dc4936f3042c7553 11-Nov-2009 Chris Lattner <sabre@nondot.org> remove the now dead condprop pass, PR3906.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
9f476e3179713a1e93bbf634855b85a93f8653cd 31-Oct-2009 Dan Gohman <gohman@apple.com> Remove CodeGenLICM. It's largely obsoleted by MachineLICM's new ability
to unfold loop-invariant loads.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
2f192c256c28f3b6c018f59e96380cd26f59c767 30-Oct-2009 Evan Cheng <evan.cheng@apple.com> Add option to createGVNPass to disable PRE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
40cc524edee857eab238338200d2cc80f840f52f 28-Oct-2009 Nick Lewycky <nicholas@mxc.ca> Add ABCD, a generalized implementation of the Elimination of Array Bounds
Checks on Demand algorithm which looks at arbitrary branches instead of loop
iterations. This is GSoC work by Andre Tavares with only editorial changes
applied!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
8b251c25b2a999f48db47509db2ddb9e80cd49ff 27-Oct-2009 Owen Anderson <resistor@mac.com> Forgot to commit these.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
046e78ce55a7c3d82b7b6758d2d77f2d99f970bf 27-Oct-2009 Victor Hernandez <vhernandez@apple.com> Remove FreeInst.
Remove LowerAllocations pass.
Update some more passes to treate free calls just like they were treating FreeInst.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
6000e253d4b59677030fdf2f53f8d1e5fa00a1a4 26-Oct-2009 Dan Gohman <gohman@apple.com> Check in the experimental GEP splitter pass. This pass splits complex
GEPs (more than one non-zero index) into simple GEPs (at most one
non-zero index). In some simple experiments using this it's not
uncommon to see 3% overall code size wins, because it exposes
redundancies that can be eliminated, however it's tricky to use
because instcombine aggressively undoes the work that this pass does.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a276c603b82a11b0bf0b59f0517a69e4b63adeab 17-Oct-2009 Victor Hernandez <vhernandez@apple.com> Remove MallocInst from LLVM Instructions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
7963e159515bfb21c39739b84a1abc5b36c0a5a7 06-Oct-2009 Chris Lattner <sabre@nondot.org> remove predicate simplifier, it never got the last bugs beaten
out of it, and jump threading, condprop and gvn are now getting
most of the benefit. This was approved by Nicholas and Nicolas.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
99be299edb6531cad64785196d65414b888e7453 01-Oct-2009 Chris Lattner <sabre@nondot.org> remove the GVNPRE pass. It has been subsumed by the GVN pass.
Ok'd by Owen.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
d84db1133345234738b646c70b907bf8a0983ac9 28-Sep-2009 Dan Gohman <gohman@apple.com> Convert LoopSimplify and LoopExtractor from FunctionPass to LoopPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
6f65d79750154c92c3e184c8cf3233a66c411c87 16-Sep-2009 Dan Gohman <gohman@apple.com> Add a new pass for doing late hoisting of floating-point and vector
constants out of loops. These aren't covered by the regular LICM
pass, because in LLVM IR constants don't require separate
instructions. They're not always covered by the MachineLICM pass
either, because it doesn't know how to unfold folded constant-pool
loads. This is somewhat experimental at this point, and off by
default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
72efa18f1d6845fefc8cfeb5db7ca1a55cae55c4 25-Jul-2009 Dan Gohman <gohman@apple.com> Update comments to new-style syntax.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
4c12ee5f612f5f67af9e7715dba44d28f9c03ad5 09-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Forgot a couple files when adding the -ssi-everything pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75136 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
715029478c0a54cab2c366816d11d712bf51efc5 03-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Add Static Single Information construction pass written by André Tavares!
Use it by requiring it through the pass manager, then calling its createSSI
method on the variables that you want in SSI form.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a119de86a064414622562cfe32953de7f9b0ee40 15-Jun-2009 Dan Gohman <gohman@apple.com> Fix old-style type names in comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
8f027c7fea068394be9026a80a8cbe045ed021ee 05-Nov-2008 Dan Gohman <gohman@apple.com> Add a new pass to simplify specific half_powr function calls. This is
a specialized pass that it not likely to be generally useful.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3d54502304bcc421b37881b225bf95c9a6024264 27-Oct-2008 Torok Edwin <edwintorok@gmail.com> export an ID for the instructionNamer, allowing analysis/transformation passes
that need it to require it by ID.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
394f0441e06dafca29f0752cf400990a5b8fe4b1 23-Oct-2008 Daniel Dunbar <daniel@zuster.org> Change create*Pass factory functions to return Pass* instead of
LoopPass*.
- Although less precise, this means they can be used in clients
without RTTI (who would otherwise need to include LoopPass.h, which
eventually includes things using dynamic_cast). This was the
simplest solution that presented itself, but I am happy to use a
better one if available.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
acdb2eeb45ba6d9e71d0e0d0c5a0d82183422345 19-Sep-2008 Duncan Sands <baldrick@free.fr> Remove the MarkModRef pass (use AddReadAttrs instead).
Unfortunately this means removing one regression test
of GlobalsModRef because I couldn't work out how to
perform it without MarkModRef.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3cd652d5304135c8264b1fd63095ab3e47ae73a4 01-Sep-2008 Duncan Sands <baldrick@free.fr> Add a small pass that sets the readnone/readonly
attributes on functions, based on the result of
alias analysis. It's not hardwired to use
GlobalsModRef even though this is the only (AFAIK)
alias analysis that results in this pass actually
doing something. Enable as follows:
opt ... -globalsmodref-aa -markmodref ...
Advantages of this pass: (1) records the result
of globalsmodref in the bitcode, meaning it is
available for use by later passes (currently
the pass manager isn't smart enough to magically
make an advanced alias analysis available to all
later passes), which may expose more optimization
opportunities; (2) hopefully speeds up compilation
when code is optimized twice, for example when a
file is compiled to bitcode, then later LTO is done
on it: marking functions readonly/readnone when
producing the initial bitcode should speed up alias
analysis during LTO; (3) good for discovering that
globalsmodref doesn't work very well :)
Not currently turned on by default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3793325cb3b4d97a295e5aaa419cfcf2866940c9 23-Aug-2008 Chris Lattner <sabre@nondot.org> Add a new trivial -inst-namer pass which makes it possible to diff the
before/after effects of a pass, crazy!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3688f268cb31dbfb5b36131d96af668fa2fc6a8d 15-Aug-2008 Owen Anderson <resistor@mac.com> Remove GCSE, ValueNumbering, and LoadValueNumbering. These have been deprecated for almost a year; it's finally time for them to go away.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1baa88e3de8947b02d9ef4caa73e5860f048ec6e 29-May-2008 Dan Gohman <gohman@apple.com> Prune and tidy #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
9c78a399076f8356a53ee67dca9c78e594e34967 14-May-2008 Dan Gohman <gohman@apple.com> Whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
6ddba2b933645d308428201e942abe1274fa5085 13-May-2008 Dan Gohman <gohman@apple.com> Change class' public PassInfo variables to by initialized with the
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.

Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
fd1cbbe9cfeddab8ec99a9325c1e87311609c0a3 01-May-2008 Chris Lattner <sabre@nondot.org> Delete the IPO simplify-libcalls and completely reimplement it as
a FunctionPass. This makes it simpler, fixes dozens of bugs, adds
a couple of minor features, and shrinks is considerably: from
2214 to 1437 lines.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
0396cd33ca2d879d1cf0e9b252ce43a760449fff 29-Apr-2008 Owen Anderson <resistor@mac.com> Rename DeadLoopElimination to LoopDeletion, part 2.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
0ff7708a5bbde331f9f54fb955bf7a2e96af710e 29-Apr-2008 Owen Anderson <resistor@mac.com> Add dead loop elimination, which removes dead loops for which we can compute
the trip count.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
8383a7b7a6acdae478d4b4c2520915153b73f676 20-Apr-2008 Chris Lattner <sabre@nondot.org> Add a new Jump Threading pass, which will handle cases
such as those in PR2235. Right now the pass is not very
effective. :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50000 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a723d1e48f4a261512c28845c53eda569fa5218c 09-Apr-2008 Owen Anderson <resistor@mac.com> Factor a bunch of functionality related to memcpy and memset transforms out of
GVN and into its own pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
75542bd56b4d38d7a2fdf8596a0128509a51e89d 19-Feb-2008 Chris Lattner <sabre@nondot.org> remove the LowerSelect pass. The last client was the old Sparc backend, which is long dead by now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
15f166c7b6ed054e9a9b54161dd9342d9f083564 19-Feb-2008 Chris Lattner <sabre@nondot.org> remove the lower packed pass. It can never work and even the parts that
could work don't work fully. This fixes PR1705. Oh yeah, we don't have
packed types anymore either ;-)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
beefd3d0f81ecd206601e62228975111c4cf84f4 27-Jan-2008 Bill Wendling <isanbard@gmail.com> The CorrelatedExpressionElimination pass is known to be buggy. Remove it.

This fixes PR1769.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
8fa89291774a29ee30adb9d0fd01655c84eaac13 07-Jan-2008 Gordon Henriksen <gordonhenriksen@mac.com> With this patch, the LowerGC transformation becomes the
ShadowStackCollector, which additionally has reduced overhead with
no sacrifice in portability.

Considering a function @fun with 8 loop-local roots,
ShadowStackCollector introduces the following overhead
(x86):

; shadowstack prologue
movl L_llvm_gc_root_chain$non_lazy_ptr, %eax
movl (%eax), %ecx
movl $___gc_fun, 20(%esp)
movl $0, 24(%esp)
movl $0, 28(%esp)
movl $0, 32(%esp)
movl $0, 36(%esp)
movl $0, 40(%esp)
movl $0, 44(%esp)
movl $0, 48(%esp)
movl $0, 52(%esp)
movl %ecx, 16(%esp)
leal 16(%esp), %ecx
movl %ecx, (%eax)

; shadowstack loop overhead
(none)

; shadowstack epilogue
movl 48(%esp), %edx
movl %edx, (%ecx)

; shadowstack metadata
.align 3
___gc_fun: # __gc_fun
.long 8
.space 4

In comparison to LowerGC:

; lowergc prologue
movl L_llvm_gc_root_chain$non_lazy_ptr, %eax
movl (%eax), %ecx
movl %ecx, 48(%esp)
movl $8, 52(%esp)
movl $0, 60(%esp)
movl $0, 56(%esp)
movl $0, 68(%esp)
movl $0, 64(%esp)
movl $0, 76(%esp)
movl $0, 72(%esp)
movl $0, 84(%esp)
movl $0, 80(%esp)
movl $0, 92(%esp)
movl $0, 88(%esp)
movl $0, 100(%esp)
movl $0, 96(%esp)
movl $0, 108(%esp)
movl $0, 104(%esp)
movl $0, 116(%esp)
movl $0, 112(%esp)

; lowergc loop overhead
leal 44(%esp), %eax
movl %eax, 56(%esp)
leal 40(%esp), %eax
movl %eax, 64(%esp)
leal 36(%esp), %eax
movl %eax, 72(%esp)
leal 32(%esp), %eax
movl %eax, 80(%esp)
leal 28(%esp), %eax
movl %eax, 88(%esp)
leal 24(%esp), %eax
movl %eax, 96(%esp)
leal 20(%esp), %eax
movl %eax, 104(%esp)
leal 16(%esp), %eax
movl %eax, 112(%esp)

; lowergc epilogue
movl 48(%esp), %edx
movl %edx, (%ecx)

; lowergc metadata
(none)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
e4b83877d524adddac6ea9d2abb96a14739a4829 06-Jan-2008 Chris Lattner <sabre@nondot.org> back out accidental commit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
2e48a70b35635165703838fc8d3796b664207aa1 06-Jan-2008 Chris Lattner <sabre@nondot.org> rename isStore -> mayStore to more accurately reflect what it captures.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a997c498e0b61d60b28a2a45e2dacd846aa24129 05-Jan-2008 Owen Anderson <resistor@mac.com> Didn't mean to commit this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
d94b6a16fec7d5021e3922b0e34f9ddb268d54b1 05-Jan-2008 Owen Anderson <resistor@mac.com> Move some more functionality from MRegisterInfo to TargetInstrInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change. Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
7e9edda51d120c1c7c099929944f909a4f296a39 15-Sep-2007 Owen Anderson <resistor@mac.com> Remove RLE from the headers, since the pass itself is gone now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a9e9286630262092e404c6b3c6ecf159b50a87b9 08-Aug-2007 Devang Patel <dpatel@apple.com> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
fee76bd9ba038a4640259ffcbb2c6e2bd970a3ca 07-Aug-2007 Devang Patel <dpatel@apple.com> Begin loop index split pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
f6a05f949f39d94d846dff9bf5093a838c6ebc4b 01-Aug-2007 Owen Anderson <resistor@mac.com> Rename FastDSE to just DSE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1ad2cb75553a30bcec9fdc15733a20df6bc50431 24-Jul-2007 Owen Anderson <resistor@mac.com> Add a GVN pass, using the value numbering code I developed for GVNPRE and the
load elimination code from RedundantLoadElimination.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a7f98e2919c2e1ac39e6b82b11fd9e3a7aef00a0 24-Jul-2007 Owen Anderson <resistor@mac.com> Rename a lot of things to change FastDLE to RedundantLoadElimination.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
48a19fb884c281a7c5367fdb0ccc3e10a64fd17f 23-Jul-2007 Owen Anderson <resistor@mac.com> Fix a comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
ffe40aa97d1557cb00530ac26c60ddde9fe0e7c6 23-Jul-2007 Owen Anderson <resistor@mac.com> Add FastDLE, the load-elimination counterpart of FastDSE.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
b4559a2179bf64fa38b2cccf91b067cc6fcc8e9d 14-Jul-2007 Devang Patel <dpatel@apple.com> Make LCSSA a loop pass.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
b77c457cc87aeeb166995aed793a516e9e431703 11-Jul-2007 Owen Anderson <resistor@mac.com> Add FastDSE, a new algorithm for doing dead store elimination. This algorithm is not as accurate
as the current DSE, but it only a linear scan over each block, rather than quadratic. Eventually
(once it has been improved somewhat), this will replace the current DSE.

NOTE: This has not yet been extensively tested.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
ff366850aa9956e167e78d4f5b57aae10d8c5779 09-Jul-2007 Devang Patel <dpatel@apple.com> Expose struct size threhold to allow users to tweak their own setting.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
980c4e0466fb10fab3eece4bde6bdebf0f336840 06-Jun-2007 Devang Patel <dpatel@apple.com> Rename.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
743f7e8839dc02f2e808e977803368c431279189 06-Jun-2007 Devang Patel <dpatel@apple.com> Avoid non-trivial loop unswitching while optimizing for size.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1f476f4d84028c69777b9d309579209666f45543 30-May-2007 Owen Anderson <resistor@mac.com> Put GVN-PRE in all the right places.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
c4625da483ff9e835aef886864e37dd68fb7a03c 07-Apr-2007 Devang Patel <dpatel@apple.com> Add loop rotation pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
dbe0deca339585dfbaed5951ef0ca2c6a0df173c 31-Mar-2007 Chris Lattner <sabre@nondot.org> Split the sdisel code munging stuff out into its own opt-pass, CodeGenPrepare.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
5ee99979065d75605d150d7e567e4351024aae8f 07-Mar-2007 Devang Patel <dpatel@apple.com> Now IndVarSimplify is a LoopPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
54959d6cf68a9b575c98c074babe9867682a7271 07-Mar-2007 Devang Patel <dpatel@apple.com> Now LICM is a LoopPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3f1a1e0366a7881aed814df6060e058e2f0516c7 07-Mar-2007 Devang Patel <dpatel@apple.com> Now LoopUnroll is a LoopPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1bc89361c2ba023f305bf00edd4b5d95b021cac6 07-Mar-2007 Devang Patel <dpatel@apple.com> Now LoopUnswitch is a LoopPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
0f54dcbf07c69e41ecaa6b4fbf0d94956d8e9ff5 06-Mar-2007 Devang Patel <dpatel@apple.com> Now LoopStrengthReduce is a LoopPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
9d6565a5b1fbc4286d6ee638d8f47a3171a9ed7e 15-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
7ba98a90008727e2fa0dfc1787cad71e1b6021eb 04-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1072:
Removing -raise has neglible positive or negative side effects so we are
opting to remove it. See the PR for comparison details.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
4d447f512122a8c3784f4ab2c55b4b1be47db82e 26-Jan-2007 Devang Patel <dpatel@apple.com> Inherit BasicBlockPass directly from Pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1ccc47ec386e6726ca76955b0e739328a49a65c5 13-Oct-2006 Bill Wendling <isanbard@gmail.com> Corrected formatting.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
2a0013f59fb3b23010c0509fab8bf509eb30fb36 04-Sep-2006 Duraid Madina <duraid@octopus.com.au> add setJumpBufSize() and setJumpBufAlignment() to target-lowering.
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
05450ae12828337c52f27d68ec9d611dda93c939 29-Aug-2006 Nick Lewycky <nicholas@mxc.ca> Add PredicateSimplifier pass. Collapses equal variables into one form
and simplifies expressions. This implements the optimization described
in PR807.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a4529321713313545f53ee759800705bdb3f2a29 08-Jun-2006 Owen Anderson <resistor@mac.com> Update some comments, and expose LCSSAID in preparation for having other passes
require LCSSA.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
11f510b577878e61e62a3a9c5c8d86483961d20c 26-May-2006 Owen Anderson <resistor@mac.com> Skeletal LCSSA pass. This is currently non-functional. Expect functionality
and documentation updates soo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28495 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
b3674e475389b72939bf90965790d63e9fa24b95 02-May-2006 Chris Lattner <sabre@nondot.org> Add pass ID's for various passes, so they can be AddRequiredID. Patch by
Domagoj Babic!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
73173e72d6524305cb32fef49faefcbd447584b9 20-Apr-2006 Chris Lattner <sabre@nondot.org> remove a dead prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
d1d6b5cce260808deeac0227b00f6f81a20b2c6f 16-Mar-2006 Evan Cheng <evan.cheng@apple.com> 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
/external/llvm/include/llvm/Transforms/Scalar.h
d277f2c66914aecb619c12855f6afae4c7ef883b 14-Mar-2006 Evan Cheng <evan.cheng@apple.com> Added target lowering hooks which LSR consults to make more intelligent
transformation decisions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
7c0c5670588e39222bb039755cdf9030ab17c64e 22-Nov-2005 Andrew Lenharth <andrewl@lenharth.org> Reg2Mem is something a pass may depend on, so allow that


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
183119cdf6b4c448170bfdd2d30ac32f9ee20e31 10-Nov-2005 Andrew Lenharth <andrewl@lenharth.org> The pass everyone has been waiting for!
Reg2Mem

for fun you can opt -reg2mem -mem2reg


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
14b0529532904b9e5a1e34526b4a3209f3e5bc62 05-Nov-2005 Nate Begeman <natebegeman@mac.com> Add support alignment of allocation instructions.
Add support for specifying alignment and size of setjmp jmpbufs.

No targets currently do anything with this information, nor is it presrved
in the bytecode representation. That's coming up next.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3aa4e1533107814205f2ef990345a8b75ca652f5 29-Oct-2005 Chris Lattner <sabre@nondot.org> Remove the LowerConstantExpressionsPass pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
34695381d626485a560594f162701088079589df 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
73459d097b6439bfa3476036299c4a78724cbb36 15-Apr-2005 Chris Lattner <sabre@nondot.org> add a new prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
ab7ada3ed6a3dbefa05714a5de437997f7f6042c 28-Mar-2005 Alkis Evlogimenos <alkis@evlogimenos.com> Rename createPromoteMemoryToRegister() to
createPromoteMemoryToRegisterPass() to be consistent with other pass
creation functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
2f3c9b7562bcdc1795b2bd0ca28b283a8e972826 04-Mar-2005 Jeff Cohen <jeffc@jolt-lang.org> Add support for not strength reducing GEPs where the element size is a small
power of two. This emphatically includes the zeroeth power of two.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
7dd732bf805ff0ea792054e507ac55374ba8407b 03-Mar-2005 Chris Lattner <sabre@nondot.org> Add an argument.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
bf65268def058af3e1d35aba233d5f0fd5a80fce 08-Jan-2005 Jeff Cohen <jeffc@jolt-lang.org> Add more missing createXxxPass functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
92f6c15d8f40aa81c65bda18149855a0b025a68e 02-Dec-2004 Chris Lattner <sabre@nondot.org> Move the strip pass from Scalar to IPO lib


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
4c4c415fca2d1bd29309dbee1df439d0aa89bde9 17-Nov-2004 Chris Lattner <sabre@nondot.org> New prototype for lowerpacked pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
8226db66a2a1b8df268ed4df9709bfbca7bab156 07-Nov-2004 Chris Lattner <sabre@nondot.org> This is V9 specific stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
eaa13851a7fe604363577350c5cf65c257c4d41a 18-Oct-2004 Nate Begeman <natebegeman@mac.com> 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
/external/llvm/include/llvm/Transforms/Scalar.h
8e47e7292c0edadb964403b06717220e432f854a 20-Sep-2004 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
264532cd31a5f2d36ddf570edc44b26b8e565328 14-Sep-2004 Chris Lattner <sabre@nondot.org> Remove unused pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
f1fccfd6a85c32a6b8ce9e3cf457b33ddeeeaa21 31-Jul-2004 Chris Lattner <sabre@nondot.org> Expose breakcriticaledges as a functionpass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
96d4bf7aee0c6ce915e6eb77065df388f374fafb 27-Jul-2004 Brian Gaeke <gaeke@uiuc.edu> 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
/external/llvm/include/llvm/Transforms/Scalar.h
3ede6adf182135f3830871dc4b258be3f46a6b55 22-Jul-2004 Chris Lattner <sabre@nondot.org> New prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
288c92c16b256ee2d5a28f302523db1e08e0eecf 25-Jun-2004 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
bab838e76dce5874faee7d26fe9239df9dcd87e2 23-May-2004 Chris Lattner <sabre@nondot.org> Add a new prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
8277567dc6c7247956726c8ebdbd0547b0d72e56 19-Apr-2004 Chris Lattner <sabre@nondot.org> Add accessor for a Loop Unswitching pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
4c174a7bbaf3ecba6473b8a5dd49e0b4fc8f1c96 18-Apr-2004 Chris Lattner <sabre@nondot.org> Add prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
0c58897d1c95d6b92c985010d62edfc2945ef22b 31-Mar-2004 Chris Lattner <sabre@nondot.org> Improve description, add warning


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
18bdbc3dda73081193fa1070021558ea0c79691d 30-Mar-2004 Chris Lattner <sabre@nondot.org> Add a simple select instruction lowering pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
4eddf37ee31e7b962ad275c591124d90c8955f42 14-Mar-2004 Chris Lattner <sabre@nondot.org> Move loop extractor to the IPO header


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
dddea54b1191d90bef4013e74d07a1f0990321f4 28-Feb-2004 Misha Brukman <brukman+llvm@gmail.com> Add the prototype for the LoopExtractor Pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11937 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a92666decdf2fdb9d81f84ef9e2893116b74c103 13-Feb-2004 Misha Brukman <brukman+llvm@gmail.com> Fix spelling of `tendency'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
fdd13f6afeee4eac26ea505ad95fe9455b7d5dbd 13-Feb-2004 Chris Lattner <sabre@nondot.org> Expose a pass ID for lower-invoke


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> 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
/external/llvm/include/llvm/Transforms/Scalar.h
4a05ba0ab599c085e338cff47ad546ab1520f6e5 10-Nov-2003 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
d24fdda8e94cf56fbd872150a597da66d17f2e74 07-Nov-2003 Misha Brukman <brukman+llvm@gmail.com> Declare FunctionPasses as such.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
6fbcc26f1460eaee4e0eb8b426fc1ff0c7af11be 20-Oct-2003 John Criswell <criswell@uiuc.edu> 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
/external/llvm/include/llvm/Transforms/Scalar.h
98bf436e2e2ab463d79c54a42a46b12028905330 12-Oct-2003 Chris Lattner <sabre@nondot.org> Rename loop preheaders pass to loop simplify


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
5e5252b4c926ee2bd75b36128c8fc7cdb065fca9 05-Oct-2003 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
48486893f46d2e12e926682a3ecb908716bc66c4 30-Sep-2003 Chris Lattner <sabre@nondot.org> Standardize header file comments


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3fc6ef1bb96d9a3194cef667a2d3cbc94e3fb189 20-Sep-2003 Chris Lattner <sabre@nondot.org> Expose the TCE pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
065a616adad624152618b1b0084ff074e5b03bbb 10-Sep-2003 Chris Lattner <sabre@nondot.org> Fix spell-o's


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3dc48c54de5bee2585c50e632ca3a41a7ce29cc8 01-Sep-2003 Chris Lattner <sabre@nondot.org> Add RPR prototype here


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
2757af2d47ea633d4cdb7bd1b12850e975a49bdf 01-Sep-2003 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
bf3c4cfaad706db21ac82a4376e1899d0d7f0935 14-Aug-2003 Brian Gaeke <gaeke@uiuc.edu> 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
/external/llvm/include/llvm/Transforms/Scalar.h
19df3876e6dce016ec4c5ab28320a246ab285001 13-Aug-2003 Brian Gaeke <gaeke@uiuc.edu> 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
/external/llvm/include/llvm/Transforms/Scalar.h
1ee7855dfa0e122e8b714be3fbd78364ee47bec2 22-Jun-2003 Chris Lattner <sabre@nondot.org> Add prototype for tail-dup pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
a161f0c7c939ff16c975d53302ca543be2c12243 27-May-2003 Chris Lattner <sabre@nondot.org> Expose proto for SRoA pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
82c89b9f3a9b88bb63ce13b09b4f27fbb72f66fc 20-May-2003 Misha Brukman <brukman+llvm@gmail.com> Hopefully, the final fix for `[Pp]ropogate'.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
3b1ca40d5d6c8e796db1e218e88dd7e2b77b417e 23-Apr-2003 Chris Lattner <sabre@nondot.org> Add stub to create lowerSwitches pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
e802a023d98b06307831cd122e61da86431e8dac 08-Oct-2002 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
f6b684c50510a13fd5b5823e84207f0f8ed0c92e 26-Sep-2002 Chris Lattner <sabre@nondot.org> Checkin new loop-preheader insertion pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1751b7ed27229d3fbcc48d6c42b05bf3beab36e5 26-Sep-2002 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
87944916a4764dabc2f89cbec0a6c7e439c28530 24-Sep-2002 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
119e9ea33be3b1c5af4a8af7fd12817281fdd478 24-Sep-2002 Chris Lattner <sabre@nondot.org> Add new BreakCriticalEdges pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
be376cf6d4cd148c2fba88622ab35a48320cbffb 16-Sep-2002 Vikram S. Adve <vadve@cs.uiuc.edu> 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
/external/llvm/include/llvm/Transforms/Scalar.h
513d3e8fc531327f6860a3f47a44ca120b2588c7 06-Sep-2002 Chris Lattner <sabre@nondot.org> Include stub for correlated expression elimination pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
378fb1df55589ed771670b4c97bd799361183d54 23-Jul-2002 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h
b8bcb086f7d4a74c40661c5c18134533a3f69fc9 21-May-2002 Chris Lattner <sabre@nondot.org> Expose CFG simplification pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
0fe215350770dff3158fe596dfea471af290e8bb 11-May-2002 Chris Lattner <sabre@nondot.org> Add prototype for LICM pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
531823f125af948098ef5e1131bf54ce287fb553 10-May-2002 Chris Lattner <sabre@nondot.org> Add prototype for the PiNodeInserter pass


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
540d63cbc75fae1c6187e97b995e5a52e7d1ad50 09-May-2002 Chris Lattner <sabre@nondot.org> Add expr reassociation pass prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
1ea5c56795913c7c852fb76d59074011f5f26939 08-May-2002 Chris Lattner <sabre@nondot.org> Spell aggressive right


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Transforms/Scalar.h
332f3679d042a8c91afe9920e95fa7b5972fe408 07-May-2002 Chris Lattner <sabre@nondot.org> 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
/external/llvm/include/llvm/Transforms/Scalar.h