- Oct 29, 2009
-
-
Dan Gohman authored
llvm-svn: 85515
-
Bill Wendling authored
llvm-svn: 85514
-
Jim Grosbach authored
indexed via the stack pointer, even if a frame pointer is present. Update the heuristic to place it nearest the stack pointer in that case, rather than nearest the frame pointer. llvm-svn: 85474
-
Dale Johannesen authored
the second (store) instruction in SpillSlotToUsesMap consistently. I don't think this matters functionally, but it's cleaner and Evan wants it this way. llvm-svn: 85463
-
Bill Wendling authored
llvm-svn: 85460
-
Bill Wendling authored
--- Reverse-merging r85338 into '.': U lib/CodeGen/SimpleRegisterCoalescing.cpp U lib/CodeGen/SimpleRegisterCoalescing.h llvm-svn: 85454
-
- Oct 28, 2009
-
-
Bob Wilson authored
common tail, except when the OptimizeForSize function attribute is present. Radar 7338114. llvm-svn: 85441
-
Dale Johannesen authored
to spill after all, we weren't handling 2-instruction spill sequences correctly (PPC Altivec). We need to remove the store in this case. Removing the other instruction(s) would be goodness but is not needed for correctness, and isn't done here. 7331562. llvm-svn: 85437
-
Eric Christopher authored
llvm-svn: 85436
-
Bob Wilson authored
I'm going to redo this using the OptimizeForSize function attribute. llvm-svn: 85426
-
David Goodwin authored
llvm-svn: 85412
-
Dan Gohman authored
chains have no users, they can't be predecessors of the condition. llvm-svn: 85394
-
Dan Gohman authored
the new instructions and leave the old one in place. llvm-svn: 85393
-
Dan Gohman authored
recursive to avoid consuming extraordinary amounts of stack space when processing tall graphs. llvm-svn: 85369
-
Dan Gohman authored
otherwise unhoistable instructions in order to allow the loads to be hoisted. llvm-svn: 85364
-
Evan Cheng authored
llvm-svn: 85361
-
Dan Gohman authored
MachineLICM and other things which run before LiveVariables is run. llvm-svn: 85360
-
Dan Gohman authored
if they have compatible encodings. llvm-svn: 85359
-
Chris Lattner authored
llvm-svn: 85351
-
Bob Wilson authored
use it to control tail merging when there is a tradeoff between performance and code size. When there is only 1 instruction in the common tail, we have been merging. That can be good for code size but is a definite loss for performance. Now we will avoid tail merging in that case when the optimization level is "Aggressive", i.e., "-O3". Radar 7338114. Since the IfConversion pass invokes BranchFolding, it too needs to know the optimization level. Note that I removed the RegisterPass instantiation for IfConversion because it required a default constructor. If someone wants to keep that for some reason, we can add a default constructor with a hard-wired optimization level. llvm-svn: 85346
-
Lang Hames authored
Fixed a bug in the coalescer where intervals were occasionally merged despite a real interference. This fixes rdar://problem/7157961. llvm-svn: 85338
-
- Oct 27, 2009
-
-
Dan Gohman authored
llvm-svn: 85325
-
Dan Gohman authored
llvm-svn: 85323
-
Devang Patel authored
Do not held on to DenseMap slot accross map insertion. The insertion may cause the map to grow rending the slot invalid. Use this opportunity to use ValueMap instead of DenseMap. llvm-svn: 85298
-
Chris Lattner authored
llvm-svn: 85296
-
Evan Cheng authored
Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which returns true if the fp immediate can be natively codegened by target. llvm-svn: 85281
-
Chris Lattner authored
(assembler,asmprinter, bc reader+writer) and document it. Codegen currently aborts on it. llvm-svn: 85274
-
Chris Lattner authored
thread safe either. llvm-svn: 85253
-
Eric Christopher authored
do anything than return "I don't know" at the moment. llvm-svn: 85189
-
Victor Hernandez authored
Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. llvm-svn: 85176
-
- Oct 26, 2009
-
-
David Goodwin authored
Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken. llvm-svn: 85166
-
David Goodwin authored
llvm-svn: 85146
-
David Goodwin authored
Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all. llvm-svn: 85145
-
Dan Gohman authored
machineinstr whether the aliased register is dead, rather than the original register is dead. This allows it to get the correct answer when examining an instruction like this: CALLpcrel32 <ga:foo>, %AL<imp-def>, %EAX<imp-def,dead> where EAX is dead but a subregister of it is still live. This fixes PR5294. llvm-svn: 85135
-
David Goodwin authored
llvm-svn: 85127
-
Evan Cheng authored
bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg around. - Relax register scavenging to allow use of partially "not-live" registers. It's common for targets to operate on registers where the top bits are undef. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... = d0 When the insert_subreg is eliminated by the coalescer, the scavenger used to complain. The previous fix was to keep to insert_subreg around. But that's brittle and it's overly conservative when we want to use the scavenger to allocate registers. It's actually legal and desirable for other instructions to use the "undef" part of d0. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... s1 = = s1 = d0 We probably need add a "partial-undef" marker on machine operand so the machine verifier would not complain. llvm-svn: 85091
-
Chandler Carruth authored
direct inclusion edge from System to Support. llvm-svn: 85086
-
- Oct 25, 2009
-
-
Evan Cheng authored
llvm-svn: 85047
-
Evan Cheng authored
llvm-svn: 85046
-
Evan Cheng authored
Do not delete identity insert_subreg even if dest is virtual. Let later passes delete them. This avoids register scavenger complain. llvm-svn: 85045
-