Skip to content
  1. Dec 13, 2007
  2. Dec 11, 2007
  3. Dec 09, 2007
  4. Dec 08, 2007
    • Bill Wendling's avatar
      Renaming: · 2b07d8c5
      Bill Wendling authored
        isTriviallyReMaterializable -> hasNoSideEffects
        isReallyTriviallyReMaterializable -> isTriviallyReMaterializable
      
      llvm-svn: 44702
      2b07d8c5
  5. Dec 06, 2007
  6. Dec 05, 2007
  7. Dec 04, 2007
  8. Dec 03, 2007
  9. Dec 02, 2007
  10. Dec 01, 2007
  11. Nov 30, 2007
  12. Nov 29, 2007
  13. Nov 28, 2007
  14. Nov 17, 2007
    • Evan Cheng's avatar
      Live interval splitting: · 8e223793
      Evan Cheng authored
      When a live interval is being spilled, rather than creating short, non-spillable
      intervals for every def / use, split the interval at BB boundaries. That is, for
      every BB where the live interval is defined or used, create a new interval that
      covers all the defs and uses in the BB.
      
      This is designed to eliminate one common problem: multiple reloads of the same
      value in a single basic block. Note, it does *not* decrease the number of spills
      since no copies are inserted so the split intervals are *connected* through
      spill and reloads (or rematerialization). The newly created intervals can be
      spilled again, in that case, since it does not span multiple basic blocks, it's
      spilled in the usual manner. However, it can reuse the same stack slot as the
      previously split interval.
      
      This is currently controlled by -split-intervals-at-bb.
      
      llvm-svn: 44198
      8e223793
  15. Nov 15, 2007
  16. Nov 14, 2007
    • Evan Cheng's avatar
      Clean up sub-register implementation by moving subReg information back to · 7f02cfa5
      Evan Cheng authored
      MachineOperand auxInfo. Previous clunky implementation uses an external map
      to track sub-register uses. That works because register allocator uses
      a new virtual register for each spilled use. With interval splitting (coming
      soon), we may have multiple uses of the same register some of which are
      of using different sub-registers from others. It's too fragile to constantly
      update the information.
      
      llvm-svn: 44104
      7f02cfa5
  17. Nov 12, 2007
  18. Nov 07, 2007
  19. Nov 06, 2007
  20. Nov 05, 2007
  21. Nov 03, 2007
    • Evan Cheng's avatar
      There are times when the coalescer would not coalesce away a copy but the copy · 66298e22
      Evan Cheng authored
      can be eliminated by the allocator is the destination and source targets the
      same register. The most common case is when the source and destination registers
      are in different class. For example, on x86 mov32to32_ targets GR32_ which
      contains a subset of the registers in GR32.
      
      The allocator can do 2 things:
      1. Set the preferred allocation for the destination of a copy to that of its source.
      2. After allocation is done, change the allocation of a copy destination (if
         legal) so the copy can be eliminated.
      
      This eliminates 443 extra moves from 403.gcc.
      
      llvm-svn: 43662
      66298e22
  22. Oct 17, 2007
  23. Oct 12, 2007
  24. Oct 08, 2007
  25. Oct 03, 2007
  26. Sep 14, 2007
  27. Sep 06, 2007
Loading