- Aug 13, 2008
-
-
Owen Anderson authored
Make the allocation of LiveIntervals explicit, rather than holding them in the r2iMap_ by value. This will prevent references to them from being invalidated if the map is changed. llvm-svn: 54763
-
- Aug 06, 2008
-
-
Owen Anderson authored
llvm-svn: 54425
-
Owen Anderson authored
llvm-svn: 54420
-
- Jul 30, 2008
-
-
Owen Anderson authored
llvm-svn: 54218
-
Owen Anderson authored
llvm-svn: 54186
-
- Jul 29, 2008
-
-
Owen Anderson authored
llvm-svn: 54173
-
- Jul 28, 2008
-
-
Dan Gohman authored
a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. llvm-svn: 54146
-
Dan Gohman authored
llvm-svn: 54136
-
- Jul 26, 2008
-
-
Owen Anderson authored
llvm-svn: 54072
-
Owen Anderson authored
Special cases are needed in renumbering when dealing with renumbering after a PHI has been removed. The interval previously defined by the PHI needs to be extended to the beginning of its basic block, and the intervals that were inputs need to be trimmed to the end of their basic blocks. llvm-svn: 54070
-
- Jul 25, 2008
-
-
Owen Anderson authored
llvm-svn: 54061
-
Owen Anderson authored
This is tricky business, and will probably take a few more iterations to get the last kinks out of it. llvm-svn: 54043
-
Dan Gohman authored
regressions, such as PR2595. Also, there is a significant code-quality issue in SPEC 464.h264ref and a few others. llvm-svn: 54014
-
Dan Gohman authored
and knowledge of PseudoSourceValues. This unfortunately isn't sufficient to allow constants to be rematerialized in PIC mode -- the extra indirection is a complication. llvm-svn: 54000
-
- Jul 23, 2008
-
-
Owen Anderson authored
llvm-svn: 53961
-
Owen Anderson authored
to multiply the instruction count by a constant factor in a few places, which caused the register allocator to require many more iterations. llvm-svn: 53959
-
Owen Anderson authored
live intervals itself to use an instruction count approximation that is not affected by inserting empty indices. llvm-svn: 53937
-
- Jul 19, 2008
-
-
Evan Cheng authored
llvm-svn: 53779
-
- Jul 18, 2008
-
-
Dan Gohman authored
Fix a leak that this turned up in LowerSubregs.cpp. And, comment a leak in LiveIntervalAnalysis.cpp. llvm-svn: 53746
-
- Jul 12, 2008
-
-
Evan Cheng authored
llvm-svn: 53504
-
Evan Cheng authored
Fix PR2536: a nasty spiller bug. If a two-address instruction uses a register but the use portion of its live range is not part of its liveinterval, it must be defined by an implicit_def. In that case, do not spill the use. e.g. 8 %reg1024<def> = IMPLICIT_DEF 12 %reg1024<def> = INSERT_SUBREG %reg1024<kill>, %reg1025, 2 The live range [12, 14) are not part of the r1024 live interval since it's defined by an implicit def. It will not conflicts with live interval of r1025. Now suppose both registers are spilled, you can easily see a situation where both registers are reloaded before the INSERT_SUBREG and both target registers that would overlap. llvm-svn: 53503
-
- Jul 10, 2008
-
-
Evan Cheng authored
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel. llvm-svn: 53394
-
- Jul 08, 2008
-
-
Dan Gohman authored
MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. llvm-svn: 53212
-
- Jul 03, 2008
-
-
Evan Cheng authored
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. llvm-svn: 53097
-
- Jun 26, 2008
-
-
Owen Anderson authored
Remember which MachineOperand we were processing, so we don't have to scan the list to find it again later. This speeds up live intervals from 0.37s to 0.30s on instcombine. llvm-svn: 52745
-
- Jun 21, 2008
-
-
Evan Cheng authored
llvm-svn: 52572
-
- Jun 19, 2008
-
-
Owen Anderson authored
llvm-svn: 52485
-
Evan Cheng authored
llvm-svn: 52477
-
Owen Anderson authored
add new instructions. llvm-svn: 52475
-
- Jun 17, 2008
-
-
Evan Cheng authored
llvm-svn: 52431
-
- Jun 16, 2008
-
-
Owen Anderson authored
llvm-svn: 52345
-
Owen Anderson authored
impact on code quality or compile time. llvm-svn: 52329
-
Owen Anderson authored
llvm-svn: 52306
-
Owen Anderson authored
Assign indices to empty basic blocks. This will be necessary for StrongPHIElimination in the near future. llvm-svn: 52300
-
- Jun 06, 2008
-
-
Evan Cheng authored
llvm-svn: 52040
-
- Jun 05, 2008
-
-
Owen Anderson authored
llvm-svn: 52012
-
- Jun 04, 2008
-
-
Evan Cheng authored
llvm-svn: 51934
-
- Jun 02, 2008
-
-
Owen Anderson authored
llvm-svn: 51876
-
- May 30, 2008
-
-
Owen Anderson authored
Make the renumbering correct in the face of deleted instructions that have been removed from the LiveIntervals maps. llvm-svn: 51714
-
- May 29, 2008
-
-
Bill Wendling authored
llvm-svn: 51704
-