1. 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
  2. 358dec5 Part 1. by Evan Cheng · 15 years ago
  3. 90f95f8 Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. by Evan Cheng · 15 years ago
  4. f41538d Update to in-place spilling framework. Includes live interval scaling and trivial rewriter. by Lang Hames · 15 years ago
  5. 9c992f1 Fixed PR4090. by Lang Hames · 16 years ago
  6. 3a155f0 Join cross class copies using getCommonSubClass() by Jakob Stoklund Olesen · 16 years ago
  7. 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
  8. 8a8a0df Move getMatchingSuperReg() out of coalescer and into TargetRegisterInfo. by Evan Cheng · 16 years ago
  9. 08e791f Don't coalesce a physical register with an incompatible virtual register. by Jakob Stoklund Olesen · 16 years ago
  10. 82fd3f3 Don't skip the CopyMI when removing kill markers. by Owen Anderson · 16 years ago
  11. aa809fb Update comments. by Evan Cheng · 16 years ago
  12. c2cee14 Fix an obvious type. by Evan Cheng · 16 years ago
  13. 97121ba Implement support for using modeling implicit-zero-extension on x86-64 by Dan Gohman · 16 years ago
  14. 430d423 Fix grammar-o in comment. by Bill Wendling · 16 years ago
  15. 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
  16. a2e6435 Two coalescer fixes in one. by Evan Cheng · 16 years ago
  17. 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
  18. 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
  19. 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
  20. 86fb9fd Strengthen the previous check. by Evan Cheng · 16 years ago
  21. f18134a r64073 commit message is lost. Here it is: by Evan Cheng · 16 years ago
  22. 77fde2c by Evan Cheng · 16 years ago
  23. 54801f78 isAsCheapAsMove instructions can have register src operands. Check if they are really re-materializable. by Evan Cheng · 16 years ago
  24. 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
  25. 6792e90 Skip over zero registers. by Evan Cheng · 16 years ago
  26. c16d37e Only check if coalescing is worthwhile when the result is targeting a more restrictive register class. by Evan Cheng · 16 years ago
  27. 8c08d8c Cross register class coalescing. Not yet enabled. by Evan Cheng · 16 years ago
  28. 04ee5a1 Change TargetInstrInfo::isMoveInstr to return source and destination sub-register indices as well. by Evan Cheng · 16 years ago
  29. e08eb9c Refactor code. No functionality change. by Evan Cheng · 16 years ago
  30. fd246e5 Use assertions to check for conditions that should never happen. by Dan Gohman · 16 years ago
  31. 167650d Un-tabify. by Evan Cheng · 16 years ago
  32. 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
  33. 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
  34. 8a84e44 by Devang Patel · 16 years ago
  35. 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
  36. bebbded Perform this loop only when the -debug flag is specified. by Bill Wendling · 16 years ago
  37. b3990d5 Remove val# defined by a remat'ed def that is now dead. by Evan Cheng · 16 years ago
  38. 3afda6e When the coalescer is doing rematerializing, have it remove by Dan Gohman · 16 years ago
  39. 195cd3a Also update sub-register intervals after a trivial computation is rematt'ed for a copy instruction. PR2775. by Evan Cheng · 16 years ago
  40. 99cbdff fix typo by Chris Lattner · 16 years ago
  41. 95dad83 Add an option to enable StrongPHIElimination, for ease of testing. by Owen Anderson · 16 years ago
  42. d735b80 Switch the MachineOperand accessors back to the short names like by Dan Gohman · 16 years ago
  43. dc37786 Re-apply 56835 along with header file changes. by Evan Cheng · 16 years ago
  44. 46292be Revert commit 56835 since it breaks the build. by Duncan Sands · 16 years ago
  45. 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
  46. 86b49f8 Next round of earlyclobber handling. Approach the by Dale Johannesen · 16 years ago
  47. bbeeb2a Mark several codegen passes as preserving all analysis. by Evan Cheng · 16 years ago
  48. 34d8f75 Teach coalescer about earlyclobber bits. Check bits for preferred register. by Dale Johannesen · 16 years ago
  49. fee2d69 Continue after removing the current MI. by Evan Cheng · 16 years ago
  50. 20580a1 Re-materalized definition instructions may be dead. Whack them. by Evan Cheng · 16 years ago
  51. 870e4be Unallocatable registers do not have live intervals. by Evan Cheng · 16 years ago
  52. 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
  53. 014278e Remove isImm(), isReg(), and friends, in favor of by Dan Gohman · 16 years ago
  54. ee9e1b0 On some targets, non-move instructions can become move instructions because of coalescing. e.g. by Evan Cheng · 16 years ago
  55. 8db8668 Fix PR2748. Avoid coalescing physical register with virtual register which would create illegal extract_subreg. e.g. by Evan Cheng · 16 years ago
  56. 4086906 Fix PR2783 - coalescer bug. Missing a TargetRegisterInfo::isVirtualRegister check. by Evan Cheng · 16 years ago
  57. 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
  58. 8ec3389 Fix typo. by Evan Cheng · 16 years ago
  59. 3ef2d60 Clear preference when it no longer makes sense. by Evan Cheng · 16 years ago
  60. 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
  61. f641395 Revert r55467; it causes regressions in UnitTests/Vector/divides, by Dan Gohman · 16 years ago
  62. 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
  63. 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
  64. a8c763b Use empty() instead of begin() == end(). by Dan Gohman · 16 years ago
  65. 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
  66. 4fa393a Remove #if 0. by Evan Cheng · 16 years ago
  67. 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
  68. 496bac5 Fix a compile-time regression introduced by my heuristic-changing patch. I forgot by Owen Anderson · 16 years ago
  69. a1566f2 Change the heuristics used in the coalescer, register allocator, and within by Owen Anderson · 16 years ago
  70. 76a4d58 Subreg live interval valno may not have a corresponding def machineinstr since it's less precise. by Evan Cheng · 16 years ago
  71. b3db9c9 Use getMBBEndIdx rather than assuming that the end is right after the last instruction in the block. by Owen Anderson · 16 years ago
  72. c341760 Undo spill weight tweak. Need to investigate the performance regressions. by Evan Cheng · 16 years ago
  73. e00f5de Coalesce copy from one register class to a sub register class. e.g. X86::MOV16to16_. by Evan Cheng · 16 years ago
  74. 739583b When extending a liveinterval by commuting, don't throw away the live ranges that are not affected. by Evan Cheng · 16 years ago
  75. dbb8137 The coalescer doesn't need LiveVariables now that we have register use iterators. by Owen Anderson · 16 years ago
  76. d77d4f9 Fix PR2289: vr defined by multiple implicit_def as result of coalescing. by Evan Cheng · 16 years ago
  77. f4ea510 Fix PR2343. An *interesting* coalescer bug. by Evan Cheng · 16 years ago
  78. 6ddba2b Change class' public PassInfo variables to by initialized with the by Dan Gohman · 16 years ago
  79. 844731a Clean up the use of static and anonymous namespaces. This turned up by Dan Gohman · 16 years ago
  80. 8509fcf Another extract_subreg coalescing bug. by Evan Cheng · 17 years ago
  81. a971dbd - Check if a register is livein before removing it. It may have already been removed. by Evan Cheng · 17 years ago
  82. a8f720d Correct comment. by Evan Cheng · 17 years ago
  83. 883d260 Not safe to "kill" a register if its live range extends pass the end of block branch. by Evan Cheng · 17 years ago
  84. 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
  85. f231778 Use correct name for method in comment. by Bill Wendling · 17 years ago
  86. 621d157 Fix a sub-register indice propagation bug. by Evan Cheng · 17 years ago
  87. 9c1e06e After reading memory that's already freed. by Evan Cheng · 17 years ago
  88. ff7a3e5 Fix PR2226. Avoid using uninitialized variables. by Evan Cheng · 17 years ago
  89. d94950c Avoid read after free. by Evan Cheng · 17 years ago
  90. d2012d0 Remove implicit_def instructions that become dead as result of coalescing. by Evan Cheng · 17 years ago
  91. 172b70c A copy instruction may use a register multiple times on some targets. Change them all. by Evan Cheng · 17 years ago
  92. 7e073ba - More aggressively coalescing away copies whose source is defined by an implicit_def. by Evan Cheng · 17 years ago
  93. f20d943 Missed a hasInterval check. by Evan Cheng · 17 years ago
  94. db9b1c3 - Turn copies of implicit_def into implicit_def instructions. by Evan Cheng · 17 years ago
  95. 0c28432 One more coalescer fix wrt deadness propagation. by Evan Cheng · 17 years ago
  96. 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
  97. a2fb634 lastRegisterUse() should ignore identity copies. Those will be erased. by Evan Cheng · 17 years ago
  98. 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
  99. 70366b9 A couple of kill marker maintainence bug. by Evan Cheng · 17 years ago
  100. 82a6d23 Fixed a coalescer bug caused by a typo. by Evan Cheng · 17 years ago