Skip to content
  1. Jun 14, 2013
  2. May 01, 2013
  3. Apr 25, 2013
    • Andrew Trick's avatar
      Fix for r180193 - MI Sched: eliminate local vreg. · 2e875171
      Andrew Trick authored
      Fixes PR15838. Need to check for blocks with nothing but dbg.value.
      
      I'm not sure how to force this situation with a unit test. I tried to
      reduce the test case in PR15838 (1k lines of metadata) but gave up.
      
      llvm-svn: 180227
      2e875171
  4. Apr 24, 2013
    • Andrew Trick's avatar
      MI Sched: eliminate local vreg copies. · 85a1d4cb
      Andrew Trick authored
      For now, we just reschedule instructions that use the copied vregs and
      let regalloc elliminate it. I would really like to eliminate the
      copies on-the-fly during scheduling, but we need a complete
      implementation of repairIntervalsInRange() first.
      
      The general strategy is for the register coalescer to eliminate as
      many global copies as possible and shrink live ranges to be
      extended-basic-block local. The coalescer should not have to worry
      about resolving local copies (e.g. it shouldn't attemp to reorder
      instructions). The scheduler is a much better place to deal with local
      interference. The coalescer side of this equation needs work.
      
      llvm-svn: 180193
      85a1d4cb
    • Andrew Trick's avatar
      MI Sched: regpressure tracing. · 7c791a3d
      Andrew Trick authored
      llvm-svn: 180191
      7c791a3d
  5. Apr 13, 2013
    • Andrew Trick's avatar
      MI-Sched: DEBUG formatting. · 1f0bb69b
      Andrew Trick authored
      llvm-svn: 179452
      1f0bb69b
    • Andrew Trick's avatar
      MI-Sched: schedule physreg copies. · e833e1cd
      Andrew Trick authored
      The register allocator expects minimal physreg live ranges. Schedule
      physreg copies accordingly. This is slightly tricky when they occur in
      the middle of the scheduling region. For now, this is handled by
      rescheduling the copy when its associated instruction is
      scheduled. Eventually we may instead bundle them, but only if we can
      preserve the bundles as parallel copies during regalloc.
      
      llvm-svn: 179449
      e833e1cd
  6. Apr 05, 2013
  7. Mar 21, 2013
  8. Mar 10, 2013
  9. Mar 08, 2013
    • Andrew Trick's avatar
      Add -verify-misched option. · 48f2a724
      Andrew Trick authored
      This verifies live intervals both before and after scheduling. It's
      useful for anyone hacking on live interval update.
      
      Note that we don't yet pass verification all the time. We don't yet
      handle updating nonallocatable live intervals perfectly.
      
      llvm-svn: 176685
      48f2a724
  10. Feb 16, 2013
  11. Feb 13, 2013
  12. Jan 29, 2013
  13. Jan 25, 2013
  14. Jan 24, 2013
  15. Jan 11, 2013
  16. Jan 09, 2013
    • Andrew Trick's avatar
      MIsched: add an ILP window property to machine model. · 9f0b95f2
      Andrew Trick authored
      This was an experimental option, but needs to be defined
      per-target. e.g. PPC A2 needs to aggressively hide latency.
      
      I converted some in-order scheduling tests to A2. Hal is working on
      more test cases.
      
      llvm-svn: 171946
      9f0b95f2
  17. Dec 18, 2012
  18. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  19. Dec 01, 2012
  20. Nov 29, 2012
  21. Nov 28, 2012
  22. Nov 13, 2012
    • Andrew Trick's avatar
      misched: Allow subtargets to enable misched and dependent options. · 108c88c5
      Andrew Trick authored
      This allows me to begin enabling (or backing out) misched by default
      for one subtarget at a time. To run misched we typically want to:
      - Disable SelectionDAG scheduling (use the source order scheduler)
      - Enable more aggressive coalescing (until we decide to always run the coalescer this way)
      - Enable MachineScheduler pass itself.
      
      Disabling PostRA sched may follow for some subtargets.
      
      llvm-svn: 167826
      108c88c5
  23. Nov 12, 2012
Loading