Skip to content
  1. 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
  2. Mar 31, 2009
  3. Mar 14, 2009
  4. Mar 13, 2009
  5. Mar 11, 2009
  6. Mar 09, 2009
  7. Mar 08, 2009
  8. Feb 28, 2009
  9. Feb 26, 2009
  10. Feb 17, 2009
  11. Feb 13, 2009
  12. Feb 12, 2009
  13. Feb 11, 2009
    • Evan Cheng's avatar
      Implement PR3495: local spiller optimization. The local spiller can now keep... · a1968b0f
      Evan Cheng authored
      Implement PR3495: local spiller optimization. The local spiller can now keep availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies.
      
      llvm-svn: 64298
      a1968b0f
  14. Feb 03, 2009
  15. Jan 20, 2009
  16. Dec 02, 2008
  17. Oct 17, 2008
  18. Oct 14, 2008
  19. Oct 06, 2008
  20. Oct 03, 2008
  21. Sep 11, 2008
  22. Sep 10, 2008
  23. Sep 04, 2008
  24. Aug 19, 2008
  25. Aug 05, 2008
  26. Jul 18, 2008
  27. Jul 08, 2008
    • Dan Gohman's avatar
      Pool-allocation for MachineInstrs, MachineBasicBlocks, and · 3b460303
      Dan Gohman authored
      MachineMemOperands. The pools are owned by MachineFunctions.
      
      This drastically reduces the number of calls to malloc/free made
      during the "Emit" phase of scheduling, as well as later phases
      in CodeGen. Combined with other changes, this speeds up the
      "instruction selection" phase of CodeGen by 10% in some cases.
      
      llvm-svn: 53212
      3b460303
  28. Jun 18, 2008
  29. Jun 16, 2008
  30. Jun 14, 2008
  31. Jun 04, 2008
  32. May 23, 2008
  33. May 22, 2008
    • David Greene's avatar
      · 54b52fe1
      David Greene authored
      Don't attempt to update SpillSlotToUsesMap for stack slots that aren't
      generated by the spiller.
      
      llvm-svn: 51439
      54b52fe1
Loading