- 857c4e0 VNInfo cleanup. by Lang Hames · 15 years ago
- 7b11365 Rename RemoveCopiesFromValNo to TurnCopiesFromValNoToImpDefs. by Evan Cheng · 15 years ago
- 67fcf56 If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead. by Evan Cheng · 15 years ago
- 358dec5 Part 1. by Evan Cheng · 15 years ago
- 90f95f8 Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. by Evan Cheng · 15 years ago
- f41538d Update to in-place spilling framework. Includes live interval scaling and trivial rewriter. by Lang Hames · 15 years ago
- 9c992f1 Fixed PR4090. by Lang Hames · 16 years ago
- 3a155f0 Join cross class copies using getCommonSubClass() by Jakob Stoklund Olesen · 16 years ago
- 0490dcb Add a smarter heuristic to determine when to coalesce a virtual register with a physical one. More specifically, it avoid tying a virtual register in the loop with a physical register defined / used outside the loop. When it determines it's not profitable, it will use the physical register as the allocation preference instead. by Evan Cheng · 16 years ago
- 8a8a0df Move getMatchingSuperReg() out of coalescer and into TargetRegisterInfo. by Evan Cheng · 16 years ago
- 08e791f Don't coalesce a physical register with an incompatible virtual register. by Jakob Stoklund Olesen · 16 years ago
- 82fd3f3 Don't skip the CopyMI when removing kill markers. by Owen Anderson · 16 years ago
- aa809fb Update comments. by Evan Cheng · 16 years ago
- c2cee14 Fix an obvious type. by Evan Cheng · 16 years ago
- 97121ba Implement support for using modeling implicit-zero-extension on x86-64 by Dan Gohman · 16 years ago
- 430d423 Fix grammar-o in comment. by Bill Wendling · 16 years ago
- a597a97 My last coalescer fix introduced a subtler one. It's aborting a commuting optimization too late and left the live intervals to be out of sync with instructions. This fixes 8b10b. by Evan Cheng · 16 years ago
- a2e6435 Two coalescer fixes in one. by Evan Cheng · 16 years ago
- 58207f1 If a use operand is marked isKill, don't forget to add kill to its live interval as well. by Evan Cheng · 16 years ago
- 190424e Fix another case ShortenDeadCopySrcLiveRange is shortening too much. No test case possible since I don't know what to grep for. :-( by Evan Cheng · 16 years ago
- 0a1fcce 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 · 16 years ago
- 86fb9fd Strengthen the previous check. by Evan Cheng · 16 years ago
- f18134a r64073 commit message is lost. Here it is: by Evan Cheng · 16 years ago
- 77fde2c by Evan Cheng · 16 years ago
- 54801f78 isAsCheapAsMove instructions can have register src operands. Check if they are really re-materializable. by Evan Cheng · 16 years ago
- 961154f ReMaterializeTrivialDef need to trim the live interval to the last kill if the copy kills the source register. This fixes uint64tof64.ll after ARM::MOVi is marked as isAsCheapAsAMove. by Evan Cheng · 16 years ago
- 6792e90 Skip over zero registers. by Evan Cheng · 16 years ago
- c16d37e Only check if coalescing is worthwhile when the result is targeting a more restrictive register class. by Evan Cheng · 16 years ago
- 8c08d8c Cross register class coalescing. Not yet enabled. by Evan Cheng · 16 years ago
- 04ee5a1 Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. by Evan Cheng · 16 years ago
- e08eb9c Refactor code. No functionality change. by Evan Cheng · 16 years ago
- fd246e5 Use assertions to check for conditions that should never happen. by Dan Gohman · 16 years ago
- 167650d Un-tabify. by Evan Cheng · 16 years ago
- 1d8a76d FIX llvm-gcc bootstrap on x86_64 linux. If a virtual register is copied to a physical register, it's not necessarily defined by a copy. We have to watch out it doesn't clobber any sub-register that might be live during its live interval. If the live interval crosses a basic block, then it's not safe to check with the less conservative check (by scanning uses and defs) because it's possible a sub-register might be live out of the block. by Evan Cheng · 16 years ago
- 8f90b6e 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 · 16 years ago
- 8a84e44 by Devang Patel · 16 years ago
- 5379f41 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 · 16 years ago
- bebbded Perform this loop only when the -debug flag is specified. by Bill Wendling · 16 years ago
- b3990d5 Remove val# defined by a remat'ed def that is now dead. by Evan Cheng · 16 years ago
- 3afda6e When the coalescer is doing rematerializing, have it remove by Dan Gohman · 16 years ago
- 195cd3a Also update sub-register intervals after a trivial computation is rematt'ed for a copy instruction. PR2775. by Evan Cheng · 16 years ago
- 99cbdff fix typo by Chris Lattner · 16 years ago
- 95dad83 Add an option to enable StrongPHIElimination, for ease of testing. by Owen Anderson · 16 years ago
- d735b80 Switch the MachineOperand accessors back to the short names like by Dan Gohman · 16 years ago
- dc37786 Re-apply 56835 along with header file changes. by Evan Cheng · 16 years ago
- 46292be Revert commit 56835 since it breaks the build. by Duncan Sands · 16 years ago
- d41474d 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 · 16 years ago
- 86b49f8 Next round of earlyclobber handling. Approach the by Dale Johannesen · 16 years ago
- bbeeb2a Mark several codegen passes as preserving all analysis. by Evan Cheng · 16 years ago
- 34d8f75 Teach coalescer about earlyclobber bits. Check bits for preferred register. by Dale Johannesen · 16 years ago
- fee2d69 Continue after removing the current MI. by Evan Cheng · 16 years ago
- 20580a1 Re-materalized definition instructions may be dead. Whack them. by Evan Cheng · 16 years ago
- 870e4be Unallocatable registers do not have live intervals. by Evan Cheng · 16 years ago
- 25f34a3 Correctly update kill infos after extending a live range and merge 2 val#'s; fix 56165 - do not mark val# copy field if the copy does not define the val#. by Evan Cheng · 16 years ago
- 014278e Remove isImm(), isReg(), and friends, in favor of by Dan Gohman · 16 years ago
- ee9e1b0 On some targets, non-move instructions can become move instructions because of coalescing. e.g. by Evan Cheng · 16 years ago
- 8db8668 Fix PR2748. Avoid coalescing physical register with virtual register which would create illegal extract_subreg. e.g. by Evan Cheng · 16 years ago
- 4086906 Fix PR2783 - coalescer bug. Missing a TargetRegisterInfo::isVirtualRegister check. by Evan Cheng · 16 years ago
- 369e987 Fix a bug in the coalescer where it didn't check if a live interval existed before trying to manipulate it. This by Owen Anderson · 16 years ago
- 8ec3389 Fix typo. by Evan Cheng · 16 years ago
- 3ef2d60 Clear preference when it no longer makes sense. by Evan Cheng · 16 years ago
- cd04708 Re-apply 55467 with fix. If copy is being replaced by remat'ed def, transfer the implicit defs onto the remat'ed instruction. by Evan Cheng · 16 years ago
- f641395 Revert r55467; it causes regressions in UnitTests/Vector/divides, by Dan Gohman · 16 years ago
- 9242cb8 If a copy isn't coalesced, but its src is defined by trivial computation. Re-materialize the src to replace the copy. by Evan Cheng · 16 years ago
- 44eb65c Convert uses of std::vector in TargetInstrInfo to SmallVector. This change had to be propoagated down into all the targets and up into all clients of this API. by Owen Anderson · 16 years ago
- a8c763b Use empty() instead of begin() == end(). by Dan Gohman · 16 years ago
- 03857b2 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 · 16 years ago
- 4fa393a Remove #if 0. by Evan Cheng · 16 years ago
- 068b4ff Fix PR2568: Fix bug that cause redudant kill marker after its live interval has been extended due to coalescing. by Evan Cheng · 16 years ago
- 496bac5 Fix a compile-time regression introduced by my heuristic-changing patch. I forgot by Owen Anderson · 16 years ago
- a1566f2 Change the heuristics used in the coalescer, register allocator, and within by Owen Anderson · 16 years ago
- 76a4d58 Subreg live interval valno may not have a corresponding def machineinstr since it's less precise. by Evan Cheng · 16 years ago
- b3db9c9 Use getMBBEndIdx rather than assuming that the end is right after the last instruction in the block. by Owen Anderson · 16 years ago
- c341760 Undo spill weight tweak. Need to investigate the performance regressions. by Evan Cheng · 16 years ago
- e00f5de Coalesce copy from one register class to a sub register class. e.g. X86::MOV16to16_. by Evan Cheng · 16 years ago
- 739583b When extending a liveinterval by commuting, don't throw away the live ranges that are not affected. by Evan Cheng · 16 years ago
- dbb8137 The coalescer doesn't need LiveVariables now that we have register use iterators. by Owen Anderson · 16 years ago
- d77d4f9 Fix PR2289: vr defined by multiple implicit_def as result of coalescing. by Evan Cheng · 16 years ago
- f4ea510 Fix PR2343. An *interesting* coalescer bug. by Evan Cheng · 16 years ago
- 6ddba2b Change class' public PassInfo variables to by initialized with the by Dan Gohman · 16 years ago
- 844731a Clean up the use of static and anonymous namespaces. This turned up by Dan Gohman · 16 years ago
- 8509fcf Another extract_subreg coalescing bug. by Evan Cheng · 17 years ago
- a971dbd - Check if a register is livein before removing it. It may have already been removed. by Evan Cheng · 17 years ago
- a8f720d Correct comment. by Evan Cheng · 17 years ago
- 883d260 Not safe to "kill" a register if its live range extends pass the end of block branch. by Evan Cheng · 17 years ago
- 639f493 Be more careful with insert_subreg and extract_subreg where either source or destination operand has already been coalesced with another register that's defined by a insert_subreg or extract_subreg. by Evan Cheng · 17 years ago
- f231778 Use correct name for method in comment. by Bill Wendling · 17 years ago
- 621d157 Fix a sub-register indice propagation bug. by Evan Cheng · 17 years ago
- 9c1e06e After reading memory that's already freed. by Evan Cheng · 17 years ago
- ff7a3e5 Fix PR2226. Avoid using uninitialized variables. by Evan Cheng · 17 years ago
- d94950c Avoid read after free. by Evan Cheng · 17 years ago
- d2012d0 Remove implicit_def instructions that become dead as result of coalescing. by Evan Cheng · 17 years ago
- 172b70c A copy instruction may use a register multiple times on some targets. Change them all. by Evan Cheng · 17 years ago
- 7e073ba - More aggressively coalescing away copies whose source is defined by an implicit_def. by Evan Cheng · 17 years ago
- f20d943 Missed a hasInterval check. by Evan Cheng · 17 years ago
- db9b1c3 - Turn copies of implicit_def into implicit_def instructions. by Evan Cheng · 17 years ago
- 0c28432 One more coalescer fix wrt deadness propagation. by Evan Cheng · 17 years ago
- ed70cbb3 Avoid commuting a def MI in order to coalesce a copy instruction away if any use of the same val# is a copy instruction that has already been coalesced. by Evan Cheng · 17 years ago
- a2fb634 lastRegisterUse() should ignore identity copies. Those will be erased. by Evan Cheng · 17 years ago
- 6f83fc8 If the coalescer commuted a def MI to allow coalescing, it can changed a previously coalesced copy into an non-identity copy. by Evan Cheng · 17 years ago