- Nov 04, 2009
-
-
Lang Hames authored
This introduces a new pass, SlotIndexes, which is responsible for numbering instructions for register allocation (and other clients). SlotIndexes numbering is designed to match the existing scheme, so this patch should not cause any changes in the generated code. For consistency, and to avoid naming confusion, LiveIndex has been renamed SlotIndex. The processImplicitDefs method of the LiveIntervals analysis has been moved into its own pass so that it can be run prior to SlotIndexes. This was necessary to match the existing numbering scheme. llvm-svn: 85979
-
Bob Wilson authored
an unconditional branch (possibly from tail merging), this code is trying to redirect all of its predecessors to go directly to the branch target, but that isn't feasible for indirect branches. The other predecessors (that don't end with indirect branches) could theoretically still be handled, but that is not easily done right now. The AnalyzeBranch interface doesn't currently let us distinguish jump table branches from indirect branches, and this code is currently handling jump tables. To avoid punting on address-taken blocks, we would have to give up handling jump tables. That seems like a bad tradeoff. llvm-svn: 85975
-
- Nov 03, 2009
-
-
Evan Cheng authored
llvm-svn: 85947
-
David Goodwin authored
Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed. llvm-svn: 85939
-
rdar://problem/7352605David Goodwin authored
<rdar://problem/7352605>. When building schedule graph use mayAlias information to avoid chaining loads/stores of spill slots with non-aliased memory ops. llvm-svn: 85934
-
Devang Patel authored
llvm-svn: 85909
-
Jeffrey Yasskin authored
warning from gcc by removing VISIBILITY_HIDDEN attributes. llvm-svn: 85873
-
- Nov 02, 2009
-
-
Evan Cheng authored
llvm-svn: 85827
-
David Goodwin authored
Chain dependencies used to enforce memory order should have latency of 0 (except for true dependency of Store followed by aliased Load... we estimate that case with a single cycle of latency assuming the hardware will bypass) llvm-svn: 85807
-
Evan Cheng authored
the loop preheader. Add instructions which are already in the preheader block that may be common expressions of those that are hoisted out. These does get a few more instructions CSE'ed. llvm-svn: 85799
-
Evan Cheng authored
llvm-svn: 85762
-
- Oct 31, 2009
-
-
Dan Gohman authored
llvm-svn: 85684
-
Dan Gohman authored
- Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups. llvm-svn: 85682
-
Dan Gohman authored
previously running CodePlacementOpt. Also print headers before each dump in -print-machineinstrs mode, so that it's clear which dump is which. llvm-svn: 85681
-
Dan Gohman authored
to unfold loop-invariant loads. llvm-svn: 85657
-
Dan Gohman authored
that uses this information knows to behave conservatively. llvm-svn: 85654
-
Dan Gohman authored
llvm-svn: 85653
-
Eric Christopher authored
llvm-svn: 85648
-
Dan Gohman authored
llvm-svn: 85639
-
Dan Gohman authored
results. This works around a problem affecting targets which rely on MVT::Flag to handle physical register defs. llvm-svn: 85638
-
- 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
-
Lang Hames authored
llvm-svn: 85599
-
Dan Gohman authored
llvm-svn: 85572
-
Dan Gohman authored
llvm-svn: 85571
-
Dan Gohman authored
llvm-svn: 85562
-
Dan Gohman authored
llvm-svn: 85559
-
Dan Gohman authored
llvm-svn: 85558
-
Dan Gohman authored
llvm-svn: 85556
-
David Goodwin authored
Between scheduling regions, correctly maintain anti-dep breaking state so that we don't incorrectly rename registers that span these regions. llvm-svn: 85537
-
Dan Gohman authored
llvm-svn: 85536
-
- Oct 29, 2009
-
-
Dan Gohman authored
*ISelDAGToDAG.cpp to being regular code in SelectionDAGISel.cpp. llvm-svn: 85530
-
David Goodwin authored
llvm-svn: 85522
-
Bob Wilson authored
llvm-svn: 85519
-
Dan Gohman authored
bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. llvm-svn: 85517
-
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
-