- Nov 11, 2009
-
-
Dan Gohman authored
llvm-svn: 86873
-
Dan Gohman authored
tail merging support to handle more cases. - Recognize several cases where tail merging is beneficial even when the tail size is smaller than the generic threshold. - Make use of MachineInstrDesc::isBarrier to help detect non-fallthrough blocks. - Check for and avoid disrupting fall-through edges in more cases. llvm-svn: 86871
-
Jakob Stoklund Olesen authored
- Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. llvm-svn: 86867
-
Dan Gohman authored
llvm-svn: 86856
-
Dan Gohman authored
llvm-svn: 86855
-
Dan Gohman authored
the numbers mean. llvm-svn: 86854
-
Dan Gohman authored
llvm-svn: 86853
-
Daniel Dunbar authored
llvm-svn: 86794
-
Bill Wendling authored
function it's generated for. llvm-svn: 86779
-
Devang Patel authored
llvm-svn: 86771
-
Devang Patel authored
llvm-svn: 86763
-
Devang Patel authored
llvm-svn: 86753
-
Dale Johannesen authored
constant whose component type is not a legal type for the target. (If the target ConstantPool cannot handle this type either, it has an opportunity to merge elements. In practice any target with 8-bit bytes must support i8 *as data*). 7320806 (partial). llvm-svn: 86751
-
Devang Patel authored
llvm-svn: 86748
-
- Nov 10, 2009
-
-
Jakob Stoklund Olesen authored
Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. llvm-svn: 86725
-
Jakob Stoklund Olesen authored
Clean up some whitespace. No functional changes. llvm-svn: 86724
-
Duncan Sands authored
just throw them away. llvm-svn: 86678
-
Dan Gohman authored
llvm-svn: 86642
-
Dan Gohman authored
llvm-svn: 86641
-
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
-
David Goodwin authored
llvm-svn: 86634
-
David Goodwin authored
Allow targets to specify register classes whose member registers should not be renamed to break anti-dependencies. llvm-svn: 86628
-
- Nov 09, 2009
-
-
Dan Gohman authored
llvm-svn: 86601
-
Mike Stump authored
llvm-svn: 86600
-
Dan Gohman authored
instructions. This makes CodeGen dumps significantly less noisy. Example before: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead> Same example after: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ... llvm-svn: 86583
-
David Goodwin authored
Fix dependencies added to model memory aliasing for post-RA scheduling. The dependencies were overly conservative for memory access that are known not to alias. llvm-svn: 86580
-
Dan Gohman authored
llvm-svn: 86564
-
Evan Cheng authored
llvm-svn: 86522
-
Evan Cheng authored
llvm-svn: 86521
-
- Nov 08, 2009
-
-
Lang Hames authored
llvm-svn: 86446
-
- Nov 07, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 86384
-
Chris Lattner authored
llvm-svn: 86354
-
Lang Hames authored
llvm-svn: 86342
-
Mon P Wang authored
llvm-svn: 86340
-
Evan Cheng authored
except it doesn't care if the definitions' virtual registers differ. This is used by machine LICM and other MI passes to perform CSE. - Teach Thumb2InstrInfo::isIdentical() to check two t2LDRpci_pic are identical. Since pc relative constantpool entries are always different, this requires it it check if the values can actually the same. llvm-svn: 86328
-
Kenneth Uildriks authored
Add code to check at SelectionDAGISel::LowerArguments time to see if return values can be lowered to registers. Coming soon, code to perform sret-demotion if return values cannot be lowered to registers llvm-svn: 86324
-
Jakob Stoklund Olesen authored
A non-identity copy cannot be coalesced when the phi join destination register is live at the copy site. Also verify the condition that the PHI join source register is only used in the PHI join. Otherwise the coalescing is invalid. llvm-svn: 86322
-
- Nov 06, 2009
-
-
Bob Wilson authored
llvm-svn: 86295
-
Dan Gohman authored
prints them with the leading '@'. llvm-svn: 86261
-
Devang Patel authored
llvm-svn: 86259
-