"clang/git@repo.hca.bsc.es:rferrer/llvm-epi-0.8.git" did not exist on "3253e189c6465fe35fb9059310c478b75f57ff32"
- Jun 21, 2012
-
-
Jakob Stoklund Olesen authored
They are living in LiveRegMatrix now. llvm-svn: 158868
-
Jakob Stoklund Olesen authored
Stop using the LiveIntervalUnions provided by RegAllocBase, they will be removed soon. llvm-svn: 158866
-
- Jun 20, 2012
-
-
Jakob Stoklund Olesen authored
That is a DenseMap iterator keyed by pointers, so the iteration order is nondeterministic. I would like to replace the DenseMap with an IndexedMap which doesn't allow iteration. llvm-svn: 158856
-
- Jun 09, 2012
-
-
Jakob Stoklund Olesen authored
This deduplicates some code from the optimizing register allocators, and it means that it is now possible to change the register allocators' solutions simply by editing the VirtRegMap between the register allocator pass and the rewriter. llvm-svn: 158249
-
- Jun 06, 2012
-
-
Jakob Stoklund Olesen authored
It is useful outside RegAllocBase. llvm-svn: 158041
-
Jakob Stoklund Olesen authored
Soon we'll be making LiveIntervalUnions for register units as well. This was the only place using the RepReg member, so just remove it. llvm-svn: 158038
-
Jakob Stoklund Olesen authored
Don't print out the register number and spill weight, making the TRI argument unnecessary. This allows callers to interpret the reg field. It can currently be a virtual register, a physical register, a spill slot, or a register unit. llvm-svn: 158031
-
- Jun 02, 2012
-
-
Jakob Stoklund Olesen authored
No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). llvm-svn: 157854
-
- May 12, 2012
-
-
Jakob Stoklund Olesen authored
Empty live ranges represent undef and still get allocated, but they won't appear in LiveIntervalUnions. Patch by Patrik Hägglund! llvm-svn: 156685
-
- Apr 03, 2012
-
-
Pete Cooper authored
llvm-svn: 153906
-
- Mar 04, 2012
-
-
Craig Topper authored
llvm-svn: 152001
-
- Jan 11, 2012
-
-
Jakob Stoklund Olesen authored
This helper method is too simplistic for RAGreedy. llvm-svn: 147976
-
Jakob Stoklund Olesen authored
No functional change. llvm-svn: 147972
-
- Jan 05, 2012
-
-
Jakob Stoklund Olesen authored
The register allocators don't currently support adding reserved registers while they are running. Extend the MRI API to keep track of the set of reserved registers when register allocation started. Target hooks like hasFP() and needsStackRealignment() can look at this set to avoid reserving more registers during register allocation. llvm-svn: 147577
-
- Aug 11, 2011
-
-
Jakob Stoklund Olesen authored
No clients are iterating over interference overlaps. llvm-svn: 137350
-
- Aug 09, 2011
-
-
Jakob Stoklund Olesen authored
A public interface is no longer needed since RegisterCoalescer is not an analysis any more. llvm-svn: 137082
-
- Jul 27, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 136178
-
- Jul 02, 2011
-
-
Jakob Stoklund Olesen authored
asm.c:2:7: error: ran out of registers during register allocation asm(""::"r"(0), "r"(1), "r"(2), "r"(3), "r"(4), "r"(5), "r"(6), "r"(7), "r"(8), "r"(9)); ^ llvm-svn: 134310
-
- Jun 27, 2011
-
-
Rafael Espindola authored
remove the analysis group. llvm-svn: 133899
-
- Jun 26, 2011
-
-
Rafael Espindola authored
llvm-svn: 133895
-
- Jun 03, 2011
-
-
Jakob Stoklund Olesen authored
of reserved registers. Use RegisterClassInfo in RABasic as well. This slightly changes som allocation orders because RegisterClassInfo puts CSR aliases last. llvm-svn: 132581
-
- May 10, 2011
-
-
Jakob Stoklund Olesen authored
The previous invalidation missed the alias interference caches. Also add a stats counter for the number of repaired ranges. llvm-svn: 131133
-
- May 06, 2011
-
-
Jakob Stoklund Olesen authored
This can't be just an assertion, users can always write impossible inline assembly. Such an assembly statement should be included in the error message. llvm-svn: 131024
-
- Apr 20, 2011
-
-
Jakob Stoklund Olesen authored
On the x86-64 and thumb2 targets, some registers are more expensive to encode than others in the same register class. Add a CostPerUse field to the TableGen register description, and make it available from TRI->getCostPerUse. This represents the cost of a REX prefix or a 32-bit instruction encoding required by choosing a high register. Teach the greedy register allocator to prefer cheap registers for busy live ranges (as indicated by spill weight). llvm-svn: 129864
-
- Apr 12, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 129373
-
Jakob Stoklund Olesen authored
when compiling many small functions. llvm-svn: 129321
-
- Apr 11, 2011
-
-
Jakob Stoklund Olesen authored
LiveIntervals::findLiveInMBBs has to do a full binary search for each segment. llvm-svn: 129292
-
Jakob Stoklund Olesen authored
llvm-svn: 129276
-
- Apr 05, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 128935
-
- Apr 01, 2011
-
-
Jakob Stoklund Olesen authored
It is using a trivial rewriter that doesn't know how to insert spill code requested by the standard spiller. llvm-svn: 128688
-
- Mar 23, 2011
-
-
Jakob Stoklund Olesen authored
Empty ranges may represent undef values. llvm-svn: 128144
-
- Mar 16, 2011
-
-
Jakob Stoklund Olesen authored
The live range of a virtual register may change which invalidates the cached interference information. llvm-svn: 127772
-
- Mar 12, 2011
-
-
Jakob Stoklund Olesen authored
Live range splitting can create a number of small live ranges containing only a single real use. Spill these small live ranges along with the large range they are connected to with copies. This enables memory operand folding and maximizes the spill to fill distance. Work in progress with known bugs. llvm-svn: 127529
-
- Mar 10, 2011
-
-
Jakob Stoklund Olesen authored
This makes it possible to register delegates and get callbacks when the spiller edits live ranges. llvm-svn: 127389
-
Jakob Stoklund Olesen authored
llvm-svn: 127388
-
- Feb 23, 2011
-
-
Jakob Stoklund Olesen authored
This is based on the observation that long live ranges are more difficult to allocate, so there is a better chance of solving the puzzle by handling the big pieces first. The allocator will evict and split long alive ranges when they get in the way. RABasic is still using spill weights for its priority queue, so the interface to the queue has been virtualized. llvm-svn: 126259
-
- Feb 18, 2011
-
-
Jakob Stoklund Olesen authored
The rewriter works almost identically to -rewriter=trivial, except it also eliminates any identity copies. This makes the new register allocators independent of VirtRegRewriter.cpp which will be going away at the same time as RegAllocLinearScan. llvm-svn: 125967
-
Jakob Stoklund Olesen authored
llvm-svn: 125802
-
- Feb 17, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 125789
-
- Feb 09, 2011
-
-
Jakob Stoklund Olesen authored
Registers are not allocated strictly in spill weight order when live range splitting and spilling has created new shorter intervals with higher spill weights. When one of the new heavy intervals conflicts with a single lighter interval, simply evict the old interval instead of trying to split the heavy one. The lighter interval is a better candidate for splitting, it has a smaller use density. llvm-svn: 125151
-