- Nov 11, 2010
-
-
Jakob Stoklund Olesen authored
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. llvm-svn: 118747
-
- Oct 08, 2010
-
-
Owen Anderson authored
llvm-svn: 115996
-
- Sep 25, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 114779
-
Jakob Stoklund Olesen authored
llvm-svn: 114776
-
- Jul 22, 2010
-
-
Owen Anderson authored
llvm-svn: 109045
-
- Jun 24, 2010
-
-
Jakob Stoklund Olesen authored
[L]oad, [u]se, [d]ef, or [S]tore slots. This makes it easier to see if two indices refer to the same instruction, avoiding mental mod 4 calculations. llvm-svn: 106766
-
- Feb 10, 2010
-
-
Dan Gohman authored
llvm-svn: 95781
-
- Feb 09, 2010
-
-
Chris Lattner authored
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. llvm-svn: 95687
-
- Jan 22, 2010
-
-
Dale Johannesen authored
this makes the code work transparently the same whether they're there or not. llvm-svn: 94240
-
- Jan 05, 2010
-
-
David Greene authored
llvm-svn: 92589
-
- Dec 22, 2009
-
-
Lang Hames authored
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. llvm-svn: 91859
-
- Nov 14, 2009
-
-
Lang Hames authored
PreAllocSplitting is now using this API to insert code. llvm-svn: 88725
-
- Nov 10, 2009
-
-
Jeffrey Yasskin authored
This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! llvm-svn: 86636
-
- Nov 08, 2009
-
-
Lang Hames authored
llvm-svn: 86446
-
- Nov 07, 2009
-
-
Lang Hames authored
llvm-svn: 86342
-
- Nov 05, 2009
-
-
Lang Hames authored
Added support for renumbering existing index list elements. Removed some junk from the initial numbering code in runOnMachineFunction. llvm-svn: 86184
-
- Nov 04, 2009
-
-
Lang Hames authored
Handle empty/tombstone keys for LiveIndex more cleanly. Check for index sanity when constructing index list entries. llvm-svn: 86049
-
Lang Hames authored
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. llvm-svn: 85979
-