- Oct 31, 2009
-
-
Dan Gohman authored
llvm-svn: 85640
-
Dan Gohman authored
llvm-svn: 85637
-
- Oct 30, 2009
-
-
Dan Gohman authored
unfolding loads for hoisting. getOpcodeAfterMemoryUnfold returns the opcode of the original operation without the load, not the load itself, MachineLICM needs to know the operand index in order to get the correct register class. Extend getOpcodeAfterMemoryUnfold to return this information. llvm-svn: 85622
-
Evan Cheng authored
llvm-svn: 85608
-
Rafael Espindola authored
void f (int a1, int a2, int a3, int a4, int a5,...) In ARMTargetLowering::LowerFormalArguments if the function has 4 or more regular arguments we used to set VarArgsFrameIndex using an offset of 0, which is only correct if the function has exactly 4 regular arguments. llvm-svn: 85590
-
- Oct 28, 2009
-
-
Bob Wilson authored
common tail, except when the OptimizeForSize function attribute is present. Radar 7338114. llvm-svn: 85441
-
Dan Gohman authored
otherwise unhoistable instructions in order to allow the loads to be hoisted. llvm-svn: 85364
-
Evan Cheng authored
llvm-svn: 85362
-
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
-
- Oct 27, 2009
-
-
Rafael Espindola authored
llvm-svn: 85266
-
Bob Wilson authored
llvm-svn: 85210
-
Bob Wilson authored
llvm-svn: 85208
-
Bob Wilson authored
llvm-svn: 85207
-
Bob Wilson authored
llvm-svn: 85204
-
- Oct 26, 2009
-
-
David Goodwin authored
llvm-svn: 85127
-
Dan Gohman authored
strides for now, because it doesn't handle them correctly. This fixes a miscompile of SingleSource/Benchmarks/Misc-C++/ray. This problem was usually hidden because indvars transforms such induction variables into negations of canonical induction variables. llvm-svn: 85118
-
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
-
Chris Lattner authored
or global after a function with conflicting names. Update some testcases that were accidentally depending on this behavior. llvm-svn: 85081
-
- Oct 25, 2009
-
-
Evan Cheng authored
llvm-svn: 85051
-
Evan Cheng authored
llvm-svn: 85050
-
- Oct 23, 2009
-
-
Dan Gohman authored
the scale overflows pointer-sized arithmetic. This fixes PR5281. llvm-svn: 84954
-
Evan Cheng authored
llvm-svn: 84932
-
David Goodwin authored
Allow the target to select the level of anti-dependence breaking that should be performed by the post-RA scheduler. The default is none. llvm-svn: 84911
-
- Oct 22, 2009
-
-
Bob Wilson authored
llvm-svn: 84868
-
Evan Cheng authored
Move if-conversion before post-regalloc scheduling so the predicated instruction get scheduled properly. llvm-svn: 84843
-
Evan Cheng authored
llvm-svn: 84813
-
Anton Korobeynikov authored
Yay for ASCII graphics! llvm-svn: 84808
-
Dan Gohman authored
to break up CFG diamonds by banishing one of the blocks to the end of the function, which is bad for code density and branch size. This does pessimize MultiSource/Benchmarks/Ptrdist/yacr2, the benchmark cited as the reason for the change, however I've examined the code and it looks more like a case of gaming a particular branch than of being generally applicable. llvm-svn: 84803
-
- Oct 21, 2009
-
-
Jim Grosbach authored
immediate operands when they will fit into the using instruction. llvm-svn: 84778
-
Anton Korobeynikov authored
llvm-svn: 84776
-
Anton Korobeynikov authored
RMW preprocessing stuff was incorrect. Grab the stuff from x86 backend and disable some tests until it will be clever enough to handle them. llvm-svn: 84775
-
Evan Cheng authored
llvm-svn: 84751
-
Dan Gohman authored
llvm-svn: 84727
-
Anton Korobeynikov authored
llvm-svn: 84705
-
- Oct 20, 2009
-
-
Anton Korobeynikov authored
transform. llvm-svn: 84683
-
David Goodwin authored
llvm-svn: 84658
-
Dan Gohman authored
encounters an OEQ or UNE comparison, and update its callers to check for this return status and recover. This fixes a problem resulting from the LowerOperation hooks being called from LegalizeVectorOps, because LegalizeVectorOps only lowers vectors, so OEQ and UNE comparisons may still be at large. This fixes PR5092. llvm-svn: 84640
-
Dan Gohman authored
tracked. Instead of trying to manually keep track of these locations while doing complex modifications, just recompute them when they're needed. This fixes a bug in which the TopMBB and BotMBB were not correctly updated, leading to invalid transformations. llvm-svn: 84598
-
Evan Cheng authored
llvm-svn: 84586
-