Skip to content
  1. Jul 20, 2010
  2. Jul 19, 2010
  3. Jul 18, 2010
  4. Jul 17, 2010
  5. Jul 16, 2010
  6. Jul 12, 2010
  7. May 15, 2010
  8. Feb 18, 2010
  9. Feb 17, 2010
  10. Feb 09, 2010
    • Lang Hames's avatar
      Fixed a bug in the PBQP allocator's findCoalesces method. · 48121948
      Lang Hames authored
      Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with.
      
      llvm-svn: 95636
      48121948
  11. Jan 26, 2010
    • Lang Hames's avatar
      New PBQP solver. · 090c7e82
      Lang Hames authored
      * Fixed a reduction bug which occasionally led to infinite-cost (invalid)
        register allocation solutions despite the existence finite-cost solutions.
      * Significantly reduced memory usage (>50% reduction).
      * Simplified a lot of the solver code.
      
      llvm-svn: 94514
      090c7e82
  12. Jan 05, 2010
  13. Dec 14, 2009
  14. Nov 15, 2009
  15. Nov 04, 2009
    • Lang Hames's avatar
      The Indexes Patch. · 05fb9637
      Lang Hames authored
      This introduces a new pass, SlotIndexes, which is responsible for numbering
      instructions for register allocation (and other clients). SlotIndexes numbering
      is designed to match the existing scheme, so this patch should not cause any
      changes in the generated code.
      
      For consistency, and to avoid naming confusion, LiveIndex has been renamed
      SlotIndex.
      
      The processImplicitDefs method of the LiveIntervals analysis has been moved
      into its own pass so that it can be run prior to SlotIndexes. This was
      necessary to match the existing numbering scheme.
      
      llvm-svn: 85979
      05fb9637
  16. Oct 25, 2009
  17. Oct 03, 2009
  18. Sep 20, 2009
  19. Sep 06, 2009
  20. Sep 04, 2009
  21. Sep 03, 2009
    • Lang Hames's avatar
      · 0b3720b3
      Lang Hames authored
      Fixed a test that ensures the LocalRewriter does not attempt to
      avoid reloads by reusing clobbered registers.
      
      This was causing issues in 256.bzip2 when compiled with PIC for
      a while (starting at r78217), though the problem has since been masked. 
      
      llvm-svn: 80872
      0b3720b3
  22. Aug 20, 2009
  23. Aug 19, 2009
  24. Aug 12, 2009
  25. Aug 11, 2009
  26. Aug 10, 2009
  27. Aug 08, 2009
  28. Aug 07, 2009
  29. Aug 01, 2009
  30. Jul 25, 2009
    • Daniel Dunbar's avatar
      More migration to raw_ostream, the water has dried up around the iostream hole. · 0dd5e1ed
      Daniel Dunbar authored
       - Some clients which used DOUT have moved to DEBUG. We are deprecating the
         "magic" DOUT behavior which avoided calling printing functions when the
         statement was disabled. In addition to being unnecessary magic, it had the
         downside of leaving code in -Asserts builds, and of hiding potentially
         unnecessary computations.
      
      llvm-svn: 77019
      0dd5e1ed
  31. Jun 17, 2009
  32. Jun 14, 2009
  33. May 30, 2009
  34. May 18, 2009
  35. May 06, 2009
  36. May 03, 2009
    • Evan Cheng's avatar
      In some rare cases, the register allocator can spill registers but end up not... · 210fc62a
      Evan Cheng authored
      In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However,  reloads and restores might be folded into uses / defs and freed registers might not be used at all.
      
      VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants.
      
      Not yet enabled. This is part 1. More coming.
      
      llvm-svn: 70787
      210fc62a
  37. Apr 22, 2009
    • Evan Cheng's avatar
      It has finally happened. Spiller is now using live interval info. · 1a99a5f5
      Evan Cheng authored
      This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue.
      
      llvm-svn: 69743
      1a99a5f5
Loading