- Nov 12, 2010
-
-
Lang Hames authored
llvm-svn: 118883
-
- Oct 19, 2010
-
-
Owen Anderson authored
Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize the pass's dependencies. Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h before parsing commandline arguments. I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass registration/creation, please send the testcase to me directly. llvm-svn: 116820
-
- Oct 04, 2010
-
-
Lang Hames authored
Removed the older style (in-allocator) problem construction system from the PBQP allocator. Problem construction is now done exclusively with the new builders. llvm-svn: 115502
-
- Sep 25, 2010
-
-
Lang Hames authored
Removed VNInfo::isDefAccurate(). Def "accuracy" can be checked by testing whether LiveIntervals::getInstructionFromIndex(def) returns NULL. llvm-svn: 114791
-
- Sep 23, 2010
-
-
Lang Hames authored
Moved the PBQP allocator class out of the header and back in to the cpp file to hide the gory details. Allocator instances can now be created by calling createPBQPRegisterAllocator. Tidied up use of CoalescerPair as per Jakob's suggestions. Made the new PBQPBuilder based construction process the default. The internal construction process remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new process doesn't cause any regressions. llvm-svn: 114626
-
- Sep 21, 2010
-
-
Lang Hames authored
llvm-svn: 114431
-
Lang Hames authored
Added an additional PBQP problem builder which adds coalescing costs (both between pairs of virtuals, and between virtuals and physicals). llvm-svn: 114429
-
- Sep 18, 2010
-
-
Benjamin Kramer authored
llvm-svn: 114284
-
Lang Hames authored
llvm-svn: 114273
-
Lang Hames authored
Added a separate class (PBQPBuilder) for PBQP Problem construction. This class can be extended to support custom constraints. For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming no issues with the builder system come up. To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor. llvm-svn: 114272
-
- Sep 02, 2010
-
-
Lang Hames authored
Added support for register allocators to record which intervals are spill intervals, and where the uses and defs of the original intervals were in the original code. Spill intervals can be hidden using the "-rmf-intervals=virt-nospills*" option. llvm-svn: 112811
-
- Sep 01, 2010
-
-
Jim Grosbach authored
llvm-svn: 112742
-
- Aug 06, 2010
-
-
Owen Anderson authored
llvm-svn: 110460
-
Owen Anderson authored
llvm-svn: 110410
-
Owen Anderson authored
ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
-
- Jul 20, 2010
-
-
Lang Hames authored
Updated renderer to use allocation information from VirtRegMap (if available) to render spilled intervals differently. llvm-svn: 108815
-
- Jul 19, 2010
-
-
Lang Hames authored
pressure estimates and liveness alongside. Still experimental. llvm-svn: 108698
-
- Jul 18, 2010
-
-
Lang Hames authored
LoopSplitter be run prior to register allocation. Entirely for testing purposes at the moment. llvm-svn: 108634
-
- Jul 17, 2010
-
-
Lang Hames authored
any command line paramater changed the register allocation produced by PBQP. Turns out variety is not the spice of life. Fixed some comparators, added others. All good now. llvm-svn: 108613
-
- Jul 16, 2010
-
-
Jakob Stoklund Olesen authored
TII::isMoveInstr is going tobe completely removed. llvm-svn: 108507
-
- Jul 12, 2010
-
-
Rafael Espindola authored
physical register can be allocated in the class of the virtual are sufficient. I think that the test for virtual registers is more strict than it needs to be, it should be possible to coalesce two virtual registers the class of one is a subclass of the other. llvm-svn: 108118
-
- May 15, 2010
-
-
Chris Lattner authored
patch by Evzen Muller! llvm-svn: 103876
-
- Feb 18, 2010
-
-
Duncan Sands authored
out by Russell Wallace. llvm-svn: 96579
-
- Feb 17, 2010
-
-
Lang Hames authored
Removed an early out which was causing the PBQP allocator to not compute live-in sets or run the rewriter. llvm-svn: 96450
-
- Feb 09, 2010
-
-
Lang Hames authored
Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with. llvm-svn: 95636
-
- Jan 26, 2010
-
-
Lang Hames authored
* Fixed a reduction bug which occasionally led to infinite-cost (invalid) register allocation solutions despite the existence finite-cost solutions. * Significantly reduced memory usage (>50% reduction). * Simplified a lot of the solver code. llvm-svn: 94514
-
- Jan 05, 2010
-
-
David Greene authored
llvm-svn: 92586
-
- Dec 14, 2009
-
-
Lang Hames authored
Moved spill weight calculation out of SimpleRegisterCoalescing and into its own pass: CalculateSpillWeights. llvm-svn: 91273
-
- Nov 15, 2009
-
-
Lang Hames authored
Added an assert to the PBQP allocator to catch infinite cost solutions which might otherwise lead to miscompilations. llvm-svn: 88829
-
- 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
-