- 63a8eaf Tweak to ignoring reserved regs. The allocator was occasionally still looking by Jim Grosbach · 15 years ago
- d5e72a1 tidy up trailing whitespace and an 80 column violation. by Jim Grosbach · 15 years ago
- 9dce314 cleanup per feedback. use a helper function for getting the first non-reserved by Jim Grosbach · 15 years ago
- 5ccf18c The register allocator shouldn't consider allocating reserved registers. by Jim Grosbach · 15 years ago
- 27e1f26 Clean up the Spiller.h interface. by Jakob Stoklund Olesen · 15 years ago
- a7aed18 Reapply r110396, with fixes to appease the Linux buildbot gods. by Owen Anderson · 15 years ago
- bda59bd Revert r110396 to fix buildbots. by Owen Anderson · 15 years ago
- 755aceb Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static by Owen Anderson · 15 years ago
- 7383cf0 Grammar by Jim Grosbach · 15 years ago
- a57b97e Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). by Owen Anderson · 15 years ago
- 0fef9dd Change the createSpiller interface to take a MachineFunctionPass argument. by Jakob Stoklund Olesen · 15 years ago
- a58a7e7 Spillers may alter MachineLoopInfo when breaking critical edges, so make it by Jakob Stoklund Olesen · 15 years ago
- 37c42a3 Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway. by Jakob Stoklund Olesen · 15 years ago
- 0026462 Convert EXTRACT_SUBREG to COPY when emitting machine instrs. by Jakob Stoklund Olesen · 15 years ago
- 5e54160 80-col fixup. by Eric Christopher · 15 years ago
- 2b87d44c Don't return a std::vector in the Spiller interface, but take a reference to a by Jakob Stoklund Olesen · 15 years ago
- 93cd0f1c improve portability to systems that don't have powf/modf (e.g. solaris 9) by Chris Lattner · 15 years ago
- 2104b8d rename llvm::llvm_report_error -> llvm::report_fatal_error by Chris Lattner · 16 years ago
- 3917008 Remove dead code by Jakob Stoklund Olesen · 16 years ago
- 025e934 Change errs() to dbgs(). by David Greene · 16 years ago
- 740ab38 Fix a bunch of little errors that Clang complains about when its being pedantic by Douglas Gregor · 16 years ago
- d17e296 Moved spill weight calculation out of SimpleRegisterCoalescing and into its own pass: CalculateSpillWeights. by Lang Hames · 16 years ago
- 497161c Also attempt trivial coalescing for live intervals that end in a copy. by Jakob Stoklund Olesen · 16 years ago
- 1ab2b49 Added a new "splitting" spiller. by Lang Hames · 16 years ago
- f899862 Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail. by Bill Wendling · 16 years ago
- ca9cf65 Also attempt trivial coalescing for live intervals that end in a copy. by Jakob Stoklund Olesen · 16 years ago
- f46c37c by David Greene · 16 years ago
- c6e4345 Removed references to LiveStacks from Spiller.* . They're no longer needed. by Lang Hames · 16 years ago
- 50909c0 by David Greene · 16 years ago
- f37756d by David Greene · 16 years ago
- 6912be4 Added a new Spiller implementation which wraps LiveIntervals::addIntervalsForSpills. by Lang Hames · 16 years ago
- 05fb963 The Indexes Patch. by Lang Hames · 16 years ago
- 974e12b Remove includes of Support/Compiler.h that are no longer needed after the by Nick Lewycky · 16 years ago
- 02d5f77 Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. by Nick Lewycky · 16 years ago
- 920301e Renamed MachineInstrIndex to LiveIndex. by Lang Hames · 16 years ago
- e603710 Simplify a few more uses of reg_iterator. by Dan Gohman · 16 years ago
- 3fffe62 Replaces uses of unsigned for indexes in LiveInterval and VNInfo with by Lang Hames · 16 years ago
- 1a25d73 Kill off more cerr/cout uses and prune includes a bit. by Benjamin Kramer · 16 years ago
- cddba73 Convert DOUT to DEBUG(errs()...). by Bill Wendling · 16 years ago
- 0402315 Use setPreservesAll and setPreservesCFG in CodeGen passes. by Dan Gohman · 16 years ago
- 0dd5e1e More migration to raw_ostream, the water has dried up around the iostream hole. by Daniel Dunbar · 16 years ago
- fbcc663 llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. by Torok Edwin · 16 years ago
- 43edca2 Removed some junk code that snuck in to an earlier commit. by Lang Hames · 16 years ago
- ccb29cd Convert more assert(0)+abort() -> LLVM_UNREACHABLE, by Torok Edwin · 16 years ago
- d379e89 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. by Evan Cheng · 16 years ago
- 0dc101b 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. by Evan Cheng · 16 years ago
- 0e79603 - Update register allocation hint after coalescing. This is done by the target since the hint is target dependent. This is important for ARM register pair hints. by Evan Cheng · 16 years ago
- 16cab19 VNInfo cleanup. by Lang Hames · 16 years ago
- 1283c6a Part 1. by Evan Cheng · 16 years ago
- 085caf1 Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. by Evan Cheng · 16 years ago
- fa0ac19 RALinScan::attemptTrivialCoalescing() was returning a virtual register instead of the physical register it is allocated to. This resulted in virtual register(s) being added the live-in sets. by Evan Cheng · 16 years ago
- 9ff058b A value defined by an implicit_def can be liven to a use BB. This is unfortunate. But register allocator still has to add it to the live-in set of the use BB. by Evan Cheng · 16 years ago
- aba72ed Remove a #include of <iostream>. by Dan Gohman · 16 years ago
- bb01ed9 Removed more testing code that snuck in earlier. by Lang Hames · 16 years ago
- 1dcd70c Fixed warning, removed some temporary validation code that snuck in during my last commit. by Lang Hames · 16 years ago
- fc968ef Update to in-place spilling framework. Includes live interval scaling and trivial rewriter. by Lang Hames · 16 years ago
- cf47d01 New Spiller interface and trivial implementation. by Lang Hames · 16 years ago
- df1aeee Teach TransferDeadness to delete truly dead instructions if they do not produce side effects. by Evan Cheng · 16 years ago
- ab68cf2 Renamed Spiller classes (plus uses and related files) to VirtRegRewriter. by Lang Hames · 17 years ago
- 210fc62 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. by Evan Cheng · 17 years ago
- f8949a6 Code clean up. Bye bye PhysRegTracker. by Evan Cheng · 17 years ago
- 9cce299 spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in fixed_ IntervalPtrs. Reset them. by Evan Cheng · 17 years ago
- cfb4cae Determine allocation 'preference' with right register class. I haven't seen this changing codegen so no test case. by Evan Cheng · 17 years ago
- 1a99a5f It has finally happened. Spiller is now using live interval info. by Evan Cheng · 17 years ago
- 5dd2e29 - Remove an arbitrary spill weight tweak that should not have been there. by Evan Cheng · 17 years ago
- d67efaa Added a linearscan register allocation optimization. When the register allocator spill an interval with multiple uses in the same basic block, it creates a different virtual register for each of the reloads. e.g. by Evan Cheng · 17 years ago
- 7fe1b0f Fix a bug in spill weight computation. If the alias is a super-register, and the super-register is in the register class we are trying to allocate. Then add the weight to all sub-registers of the super-register even if they are not aliases. by Evan Cheng · 17 years ago
- f858466 Fix PR3391 and PR3864. Reg allocator infinite looping. by Evan Cheng · 17 years ago
- d37ddf5 Convert VirtRegMap to a MachineFunctionPass. by Owen Anderson · 17 years ago
- aabe06d Reorganization: Move the Spiller out of VirtRegMap.cpp into its own files. No (intended) functionality change. by Owen Anderson · 17 years ago
- c544cb0 Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. by Evan Cheng · 17 years ago
- 8f79775 Make linear scan's trivial coalescer slightly more aggressive. by Evan Cheng · 17 years ago
- 906152a Tidy up #includes, deleting a bunch of unnecessary #includes. by Dan Gohman · 17 years ago
- ce3ccc1 - More pre-split fixes: spill slot live interval computation bug; restore point bug. by Evan Cheng · 17 years ago
- 938e201 - Rewrite code that update register live interval that's split. by Evan Cheng · 17 years ago
- d0d0317 Committing a good chunk of the pre-register allocation live interval splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible. by Evan Cheng · 17 years ago
- 9c4b7d5 Fix command-line option printing to print two spaces where needed, by Dan Gohman · 17 years ago
- 1d338fc Add an option to enable StrongPHIElimination, for ease of testing. by Owen Anderson · 17 years ago
- 9156bd2 Re-apply 56835 along with header file changes. by Evan Cheng · 17 years ago
- 2b9adce Revert commit 56835 since it breaks the build. by Duncan Sands · 17 years ago
- 9469049 If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it. by Evan Cheng · 17 years ago
- c36660d Next round of earlyclobber handling. Approach the by Dale Johannesen · 17 years ago
- 9af7b3d Teach coalescer about earlyclobber bits. Check bits for preferred register. by Dale Johannesen · 17 years ago
- c042000 Fix PR2808. When regalloc runs out of register, it spill a physical register around the live interval being allocated. Do not continue to try to spill another register, just grab the physical register and move on. by Evan Cheng · 17 years ago
- 436aae6 Make earlyclobber stuff work when virtual regs by Dale Johannesen · 17 years ago
- e519bd4 Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis by Dale Johannesen · 17 years ago
- 3d9416c Somehow RegAllocLinearScan is keeping two pointers to MachineRegisterInfo. by Evan Cheng · 17 years ago
- f8610eb Add a bit to mark operands of asm's that conflict by Dale Johannesen · 17 years ago
- 53b728c Fix PR2757. Ignore liveinterval register allocation preference if the preference register is not in the right register class. This can happen due to sub-register coalescing. by Evan Cheng · 17 years ago
- a79db30 Tidy up several unbeseeming casts from pointer to intptr_t. by Dan Gohman · 17 years ago
- d669b9b Convert several std::vectors over to SmallVector, and use reserve() as appropriate for cases where std::vector is still used. by Owen Anderson · 17 years ago
- 99e911f Get rid of a use of std::map. by Owen Anderson · 17 years ago
- 51f689a Make the allocation of LiveIntervals explicit, rather than holding them in the r2iMap_ by value. This will prevent references to them from being invalidated by Owen Anderson · 17 years ago
- 7c800ad Fix a compile-time regression introduced by my heuristic-changing patch. I forgot by Owen Anderson · 17 years ago
- 029182f Change the heuristics used in the coalescer, register allocator, and within by Owen Anderson · 17 years ago
- 9cc3f68 A brief survey of priority_queue usage in the tree turned this up by Dan Gohman · 17 years ago
- efc67e7 Enhanced heuristic to determine the *best* register to spill. Instead of picking the register with the lowest spill weight. Consider (up to) 2 additional registers with spill weights that are close to the lowest spill weight. The one with fewest defs and uses that conflicts with the current interval (weighted by loop depth) is the spill candidate. by Evan Cheng · 17 years ago
- 6d7a144 Refine stack slot interval weight computation. by Evan Cheng · 17 years ago
- 12a0222 Add a stack slot coloring pass. Not yet enabled. by Evan Cheng · 17 years ago
- 305d268 Do not add empty live intervals to handled_. They should never be undone for backtracking. by Evan Cheng · 18 years ago