Skip to content
  1. Feb 10, 2012
    • Andrew Trick's avatar
      RegAlloc superpass: includes phi elimination, coalescing, and scheduling. · d3f8fe81
      Andrew Trick authored
      Creates a configurable regalloc pipeline.
      
      Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa.
      
      When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>.
      
      CodeGen transformation passes are never "required" as an analysis
      
      ProcessImplicitDefs does not require LiveVariables.
      
      We have a plan to massively simplify some of the early passes within the regalloc superpass.
      
      llvm-svn: 150226
      d3f8fe81
  2. Jan 26, 2012
  3. Jul 28, 2011
    • Jakob Stoklund Olesen's avatar
      Handle REG_SEQUENCE with implicitly defined operands. · b16081ce
      Jakob Stoklund Olesen authored
      Code like that would only be produced by bugpoint, but we should still
      handle it correctly.
      
      When a register is defined by a REG_SEQUENCE of undefs, the register
      itself is undef. Previously, we would create a register with uses but no
      defs.
      
      Fixes part of PR10520.
      
      llvm-svn: 136401
      b16081ce
  4. Mar 14, 2011
  5. Dec 29, 2010
  6. Oct 12, 2010
  7. Oct 08, 2010
  8. Jul 22, 2010
  9. Jul 16, 2010
  10. Jul 14, 2010
  11. Jul 08, 2010
  12. Jul 07, 2010
  13. Jul 03, 2010
  14. May 11, 2010
  15. May 10, 2010
  16. Feb 15, 2010
    • Jakob Stoklund Olesen's avatar
      Fix PR6300. · 2988d573
      Jakob Stoklund Olesen authored
      A virtual register can be used before it is defined in the same MBB if the MBB
      is part of a loop. Teach the implicit-def pass about this case.
      
      llvm-svn: 96279
      2988d573
  17. Feb 09, 2010
  18. Feb 04, 2010
  19. Jan 05, 2010
  20. Nov 26, 2009
  21. Nov 25, 2009
  22. Nov 16, 2009
  23. 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
Loading