Skip to content
  1. Oct 10, 2012
  2. Oct 08, 2012
  3. Sep 14, 2012
  4. Sep 12, 2012
  5. Sep 11, 2012
    • Andrew Trick's avatar
      Reorganize MachineScheduler interfaces and publish them in the header. · 7a8e1004
      Andrew Trick authored
      The Hexagon target decided to use a lot of functionality from the
      target-independent scheduler. That's fine, and other targets should be
      able to do the same. This reorg and API update makes that easy.
      
      For the record, ScheduleDAGMI was not meant to be subclassed. Instead,
      new scheduling algorithms should be able to implement
      MachineSchedStrategy and be done. But if need be, it's nice to be
      able to extend ScheduleDAGMI, so I also made that easier. The target
      scheduler is somewhat more apt to break that way though.
      
      llvm-svn: 163580
      7a8e1004
  6. Sep 06, 2012
  7. Aug 23, 2012
    • Andrew Trick's avatar
      Simplify the computeOperandLatency API. · ae53561b
      Andrew Trick authored
      The logic for recomputing latency based on a ScheduleDAG edge was
      shady. This bypasses the problem by requiring the client to provide
      operand indices. This ensures consistent use of the machine model's
      API.
      
      llvm-svn: 162420
      ae53561b
  8. Aug 22, 2012
  9. Jul 23, 2012
  10. Jul 07, 2012
    • Andrew Trick's avatar
      I'm introducing a new machine model to simultaneously allow simple · 87255e34
      Andrew Trick authored
      subtarget CPU descriptions and support new features of
      MachineScheduler.
      
      MachineModel has three categories of data:
      1) Basic properties for coarse grained instruction cost model.
      2) Scheduler Read/Write resources for simple per-opcode and operand cost model (TBD).
      3) Instruction itineraties for detailed per-cycle reservation tables.
      
      These will all live side-by-side. Any subtarget can use any
      combination of them. Instruction itineraries will not change in the
      near term. In the long run, I expect them to only be relevant for
      in-order VLIW machines that have complex contraints and require a
      precise scheduling/bundling model. Once itineraries are only actively
      used by VLIW-ish targets, they could be replaced by something more
      appropriate for those targets.
      
      This tablegen backend rewrite sets things up for introducing
      MachineModel type #2: per opcode/operand cost model.
      
      llvm-svn: 159891
      87255e34
  11. Jul 02, 2012
  12. Jun 29, 2012
  13. Jun 16, 2012
  14. Jun 06, 2012
  15. Jun 05, 2012
  16. May 25, 2012
  17. May 18, 2012
  18. May 17, 2012
    • Andrew Trick's avatar
      misched: trace ReadyQ. · 276a3e8c
      Andrew Trick authored
      llvm-svn: 157007
      276a3e8c
    • Andrew Trick's avatar
      misched: Added 3-level regpressure back-off. · 2202577d
      Andrew Trick authored
      Introduce the basic strategy for register pressure scheduling.
      
      1) Respect target limits at all times.
      
      2) Indentify critical register classes (pressure sets).
         Track pressure within the scheduled region.
         Avoid increasing scheduled pressure for critical registers.
      
      3) Avoid exceeding the max pressure of the region prior to scheduling.
      
      Added logic for picking between the top and bottom ready Q's based on
      regpressure heuristics.
      
      Status: functional but needs to be asjusted to achieve good results.
      llvm-svn: 157006
      2202577d
    • Andrew Trick's avatar
      comment · 47a1feae
      Andrew Trick authored
      llvm-svn: 157005
      47a1feae
    • Andrew Trick's avatar
      misched: fix liveness iterators · 463b2f1f
      Andrew Trick authored
      llvm-svn: 157003
      463b2f1f
  19. May 10, 2012
  20. Apr 24, 2012
Loading