Skip to content
  1. Jan 07, 2009
    • Evan Cheng's avatar
      The coalescer does not coalesce a virtual register to a physical register if... · f6768bd9
      Evan Cheng authored
      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.
      
      llvm-svn: 61847
      f6768bd9
  2. Jan 06, 2009
  3. Jan 05, 2009
  4. Jan 04, 2009
  5. Jan 03, 2009
  6. Jan 01, 2009
  7. Dec 31, 2008
  8. Dec 29, 2008
Loading