Skip to content
  1. Jun 06, 2012
    • Jakob Stoklund Olesen's avatar
      Add experimental support for register unit liveness. · 12e03dae
      Jakob Stoklund Olesen authored
      Instead of computing a live interval per physreg, LiveIntervals can
      compute live intervals per register unit. This makes impossible the
      confusing situation where aliasing registers could have overlapping live
      intervals. It should also make fixed interferernce checking cheaper
      since registers have fewer register units than aliases.
      
      Live intervals for regunits are computed on demand, using MRI use-def
      chains and the new LiveRangeCalc class. Only regunits live in to ABI
      blocks are precomputed during LiveIntervals::runOnMachineFunction().
      
      The regunit liveness computations don't depend on LiveVariables.
      
      llvm-svn: 158029
      12e03dae
  2. Jun 05, 2012
  3. May 29, 2012
  4. May 20, 2012
  5. Apr 18, 2012
  6. Mar 21, 2012
  7. Mar 04, 2012
  8. Mar 01, 2012
  9. Feb 21, 2012
  10. Feb 19, 2012
  11. Feb 18, 2012
  12. Feb 17, 2012
  13. Feb 16, 2012
  14. Feb 15, 2012
  15. Feb 14, 2012
  16. Feb 13, 2012
  17. 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
    • Lang Hames's avatar
      Remove unused 'isAlias' parameter. · 351fc56a
      Lang Hames authored
      llvm-svn: 150224
      351fc56a
    • Jakob Stoklund Olesen's avatar
      Constrain the regmask search space for local live ranges. · 9ef50bd6
      Jakob Stoklund Olesen authored
      When checking a local live range for interference, restrict the binary
      search to the single block.
      
      llvm-svn: 150220
      9ef50bd6
    • Jakob Stoklund Olesen's avatar
      Cache basic block boundaries for faster RegMaskSlots access. · 25c4195e
      Jakob Stoklund Olesen authored
      Provide API to get a list of register mask slots and bits in a basic
      block.
      
      llvm-svn: 150219
      25c4195e
Loading