llvm-6502/lib
Evan Cheng 8f90b6eb2f 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:
v1024 = EDI  // not killed
      =
      = EDI

One possible solution is for the coalescer to examine the sub-register live intervals in the same manner as the physical register. Another possibility is to examine defs and uses (when needed) of sub-registers. Both solutions are too expensive. For now, look for "short virtual intervals" and scan instructions to look for conflict instead.

This is a small win on x86-64. e.g. It shaves 403.gcc by ~80 instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61847 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-07 02:08:57 +00:00
..
Analysis When checking if an Argument escapes, check if 2009-01-05 21:19:53 +00:00
Archive Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
AsmParser fix wordo 2009-01-05 18:56:52 +00:00
Bitcode revert r61368. 2008-12-23 05:43:56 +00:00
CodeGen 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: 2009-01-07 02:08:57 +00:00
Debugger Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
ExecutionEngine Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
Linker Make comments and code for QuietWarnings and QuietErrors 2008-10-25 17:57:20 +00:00
Support Tweak --version to include the date and time. 2008-12-23 18:41:47 +00:00
System Don't use plain %x to print pointer values. I had changed it from %p 2008-12-05 23:39:24 +00:00
Target Add patterns to match conditional moves with loads folded 2009-01-07 01:00:24 +00:00
Transforms Change m_ConstantInt and m_SelectCst to take their constant integers 2009-01-05 23:53:12 +00:00
VMCore Improve support for type-generic vector intrinsics by teaching TableGen how 2009-01-07 00:09:01 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00