Skip to content
  1. Feb 11, 2009
    • Dan Gohman's avatar
      Consider any instruction that modifies the stack pointer to be · b3dbb21d
      Dan Gohman authored
      a scheduling region boundary.  This isn't necessary for
      correctness; it helps with compile time, as it avoids the need
      for data- and anti-dependencies from all spills and reloads on
      the stack-pointer modification.
      
      llvm-svn: 64255
      b3dbb21d
    • Dan Gohman's avatar
      Factor out more code for computing register live-range informationfor · b9543435
      Dan Gohman authored
      scheduling, and generalize is so that preserves state across
      scheduling regions. This fixes incorrect live-range information around
      terminators and labels, which are effective region boundaries.
      
      In place of looking for terminators to anchor inter-block dependencies,
      introduce special entry and exit scheduling units for this purpose.
      
      llvm-svn: 64254
      b9543435
  2. Feb 06, 2009
  3. Feb 03, 2009
  4. Jan 16, 2009
  5. Jan 15, 2009
    • Dan Gohman's avatar
      Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph · 619ef48a
      Dan Gohman authored
      and into the ScheduleDAGInstrs class, so that they don't get
      destructed and re-constructed for each block. This fixes a
      compile-time hot spot in the post-pass scheduler.
      
      To help facilitate this, tidy and do some minor reorganization
      in the scheduler constructor functions.
      
      llvm-svn: 62275
      619ef48a
  6. Jan 05, 2009
  7. Dec 23, 2008
  8. Dec 19, 2008
  9. Dec 16, 2008
  10. Dec 09, 2008
    • Dan Gohman's avatar
      Rewrite the SDep class, and simplify some of the related code. · 2d170896
      Dan Gohman authored
      The Cost field is removed. It was only being used in a very limited way,
      to indicate when the scheduler should attempt to protect a live register,
      and it isn't really needed to do that. If we ever want the scheduler to
      start inserting copies in non-prohibitive situations, we'll have to
      rethink some things anyway.
      
      A Latency field is added. Instead of giving each node a single
      fixed latency, each edge can have its own latency. This will eventually
      be used to model various micro-architecture properties more accurately.
      
      The PointerIntPair class and an internal union are now used, which
      reduce the overall size.
      
      llvm-svn: 60806
      2d170896
  11. Dec 05, 2008
  12. Dec 04, 2008
  13. Dec 03, 2008
  14. Nov 27, 2008
    • Nick Lewycky's avatar
      Silence a warning. · 2c96bdd8
      Nick Lewycky authored
      Despite changing the order of evaluation, this doesn't actually change the
      meaning of the statement.
      
      llvm-svn: 60177
      2c96bdd8
  15. Nov 25, 2008
  16. Nov 20, 2008
    • Dan Gohman's avatar
      Factor out the code for verifying the work of the scheduler, · 4ce15e12
      Dan Gohman authored
      extend it a bit, and make use of it in all schedulers, to
      ensure consistent checking.
      
      llvm-svn: 59689
      4ce15e12
    • Dan Gohman's avatar
      Experimental post-pass scheduling support. Post-pass scheduling · 60cb69e6
      Dan Gohman authored
      is currently off by default, and can be enabled with
      -disable-post-RA-scheduler=false.
      
      This doesn't have a significant impact on most code yet because it doesn't
      yet do anything to address anti-dependencies and it doesn't attempt to
      disambiguate memory references. Also, several popular targets
      don't have pipeline descriptions yet.
      
      The majority of the changes here are splitting the SelectionDAG-specific
      code out of ScheduleDAG, so that ScheduleDAG can be moved to
      libLLVMCodeGen.a. The interface between ScheduleDAG-using code and
      the rest of the scheduling code is somewhat rough and will evolve.
      
      llvm-svn: 59676
      60cb69e6
  17. Sep 04, 2008
  18. Jan 14, 2008
  19. Dec 29, 2007
  20. Jul 13, 2007
Loading