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/CodeGen/StrongPHIElimination.cpp
|
05d96f98cbd96dab7f4ea1ea4ebe4285597e7e88 |
|
22-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce duplicated hash map lookups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
a5b51f5694b143790d7d081eef689614fbbb00b5 |
|
03-Aug-2012 |
Matt Beaumont-Gay <matthewbg@google.com> |
Silence unused variable warning in -asserts build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
bf60aa9db5953dd99c561dfa9323b1e3293a5a85 |
|
03-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate the VNInfo::hasPHIKill() flag. The only real user of the flag was removeCopyByCommutingDef(), and it has been switched to LiveIntervals::hasPHIKill(). All the code changed by this patch was only concerned with computing and propagating the flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
b18d779b35909cd5b753871f8bf2ff4f6c17ace1 |
|
27-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Eliminate the IS_PHI_DEF flag and VNInfo::setIsPHIDef(). A value number is a PHI def if and only if it begins at a block boundary. This can be derived from the def slot, a separate flag is not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
b0934ab7d811e23bf530371976b8b35f3242169c |
|
19-Feb-2012 |
Ahmed Charles <ace2001ac@gmail.com> |
Remove dead code. Improve llvm_unreachable text. Simplify some control flow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
fb5d511c0d91b22e49b32452e8e6dea202318d80 |
|
06-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't explicitly renumber slot indices. We have automatic local renumbering now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149920 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
3b1088a2cc15a39c7a7b8dd95a56143f1dda6863 |
|
04-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't store COPY pointers in VNInfo. If a value is defined by a COPY, that instuction can easily and cheaply be found by getInstructionFromIndex(VNI->def). This reduces the size of VNInfo from 24 to 16 bytes, and improves llc compile time by 3%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
2debd48ca790ac01be6e12e094fdf4fdcadc8364 |
|
13-Nov-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename SlotIndexes to match how they are used. The old naming scheme (load/use/def/store) can be traced back to an old linear scan article, but the names don't match how slots are actually used. The load and store slots are not needed after the deferred spill code insertion framework was deleted. The use and def slots don't make any sense because we are using half-open intervals as is customary in C code, but the names suggest closed intervals. In reality, these slots were used to distinguish early-clobber defs from normal defs. The new naming scheme also has 4 slots, but the names match how the slots are really used. This is a purely mechanical renaming, but some of the code makes a lot more sense now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
326e491ce7f7ad61014339c36a8cd90b33af98b9 |
|
13-Oct-2011 |
Cameron Zwarich <zwarich@apple.com> |
Use an existing method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
980df169203a5f60793e758cdc5cbcad853ca9eb |
|
12-Oct-2011 |
Cameron Zwarich <zwarich@apple.com> |
To find the exiting VN of a LiveInterval from a block, use the previous slot rather than the previous index. If a block has a single instruction, the previous index may be in a different basic block. I have no clue how this used to work on all of test-suite, because now this failure is seen quite often when trying to compile code with -strong-phi-elim. This fixes PR10252. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
c66d36028b21077aa1715331c22347b47b4da94f |
|
10-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Trim an unneeded header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
7a2bdde0a0eebcd2125055e0eacaca040f0b766c |
|
15-Apr-2011 |
Chris Lattner <sabre@nondot.org> |
Fix a ton of comment typos found by codespell. Patch by Luis Felipe Strano Moraes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
1a73cedca0a83d64149ee03577991a196338a9c5 |
|
14-Feb-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add some statistics to StrongPHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
f78df5ebb8319eb28936937e7f53aac4afb2270b |
|
09-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Eliminate some extra hash table lookups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
e272deed7b821976c4ebfe903807dff4f5e852a5 |
|
09-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add an informative comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
7c8818630991855830c94c79e1035222f3749689 |
|
08-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Fix coding style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
26db45818a4f1b8483ac5a904eefa43c9b120a5d |
|
04-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Switch to path halving from path compression for a small speedup. This also makes getLeader() nonrecursive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
645b1d2f12e6637840d3b118231f60b3a587073a |
|
04-Jan-2011 |
Cameron Zwarich <zwarich@apple.com> |
Eliminate repeated allocation of a per-BB DenseMap for a 4.6% reduction of time spent in StrongPHIElimination on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
d16ad3e43c4dc59b3f6f8f36338a778f7c7a8701 |
|
30-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Use getVRegDef() instead of def_iterator. This leads to fewer defs being added with 2-address instructions, for about a 3.5% speedup of StrongPHIElimination on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
1558f5ed1975495c0394d9de7acc144d0c8742da |
|
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Instead of processing every instruction when splitting interferences, only process those instructions that define phi sources. This is a 47% speedup of StrongPHIElimination compile time on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
480b80a74648c9ea93b9a8986f9ca6a9de536abc |
|
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Add text explaining an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
438e25ccdcd8673b1ff8d54ee80a5894a29b2590 |
|
29-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Revert the optimization in r122596. It is correct for all current targets, but it relies on assumptions that may not be true in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
92f0fcb6df128ab99a63986b5be00e80fc9f98c6 |
|
28-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Avoid iterating every operand of an instruction in StrongPHIElimination, since we are only interested in the defs when discovering interferences. This is a 28% speedup running StrongPHIElimination on 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
c3ab20e62e8be9b55cce0145d02ebdd20775a53a |
|
27-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Change an assertion to assert what the code actually relies upon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
4e7f23b1b622c2527c3ccff8df3179b692dbcca6 |
|
27-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Land a first cut at StrongPHIElimination. There are only 5 new test failures when running without the verifier, and I have not yet checked them to see if the new results are still correct. There are more verifier failures, but they all seem to be additional occurrences of verifier failures that occur with the existing PHIElimination pass. There are a few obvious issues with the code: 1) It doesn't properly update the register equivalence classes during copy insertion, and instead recomputes them before merging live intervals and renaming registers. I wanted to keep this first patch simple for debugging purposes, but it shouldn't be very hard to do this. 2) It doesn't mix the renaming and live interval merging with the copy insertion process, which leads to a lot of virtual register churn. Virtual registers and live intervals are created, only to later be merged into others. The code should be smarter and only create a new virtual register if there is no existing register in the same congruence class. 3) In one place the code uses a DenseMap per basic block, which is unnecessary heap allocation. There should be an inline storage version of DenseMap. I did a quick compile-time test of running llc on 403.gcc with and without StrongPHIElimination. It is slightly slower with StrongPHIElimination, because the small decrease in the coalescer runtime can't beat the increase in phi elimination runtime. Perhaps fixing the above performance issues will narrow the gap. I also haven't yet run any tests of the quality of the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
ef485d86585123b5e31a7f88aef22725ebd07e7a |
|
24-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Simplify a check for implicit defs and remove a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
47bce43229d1ccb9bdbd9f854809d588865e9648 |
|
21-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Incremental progress towards a new implementation of StrongPHIElimination. Most of the problems with my last attempt were in the updating of LiveIntervals rather than the coalescing itself. Therefore, I decided to get that right first by essentially reimplementing the existing PHIElimination using LiveIntervals. It works correctly, with only a few tests failing (which may not be legitimate failures) and no new verifier failures (at least as far as I can tell, I didn't count the number per file). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
9eaf49b320e7725fbf4e24721d91a69a6d36938f |
|
05-Dec-2010 |
Cameron Zwarich <zwarich@apple.com> |
Some cleanup before I start committing some incremental progress on StrongPHIElimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120961 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
68be956fff5db5152f5b0ec7e94c42b14e92a3e8 |
|
03-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete the StrongPHIElimination pass, leaving only a shell. The StrongPHIElimination pass did not work, and nobody has worked on it for two years. A rewrite is underway, so I am leaving this shell pass instead of deleting it completely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.cpp
|
02dd53e1c5b941ca5f60fca1b95ebcaf9ccd1dfc |
|
23-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.cpp
|
1e1098c6f39590e1e74e5cb3c2a1652d8f3cb16a |
|
11-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace copyRegToReg with COPY everywhere in lib/CodeGen except for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
15a571436da812c7cecbc3f3423ead2edff50358 |
|
26-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't track kills in VNInfo. Use interval ends instead. The VNInfo.kills vector was almost unused except for all the code keeping it updated. The few places using it were easily rewritten to check for interval ends instead. The two new methods LiveInterval::killedAt and killedInRange are replacements. This brings us down to 3 independent data structures tracking kills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
34dcc6fadca0a1117cdbd0e9b35c991a55b6e556 |
|
06-May-2010 |
Dan Gohman <gohman@apple.com> |
Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it doesn't have to guess. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
f451cb870efcf9e0302d25ed05f4cac6bb494e42 |
|
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix "the the" and similar typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
518bb53485df640d7b7e3f6b0544099020c42aa7 |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
dea8fbcae580f28b3cc52120800e1a7e34b95c9f |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
6532ff889cdd671a715ea27cd7fe0e71e4418a91 |
|
18-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
3de8249078354d25b37b40e0f10b4f88226d3dd4 |
|
18-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Turn off critical edge splitting for landing pads. The introduction of a non-landing pad basic block as the successor to a block that ends in an unconditional jump will cause block folding to remove the added block as a successor. Thus eventually removing it AND the landing pad entirely. Critical edge splitting is an optimization, so we can safely turn it off when dealing with landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
233a60ec40b41027ff429e2f2c27fa2be762f2e9 |
|
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
The Indexes Patch. This introduces a new pass, SlotIndexes, which is responsible for numbering instructions for register allocation (and other clients). SlotIndexes numbering is designed to match the existing scheme, so this patch should not cause any changes in the generated code. For consistency, and to avoid naming confusion, LiveIndex has been renamed SlotIndex. The processImplicitDefs method of the LiveIntervals analysis has been moved into its own pass so that it can be run prior to SlotIndexes. This was necessary to match the existing numbering scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
f5a86f45e75ec744c203270ffa03659eb0a220c1 |
|
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
6726b6d75a8b679068a58cb954ba97cf9d1690ba |
|
25-Oct-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
6cc91e39c04c0c00756e7667f623f787c4851439 |
|
03-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Oops. Renamed remaining MachineInstrIndex references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
cc3b0650f1feec45d1a2890b20c05c4b325f1788 |
|
03-Oct-2009 |
Lang Hames <lhames@gmail.com> |
Renamed MachineInstrIndex to LiveIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
9647994e097840d8ea7bd3ed7014934034f38763 |
|
09-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Removed static qualifier from a few index related methods. These methods may require a LiveIntervals instance in future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
8651125d2885f74546b6e2a556082111d5b75da3 |
|
04-Sep-2009 |
Lang Hames <lhames@gmail.com> |
Replaces uses of unsigned for indexes in LiveInterval and VNInfo with a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
bbbfa99d3d18fe9f20265305e833666645ada528 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few DOUTs here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
52c1afcaea61440950a11a4ccadac4354420d727 |
|
11-Aug-2009 |
Lang Hames <lhames@gmail.com> |
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
845012e6d31799c7fbd1193fa1af8ee2d12e9231 |
|
01-Aug-2009 |
Dan Gohman <gohman@apple.com> |
Use setPreservesAll and setPreservesCFG in CodeGen passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
ffd1326ff8dfc652a8026c3faebf55bbba7c32c7 |
|
09-Jul-2009 |
Lang Hames <lhames@gmail.com> |
Improved tracking of value number kills. VN kills are now represented as an (index,bool) pair. The bool flag records whether the kill is a PHI kill or not. This code will be used to enable splitting of live intervals containing PHI-kills. A slight change to live interval weights introduced an extra spill into lsr-code-insertion (outside the critical sections). The test condition has been updated to reflect this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
857c4e01f85601cf2084adb860616256ee47c177 |
|
17-Jun-2009 |
Lang Hames <lhames@gmail.com> |
VNInfo cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
f41538d1b54f55e8900394929b50f7ce3e61125f |
|
02-Jun-2009 |
Lang Hames <lhames@gmail.com> |
Update to in-place spilling framework. Includes live interval scaling and trivial rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
d55fccde4cc8a263f668c2f1db7fbe96fc19d4a6 |
|
12-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Fix a bug in live-in detection that caused lost-copy problems to show up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
0304b87cce60f5d98bd5a505bf8bee0b10f71548 |
|
04-Oct-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix compilation error on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
d735b8019b0f297d7c14b55adcd887af24d8e602 |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
8481ee7f521de7e5c82b4c0773e37ce8410271cd |
|
02-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Use a multimap rather than a map for holding the list of copies to insert, so we don't lose copies when two of them have the same source. I don't know what I was thinking when I wrote this originally. Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism guarantees need to be present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
05472ee54bea84f487c6970b741625c3ca410b01 |
|
01-Oct-2008 |
Owen Anderson <resistor@mac.com> |
Mark merged-in VNInfo's as being PHIKilled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
082d35136105fd061ed66182bd76cd96ffeda18d |
|
26-Sep-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to insert copies for implicit_def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
f835f8407196812c76ec5c20aa6a03d1249e8baa |
|
24-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Fix off-by-one error when updating live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
fae86eddeb6453e5d27a19ba2a07a7bb4505fc4f |
|
23-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Add initial support for inserting last minute copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
e04cec0ecf19750da68e0622d52e0f37297723b4 |
|
22-Sep-2008 |
Owen Anderson <resistor@mac.com> |
Significant improvements to the logic for merging live intervals. This code can't just use LI::MergeValueAsValue, as its behavior in the presence of overlapping ranges isn't what StrongPHIElimination wants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.cpp
|
a8c763b3071ae1a58ee8baeb282331245527e004 |
|
14-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Use empty() instead of begin() == end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
32767955a462a493f419e00421836cf89c23ad3b |
|
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
27d6681496a77aed117ec2d8bcee0d48cdf9072d |
|
13-Aug-2008 |
Owen Anderson <resistor@mac.com> |
1) Merge entire live intervals instead of parts of them. 2) Conditionalize temporary insertion if we don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
724acf1c52fcd844637a189e7490c3069ef359f2 |
|
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Do a dominator walk when scheduling copies, rather than a DFS on the CFG. Also, fix a few problems when creating live intervals for temporaries created by phi elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
883771f86a111c43ce7c30085a1f4820b66f5712 |
|
07-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Correct handle cases where two phis are coalesced together, and correct break up the case where two different phis want to coalesce with the same vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
9860b71b6a23bc0ae620d7dfc621ea1ffafbf8d8 |
|
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to try to coalesce input vregs that are the same as the output vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
9b49120408e6c0e10e18ce38cae7120c954fe708 |
|
06-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Only trim a live interval if the register is not used after the PHI node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
71ac0be6bb8ef79b79b3b9874cb2886fbb04d2d5 |
|
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Oops, we were already checking for dead phis. Handle this the proper way, then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
e7b8205e6ec63502c6375077faf0887ddf776ba0 |
|
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
We don't need to update live intervals for dead PHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
d723f722b2457dd847ece84f9cfa7cfae33f9bb0 |
|
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Use existing LiveInterval methods to simplify live interval merging. Thanks to Evan for pointing these out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
b9fb8d1e69aa910eb6bb03d3d66e5a2e25a20cd8 |
|
30-Jul-2008 |
Owen Anderson <resistor@mac.com> |
When merging live intervals, we also need to merge in any live ranges that are inputs to two-address instructions that themselves define a range we already care about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
83ea1f8e19dc1fae54a3e40689ad0a76a8ff3992 |
|
29-Jul-2008 |
Owen Anderson <resistor@mac.com> |
When merging a PHI operand's live interval into the PHI's live interval, we need to merge over all liveranges in the operand's interval that share the relevant value number, not just the range that immediately precedes the PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
a279a896ecd1601060adcc6563488f27b12319ef |
|
26-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Fix the issues originally addressed in r54070. After thinking about it some more, I realized that the right thing to do is to have StrongPHIElimination use its knowledge of the PHIs before they're erased to update the intervals appropriate. This is both simpler and more accurate than the alternative, which was having LIA figure it out when it renumbered things, plus it's just the right thing to do! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
020decc2b4a193a22314e174808269a5ea430dfe |
|
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
In order to avoid reprocessing a register more than once, we need to add it to the handled set so it will get filtered out in future iterations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
55c64358d1c04990cd5f50785d3e3b27447dac21 |
|
25-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Remove live interval entries for an interval if we're eliminating its only VN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
c12417edc9fe88918e09b58716bdb26bd9618239 |
|
24-Jul-2008 |
Owen Anderson <resistor@mac.com> |
Store the predecessor MBB in the PHIUnion, rather than an index, since the indices will change after renumbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
417dc2f5958b7233011b55bf36b20eae5a50f83f |
|
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Remove debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
a9efb264b02d83fab150b6869ef2d372949a1303 |
|
05-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use the newly created helper on LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
38b425020b102716d58c0833ff9ef56bc1d750c4 |
|
04-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Correctly construct live intervals for the copies we inserted into the predecessors of a block containing a PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
3094a4c97af4e81ff3bf9eea1997b86886dffcf2 |
|
04-Jun-2008 |
Owen Anderson <resistor@mac.com> |
We need to subtract one from this index because live ranges are open at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
3947e4d142c8a3fd958e62ace0a1333fb9e5a220 |
|
30-May-2008 |
Owen Anderson <resistor@mac.com> |
Preserve the register coallescer, and update live intervals more correctly by triggering a renumbering after phi elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
6ddba2b933645d308428201e942abe1274fa5085 |
|
13-May-2008 |
Dan Gohman <gohman@apple.com> |
Change class' public PassInfo variables to by initialized with the address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.cpp
|
52b1733df4bb3cafa7a81384da7e81a1fa66cea5 |
|
02-Apr-2008 |
Owen Anderson <resistor@mac.com> |
In some situations, we need to check for local interferences between the PHI node and its inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
59df878391b5a10d184636fed608f6a9cb29761f |
|
02-Apr-2008 |
Owen Anderson <resistor@mac.com> |
Correctly mark a valno that was previous defined by a PHI node as having an unknown defining inst after PHI elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
78216bc9f89ee819f325f79eebdc9d6365cd80ed |
|
01-Apr-2008 |
Owen Anderson <resistor@mac.com> |
Don't dereference MBB->end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
bc91bd34f1d2e4fdfef691fbe9015eabdeec8071 |
|
31-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Fix a major bug in the DFS calculation. Thanks for Christopher Lamb for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
c7c00361ce1457f4a033ae6246aa54d0d5bfb1d5 |
|
29-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove some unneeded code for LiveInterval joining, and fix a bug in the Phi elimination algorithm where we were accidentally reasoning about the source rather than the destination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
d382f8a32de02e04db5f88e881fe11db4040be40 |
|
26-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Dead PHI instructions need to be handled specially. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48811 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
e4ded8937a8fcc164b2315c9b85440230a2b84cb |
|
25-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove some debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48803 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
403dad66604a88d896bd43a39a289c164b7e581d |
|
25-Mar-2008 |
Owen Anderson <resistor@mac.com> |
StrongPHIElimination doesn't support swapping live intervals like the coalescer does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
9a31444ee6395b8c9b9eeb15581751f365665618 |
|
24-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Remove #include<iostream>, which I was using for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
e46611e6bc41bb6e7256e03b42b4796033167b91 |
|
24-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Be sure to remove intervals after we've joined them. Also, remove some duplicated code. With this pass, StrongPHIElim can compile very simple testcases correctly. There's still a ways to go before it's ready for prime time, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
755ebab37db73798bb0732f5c6e2ffeeea090559 |
|
17-Mar-2008 |
Owen Anderson <resistor@mac.com> |
A first attempt at updating live intervals, with code lifted from the coalescer. This doesn't really work, but gets us farther than before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
dfd07eab24394659ad445d6f7998fa31c1908d73 |
|
12-Mar-2008 |
Owen Anderson <resistor@mac.com> |
We also need to collect the VN IDs for the PHI instructions for later updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
0031671b414f3abb9f2b97a073207957749c80bc |
|
12-Mar-2008 |
Owen Anderson <resistor@mac.com> |
When we're determining what registers to coallesce, track the VNInfo IDs for the definitions that feed the PHI instructions. We'll need these IDs in order to update LiveIntervals properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
eb37ecc88256a9bce6536f9172fc18ac548ac8df |
|
10-Mar-2008 |
Owen Anderson <resistor@mac.com> |
Move StrongPHIElimination after live interval analysis. This will make things happier down the road. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
2cf36e07722d1e82250fc2d87d16b4b1be88a04e |
|
06-Mar-2008 |
Gabor Greif <ggreif@gmail.com> |
some more spelling changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
6130f66eaae89f8878590796977678afa8448926 |
|
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. Remove duplicated functions that basically do the same thing as findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
97ca75e4bbab7f680564c96e6a326cd1ea267ce2 |
|
23-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix an iterator invalidation issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
a6b1926531b78f5fa45503aebea30cdb616114b7 |
|
21-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Clarify a deviation from the original algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
3b489522dff11af226f8aaef9660c10257d16d60 |
|
21-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Improve a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
ddd060ffcfd56ef91eb28ce76a2b0576dfe51129 |
|
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the equivalent API from MachineRegisterInfo. Once all clients are switched over, the former will be going away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
dc4d6558e41f1b1034a4f77385d2d4fea89f88db |
|
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Add more comments explaining the basics of how the decision of when to rename and when to insert copies is made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
b199cbec2e84c46fc0883b3abca84a6adde08fea |
|
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Get rid of the isKillInst predicate. LiveVariables already provides this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
9c2efa8a8f961a3750cec21530a2681d25b3bd49 |
|
10-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Copies need to be inserted before the first terminator, not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
ec1213fbbba161401e22bd41005a3b1a39008807 |
|
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Clean up StrongPHIElimination a bit, and add some more comments to the internal structures. There's still more work to do on this front. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
864e3a3762b2155b21c09273128dd2565df00d71 |
|
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
StrongPHIElim: Now with even fewer trivial bugs! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
719fef648d8ed584fdd2b3e7c967cf0fe8c7925b |
|
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix an infinite recursion bug in InsertCopies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
cb7d949a19f8d00a019796dfc9342fe294df27c0 |
|
09-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Fix some simple bugs. StrongPHIElimination now does not crash on 164.gzip. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
0c5714bb9944ed085fb5854ac4c6abf941c532ed |
|
08-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Rename registers that do not need copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
0d893b4038d11c619ef9679de8e0c62f60c73377 |
|
08-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Actually insert copies now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
0b4825c38b2e2bd2805292f708610b4ad9c7bf92 |
|
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Oops, missed one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
9e549202a001cb416c98a75f3c6d6bd68ae4139f |
|
07-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Make some predicates static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
84bc5427d6883f73cfeae3da640acd011d35c006 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
8aa797aa51cd4ea1ec6f46f4891a6897944b75b2 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.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/CodeGen/StrongPHIElimination.cpp
|
f1519e836145fb243d659f5f6b4f92a93aa5de5e |
|
24-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Flesh out the Briggs implementation a little bit more, fix a few FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
efbcebc95dc8a7936dda8ec5733b6f6d4bd62343 |
|
23-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Sketch out an implementation of Briggs' copy placement algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
cae8d8d4bebd0517c16145cf3bc3304e8eadad6b |
|
22-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Note what still needs doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
22c43b2988f1167a5fe8a2b067bd0e1798dbc710 |
|
22-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Remove critical edge breaking. It won't be necessary as long as we are very careful when inserting copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
87a702be1a1d5f1be2e5f78bb0a22447e22c139a |
|
16-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Break local interferences in StrongPHIElimination. One step closer... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
965b4677670ad6103cc95989c4baa57bb6d01e83 |
|
16-Dec-2007 |
Owen Anderson <resistor@mac.com> |
A few more comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
62d67dd3a3384d3899ca32aebd3d19bbf8b7d326 |
|
13-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Add register pairs to the list to check for local interferences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
4ba08ecbcf7f784ec1d8ece7f062c529b668085a |
|
13-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Remove ugly and horrible code. It's not necessary for correctness, and can be added back later if it causes code quality issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
ed2ffa25a18db3e9537bf919140f688bc415a055 |
|
12-Dec-2007 |
Owen Anderson <resistor@mac.com> |
Forgot to remove a register from the PHI-union after I'd determined that it interfered with other registers. Seems like that might be a good thing to do. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
d525f664c92bc285c80484015f7aaa8fc17c4cb3 |
|
11-Dec-2007 |
Owen Anderson <resistor@mac.com> |
More progress on StrongPHIElimination. Now we actually USE the DomForest! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
afc6de0015bbeb33a87faa6548c1289d649e832e |
|
10-Dec-2007 |
Owen Anderson <resistor@mac.com> |
A little more progress on StrongPHIElimination, now that I have a better sense of how the CodeGen machinery works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
42f9e96e97fd42cd71e7096ab7eb9eac7a9c8b32 |
|
13-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Run computeDomForest() on the set of registers that need to be tested for interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
17b1418bead13b5f78764f1435fc514475123dfc |
|
13-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Preserve LiveVariables when doing critical edge splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
35e2dba67215045b1be2b890699788adfa939d05 |
|
12-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Break critical edges coming into blocks with PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
fe0c882e5a6ddf4e3c9f771485fdaa4672759539 |
|
12-Nov-2007 |
Owen Anderson <resistor@mac.com> |
As Chris and Evan pointed out, BreakCriticalMachineEdges doesn't really need to be a pass of its own. Instead, move it out into a helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
14b3fb78059a7b720ac9592e1f5d827166a5b5ac |
|
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Take another stab at getting isLiveIn() and isLiveOut() right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
60a877d71351855d68491eeb123835ac7833a9e4 |
|
07-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add some more of StrongPHIElim. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
8b96b9fce084640cee62d39dab8d7f882818e122 |
|
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
ee49b5385b365559ce3c28e5ace7f821090df466 |
|
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
DomForest is a forest of registers, not instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
a4ad2e740ac7727229ee0b47affb2e7efae085eb |
|
06-Nov-2007 |
Owen Anderson <resistor@mac.com> |
StrongPHIElimination requires LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
83430bce1d21c8095438ed591cb9c72b5c666a07 |
|
04-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Another step of stronger PHI elimination down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
1bd3271b16d7f9f0b69af00d8ff29ed00a29f9ef |
|
31-Oct-2007 |
Duncan Sands <baldrick@free.fr> |
Add a newline at the end of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|
0bda0e8895285c3a03c8859e11f2fff69861fd9d |
|
31-Oct-2007 |
Owen Anderson <resistor@mac.com> |
Add the skeleton of a better PHI elimination pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/StrongPHIElimination.cpp
|