- 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
- 093e4c5 Fix PR4076. Correctly create live interval of physical register with two-address update. by Evan Cheng · 17 years ago
- 0f85bd3 Fix PR4056. It's possible a physical register def is dead if its implicit use is deleted by two-address pass. by Evan Cheng · 17 years ago
- 1a99a5f It has finally happened. Spiller is now using live interval info. 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
- 1d50407 Don't abort on an aliasing physical register that does not have by Dan Gohman · 17 years ago
- 5185617 Fix pr3954. The register scavenger asserts for inline assembly with by Bob Wilson · 17 years ago
- ad3e549 Implement support for using modeling implicit-zero-extension on x86-64 by Dan Gohman · 17 years ago
- 76a561f Don't assign a new stack slot if the pre-alloc splitter already assigned one. by Owen Anderson · 17 years ago
- f858466 Fix PR3391 and PR3864. Reg allocator infinite looping. by Evan Cheng · 17 years ago
- 968c3b0 Model inline asm constraint which ties an input to an output register as machine operand TIED_TO constraint. This eliminated the need to pre-allocate registers for these. This also allows register allocator can eliminate the unneeded copies. by Evan Cheng · 17 years ago
- 8d5baa0 Fix the Win32 VS2008 build: by Sebastian Redl · 17 years ago
- 1361cbb Added MachineInstr::isRegTiedToDefOperand to check for two-addressness. by Evan Cheng · 17 years ago
- f0bfc6a Fix how livein live intervals are handled. Previously it could end at MBB start. Sorry, no small test case possible. by Evan Cheng · 17 years ago
- b378363 Fix PR3486. Fix a bug in code that manually patch physical register live interval after its sub-register is coalesced with a virtual register. by Evan Cheng · 17 years ago
- 76a2736 Exit with nice warnings when register allocator run out of registers. by Evan Cheng · 17 years ago
- c544cb0 Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. by Evan Cheng · 17 years ago
- f6768bd The coalescer does not coalesce a virtual register to a physical register if any of the physical register's sub-register live intervals overlaps with the virtual register. This is overly conservative. It prevents a extract_subreg from being coalesced away: by Evan Cheng · 17 years ago
- 0869f78 Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. by Evan Cheng · 17 years ago
- 9de2ac8 Clarify some comments. by Dan Gohman · 17 years ago
- 43c0891 Reason #3 from 60595 doesn't hold true. If we can fold a PIC load from constpool into a use, the rewrite happens at time of spill (not in VirtRegMap). Later on, if the GlobalBaseReg is spilled, the spiller can see the use uses GlobalBaseReg and do the right thing. by Evan Cheng · 17 years ago
- 994faaf Fix comment. by Evan Cheng · 17 years ago
- d24be45 Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant. by Dan Gohman · 17 years ago
- 69cc2cb Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning. by Dan Gohman · 17 years ago
- 3336b1f LiveRanges are represented as half-open ranges. Fix the findLiveInMBBs code by Dan Gohman · 17 years ago
- cb181bb Silence unused variable warnings. by Devang Patel · 17 years ago
- 8fed4ce Use find_first/find_next to iterate through all the set bits in a by Dan Gohman · 17 years ago
- 5efcb61 Remove some debugging code made redundant by the change to do by Dan Gohman · 17 years ago
- 938e201 - Rewrite code that update register live interval that's split. by Evan Cheng · 17 years ago
- b00b267 by David Greene · 17 years ago
- 4bac4d0 Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now). by Evan Cheng · 17 years ago
- 2dadd3b By min, I mean max. by Evan Cheng · 17 years ago
- ac4e70d When creating intervals, leave min(1, numdefs) holes after each instruction. by Evan Cheng · 17 years ago
- 1d338fc Add an option to enable StrongPHIElimination, for ease of testing. by Owen Anderson · 17 years ago
- 0d1e9a8 Switch the MachineOperand accessors back to the short names like by Dan Gohman · 17 years ago
- f4a3640 Fix a simple error in renumbering kill markaers, that took an inordinant amount of time to track down. 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
- df8f1cb Fetch the starting index of the block when assigning intervals. This gets live-in indices by Owen Anderson · 17 years ago
- e519bd4 Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis by Dale Johannesen · 17 years ago
- f8610eb Add a bit to mark operands of asm's that conflict by Dale Johannesen · 17 years ago
- 82ab1e7 Live intervals for live-in registers should begin at the beginning of a basic block, not at the first by Owen Anderson · 17 years ago
- 38453ee Remove isImm(), isReg(), and friends, in favor of by Dan Gohman · 17 years ago
- 2a45877 Allow the fast-path spilling code to attempt folding, but still leaving out remat and splitting. by Owen Anderson · 17 years ago
- c75ae13 The fast-path still needs to set kill markers and spill/restore points as appropriate. by Owen Anderson · 17 years ago
- 442dc6f Add a flag to enable the fast spilling path. by Owen Anderson · 17 years ago
- a57c570 Fix a few more bugs: by Owen Anderson · 17 years ago
- 60f6b2c Fix several bugs in the new fast-path: by Owen Anderson · 17 years ago
- e996a12 Clients of addIntervalForSpills expect the added intervals to be returned sorted by starting index. by Owen Anderson · 17 years ago
- 75e27d2 Simplify the fast-patch interval spilling by using MachineRegisterInfo::reg_iterator. by Owen Anderson · 17 years ago
- cc9314b Resurrect some ancient code to add spill ranges without attempting folding, remat, or splitting. This code has been updated to current APIs by Owen Anderson · 17 years ago
- 706f6b7 Expunge the last uses of std::map from LiveIntervals. by Owen Anderson · 17 years ago
- 767b5cc Move r2iMap_ over to DenseMap from 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
- d184929 Oops, didn't mean to commit this. by Owen Anderson · 17 years ago
- 03dddbb Only remap each VNInfo once when doing renumbering. by Owen Anderson · 17 years ago
- 7b5f535 Value numbers whose def index is a special sentinel value should not be remapped. by Owen Anderson · 17 years ago
- e9a0bae More fixes for corner cases when remapping live range indices. by Owen Anderson · 17 years ago
- 2532e75 Don't decrement the BB remap when we don't need to. by Owen Anderson · 17 years ago
- 804c95d Fold the useful features of alist and alist_node into ilist, and by Dan Gohman · 17 years ago
- 24b3ce1 Fix a typo in a comment. by Dan Gohman · 17 years ago
- 7a45b16 Revert my previous patch. In retrospect, this is completely the wrong way to fix this problem. by Owen Anderson · 17 years ago
- 074f9db Special cases are needed in renumbering when dealing with renumbering after a PHI has been removed. The interval previously defined by Owen Anderson · 17 years ago
- 88499a3 Properly remap live ranges whose end indices are the end of the function. by Owen Anderson · 17 years ago
- c7d53fd Make the remapping of interval indices (particularly ending indices) more robust. by Owen Anderson · 17 years ago
- 394ec3a Disable the new aggressive remat logic introduced in 54000; it causes some by Dan Gohman · 17 years ago
- 09b0448 Enable rematerialization of constants using AliasAnalysis::pointsToConstantMemory, by Dan Gohman · 17 years ago
- 50d393a Enable the insertion of empty indices into LiveInterals, thereby making renumbering possible. 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
- a7a20c4 Fix a memory leak in LiveIntervalAnalysis. by Evan Cheng · 17 years ago
- 0ece943 Re-introduce LeakDetector support for MachineInstrs and MachineBasicBlocks. by Dan Gohman · 17 years ago
- 2b3c52d Typos. by Evan Cheng · 17 years ago
- e0a352e Fix PR2536: a nasty spiller bug. If a two-address instruction uses a register but the use portion of its live range is not part of its liveinterval, it must be defined by an implicit_def. In that case, do not spill the use. e.g. by Evan Cheng · 17 years ago
- e9ba28d - Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. by Evan Cheng · 17 years ago
- 3b46030 Pool-allocation for MachineInstrs, MachineBasicBlocks, and by Dan Gohman · 17 years ago
- 7d98a48 - Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. by Evan Cheng · 17 years ago
- b55675e Remember which MachineOperand we were processing, so we don't have to scan the list to find it again later. by Owen Anderson · 17 years ago
- f593a65 Undo spill weight tweak. Need to investigate the performance regressions. by Evan Cheng · 17 years ago
- 3c4ccc8 Revert my last patch, which was causing regression test failures. by Owen Anderson · 17 years ago
- 55bc8486 Minor spiller tweak to unfavor reload into load/store instructions. by Evan Cheng · 17 years ago
- 80ef880 Insert empty slots into the instruction numbering in live intervals, so that we can more easily by Owen Anderson · 17 years ago
- f873ed1 Live-through live interval is [mbb start, mbb end+1]. by Evan Cheng · 17 years ago
- 476e91a Remove special case handling of empty MBBs now that we assign indices to them. by Owen Anderson · 17 years ago
- 773b2d3 Re-enable empty block indexing by default, since it doesn't seem to have any by Owen Anderson · 17 years ago
- e546c55 Make indexing empty basic blocks an option for the moment. by Owen Anderson · 17 years ago
- d813091 Assign indices to empty basic blocks. This will be necessary for StrongPHIElimination in the near future. by Owen Anderson · 17 years ago
- 6d7a144 Refine stack slot interval weight computation. by Evan Cheng · 17 years ago
- 35e2dfe Add a helper for constructing new live ranges that ended from an instruction to the end of its MBB. by Owen Anderson · 17 years ago
- 12a0222 Add a stack slot coloring pass. Not yet enabled. by Evan Cheng · 17 years ago
- 0908dec Correctly handle removed instructions at the beginning of MBBs when renumbering. by Owen Anderson · 17 years ago
- 82fc4cd Make the renumbering correct in the face of deleted instructions that have been removed from the LiveIntervals maps. by Owen Anderson · 17 years ago
- bf5b228 Remove <iostream>. by Bill Wendling · 17 years ago
- d95dcd1 Revert part of my last patch that I didn't intend to commit yet. by Owen Anderson · 17 years ago
- 0178e95 Renumbering needs to account for instruction slot offsets when performing lookups in the index maps. by Owen Anderson · 17 years ago
- 779b418 Remap VNInfo data as well when doing renumbering. by Owen Anderson · 17 years ago
- 4f8e1ad Factor the numbering computation into a separate method, and add the slightest attempt at some renumbering logic, which is currently unused. by Owen Anderson · 17 years ago
- 7c0db62 Revert 51440 as it breaks a bunch of PIC tests. by Evan Cheng · 17 years ago