- 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
-
- Oct 25, 2009
-
-
Nick Lewycky authored
Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
-
- Oct 03, 2009
-
-
Lang Hames authored
llvm-svn: 83254
-
- Sep 20, 2009
-
-
Daniel Dunbar authored
llvm-svn: 82355
-
- Sep 06, 2009
-
-
Duncan Sands authored
about by icc (#593, partial). Patch by Erick Tryzelaar. llvm-svn: 81115
-
- Sep 04, 2009
-
-
Lang Hames authored
a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. llvm-svn: 81040
-
- 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 20, 2009
-
-
Daniel Dunbar authored
llvm-svn: 79564
-
- Aug 19, 2009
-
-
Lang Hames authored
llvm-svn: 79397
-
Lang Hames authored
llvm-svn: 79378
-
- Aug 12, 2009
-
-
Lang Hames authored
llvm-svn: 78840
-
- Aug 11, 2009
-
-
Dan Gohman authored
llvm-svn: 78667
-
Dan Gohman authored
llvm-svn: 78664
-
Lang Hames authored
Modified VNInfo. The "copy" member is now a union which holds the copy for a register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg. llvm-svn: 78620
-
- Aug 10, 2009
-
-
Owen Anderson authored
llvm-svn: 78601
-
- Aug 08, 2009
-
-
Daniel Dunbar authored
llvm-svn: 78447
-
- Aug 07, 2009
-
-
Lang Hames authored
New C++ PBQP solver. Currently about as fast (read _slow_) as the old C based solver, but I'll be working to improve that. The PBQP allocator has been updated to use the new solver. llvm-svn: 78354
-
- Aug 01, 2009
-
-
Dan Gohman authored
llvm-svn: 77754
-
- 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
-
- Jun 17, 2009
-
-
Lang Hames authored
llvm-svn: 73634
-
- Jun 14, 2009
-
-
Evan Cheng authored
Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. llvm-svn: 73346
-
- May 30, 2009
-
-
Bill Wendling authored
llvm-svn: 72604
-
- May 18, 2009
-
-
Lang Hames authored
for PostRAScheduler. llvm-svn: 71991
-
- May 06, 2009
-
-
Lang Hames authored
llvm-svn: 71057
-
- May 03, 2009
-
-
Evan Cheng authored
In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all. VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants. Not yet enabled. This is part 1. More coming. llvm-svn: 70787
-
- Apr 22, 2009
-
-
Evan Cheng authored
This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. llvm-svn: 69743
-
- Mar 17, 2009
-
-
Sanjiv Gupta authored
llvm-svn: 67082
-
- Mar 13, 2009
-
-
Owen Anderson authored
llvm-svn: 66870
-
- Mar 11, 2009
-
-
Owen Anderson authored
Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. No (intended) functionality change. llvm-svn: 66720
-
- Jan 20, 2009
-
-
Evan Cheng authored
llvm-svn: 62600
-
- Jan 08, 2009
-
-
Misha Brukman authored
* Removed trailing whitespace llvm-svn: 61927
-
Misha Brukman authored
* Removed trailing whitespace llvm-svn: 61926
-
- Nov 19, 2008
-
-
Argyrios Kyrtzidis authored
llvm-svn: 59629
-
- Nov 16, 2008
-
-
Lang Hames authored
llvm-svn: 59414
-
- Nov 14, 2008
-
-
Lang Hames authored
llvm-svn: 59293
-
- Oct 14, 2008
-
-
Dan Gohman authored
instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. llvm-svn: 57521
-
- Oct 03, 2008
-
-
Evan Cheng authored
llvm-svn: 57018
-
Dan Gohman authored
isReg, etc., from isRegister, etc. llvm-svn: 57006
-
- Oct 02, 2008
-
-
Evan Cheng authored
Contributed by Lang Hames. llvm-svn: 56959
-