cd81d94322a39503e4a3e87b6ee03d4fcb3465fb |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d9cc865787d673a8d1021d0b9659fd438feba845 |
|
09-Jan-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
LICM: Hoist insertvalue/extractvalue out of loops. Fixes PR14854. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
261304248f4f2cd0d9f0f85f91d400bcedeb0f45 |
|
05-Jan-2013 |
Chris Lattner <sabre@nondot.org> |
switch from pointer equality comparison to MDNode::getMostGenericTBAA when merging two TBAA tags, pointed out by Nuno. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
503fc1c488f6c67cabe565bdc979dcd4d889ebd3 |
|
31-Dec-2012 |
Chris Lattner <sabre@nondot.org> |
Fix LICM's memory promotion optimization to preserve TBAA tags when promoting a store in a loop. This was noticed when working on PR14753, but isn't directly related. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ee721156701ec3afb198d4cfede00095b228eeac |
|
04-Dec-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Add 'using' declarations to suppress -Woverloaded-virtual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
7765492a7a7e6eab36bc43558ea7c1f91e57cfec |
|
04-Sep-2012 |
Nadav Rotem <nrotem@apple.com> |
LICM may hoist an instruction with undefined behavior above a trap. Scan the body of the loop and find instructions that may trap. Use this information when deciding if it is safe to hoist or sink instructions. Notice that we can optimize the search of instructions that may throw in the case of nested loops. rdar://11518836 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
8e0d1c03ca7fd86e6879b4e37d0d7f0e982feef6 |
|
29-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make MemoryBuiltins aware of TargetLibraryInfo. This disables malloc-specific optimization when -fno-builtin (or -ffreestanding) is specified. This has been a problem for a long time but became more severe with the recent memory builtin improvements. Since the memory builtin functions are used everywhere, this required passing TLI in many places. This means that functions that now have an optional TLI argument, like RecursivelyDeleteTriviallyDeadFunctions, won't remove dead mallocs anymore if the TLI argument is missing. I've updated most passes to do the right thing. Fixes PR13694 and probably others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9d1747c3cd709cd5bbc1a07074550862d188527e |
|
08-Aug-2012 |
Dan Gohman <gohman@apple.com> |
Avoid recomputing the unique exit blocks and their insert points when doing multiple scalar promotions on a single loop. This also has the effect of preserving the order of stores sunk out of loops, which is aesthetically pleasing, and it happens to fix the testcase in PR13542, though it doesn't fix the underlying problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
4056a73638d3019cbd153679361411d5595f50c9 |
|
01-May-2012 |
Nick Lewycky <nicholas@mxc.ca> |
An instruction in a loop is not guaranteed to be executed just because the loop has no exit blocks. Fixes PR12706! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f0426601977c3e386d2d26c72a2cca691dc42072 |
|
15-Dec-2011 |
Dan Gohman <gohman@apple.com> |
Move Instruction::isSafeToSpeculativelyExecute out of VMCore and into Analysis as a standalone function, since there's no need for it to be in VMCore. Also, update it to use isKnownNonZero and other goodies available in Analysis, making it more precise, enabling more aggressive optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
85dadecbd664f60f0c7e4fbb44f083d43d01cfb7 |
|
06-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Push StringRefs through the metadata interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
aab8e28d5e470711d80276bbf717408c3ab966fd |
|
02-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Fix a few more places where TargetData/TargetLibraryInfo is not being passed. Add FIXMEs to places that are non-trivial to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
2d76a7846200fcbe518e6f73291a6cbda8864ea0 |
|
08-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
LICM pass now understands invariant load metadata. Nothing generates this yet so it will currently never get used in real tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
26665de4f7ab03d651f626bddb925724a2816a18 |
|
19-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Use 'getFirstInsertionPt' when trying to insert new instructions during LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
97671565ffd341d1d3291243f9f51edc6b64b065 |
|
15-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Atomic load/store support in LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
73bfa4aecf25da5d37261c9ad608ba88b20e0860 |
|
20-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Bring LICM into compliance with the new "Memory Model for Concurrent Operations" in LangRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
231a5ab746ca12000aa57208869a98f78781aa6b |
|
06-Jul-2011 |
Devang Patel <dpatel@apple.com> |
Simplify. Consolidate dbg.declare handling in AllocaPromoter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a3574fb7e5b7b4517eb81c8c76f05e5be05eec1b |
|
06-Jul-2011 |
Tobias Grosser <grosser@fim.uni-passau.de> |
LICM: Remove trailing white spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
df7102b7d6d472c58d5f0fcc16e0ebf07c8deb55 |
|
06-Jul-2011 |
Tobias Grosser <grosser@fim.uni-passau.de> |
LICM: Do not loose alignment on promotion The promotion code lost any alignment information, when hoisting loads and stores out of the loop. This lead to incorrect aligned memory accesses. We now use the largest alignment we can prove to be correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
dda266d4ce34bafed3b213ef0370cd9209159ba5 |
|
27-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Attempt to preserve debug line info in LICM; as the comment in the code says, it's hard to pick good line numbers for this transformation, but something is better than nothing. rdar://9143729 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
30a121b4e83c2bed062cc2d89f4b8fc354ac370e |
|
27-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Don't sink or hoist debug info instrinsics; it isn't useful. This also prevents LICM sinking from erasing debug intrinsics which don't dominate any exit block of the loop. rdar://9143943 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
c955d212a8c060d7082fe975fd65fcbc9263853a |
|
27-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Oops, wasn't intending to commit this. Partial revert of r132194. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a4d487fc1e2f95f4b47ad472071bfdd484eb3b40 |
|
27-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix a silly mistake (which trips over an assertion) in r132099. rdar://9515076 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
13a16083abcdacf2ee44ae95b084f87937ea9ace |
|
24-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Clean up the lazy initialization of DIBuilder a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
c827939046670a9800659b83e2048f1d3a79a531 |
|
24-May-2011 |
Cameron Zwarich <zwarich@apple.com> |
Make LoadAndStorePromoter preserve debug info and create llvm.dbg.values when promoting allocas to SSA variables. Fixes <rdar://problem/9479036>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0e382192c1a7750a157e470f749645ac2266d317 |
|
07-Apr-2011 |
Eli Friedman <eli.friedman@gmail.com> |
PR9634: Don't unconditionally tell the AliasSetTracker that the PreheaderLoad is equivalent to any other relevant value; it isn't true in general. If it is equivalent, the LoopPromoter will tell the AST the equivalence. Also, delete the PreheaderLoad if it is unused. Chris, since you were the last one to make major changes here, can you check that this is sane? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
290342a15755e9f128916eb66ec88812d6cee569 |
|
08-Mar-2011 |
Devang Patel <dpatel@apple.com> |
While sinking an instruction, do not lose llvm.dbg.value intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
deaf55f69865bbc997a569c2a689ec5b0fbdefef |
|
15-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
Generalize LoadAndStorePromoter a bit and switch LICM to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
81a866d615d6e4ee8dcbd49268d2cfb174f5155b |
|
02-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
make inSubLoop much more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
83fc584ea811aca780d965258c49db72a3ee8b1d |
|
02-Jan-2011 |
Chris Lattner <sabre@nondot.org> |
rip out isExitBlockDominatedByBlockInLoop, calling DomTree::dominates instead. isExitBlockDominatedByBlockInLoop is a relic of the days when domtree was *just* a tree and didn't have DFS numbers. Checking DFS numbers is faster and easier than "limiting the search of the tree". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1dec0d27048725cf73f73ce4f0bb97ca78255f97 |
|
19-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
Enhance LICM to promote alias sets whose pointers themselves are stored, which doesn't affect the memory address being promoted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1c0af0ed251af3d2ef795903133513656e5c369d |
|
19-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR8602, a bug in an assertion: a volatile store *of* a pointer does not make the alias set for that pointer volatile, just stores *to* the pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a9b61e7f7b1ab3a7344bbdc31c3e254c189fafcc |
|
17-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Reference ScalarEvolution by name rather than directly in LICM, to avoid an unneeded dependence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
cd93f3bbb9cf209aff3ffdff9d7c7d05d935b292 |
|
09-Nov-2010 |
Dan Gohman <gohman@apple.com> |
Teach LICM and AliasSetTracker about AccessesArgumentsReadonly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3da848bbda62b25c12335998aaa44ab361f0bf15 |
|
20-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Reapply r116831 and r116839, converting AliasAnalysis to use uint64_t, plus fixes for places I missed before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
205942a4a55d568e93480fc22d25cc7dac525fb7 |
|
19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Passes do not need to recursively initialize passes that they preserve, if they do not also require them. This allows us to reduce inter-pass linkage dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
081c34b725980f995be9080eaec24cd3dfaaf065 |
|
19-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a8702eaf78e70e1eef8a63882ce97ae6d60edf5b |
|
18-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make AliasSetTracker TBAA-aware, enabling TBAA-enabled LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
2ab36d350293c77fc8941ce1023e4899df7e3a82 |
|
12-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Begin adding static dependence information to passes, which will allow us to perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ce665bd2e2b581ab0858d1afe359192bac96b868 |
|
08-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
7abdb22e52e2122cb04479a1129dc68916dece4c |
|
14-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR8102, a case where we'd copyValue from a value that we already deleted. Fix this by doing the copyValue's before we delete stuff! The testcase only repros the problem on my system with valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0cccd7633e4a0ba36b5ff9a3dfda2a09d16dc337 |
|
06-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR8067, an over-aggressive assertion in LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
adc799112dc180b3cd099038c05101b85d217716 |
|
06-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
pull a simple method out of LICM into a new Loop::hasLoopInvariantOperands method. Remove a useless and confusing Loop::isLoopInvariant(Instruction) method, which didn't do what you thought it did. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
469996400c4ab89d5ddb2eb80acc1c1553439f07 |
|
04-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug in my licm rewrite when a load from the promoted memory location is being re-stored to the memory location. We would get a dangling pointer from the SSAUpdate data structure and miss a use. This fixes PR8068 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9c282011e6b7a6e23a3a163ec9c865890449e8dc |
|
03-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
fix more AST updating bugs, correcting miscompilation in PR8041 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
fc6e29d4ab52b7d3efd83846ed495a9ca7e51e49 |
|
02-Sep-2010 |
Duncan Sands <baldrick@free.fr> |
Reapply commit 112699, speculatively reverted by echristo, since I'm sure it is harmless. Original commit message: If PrototypeValue is erased in the middle of using the SSAUpdator then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
adc581f5cb6bdb929b1c6a155c330151ebd3bf72 |
|
01-Sep-2010 |
Eric Christopher <echristo@apple.com> |
Speculatively revert 112699 and 112702, they seem to be causing self host errors on clang-x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
4d588bceb035589ade874f432d70a41bb7ec6273 |
|
01-Sep-2010 |
Duncan Sands <baldrick@free.fr> |
If PrototypeValue is erased in the middle of using the SSAUpdator then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
2ac6e2354ac9961b00fa351635ed04baf7fdd234 |
|
01-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
licm is wasting time hoisting constant foldable operations, instead of hoisting them, just fold them away. This occurs in the testcase for PR8041, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
445560881898fe212c185bd4c0485140d7b4fc88 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
rewrite DwarfEHPrepare to use SSAUpdater to promote its allocas instead of PromoteMemToReg. This allows it to stop using DF and DT, eliminating a computation of DT and DF from clang -O3. Clang is now down to 2 runs of DomFrontier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
cb7f65342291caa3636cb50c0ee04b383cd79f8d |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
two changes: 1) make AliasSet hold the list of call sites with an assertingvh so we get a violent explosion if the pointer dangles. 2) Fix AliasSetTracker::deleteValue to remove call sites with by-pointer comparisons instead of by-alias queries. Using findAliasSetForCallSite can cause alias sets to get merged when they shouldn't, and can also miss alias sets when the call is readonly. #2 fixes PR6889, which only repros with a .c file :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0de5cad74d8d2987b92b8d76af3f1eab988b3c7b |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
LICM does get dead instructions input to it. Instead of sinking them out of loops, just delete them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d9a5daeb7719c83136c0dc43d6ef732402d1a1b5 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
use moveBefore instead of remove+insert, it avoids some symtab manipulation, so its faster (in addition to being more elegant) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1b9c848d0a680de2aed44f43c85f4594416ff15a |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
revert 112448 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
bb07ed3bb5db1b610362628ceb31349667c491c2 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
optimize LICM::hoist to use moveBefore. Correct its updating of AST to remove the hoisted instruction from the AST, since it is no longer in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
98917503c702e16f35ccdec3f6b4c48e5c4759ac |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
fix some bugs (found by inspection) where LICM would not update LICM correctly. When sinking an instruction, it should not add entries for the sunk instruction to the AST, it should remove the entry for the sunk instruction. The blocks being sunk to are not in the loop, so their instructions shouldn't be in the AST (yet)! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
4282e32712da220fd97177772e22ec1ee7e50af2 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
rework the ownership of subloop alias information: instead of keeping them around until the pass is destroyed, keep them around a) just when useful (not for outer loops) and b) destroy them right after we use them. This should reduce memory use and fixes potential bugs where a loop is deleted and another loop gets allocated to the same address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e418ac832c1a2813736c44f6ec5c646b4c89c339 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
licm preserves the cfg, it doesn't have to explicitly say it preserves domfrontier. It does preserve AA though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
44e2bd31f13da68bca451e4210560db3644b8208 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
now that it doesn't use the PromoteMemToReg function, LICM doesn't require DomFrontier. Dropping this doesn't actually save any runs of the pass though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e488064922f12c4cf07f3aef9a4d2d3ffd15f9c0 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
completely rewrite the memory promotion algorithm in LICM. Among other things, this uses SSAUpdater instead of PromoteMemToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
63a75c13b110b89435ee5e30f1ce9ed57019ac5a |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
use getUniqueExitBlocks instead of a manual set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a6a36f59b42703c5da0f68e0db37605c2e1633bf |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
reimplement LICM::sink to use SSAUpdater instead of PromoteMemToReg. This leads to much simpler code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d7bc19dfee3f2ce8e9c8b9193bdfb93a67008a39 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
reduce indentation in LICM::sink by using early exits, use getUniqueExitBlocks instead of getExitBlocks and a manual set to eliminate dupes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
dc1ceb370a99f7035f644c081bad14c2003b9381 |
|
29-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
modernize this pass a bit: use efficient set/map and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
39a383124b70dda1fea18288235114029ede76cf |
|
30-Jul-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Add missing newline to debug statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d13db2c59cc94162d6cf0a04187d408bfef6d4a7 |
|
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1e381fcd553a3955a10338fd305efc023d7d22e1 |
|
16-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Reorder the contents of various getAnalysisUsage functions, eliminating a redundant loopsimplify run from the default -O2 sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
488d4421c67aa5045b60379beaca2f8341ac6380 |
|
14-Apr-2010 |
Gabor Greif <ggreif@gmail.com> |
performance: cache the dereferenced use_iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1df9859c40492511b8aa4321eb76496005d3b75b |
|
16-Feb-2010 |
Duncan Sands <baldrick@free.fr> |
There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f15826999bc560ee6f67cff5ecd71bf9cce7a7aa |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
44a29e066a24e88bdf127e88be4380a5f259c4b4 |
|
05-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Remove dead debug info intrinsics. Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start AutoUpgrade simply ignores these intrinsics now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
92329c7fbe572892c17aa2d2542a10e3ea16132f |
|
18-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Add Loop contains utility methods for testing whether a loop contains another loop, or an instruction. The loop form is substantially more efficient on large loops than the typical code it replaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3472ae1e7b0f38c4ac0802ffc2900f71a5470c3b |
|
10-Dec-2009 |
Eric Christopher <echristo@apple.com> |
Make sure the immediate dominator isn't NULL through iterations of the loop. We could get to this condition via indirect branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ce2c51b6701c06f701efa2871794b7710cb64b41 |
|
23-Nov-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Pull LLVMContext out of PromoteMemToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
dab249b3b762cff0ff16069b3233e4c885e75347 |
|
19-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Enable hoisting of loads from constant memory by default. In cases where they are lowered to instruction sequences more complex than a simple load, such that CodeGen cannot rematerialize them, a reload from a spill slot is likely to be cheaper than the complex sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
03e896bd6073efc4523d8bcd0239d6ed62126db7 |
|
05-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Update various Loop optimization passes to cope with the possibility that LoopSimplify form may not be available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9674d15120d657c9a9e681a7dc668349fa3a8de0 |
|
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Use isVoidTy() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
228ebd0f4cf9207d32d61ef4b11b81736895dc09 |
|
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Check void type before using RAUWd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1bf5ebc7be0d5b05e4175c7adb767b38896adef1 |
|
13-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Do not check use_empty() before replaceAllUsesWith(). This gives ValueHandles a chance to get properly updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
67d1d1f8322bdc460158888cd233be8d1cb1d4ab |
|
13-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Make licm debug message readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
849a639e170ad9ce6fc721a4198547a52fa7d766 |
|
11-Oct-2009 |
Torok Edwin <edwintorok@gmail.com> |
Remove CleanupDbgInfo, instcombine does this and its not worth duplicating it here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9289ae85b41eef62ae1fadb93e99d33f723fb682 |
|
11-Oct-2009 |
Torok Edwin <edwintorok@gmail.com> |
LICM shouldn't sink/delete debug information. Fix this and add a testcase. For now the metadata of sinked/hoisted instructions is still wrong, but that'll be fixed when instructions will have debug metadata directly attached. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f37cfed7911971e0326ed0b2de526bcc26c92950 |
|
27-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Grab an LLVM Context from an instruction that exists rather than one that is deleted in some situations. This fixes a use-after-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
6776064d190701c5bae4d5403939eed2e480d1cd |
|
27-Sep-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Instruction::clone does not need to take an LLVMContext&. Remove that and update all the callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
5c89b5240c90eb8171f999e5f06f815502d0321c |
|
08-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Re-apply r80926, with fixes: keep the domtree informed of new blocks that get created during loop unswitching, and fix SplitBlockPredecessors' LCSSA updating code to create new PHIs instead of trying to just move existing ones. Also, optimize Loop::verifyLoop, since it gets called a lot. Use searches on a sorted list of blocks instead of calling the "contains" function, as is done in other places in the Loop class, since "contains" does a linear search. Also, don't call verifyLoop from LoopSimplify or LCSSA, as the PassManager is already calling verifyLoop as part of LoopInfo's verifyAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
8f78a58e14fa754cde827e46ad03f00c7a6ead01 |
|
06-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
8fc5ad33691b2a0672a7487da1f56b6f7f675a1b |
|
03-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify that these passes are properly preserved. Fix several transformation passes that claimed to preserve LoopSimplify form but weren't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3e8b6631e67e01e4960a7ba4668a50c596607473 |
|
02-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
bdff548e4dd577a72094d57b282de4e765643b96 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
eliminate the "Value" printing methods that print to a std::ostream. This required converting a bunch of stuff off DOUT and other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9e9a0d5fc26878e51a58a8b57900fcbf952c2691 |
|
31-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move more code back to 2.5 APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
fc2a3ed0c9e32cf7edaf5030fa0972b916cc5f0b |
|
25-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Make AliasAnalysis and related classes use getAnalysisIfAvailable<TargetData>(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77028 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ce63ffb52f249b62cdf2d250c128007b13f27e71 |
|
25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e922c0201916e0b980ab3cfe91e1413e68d55647 |
|
22-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Get rid of the Pass+Context magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0b79a7727d68a507837e827803859424cf3d997b |
|
17-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Replace isTrapping with a new, similar method called isSafeToSpeculativelyExecute. The new method is a bit closer to what the callers actually care about in that it rejects more things callers don't want. It also adds more precise handling for integer division, and unifies code for analyzing the legality of a speculative load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
50dead06ffc107edb7e84857baaeeb09039c631c |
|
16-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Revert yesterday's change by removing the LLVMContext parameter to AllocaInst and MallocInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9adc0abad3c3ed40a268ccbcee0c74cb9e1359fe |
|
15-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Move EVER MORE stuff over to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
333c40096561218bc3597cf153c0a3895274414c |
|
10-Jul-2009 |
Owen Anderson <resistor@mac.com> |
This started as a small change, I swear. Unfortunately, lots of things call the [I|F]CmpInst constructors. Who knew!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0a205a459884ec745df1c529396dd921f029dafd |
|
06-Jul-2009 |
Owen Anderson <resistor@mac.com> |
More LLVMContext-ification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1ff50b380e6f5549f5ddd9e6c390dcb00332e3e9 |
|
03-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Second batch of passes using LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0b8365c98bf4cd6e46714ff818dcf85014f2eed7 |
|
27-Mar-2009 |
Duncan Sands <baldrick@free.fr> |
Revert r67798: it breaks llvm-gcc bootstrap on x86-64-linux, presumably due to a miscompilation. make[4]: Entering directory `gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include' if [ ! -d "./x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch" ]; then \ mkdir -p ./x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch; \ fi; \ gcc-4.2.llvm-objects/./gcc/xgcc -shared-libgcc -Bgcc-4.2.llvm-objects/./gcc -nostdinc++ -Lgcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/src -Lgcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/usr/local/gnat-llvm/x86_64-unknown-linux-gnu/bin/ -B/usr/local/gnat-llvm/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/gnat-llvm/x86_64-unknown-linux-gnu/include -isystem /usr/local/gnat-llvm/x86_64-unknown-linux-gnu/sys-include -Winvalid-pch -Wno-deprecated -x c++-header -g -O2 -D_GNU_SOURCE -Igcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -Igcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include -Igcc-4.2.llvm/libstdc++-v3/libsupc++ -O2 -g gcc-4.2.llvm/libstdc++-v3/include/precompiled/stdtr1c++.h -o x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch/O2g.gch In file included from gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/repeat.h:247, from gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/functional:1098, from gcc-4.2.llvm/libstdc++-v3/include/precompiled/stdtr1c++.h:53: gcc-4.2.llvm-objects/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/functional_iterate.h:417: internal compiler error: in ggc_recalculate_in_use_p, at ggc-page.c:1602 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://llvm.org/bugs/> for instructions. make[4]: *** [x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch/O2g.gch] Error 1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
fafd98b23e9ae9058196f6375c2e79a5845a8cc2 |
|
27-Mar-2009 |
Devang Patel <dpatel@apple.com> |
While hoisting an instruction, update alias info set tracker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d7168ddb116c2e9aa1f8325ae887eb63d6003037 |
|
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
reimplement AliasSetTracker in terms of DenseMap instead of hash_map, hopefully no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d0ffa73924adb07dacfd560f7943a2433689497f |
|
12-Feb-2009 |
Dan Gohman <gohman@apple.com> |
This code doesn't actually use the ExitingBlocks list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
ae73dc1448d25b02cabc7c64c86c64371453dda8 |
|
04-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up several unbeseeming casts from pointer to intptr_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3eee6542f5c65dce299361fa5435340513cf3fe4 |
|
25-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Put the LICM of constant GlobalVariables, introduced in r53945, under a command-line option, and disable it by default. It introduced performance regressions because CodeGen is currently not able to remat such loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
967948b4e25cae3de68f38fddaa75d838e676dec |
|
23-Jul-2008 |
Chris Lattner <sabre@nondot.org> |
"Allow LICM to sink or lift loads from constant memory. Also add a test case for this. This allows instructions like loads from global variables declared to be constant to be moved out of loops." Patch by Stefanus Du Toit! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9b78763fce4cb418e7a2e672efb84bac25559b79 |
|
22-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Use Loop::block_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
02dea8b39f3acad5de1df36273444d149145e7fc |
|
23-May-2008 |
Dan Gohman <gohman@apple.com> |
Tidy up BasicBlock::getFirstNonPHI, and change a bunch of places to use it instead of duplicating its functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
19d9d4364e514f316f8757b577bb8bb33c22dbfc |
|
22-May-2008 |
Chris Lattner <sabre@nondot.org> |
rewrite the validity checking for memory promotion to be simpler, more aggressive, and more correct. Verify that we only attempt to promote loads and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
29d929363d9b8a2c0d40c5d50fec022c736cb654 |
|
22-May-2008 |
Chris Lattner <sabre@nondot.org> |
Use 'continue' to reduce nesting in this loop. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
844731a7f1909f55935e3514c9e713a62d67662e |
|
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Clean up the use of static and anonymous namespaces. This turned up several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
4a3f6c88820a204f80ca0fa3f1f2fe09ca10b02f |
|
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Make several variable declarations static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
303595942502f17c087fa28874c2b89117148c45 |
|
29-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Use empty() instead of comparing size() with zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
dff6710717b159f089c76a07eda074eb6347eb92 |
|
01-Dec-2007 |
Duncan Sands <baldrick@free.fr> |
Integrate the readonly/readnone logic more deeply into alias analysis. This meant updating the API which now has versions of the getModRefBehavior, doesNotAccessMemory and onlyReadsMemory methods which take a callsite parameter. These should be used unless the callsite is not known, since in general they can do a better job than the versions that take a function. Also, users should no longer call the version of getModRefBehavior that takes both a function and a callsite. To reduce the chance of misuse it is now protected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
fd94dd58ffef1be3597ef8cb64f3b1d476d7d5ec |
|
26-Nov-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Remove another leak. Due to some reason AliasSetTracker didn't had any dtor... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
514ab348fddcdffa8367685dc608b2f8d5de986d |
|
01-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize. The meaning of getTypeSize was not clear - clarifying it is important now that we have x86 long double and arbitrary precision integers. The issue with long double is that it requires 80 bits, and this is not a multiple of its alignment. This gives a primitive type for which getTypeSize differed from getABITypeSize. For arbitrary precision integers it is even worse: there is the minimum number of bits needed to hold the type (eg: 36 for an i36), the maximum number of bits that will be overwriten when storing the type (40 bits for i36) and the ABI size (i.e. the storage size rounded up to a multiple of the alignment; 64 bits for i36). This patch removes getTypeSize (not really - it is still there but deprecated to allow for a gradual transition). Instead there is: (1) getTypeSizeInBits - a number of bits that suffices to hold all values of the type. For a primitive type, this is the minimum number of bits. For an i36 this is 36 bits. For x86 long double it is 80. This corresponds to gcc's TYPE_PRECISION. (2) getTypeStoreSizeInBits - the maximum number of bits that is written when storing the type (or read when reading it). For an i36 this is 40 bits, for an x86 long double it is 80 bits. This is the size alias analysis is interested in (getTypeStoreSize returns the number of bytes). There doesn't seem to be anything corresponding to this in gcc. (3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded up to a multiple of the alignment. For an i36 this is 64, for an x86 long double this is 96 or 128 depending on the OS. This is the spacing between consecutive elements when you form an array out of this type (getABITypeSize returns the number of bytes). This is TYPE_SIZE in gcc. Since successive elements in a SequentialType (arrays, pointers and vectors) need to be aligned, the spacing between them will be given by getABITypeSize. This means that the size of an array is the length times the getABITypeSize. It also means that GEP computations need to use getABITypeSize when computing offsets. Furthermore, if an alloca allocates several elements at once then these too need to be aligned, so the size of the alloca has to be the number of elements multiplied by getABITypeSize. Logically speaking this doesn't have to be the case when allocating just one element, but it is simpler to also use getABITypeSize in this case. So alloca's and mallocs should use getABITypeSize. Finally, since gcc's only notion of size is that given by getABITypeSize, if you want to output assembler etc the same as gcc then getABITypeSize is the size you want. Since a store will overwrite no more than getTypeStoreSize bytes, and a read will read no more than that many bytes, this is the notion of size appropriate for alias analysis calculations. In this patch I have corrected all type size uses except some of those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard cases). I will get around to auditing these too at some point, but I could do with some help. Finally, I made one change which I think wise but others might consider pointless and suboptimal: in an unpacked struct the amount of space allocated for a field is now given by the ABI size rather than getTypeStoreSize. I did this because every other place that reserves memory for a type (eg: alloca) now uses getABITypeSize, and I didn't want to make an exception for unpacked structs, i.e. I did it to make things more uniform. This only effects structs containing long doubles and arbitrary precision integers. If someone wants to pack these types more tightly they can always use a packed struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a24b294e740b552c23bc4bbeda694c4d995d4134 |
|
31-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
cb406c25973b4e88a6c10ad839ef1beeb3664715 |
|
03-Oct-2007 |
Dan Gohman <gohman@apple.com> |
Use empty() member functions when that's what's being tested for instead of comparing begin() and end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
bc2265abe1d1b830995bb2f6322409bc7d7c5740 |
|
01-Oct-2007 |
Devang Patel <dpatel@apple.com> |
Relax unsafe use check. If there is one unconditional use inside the loop then it is safe to promote value even if there is another conditional use inside the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
798b4afd48ebc0acc165789ab913ccd28466ef68 |
|
25-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Do not reserve DOM check for GetElementPtrInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
128459b85b59530e511ea17b3cc3a5b8ee3e8bd4 |
|
24-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Do not promote null values because it may be unsafe to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f2038b1d9325b23e73a20b57fcb3508f4dda1817 |
|
19-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Avoid unsafe promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e3bfb888988b48934e1ed96d879f918a8b29f446 |
|
18-Sep-2007 |
Devang Patel <dpatel@apple.com> |
Fix PR1657 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
b7211a2ce13a0365e0e1dd2f27adda2ee3d1288b |
|
21-Aug-2007 |
Devang Patel <dpatel@apple.com> |
Use SmallVector instead of std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
af5cbc82bb6410129425c98bbfc1ffc4c3d0f411 |
|
18-Aug-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
8d246f09cb46fe38aa71d2a4edcd84f30c4bf80e |
|
31-Jul-2007 |
Devang Patel <dpatel@apple.com> |
Add note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
91d22c8b1ec2ad8f2f29804b729473ccf720fb3e |
|
31-Jul-2007 |
Devang Patel <dpatel@apple.com> |
Implement Simple Analysis interfaces - cloneBasicBlockAnalysis and deleteAnalysisValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
96b651c627160e1ea0f1bb86d352d697e6c1972d |
|
30-Jul-2007 |
Devang Patel <dpatel@apple.com> |
LICM preserves scalar evolution and dom frontier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
468502e41a1b4cefe353a583e27005b75580d0a2 |
|
08-Jun-2007 |
Devang Patel <dpatel@apple.com> |
Do not require ETForest. Now it is unused by LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
326821ef12c911af1d785e305e81dc3c07e456a5 |
|
07-Jun-2007 |
Devang Patel <dpatel@apple.com> |
Use DominatorTree instead of ETForest. This allows faster immediate domiantor walk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
d8af90c1da64b81a7aa167b5adcc1e81b0741252 |
|
05-Jun-2007 |
Dan Gohman <gohman@apple.com> |
Allow insertelement, extractelement, and shufflevector to be hoisted/sunk by LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
26042420d642e810f5cdfb2da6156b74aaf80945 |
|
04-Jun-2007 |
Devang Patel <dpatel@apple.com> |
s/llvm::DominatorTreeBase::DomTreeNode/llvm::DomTreeNode/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
bec7647f985d54d2be2100e3813b85267cf1fe49 |
|
03-Jun-2007 |
Devang Patel <dpatel@apple.com> |
s/DominatorTreeBase::Node/DominatorTreeBase:DomTreeNode/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e7ae1a9dee1b023dbd5f7d6d1fbdb165fbbcb26c |
|
02-Jun-2007 |
Devang Patel <dpatel@apple.com> |
Insert new instructions in AliasSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f38ac5dd390ca583b6e6d1b40b378d07e49e5097 |
|
30-May-2007 |
Devang Patel <dpatel@apple.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ecd94c804a563f2a86572dcf1d2e81f397e19daa |
|
06-May-2007 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1997473cf72957d0e70322e2fe6fe2ab141c58a6 |
|
03-May-2007 |
Devang Patel <dpatel@apple.com> |
Drop 'const' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3e15bf33e024b9df9e89351a165acfdb1dde51ed |
|
02-May-2007 |
Devang Patel <dpatel@apple.com> |
Use 'static const char' instead of 'static const int'. Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
794fd75c67a2cdc128d67342c6d88a504d186896 |
|
01-May-2007 |
Devang Patel <dpatel@apple.com> |
Do not use typeinfo to identify pass in pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
68c01b3cf35bb7ed2d3a3f63053e304e092bcfdd |
|
25-Apr-2007 |
Devang Patel <dpatel@apple.com> |
Mem2Reg does not need TargetData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3a2b58f3adc5e9f9bffac7ce193f0570aa5a721f |
|
24-Apr-2007 |
Owen Anderson <resistor@mac.com> |
Rollback some changes that adversely affected performance. I'm currently rethinking my approach to this, so hopefully I'll find a way to do this without making this slower. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
cdacc498e45604f1b8034102e7d7ec5212535802 |
|
21-Apr-2007 |
Owen Anderson <resistor@mac.com> |
Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
df07335b4648c4cc255343081fdf61319d90431d |
|
20-Apr-2007 |
Owen Anderson <resistor@mac.com> |
Move more passes to using ETForest instead of DominatorTree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
325171eed82953e6a8c008456cc28a40c7f12aad |
|
18-Apr-2007 |
Owen Anderson <resistor@mac.com> |
Switch more uses of DominatorTree over to ETForest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
747603e39ea3f29add9ba6c07bbefcc5c2432612 |
|
17-Apr-2007 |
Dan Gohman <gohman@apple.com> |
Spell doFinalization right, so that it is a proper virtual override and gets called. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e34e9a29dc424baed8aed200c6a940f2c12c2a2f |
|
15-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
fix long lines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ecb7a77885b174cf4d001a9b48533b3979e7810d |
|
22-Mar-2007 |
Dan Gohman <gohman@apple.com> |
Change uses of Function::front to Function::getEntryBlock for readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
9133fe28954d498fc4de13064c7d65bd811de02c |
|
06-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
832254e1c2387c0cbeb0a820b8315fbe85cb003a |
|
02-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Changes to support making the shift instructions be true BinaryOperators. This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
79066fa6acce02c97c714a5a6e151ed8a249721c |
|
31-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
Adjust #includes to match movement of constant folding code from transformutils to libanalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e4d87aa2de6e52952dca73716386db09aad5a8fd |
|
23-Dec-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: This patch removes the SetCC instructions and replaces them with the ICmp and FCmp instructions. The SetCondInst instruction has been removed and been replaced with ICmpInst and FCmpInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0e5f499638c8d277b9dc4a4385712177c53b5681 |
|
19-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Switch over Transforms/Scalar to use the STATISTIC macro. For each statistic converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ac0b6ae358944ae8b2b5a11dc08f52c3ed89f2da |
|
06-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3da59db637a887474c1b1346c1f3ccf53b6c4663 |
|
27-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR950: The long awaited CAST patch. This introduces 12 new instructions into LLVM to replace the cast instruction. Corresponding changes throughout LLVM are provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the exception of 175.vpr which fails only on a slight floating point output difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
b7427031372337e6d67f9573ec6c722ab5ea913e |
|
26-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Removed #include <iostream> and replaced with llvm_* streams. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
92f7365740e9a116c59a8d33e636ebf6e4699301 |
|
12-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
An sinkable instruction may exist with uses, if those uses are in dead blocks. Handle this. This fixes PR908 and Transforms/LICM/2006-09-12-DeadUserOfSunkInstr.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
7f8897f22e88271cfa114998a4d6088e7c8e8e11 |
|
28-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
eliminate RegisterOpt. It does the same thing as RegisterPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3c80a51cfd5e7187439ce4c051da77ee46e0ff9a |
|
26-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
random code cleanups, no functionality change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
dac58ad983c62b49629e1f2969f4e0a621167d63 |
|
23-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Make iostream #inclusion explicit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
38b5807bd9554fd7d3548a63b84ce0e81bb4ac5f |
|
20-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
prevent va_arg from being hoisted from a loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
558bc88a00930fce283b240b7c9555f649a18f1b |
|
18-Jun-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
core changes for varargs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
fd93908ae8b9684fe71c239e3c6cfe13ff6a2663 |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
70ac2dcb841dc62f08e16f0b0e2cefbf01baa4c5 |
|
25-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Fix a bug where LICM was not updating AA information properly when sinking a pointer value out of a loop causing it to be duplicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1f309c1a4e8068a64627c612a895d9b403dbcb26 |
|
23-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
enable -debug-only=licm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
68a9d3eb38d78e851cce532ffa307a89373036c6 |
|
15-Dec-2004 |
Chris Lattner <sabre@nondot.org> |
Adjust to new interfaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
8a9193927a2661293a2afd5d1420faa2b0b8e6bf |
|
29-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Allow hoisting loads of globals and alloca's in conditionals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f3e1d6977ee5fb6b66df314d65e28e2c35d6e244 |
|
26-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Provide size information when checking to see if we can LICM a load, this allows us to hoist more loads in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
bdacd879578943efc98b75639cb8e7b4aab037f9 |
|
15-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a bug in the previous checkin that broke 255.vortex git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
fb3ee1930bfd0902f5fa3e6526775e3791e38d3c |
|
15-Sep-2004 |
Chris Lattner <sabre@nondot.org> |
Make sure to update alias analysis information as we transform the function. This fixes PR420 and Regression/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
|
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
eaa243039b6a83f8915f4f96ced58fabb520c851 |
|
27-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Fix hoisting of void typed values, e.g. calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
56b7ee20dad7160a117ea0d102fc5432074ce2d0 |
|
19-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Now that dominator tree children are built in determinstic order, this horrible code can go away git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
edb8433c917d97c237832954135e785b8c84f045 |
|
19-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Fix one source of nondeterminism in the -licm pass: the hoist pass was processing blocks in whatever order they happened to end up in the dominator tree data structure. Force an ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
802daf8b7d8033f156820b0d7a9e32368f117b41 |
|
17-Jun-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix typo in DEBUG printout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
2741c971044d2165be572749b94398043caccfeb |
|
23-May-2004 |
Chris Lattner <sabre@nondot.org> |
Adjust to the changes in the AliasSetTracker interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
3280f7bd557250a448eb56edbddfc90c94a406e6 |
|
19-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Move isLoopInvariant to the Loop class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
5fa802fe279f10f402e039bc931aa57c0e424bf5 |
|
19-Apr-2004 |
Chris Lattner <sabre@nondot.org> |
Loop exit sets are no longer explicitly held, they are dynamically computed on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
118dd0ce3d8e4b0a945afc95c9538d5005abacde |
|
15-Mar-2004 |
Chris Lattner <sabre@nondot.org> |
Implement LICM of calls in simple cases. This is sufficient to move around sin/cos/strlen calls and stuff. This implements: LICM/call_sink_pure_function.ll LICM/call_sink_const_function.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
529429224c9334ca308e1a8563d03f52196fc342 |
|
02-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Update comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
329c1c6c949d07e3fe9722ec633b4258217fd99d |
|
08-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Improve encapsulation in the Loop and LoopInfo classes by eliminating the getSubLoops/getTopLevelLoops methods, replacing them with iterator-based accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a3df8a964aa9d0d171fd4f6e491c7d1cf9dee500 |
|
19-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Remove the wierd "Operands" loop, by traversing basicblocks in reverse order git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e4365b2e8c79f9b2d564f31fdcc0568da8e5d60f |
|
19-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Implement LICM/sink_multiple.ll, by sinking all possible instructions in the loop before hoisting any. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ba7df4c48235964f1b8d133c98886781b5f853e2 |
|
18-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
When we delete instructions from the loop, make sure to remove them from the AliasSetTracker as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
00ad4a2d170bc129c17ad7d8efe94daad8038796 |
|
14-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Do not promote volatile alias sets into registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ea9403f2aa078e840a49792d906390395f0cd2f6 |
|
11-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Fix LICM/2003-12-11-SinkingToPHI.ll, and quite possibly all of the other known problems in the universe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
7d3ced934f1bb2c6845676c7333ef879d5219e88 |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: LICM/sink_multiple_exits.ll Thanks for pointing this out John :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
df45bd3803ae0965a83cd1f30ee051b9f43e73dd |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Don't allow dead instructions to stop sinking early. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e3cfe8d563fa06b274587aa38b1359ff707f33de |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Simplify code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f594a03197ddd6437ca5eb3c2c61d339528e0da4 |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Avoid performing two identical lookups when one will suffice git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0ed2da9ac733c51ba004c067d3b552c1fa54613d |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Make LICM itself a bit more efficient, and make the generated code more efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a2706518f9cc34358cba1072f78235aa091d6d93 |
|
10-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Implement instruction sinking out of loops. This still can do a little bit better job, but this is the majority of the work. This implements LICM/sink*.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
ed6dfc2856cd44a8aa608a9074eabbf42dd6cadc |
|
09-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Refactor code a little bit, eliminating the gratuitous InstVisitor, which should make subsequent changes simpler. This also allows us to hoist vaarg and vanext instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
92094b4d928119eceac1484331acffe950f4651c |
|
09-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Fine grainify namespacification Code cleanups Make LICM::SafeToHoist marginally more efficient git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
ed1f7c81aa24fd8126496a75c13c01db111b43ad |
|
07-Nov-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Declare FunctionPasses as such so that they can be used in FunctionPassManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
4a650af59912110a246c0a041bff38c92f0e56a2 |
|
13-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Wrap code at 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
cf00c4ab3ba308d45d98c5ccab87362cf802facb |
|
10-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
43f820d1f7638656be2158efac7dd8f5b08b8b77 |
|
05-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Change the interface to PromoteMemToReg to also take a DominatorTree git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
c444a4228f31656f854d15eac671b450df557346 |
|
11-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Renamed DominatorTree::Node::getNode() -> getBlock() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
352361b409d16045e703d986aa7fd77295173ef3 |
|
11-Sep-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Spell `definite' correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
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/lib/Transforms/Scalar/LICM.cpp
|
61c1e7e32def2978441c699dcf9943dbe14aad98 |
|
08-Sep-2003 |
Chris Lattner <sabre@nondot.org> |
Do not hoist volatile loads git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
11a49a722f657294f38865019af51f82dc31c1c3 |
|
05-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
Fixed minor bug in SafeToHoist and made some changes suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9966c03aad031f738718bed3bc00371e358beb5d |
|
05-Aug-2003 |
Tanya Lattner <tonic@nondot.org> |
Fixed LICM bug that hoists trapping instructions that are not guaranteed to execute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
6806f5614d2ec260fda954c951d33f58e77ed610 |
|
02-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
DEBUG got moved to Support/Debug.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e408e25132b8de8c757db1e3ddcd70432dfeb24d |
|
23-Apr-2003 |
Chris Lattner <sabre@nondot.org> |
Remove unnecesary &*'s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5872 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0252e49f6d6973b6f347c8feafc49e28af27163a |
|
04-Mar-2003 |
Chris Lattner <sabre@nondot.org> |
Convert LICM over to use AliasSetTracker. Besides being nicer, this automatically allows LICM to use access sizes to help alias analysis be more precise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
fb743a937f6856e3ab1f8ed599677038750a550e |
|
03-Mar-2003 |
Chris Lattner <sabre@nondot.org> |
Change the mem2reg interface to accept a TargetData argument git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
caadc93f7b3e950c16ff6cd497baffe7cadc1477 |
|
28-Feb-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: LICM/2003-02-28-PromoteDifferentType.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
8601a9bf54049389e0e0b6a907dc51069dcadc60 |
|
27-Feb-2003 |
Chris Lattner <sabre@nondot.org> |
Fix bug: 2003-02-27-StoreSinkPHIs.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5658 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
2d0a4a4eb88ddc379755f701208dfe4bd1c15055 |
|
26-Feb-2003 |
Chris Lattner <sabre@nondot.org> |
Convert to work with new AliasAnalysis interface by conservatively assuming all pointers are arbitrarily large accesses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
2e6e741b737960ecd0b68610875050019aac0f07 |
|
24-Feb-2003 |
Chris Lattner <sabre@nondot.org> |
Initial implementation of Loop invariant memory->scalar promotion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
cb2610ea037a17115ef3a01a6bdaab4e3cfdca27 |
|
21-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
- Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to setPreservesCFG to be less confusing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a92f696b74a99325026ebbdbffd2a44317e0c10b |
|
02-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Updates to work with recent Statistic's changes: * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
b461373fbcdc5909cc7331fa64791cd039de4bc8 |
|
30-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Fix bug in LICM that caused the previous big win. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
952eaee239d6c38f5121ed68277555344c2d6bf0 |
|
29-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Hoist the contents of Loops in depth first order in the dominator tree, rather than in random order. This causes LICM to be DRAMATICALLY more effective. For example, on bzip2.c, it is able to hoist 302 loads and 2380 total instructions, as opposed to 44/338 before. This obviously makes other transformations much more powerful as well! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
99a57216a935a512c418032f590a4660bad9d846 |
|
26-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
- Further cleanups of LICM pass, remove extra work from previous implementation - Do not clone instructions then insert clone outside of loop. Just move them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
94170596b715928794a55bc5a1671e3992fd2dc9 |
|
26-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Improve comments, doxygenize more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9646e6b6af1f924f9366a2bffc6dde102f84d231 |
|
26-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Clean up LICM significantly now that it is guaranteed to have loop preheaders git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
eb53ae4f2dc39e75e725b21b52d77d29cf1c11c9 |
|
26-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Loop invariant code motion now depends on the LoopPreheader pass. Dead code has not yet been removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
1d608abbc07bbc7c78c20da6b305ef14c6c30e8e |
|
11-Sep-2002 |
Chris Lattner <sabre@nondot.org> |
Clean up code due to auto-insert constructors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
24ea74eb9a47b81c1557926acd83e0fbe6d7594e |
|
23-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
Load & StoreInst no longer derive from MemAccessInst, so we don't have to handle indexing anymore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f5e84aa0887d3fcd752d4a4fa1bb0e526be49f20 |
|
22-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
Add capability of using pointer analysis to LICM git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
9b2b80fd48b10396be85a71735ffda0c155e5f72 |
|
14-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
Fix bug introduced in last checkin due to CastInst not being visible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
0513e9fe03f6e3c7d0272b8f4f82359e8d1a2e44 |
|
14-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
Remove support for NOT instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
5f0eb8da62308126d5b61e3eee5bee75b9dc5194 |
|
08-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
- Cleaned up the interface to AnalysisUsage to take analysis class names instead of ::ID's. - Pass::getAnalysis<> now no longer takes an optional argument git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
a6275ccdf5e1aa208afde56c498e2b13e16442f0 |
|
26-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
* Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Add support for different "PassType's" * Add new RegisterOpt/RegisterAnalysis templates for registering passes that are to show up in opt or analyze * Register Analyses now * Change optimizations to use RegisterOpt instead of RegisterPass * Remove getPassName implementations from various subclasses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
f629309f74cf1a64aa7fd1cd5784fd7db9a8f59e |
|
23-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
5ba99bd124dc18302f527d6e2b0efd0fa866bc9e |
|
25-Jun-2002 |
Anand Shukla <ashukla@cs.uiuc.edu> |
changes to make it compatible with 64bit gcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
7e70829632f82de15db187845666aaca6e04b792 |
|
25-Jun-2002 |
Chris Lattner <sabre@nondot.org> |
MEGAPATCH checkin. For details, See: docs/2002-06-25-MegaPatchInfo.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
16da494c81a09ea4273e7f3e7ad12eec68b05468 |
|
26-May-2002 |
Chris Lattner <sabre@nondot.org> |
Simplify the interface to local DCE and Constant prop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|
e0e734eea052a4e8372e6f430ef41149128ba0a6 |
|
11-May-2002 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of LICM pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Transforms/Scalar/LICM.cpp
|