Skip to content
  1. Sep 28, 2009
  2. Sep 23, 2009
    • David Goodwin's avatar
      Fix bug in kill flag updating for post-register-allocation scheduling. When... · a4c98a3e
      David Goodwin authored
      Fix bug in kill flag updating for post-register-allocation scheduling. When the kill flag of a superreg needs to be cleared because there are one or more subregs live, we instead add implicit-defs of those subregs and leave the kill flag on the superreg. This allows us to end the live-range of the superreg without ending the live-ranges of the subregs.
      
      llvm-svn: 82629
      a4c98a3e
  3. Sep 18, 2009
  4. Sep 06, 2009
  5. Sep 04, 2009
  6. Sep 01, 2009
  7. Aug 31, 2009
  8. Aug 29, 2009
  9. Aug 25, 2009
  10. Aug 23, 2009
  11. Aug 12, 2009
  12. Aug 11, 2009
  13. Aug 10, 2009
  14. Aug 01, 2009
  15. Jul 29, 2009
  16. Jul 14, 2009
  17. Jul 11, 2009
    • Torok Edwin's avatar
      assert(0) -> LLVM_UNREACHABLE. · 56d06597
      Torok Edwin authored
      Make llvm_unreachable take an optional string, thus moving the cerr<< out of
      line.
      LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
      NDEBUG builds.
      
      llvm-svn: 75379
      56d06597
  18. May 05, 2009
  19. Apr 09, 2009
    • Bob Wilson's avatar
      Fix pr3954. The register scavenger asserts for inline assembly with · 51856173
      Bob Wilson authored
      register destinations that are tied to source operands.  The
      TargetInstrDescr::findTiedToSrcOperand method silently fails for inline
      assembly.  The existing MachineInstr::isRegReDefinedByTwoAddr was very
      close to doing what is needed, so this revision makes a few changes to
      that method and also renames it to isRegTiedToUseOperand (for consistency
      with the very similar isRegTiedToDefOperand and because it handles both
      two-address instructions and inline assembly with tied registers).
      
      llvm-svn: 68714
      51856173
  20. Mar 11, 2009
  21. Mar 10, 2009
    • Dan Gohman's avatar
      Fix a post-RA scheduling liveness bug. When a basic block is being · 64613ace
      Dan Gohman authored
      scheduled in multiple regions, liveness data used by the
      anti-dependence breaker is carried from one region to the next, however
      the information reflects the state of the instructions before scheduling.
      After scheduling, there may be new live range overlaps. Handle this by
      pessimizing the liveness data carried between regions to the point where
      it will be conservatively correct now matter how the earlier region is
      scheduled. This fixes a miscompilation in 176.gcc with the post-RA
      scheduler enabled.
      
      llvm-svn: 66558
      64613ace
  22. Feb 11, 2009
    • Dan Gohman's avatar
      When scheduling a block in parts, keep track of the overall · dfaf646c
      Dan Gohman authored
      instruction index across each part. Instruction indices are used
      to make live range queries, and live ranges can extend beyond
      scheduling region boundaries.
      
      Refactor the ScheduleDAGSDNodes class some more so that it
      doesn't have to worry about this additional information.
      
      llvm-svn: 64288
      dfaf646c
    • 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
  23. Feb 06, 2009
  24. Feb 03, 2009
  25. Jan 16, 2009
  26. 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
  27. Jan 05, 2009
  28. Dec 23, 2008
  29. Dec 19, 2008
Loading