c8e41c591741b3da1077f7000274ad040bef8002 |
|
23-Jul-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo (the the => the) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160621 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
39c2a3d219021c14a4dd2552cc0b277fd0e3f702 |
|
05-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Remove dead infrastructure for building DenseMaps with a SlotIndex as the key -- they are now stored in an IntervalMap. I noticed this while looking into PR12652. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
d9b0b025612992a0b724eeca8bdf10b1d7a5c355 |
|
02-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix typos found by http://github.com/lyda/misspell-check git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
a0b0219a9e13ecd193eee604ab22ffc74b516b02 |
|
25-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove more dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
0b5ad0b9d902620b81268add3f554d73a6d92fc1 |
|
21-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused PointerLikeTypeTraits for IndexListEntry. It set NumLowBitAvailable = 3 which may not be true on all platforms. We only ever use 2 bits (the default) so this assumption can be safely removed Should fix PR12612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
d2bfce15d4dd065760cfe70c0bf7958e190fa757 |
|
17-Apr-2012 |
Francois Pichet <pichet2000@gmail.com> |
Unbreak the MSVC build, that next() thing again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
613dfb219c167717576b2383ee57573f4d8f53cf |
|
17-Apr-2012 |
Lang Hames <lhames@gmail.com> |
SlotIndexes used to store the index list in a crufty custom linked-list. I can't for the life of me remember why I wrote it this way, but I can't see any good reason for it now. This patch replaces the custom linked list with an ilist. This change should preserve the existing numberings exactly, so no generated code should change (if it does, file a bug!). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
741981adf3a2bc0c6652c9c4ec846250950f3e68 |
|
01-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move getBundleStart() into MachineInstrBundle.h. This allows the function to be inlined, and makes it suitable for use in getInstructionIndex(). Also provide a const version. C++ is great for touch typing practice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
b62fbc5e469f532fd1747a3c24115fb1d0ba792f |
|
29-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Instructions inside a bundle have the same number as the bundle itself. SlotIndexes are not assigned to instructions inside bundles, but it is still valid to look up the index of those instructions. The reverse getInstructionFromIndex() will return the first instruction in the bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
ac597ecfbc0b519ffcbf5f4160262a2c39f59fe6 |
|
15-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Add a check to make sure we don't assign slot indexes for instructions inside bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
c4a2715a548cc150064db162bd18bee1f10cb300 |
|
04-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Drop ZeroIndex and InvalidIndex. They are not used any more. Simply use SlotIndex() to get an invalid index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
2aad2f6e601328d15033944ea51ad6f66a7f3c0a |
|
11-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Detect when a value is undefined on an edge to a landing pad. Consider this code: int h() { int x; try { x = f(); g(); } catch (...) { return x+1; } return x; } The variable x is undefined on the first edge to the landing pad, but it has the f() return value on the second edge to the landing pad. SplitAnalysis::getLastSplitPoint() would assume that the return value from f() was live into the landing pad when f() throws, which is of course impossible. Detect these cases, and treat them as if the landing pad wasn't there. This allows spill code to be inserted after the function call to f(). <rdar://problem/10664933> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
da69f3b357097e75fbf9a5a2bbe1e7273d4b4271 |
|
04-Jan-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Simplify more DenseMap.find users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
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/include/llvm/CodeGen/SlotIndexes.h
|
5fa301bfa9a318de177cbf19ff925f10a742695f |
|
29-Sep-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
b4ddedce599183362b0f0333922c2fe0e163a129 |
|
15-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract parts of RAGreedy::splitAroundRegion as SplitKit methods. This gets rid of some of the gory splitting details in RAGreedy and makes them available to future SplitKit clients. Slightly generalize the functionality to support multi-way splitting. Specifically, SplitEditor::splitLiveThroughBlock() supports switching between different register intervals in a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
79142427a030baad468c90c54b66853e084507d3 |
|
02-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Remove an unused variable in NDEBUG (found with -Wunused-variable). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
8e33095cd45b8be6b8dba9be8b2e72164494a7fe |
|
02-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a SlotIndexes::insertMachineInstrInMaps to insert the instruction after any null indexes. This makes a difference if a live interval is referring to a deleted instruction. It can be important to insert an instruction before or after a deleted instruction to avoid interference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
3d32202748f3ce3de31e48a183130d94e767e97c |
|
11-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Skip a binary search when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
a2948ef5accab638371615f539ea9f9ec5ff5d03 |
|
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use std::unique instead of a SmallPtrSet to ensure unique instructions in UseSlots. This allows us to always keep the smaller slot for an instruction which is what we want when a register has early clobber defines. Drop the UsingInstrs set and the UsingBlocks map. They are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
6c8afd728eb02742ce320ecd39bcf3774d8423b7 |
|
04-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Stop caching basic block index ranges now that SlotIndexes can keep up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
a122eaaee22750c4f92c33672e149eb2f0c538cb |
|
02-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use basic block numbers as indexes when mapping slot index ranges. This is more compact and faster than using DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
979869c28e5bc68e2d4d546c7019525177f1d399 |
|
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Renumber slot indexes locally when possible. Initially, slot indexes are quad-spaced. There is room for inserting up to 3 new instructions between the original instructions. When we run out of indexes between two instructions, renumber locally using double-spaced indexes. The original quad-spacing means that we catch up quickly, and we only have to renumber a handful of instructions to get a monotonic sequence. This is much faster than renumbering the whole function as we did before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
bee41501fae5414070a2797e853da15ea29b92a8 |
|
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Symbolize the default instruction distance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
beb9a1f9fd1b660809929bf136eb2d897638d4c1 |
|
04-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Deferred SlotIndex renumbering was a good idea but never used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
f37712f48642bcca04c77083c0579e7fe8d4d916 |
|
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Represent sentinel slot indexes with a null pointer. This is much faster than using a pointer to a ManagedStatic object accessed with a function call. The greedy register allocator is 5% faster overall just from the SlotIndex default constructor savings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
a97ff8a027259b1b9e4dbdb5b6f01cc2195a6948 |
|
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid comparing invalid slot indexes, and assert that it doesn't happen. The SlotIndex created by the default construction does not represent a position in the function, and it doesn't make sense to compare it to other indexes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
acf9f48c5e5fa2ce381d566aefc6285653ab2b5c |
|
03-Mar-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Optimize SlotIndex equality tests. IndexListEntries have unique indexes, so it is not necessary to dereference pointers to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
a5f1a900df66178608d728708e0753015681d4c7 |
|
12-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert if anybody tries to put a slot index on a DBG_VALUE instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
e69b4ab82924359ca3d85215fb42aee2495de2f8 |
|
15-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add SlotIndexes::getMBBRange() to get the range of a basic block in a single lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
0613516b16466a92c68d60734801221506c85e86 |
|
02-Dec-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Implement the first half of LiveDebugVariables. Scan the MachineFunction for DBG_VALUE instructions, and replace them with a data structure similar to LiveIntervals. The live range of a DBG_VALUE is determined by propagating it down the dominator tree until a new DBG_VALUE is found. When a DBG_VALUE lives in a register, its live range is confined to the live range of the register's value. LiveDebugVariables runs before coalescing, so DBG_VALUEs are not artificially extended when registers are joined. The missing half will recreate DBG_VALUE instructions from the intervals when register allocation is complete. The pass is disabled by default. It can be enabled with the temporary command line option -live-debug-variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
1e8e72d72a71ec3fb6c81bd35a34261f34436900 |
|
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Insert two blank SlotIndexes between basic blocks instead of just one. This is the first small step towards using closed intervals for liveness instead of the half-open intervals we're using now. We want to be able to distinguish between a SlotIndex that represents a variable being live-out of a basic block, and an index representing a variable live-in to its successor. That requires two separate indexes between blocks. One for live-outs and one for live-ins. With this change, getMBBEndIdx(MBB).getPrevSlot() becomes stable so it stays greater than any instructions inserted at the end of MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
01f98abe3ebaaa1640b16aac951ed85deaa97862 |
|
11-Nov-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
16c3b647eb100fe404ee65f106d563ddef6c74b7 |
|
30-Oct-2010 |
Chris Lattner <sabre@nondot.org> |
Rename alignof -> alignOf to avoid irritating C++'0x compilers, PR8423, patch by nobled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
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/include/llvm/CodeGen/SlotIndexes.h
|
011e5910719265ba5d41e8af2290e55c5eb50526 |
|
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove SlotIndex::PHI_BIT. It is no longer used by anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
1803b37bad85cca19a15c0040979719240f48626 |
|
25-Sep-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Terminator gaps were unused. Might as well delete them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
dfa28b157dd066eed4db9d2256f55c23b88df637 |
|
11-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix a FIXME. The SlotIndex::Slot enum should be private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110826 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
90c579de5a383cee278acc3f7e7b9d0a656e6a35 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
1f74590e9d1b9cf0f1f81a156efea73f76546e05 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
9ccaf53ada99c63737547c0235baeb8454b04e80 |
|
06-Aug-2010 |
Owen Anderson <resistor@mac.com> |
Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
54cc2efb4e6ba3022ec297746b14a129d97fc07b |
|
19-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Render MachineFunctions to HTML pages, with options to render register pressure estimates and liveness alongside. Still experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
dfbc29a5a2197ff88c56448dd57fd4a4fcf16a1f |
|
09-Jul-2010 |
Lang Hames <lhames@gmail.com> |
Added a support for inserting new MBBs into the numbering. Unlike insertMachineInstrInMaps this does not guarantee live intervals will remain correct. The caller will need to manually update intervals to account for the changes made to the CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
ec8c3e8cccdadfdf8957c3ff8e7cace38897113c |
|
02-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle unindexed instructions in SlotIndices. SlotIndexes::insertMachineInstrInMaps would crash when trying to insert an instruction imediately after an unmapped debug value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
1ca6531e2e8e1b3a4f6c48888568450ecf614004 |
|
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
remove some unneeded errorhandling stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
dd0fbda3e32797b8fc0812fa886aff222d741f37 |
|
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
include densemap.h explicitly and rearrange #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
e0710472c84e61acf085f101abb4213c6cb1f545 |
|
09-Feb-2010 |
Lang Hames <lhames@gmail.com> |
Changed the definition of an "invalid" slot to include the empty & tombstone values, but not zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
74ab5eeffbd70f2387338e3ee8195be9f73e6dd8 |
|
22-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint. This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
0d9c12539ae7cc555582e40df339d880f44cb955 |
|
20-Dec-2009 |
Lang Hames <lhames@gmail.com> |
Fixed use of phi param in SlotIndex constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
729a8acc9f2f4bd0751da20d0e85a8c02bdc5375 |
|
15-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Lang verified that SlotIndex is "pod like" even though it isn't a pod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
4bbf4ee1491637c247e195e19e3e4a8ee5ad72fa |
|
15-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
Remove isPod() from DenseMapInfo, splitting it out to its own isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
ff1b61f2d3b6bb91d374698a3a97167ec54e1712 |
|
17-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Fixed call to wrong constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
b3661585c0f87b6045f0d65b5cac16921ae27086 |
|
14-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Added an API to the SlotIndexes pass to allow new instructions to be inserted into the numbering. PreAllocSplitting is now using this API to insert code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
16dcaf59960d699735a57b1623092d561c18a165 |
|
08-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Moved some ManagedStatics out of the SlotIndexes header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
d71153577f41e3fed279599253dfaf38ca4243d5 |
|
08-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix class -> struct tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
d6ef7fac1a020c58ec61cad2325e5f6afd0bbee6 |
|
07-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Update some globals to use ManagedStatic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
090780be1c94163ad7cb9368fdb1b23714b2518e |
|
05-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Tidied some ugliness in the SlotIndex default constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
a0e7b027609251609b60475e1026730a11d1e15f |
|
05-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Removed an assert which was causing significant slowdowns in debug builds. This assert was very conservative to begin with (the error condition is well covered by tests elsewhere in the code) so we won't miss much by removing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
0368e500eb7f5f03313e1a7af5b8fa48465c0560 |
|
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Handle empty/tombstone keys for LiveIndex more cleanly. Check for index sanity when constructing index list entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
11d0088ec243c54bb6143db2071d87e4f84f98ac |
|
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Another spurious friend declaration removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
f3a521f86a17b09c5d4e42f34afe3cf212b8fc1e |
|
04-Nov-2009 |
Lang Hames <lhames@gmail.com> |
Removed an unnecessary friend declaration and some crufty comments from IndexListEntry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/CodeGen/SlotIndexes.h
|
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/include/llvm/CodeGen/SlotIndexes.h
|