- Aug 07, 2010
-
-
Jakob Stoklund Olesen authored
necessary. Sometimes, live range splitting doesn't shrink the current interval, but simply changes some instructions to use a new interval. That makes the original more suitable for spilling. In this case, we don't need to duplicate the original. llvm-svn: 110481
-
- Aug 06, 2010
-
-
Jim Grosbach authored
llvm-svn: 110466
-
Jakob Stoklund Olesen authored
llvm-svn: 110464
-
Jakob Stoklund Olesen authored
After heavy editing of a live interval, it is much easier to simply renumber the live values instead of trying to keep track of the unused ones. llvm-svn: 110463
-
Owen Anderson authored
llvm-svn: 110460
-
Jakob Stoklund Olesen authored
llvm-svn: 110454
-
Jakob Stoklund Olesen authored
llvm-svn: 110453
-
Jakob Stoklund Olesen authored
When a physical register is in use, some alias of that register has a live interval with a relevant live range. That is the sad state of intervals after physreg coalescing of subregs, and it is good enough for correct register allocation. llvm-svn: 110452
-
Ted Kremenek authored
llvm-svn: 110429
-
Bill Wendling authored
This pass tries to remove comparison instructions when possible. For instance, if you have this code: sub r1, 1 cmp r1, 0 bz L1 and "sub" either sets the same flag as the "cmp" instruction or could be converted to set the same flag, then we can eliminate the "cmp" instruction all together. This is a important for ARM where the ALU instructions could set the CPSR flag, but need a special suffix ('s') to do so. llvm-svn: 110423
-
Devang Patel authored
While emitting DBG_VALUE for registers spilled at the end of a block do not use location of MBB->end(). If a block does not have terminator then incoming iterator points to end(). llvm-svn: 110411
-
Owen Anderson authored
llvm-svn: 110410
-
Jakob Stoklund Olesen authored
When a joined COPY changes subreg liveness, we keep it around as a KILL, otherwise it is safe to delete. llvm-svn: 110403
-
Jakob Stoklund Olesen authored
LiveVariables becomes horribly wrong while the coalescer is running, but the analysis is not zapped until after the coalescer pass has run. This causes tons of false reports when calling verify form the coalescer. llvm-svn: 110402
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
Jakob Stoklund Olesen authored
We verify that the LiveInterval is live at uses and defs, and that all instructions have a SlotIndex. Stuff we don't check yet: - Is the LiveInterval minimal? - Do all defs correspond to instructions or phis? - Do all defs dominate all their live ranges? - Are all live ranges continually reachable from their def? llvm-svn: 110386
-
- Aug 05, 2010
-
-
Jakob Stoklund Olesen authored
be killed before being redefined. These checks are usually disabled, and usually fail when enabled. We de facto allow live registers to be redefined without a kill, the corresponding assertions in RegScavenger were removed long ago. llvm-svn: 110362
-
Jakob Stoklund Olesen authored
we sometimes compare singular iterators, reported by ENABLE_EXPENSIVE_CHECKS. This fixes PR7825. llvm-svn: 110355
-
Bill Wendling authored
because it could create such things. This fixes a MingW buildbot test failure. llvm-svn: 110279
-
Jakob Stoklund Olesen authored
This helps avoid silly code: %R0<def = LOAD <fi#5> STORE <fi#5>, %R0<kill> llvm-svn: 110266
-
Jakob Stoklund Olesen authored
We are now at a point where we can split around simple single-entry, single-exit loops, although still with some bugs. llvm-svn: 110257
-
Devang Patel authored
llvm-svn: 110255
-
- Aug 04, 2010
-
-
Bill Wendling authored
llvm-svn: 110248
-
Devang Patel authored
llvm-svn: 110244
-
Dan Gohman authored
be triggered by valid, if dubious, IR. llvm-svn: 110240
-
Devang Patel authored
While spilling live registers at the end of block check whether they are used by DBG_VALUE machine instructions or not. If a spilled register is used by DBG_VALUE machine instruction then insert a new DBG_VALUE machine instruction to encode variable's new location on stack. llvm-svn: 110235
-
Devang Patel authored
llvm-svn: 110234
-
Dan Gohman authored
llvm-svn: 110183
-
- Aug 03, 2010
-
-
Jakob Stoklund Olesen authored
When the normalizeSpillWeights function was introduced, I forgot to remove this normalization. This change could affect register allocation. Hopefully for the better. llvm-svn: 110119
-
Bill Wendling authored
llvm-svn: 110069
-
- Aug 02, 2010
-
-
Devang Patel authored
llvm-svn: 110045
-
Oscar Fuentes authored
Fixes potential ambiguity problems on VS 2010. Patch by nobled! llvm-svn: 110029
-
Eli Friedman authored
ISD::AND case of TargetLowering::SimplifyDemandedBits. llvm-svn: 110019
-
- Aug 01, 2010
-
-
Bill Wendling authored
llvm-svn: 109966
-
- Jul 30, 2010
-
-
Eli Friedman authored
check the range of the constant when optimizing a comparison between a constant and a sign_extend_inreg node. llvm-svn: 109854
-
- Jul 29, 2010
-
-
Benjamin Kramer authored
Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter. llvm-svn: 109767
-
Dale Johannesen authored
llvm-svn: 109765
-
Jakob Stoklund Olesen authored
multiple defs, like t2LDRSB_POST. The first def could accidentally steal the physreg that the second, tied def was required to be allocated to. Now, the tied use-def is treated more like an early clobber, and the physreg is reserved before allocating the other defs. This would never be a problem when the tied def was the only def which is the usual case. This fixes MallocBench/gs for thumb2 -O0. llvm-svn: 109715
-
- Jul 28, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 109608
-
- Jul 27, 2010
-
-
Devang Patel authored
llvm-svn: 109538
-