| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | ReMaterializeTrivialDef need to trim the live interval to the last kill if ↵ | Evan Cheng | 2009-02-05 | 1 | -0/+9 |
| | | | | | | | the copy kills the source register. This fixes uint64tof64.ll after ARM::MOVi is marked as isAsCheapAsAMove. llvm-svn: 63853 | ||||
| * | Cross register class coalescing. Not yet enabled. | Evan Cheng | 2009-01-23 | 1 | -15/+8 |
| | | | | | llvm-svn: 62832 | ||||
| * | Refactor code. No functionality change. | Evan Cheng | 2009-01-20 | 1 | -0/+14 |
| | | | | | llvm-svn: 62573 | ||||
| * | Tidy up #includes, deleting a bunch of unnecessary #includes. | Dan Gohman | 2009-01-05 | 1 | -2/+0 |
| | | | | | llvm-svn: 61715 | ||||
| * | Remove val# defined by a remat'ed def that is now dead. | Evan Cheng | 2008-10-27 | 1 | -0/+5 |
| | | | | | llvm-svn: 58294 | ||||
| * | Re-materalized definition instructions may be dead. Whack them. | Evan Cheng | 2008-09-19 | 1 | -0/+4 |
| | | | | | llvm-svn: 56352 | ||||
| * | Fix PR2748. Avoid coalescing physical register with virtual register which ↵ | Evan Cheng | 2008-09-11 | 1 | -0/+7 |
| | | | | | | | | | | | | would create illegal extract_subreg. e.g. vr1024 = extract_subreg vr1025, 1 ... vr1024 = mov8rr AH If vr1024 is coalesced with AH, the extract_subreg is now illegal since AH does not have a super-reg whose sub-register 1 is AH. llvm-svn: 56118 | ||||
| * | Tidy up several unbeseeming casts from pointer to intptr_t. | Dan Gohman | 2008-09-04 | 1 | -1/+1 |
| | | | | | llvm-svn: 55779 | ||||
| * | Re-apply 55467 with fix. If copy is being replaced by remat'ed def, transfer ↵ | Evan Cheng | 2008-08-30 | 1 | -0/+7 |
| | | | | | | | the implicit defs onto the remat'ed instruction. llvm-svn: 55564 | ||||
| * | Revert r55467; it causes regressions in UnitTests/Vector/divides, | Dan Gohman | 2008-08-28 | 1 | -7/+0 |
| | | | | | | | Benchmarks/sim/sim, and others on x86-64. llvm-svn: 55475 | ||||
| * | If a copy isn't coalesced, but its src is defined by trivial computation. ↵ | Evan Cheng | 2008-08-28 | 1 | -0/+7 |
| | | | | | | | Re-materialize the src to replace the copy. llvm-svn: 55467 | ||||
| * | Fix a compile-time regression introduced by my heuristic-changing patch. I ↵ | Owen Anderson | 2008-07-23 | 1 | -1/+2 |
| | | | | | | | | | | forgot to multiply the instruction count by a constant factor in a few places, which caused the register allocator to require many more iterations. llvm-svn: 53959 | ||||
| * | Change the heuristics used in the coalescer, register allocator, and within | Owen Anderson | 2008-07-22 | 1 | -1/+1 |
| | | | | | | | | live intervals itself to use an instruction count approximation that is not affected by inserting empty indices. llvm-svn: 53937 | ||||
| * | Coalesce copy from one register class to a sub register class. e.g. ↵ | Evan Cheng | 2008-06-19 | 1 | -3/+13 |
| | | | | | | | X86::MOV16to16_. llvm-svn: 52480 | ||||
| * | The coalescer doesn't need LiveVariables now that we have register use ↵ | Owen Anderson | 2008-05-30 | 1 | -1/+0 |
| | | | | | | | iterators. llvm-svn: 51790 | ||||
| * | After reading memory that's already freed. | Evan Cheng | 2008-04-16 | 1 | -4/+4 |
| | | | | | llvm-svn: 49810 | ||||
| * | Add comment. | Evan Cheng | 2008-04-10 | 1 | -0/+2 |
| | | | | | llvm-svn: 49469 | ||||
| * | - More aggressively coalescing away copies whose source is defined by an ↵ | Evan Cheng | 2008-04-09 | 1 | -2/+20 |
| | | | | | | | | | implicit_def. - Added insert_subreg coalescing support. llvm-svn: 49448 | ||||
| * | - Turn copies of implicit_def into implicit_def instructions. | Evan Cheng | 2008-04-03 | 1 | -0/+6 |
| | | | | | | | - Be smarter about coalescing copies from implicit_def. llvm-svn: 49168 | ||||
| * | Rewrite code that propagate isDead information after a dead copy is ↵ | Evan Cheng | 2008-03-18 | 1 | -1/+5 |
| | | | | | | | coalesced. This remove some ugly spaghetti code and fixed a number of subtle bugs. llvm-svn: 48490 | ||||
| * | - Fix a subtle bug in RemoveCopyByCommutingDef. ALR is the live range where ↵ | Evan Cheng | 2008-03-10 | 1 | -0/+4 |
| | | | | | | | | | | | | | | | | | | | the source is defined; BLR is the live range which is defined by the copy. If ALR and BLR overlaps and end of BLR extends beyond end of ALR, e.g. A = or A, B ... B = A ... C = A<kill> ... = B then do not add kills of A to the newly created B interval. - Also fix some kill info update bug. llvm-svn: 48141 | ||||
| * | Fix a coalescer bug wrt how dead copy interval is shortened. | Evan Cheng | 2008-03-05 | 1 | -0/+6 |
| | | | | | llvm-svn: 47966 | ||||
| * | Refactor code. Remove duplicated functions that basically do the same thing as | Evan Cheng | 2008-03-05 | 1 | -4/+0 |
| | | | | | | | findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. llvm-svn: 47927 | ||||
| * | No need for coalescer to update kills. Only copies are coalesced and those ↵ | Evan Cheng | 2008-02-29 | 1 | -8/+0 |
| | | | | | | | instructions will be deleted. Doh. llvm-svn: 47749 | ||||
| * | Refactor some code; check if commuteInstruction is able to commute the ↵ | Evan Cheng | 2008-02-16 | 1 | -0/+5 |
| | | | | | | | instruction. llvm-svn: 47208 | ||||
| * | - Removing the infamous r2rMap_ and rep() method. Now the coalescer will update | Evan Cheng | 2008-02-15 | 1 | -51/+26 |
| | | | | | | | | register defs and uses after each successful coalescing. - Also removed a number of hacks and fixed some subtle kill information bugs. llvm-svn: 47167 | ||||
| * | Initial support for copy elimination by commuting its definition MI. | Evan Cheng | 2008-02-13 | 1 | -1/+8 |
| | | | | | | | | | | | | | | | | | | | | | | PR1877. A3 = op A2 B0<kill> ... B1 = A3 <- this copy ... = op A3 <- more uses ==> B2 = op B0 A2<kill> ... B1 = B2 <- now an identify copy ... = op B2 <- more uses This speeds up FreeBench/neural by 29%, Olden/bh by 12%, oopack_v1p8 by 53%. llvm-svn: 47046 | ||||
| * | Rename MRegisterInfo to TargetRegisterInfo. | Dan Gohman | 2008-02-10 | 1 | -2/+2 |
| | | | | | llvm-svn: 46930 | ||||
| * | Remove attribution from file headers, per discussion on llvmdev. | Chris Lattner | 2007-12-29 | 1 | -2/+2 |
| | | | | | llvm-svn: 45418 | ||||
| * | Add explicit keywords, and fix a minor typo that they uncovered. | Dan Gohman | 2007-12-14 | 1 | -2/+3 |
| | | | | | llvm-svn: 45034 | ||||
| * | Switch over to MachineLoopInfo. | Evan Cheng | 2007-12-11 | 1 | -2/+2 |
| | | | | | llvm-svn: 44838 | ||||
| * | First step towards moving the coalescer to priority_queue based machinery. | Evan Cheng | 2007-11-06 | 1 | -16/+70 |
| | | | | | llvm-svn: 43764 | ||||
| * | Move SimpleRegisterCoalescing.h to lib/CodeGen since there is now a common | Evan Cheng | 2007-11-05 | 1 | -0/+184 |
| register coalescer interface: RegisterCoalescing. llvm-svn: 43714 | |||||

