Skip to content
  1. 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
  2. Jul 02, 2012
  3. Jun 29, 2012
  4. Jun 16, 2012
  5. Jun 06, 2012
  6. Jun 05, 2012
  7. May 25, 2012
  8. May 18, 2012
  9. 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
  10. May 10, 2012
  11. Apr 24, 2012
  12. Apr 01, 2012
  13. Mar 21, 2012
  14. Mar 19, 2012
  15. Mar 14, 2012
    • Benjamin Kramer's avatar
      Silence operator precedence warnings. · 05e7a843
      Benjamin Kramer authored
      llvm-svn: 152711
      05e7a843
    • Andrew Trick's avatar
      misched: implemented a framework for top-down or bottom-up scheduling. · 8823decd
      Andrew Trick authored
      New flags: -misched-topdown, -misched-bottomup. They can be used with
      the default scheduler or with -misched=shuffle. Without either
      topdown/bottomup flag -misched=shuffle now alternates scheduling
      direction.
      
      LiveIntervals update is unimplemented with bottom-up scheduling, so
      only -misched-topdown currently works.
      
      Capped the ScheduleDAG hierarchy with a concrete ScheduleDAGMI class.
      ScheduleDAGMI is aware of the top and bottom of the unscheduled zone
      within the current region. Scheduling policy can be plugged into
      the ScheduleDAGMI driver by implementing MachineSchedStrategy.
      ConvergingScheduler is now the default scheduling algorithm.
      It exercises the new driver but still does no reordering.
      
      llvm-svn: 152700
      8823decd
Loading