- Sep 06, 2009
-
-
Duncan Sands authored
icc (#177, partial). Patch by Erick Tryzelaar. llvm-svn: 81106
-
- Sep 03, 2009
-
-
Lang Hames authored
Fixed a test that ensures the LocalRewriter does not attempt to avoid reloads by reusing clobbered registers. This was causing issues in 256.bzip2 when compiled with PIC for a while (starting at r78217), though the problem has since been masked. llvm-svn: 80872
-
- Aug 23, 2009
-
-
Jakob Stoklund Olesen authored
When undoing a reuse in ReuseInfo::GetRegForReload, check if it was only a sub-register being used. The MachineOperand::getSubReg() method is only valid for virtual registers, so we have to recover the sub-register index manually. llvm-svn: 79855
-
Benjamin Kramer authored
llvm-svn: 79852
-
Chris Lattner authored
llvm-svn: 79812
-
- Aug 15, 2009
-
-
Jakob Stoklund Olesen authored
In the included test case, a stack load was not included in DistanceMap. That caused TransferDeadness to ignore the instruction, leading to a scavenger assert. llvm-svn: 79090
-
- Aug 07, 2009
-
-
Dan Gohman authored
llvm-svn: 78363
-
- Jul 28, 2009
-
-
David Greene authored
Add reload and remat backscheduling. This is disabled by default. Use -schedule-spills=true to enable. llvm-svn: 77327
-
- Jul 25, 2009
-
-
Daniel Dunbar authored
- Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. llvm-svn: 77019
-
- Jul 22, 2009
-
-
Evan Cheng authored
Let each target determines whether a machine instruction is dead. If true, that allows late codeine passes to delete it. This is considered a workaround. The problem is some targets are not modeling side effects correctly. PPC is apparently one of those. This patch allows ppc llvm-gcc to bootstrap on Darwin. Once we find out which instruction definitions are wrong, we can remove the PPCInstrInfo workaround. llvm-svn: 76703
-
- Jul 21, 2009
-
-
Evan Cheng authored
Another rewriter bug exposed by recent coalescer changes. ReuseInfo::GetRegForReload() should make sure the "switched" register is in the desired register class. I'm surprised this hasn't caused more failures in the past. llvm-svn: 76558
-
- Jul 18, 2009
-
-
Evan Cheng authored
llvm-svn: 76281
-
- Jul 17, 2009
-
-
Evan Cheng authored
llvm-svn: 76131
-
Daniel Dunbar authored
llvm-svn: 76123
-
Daniel Dunbar authored
llvm-svn: 76111
-
- Jul 16, 2009
-
-
Evan Cheng authored
llvm-svn: 76100
-
Evan Cheng authored
Avoid remat'ing instructions whose def have sub-register indices for now. It's just really really hard to get all the cases right. llvm-svn: 75900
-
- Jul 14, 2009
-
-
Torok Edwin authored
This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
-
- Jul 11, 2009
-
-
Torok Edwin authored
Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
-
- Jul 10, 2009
-
-
Evan Cheng authored
Remove TargetInstrInfo::CommuteChangesDestination and added findCommutedOpIndices which returns the operand indices which are swapped (when applicable). This allows for some code clean up and future enhancements. llvm-svn: 75264
-
- Jul 01, 2009
-
-
Evan Cheng authored
Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details. llvm-svn: 74580
-
- Jun 30, 2009
-
-
Evan Cheng authored
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them. The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing. This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def. llvm-svn: 74518
-
- Jun 04, 2009
-
-
Lang Hames authored
llvm-svn: 72880
-
- Jun 03, 2009
-
-
Evan Cheng authored
Fix for PR4225: When rewriter reuse a value in a physical register , it clear the register kill operand marker and its kill ops information. However, the cleared operand may be a def of a super-register. Clear the kill ops info for the super-register's sub-registers as well. llvm-svn: 72758
-
- Jun 02, 2009
-
-
Lang Hames authored
llvm-svn: 72729
-
- May 15, 2009
-
-
Evan Cheng authored
llvm-svn: 71848
-
- May 13, 2009
-
-
Evan Cheng authored
llvm-svn: 71606
-
- May 06, 2009
-
-
Lang Hames authored
llvm-svn: 71057
-