summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/RegAllocPBQP.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Suppress build warning in -AssertsDaniel Dunbar2009-08-201-0/+1
| | | | llvm-svn: 79564
* Added an option to have the PBQP allocator attempt coalescing during allocation.Lang Hames2009-08-191-1/+10
| | | | llvm-svn: 79397
* Changes DOUT references in the PBQP allocator to use DEBUG(errs() ...)Lang Hames2009-08-181-11/+7
| | | | llvm-svn: 79378
* Added RegisterCoalescer to required passes for PBQP.Lang Hames2009-08-121-0/+1
| | | | llvm-svn: 78840
* Remove unnecessary throw() specifications; LLVM doesn't use exceptions.Dan Gohman2009-08-111-1/+1
| | | | llvm-svn: 78667
* Remove unnecessary casts.Dan Gohman2009-08-111-1/+1
| | | | llvm-svn: 78664
* Modified VNInfo. The "copy" member is now a union which holds the copy for a ↵Lang Hames2009-08-101-2/+2
| | | | | | register interval, or the defining register for a stack interval. Access is via getCopy/setCopy and getReg/setReg. llvm-svn: 78620
* Remove a bunch of debugging code that was slowing PBQP down by 25% or so.Owen Anderson2009-08-101-45/+0
| | | | llvm-svn: 78601
* Fix some -Asserts unused variable warnings.Daniel Dunbar2009-08-081-0/+1
| | | | llvm-svn: 78447
* New C++ PBQP solver. Currently about as fast (read _slow_) as the old C ↵Lang Hames2009-08-061-106/+178
| | | | | | based solver, but I'll be working to improve that. The PBQP allocator has been updated to use the new solver. llvm-svn: 78354
* Use setPreservesAll and setPreservesCFG in CodeGen passes.Dan Gohman2009-07-311-9/+10
| | | | llvm-svn: 77754
* More migration to raw_ostream, the water has dried up around the iostream hole.Daniel Dunbar2009-07-251-1/+3
| | | | | | | | | | - 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
* VNInfo cleanup.Lang Hames2009-06-171-1/+1
| | | | llvm-svn: 73634
* Move register allocation preference (or hint) from LiveInterval to ↵Evan Cheng2009-06-141-2/+1
| | | | | | MachineRegisterInfo. This allows more passes to set them. llvm-svn: 73346
* Untabification.Bill Wendling2009-05-301-1/+1
| | | | llvm-svn: 72604
* Prevented reg0 from being added to MBB live-in set, which was causing issuesLang Hames2009-05-171-0/+5
| | | | | | for PostRAScheduler. llvm-svn: 71991
* Renamed Spiller classes (plus uses and related files) to VirtRegRewriter.Lang Hames2009-05-061-4/+5
| | | | llvm-svn: 71057
* In some rare cases, the register allocator can spill registers but end up ↵Evan Cheng2009-05-031-9/+7
| | | | | | | | | | 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
* It has finally happened. Spiller is now using live interval info.Evan Cheng2009-04-211-1/+1
| | | | | | 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
* r66870 missed this out.Sanjiv Gupta2009-03-171-0/+1
| | | | llvm-svn: 67082
* Convert VirtRegMap to a MachineFunctionPass.Owen Anderson2009-03-131-2/+1
| | | | llvm-svn: 66870
* Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. ↵Owen Anderson2009-03-111-0/+1
| | | | | | No (intended) functionality change. llvm-svn: 66720
* Change TargetInstrInfo::isMoveInstr to return source and destination ↵Evan Cheng2009-01-201-2/+2
| | | | | | sub-register indices as well. llvm-svn: 62600
* * Moved author attribution to CREDITS.TXTMisha Brukman2009-01-081-4/+1
| | | | | | * Removed trailing whitespace llvm-svn: 61927
* * Alphabetized #includesMisha Brukman2009-01-081-56/+56
| | | | | | * Removed trailing whitespace llvm-svn: 61926
* Fix compilation error on MSVC.Argyrios Kyrtzidis2008-11-191-1/+1
| | | | llvm-svn: 59629
* Big PBQP allocator update. Adds coalescing support, stack slot coloring, ↵Lang Hames2008-11-161-139/+478
| | | | | | several bug-fixes. llvm-svn: 59414
* Test commit.Lang Hames2008-11-141-0/+1
| | | | llvm-svn: 59293
* Fix command-line option printing to print two spaces where needed,Dan Gohman2008-10-141-1/+1
| | | | | | | | | 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
* Fix typos pointed out by Duncan. Also untabify these files.Evan Cheng2008-10-031-4/+4
| | | | llvm-svn: 57018
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-031-1/+1
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* A Partitioned Boolean Quadratic Programming (PBQP) based register allocator.Evan Cheng2008-10-021-0/+529
Contributed by Lang Hames. llvm-svn: 56959
OpenPOWER on IntegriCloud