Skip to content
  1. Nov 27, 2011
  2. Nov 02, 2011
  3. Oct 28, 2011
  4. Oct 27, 2011
  5. Oct 15, 2011
    • Andrew Trick's avatar
      Fix indvars randomness by removing iteration over a map. · d50861c8
      Andrew Trick authored
      I rewrote the algorithm a while back so it doesn't require map lookup,
      but neglected to change the data structure. This was caught by
      llvm-gcc self host, not because there's anything special about
      llvm-gcc, but because it is the only test for nondeterminism we
      currently have. Unit tests don't work well for everything; we should
      always try to have a nondeterminism stress test running.
      
      Fixes PR11133: llvm-gcc self host .o mismatch after enable-iv-rewrite=false
      
      llvm-svn: 142036
      d50861c8
  6. Oct 11, 2011
  7. Sep 28, 2011
  8. Sep 15, 2011
  9. Sep 13, 2011
  10. Sep 12, 2011
  11. Sep 10, 2011
    • Andrew Trick's avatar
      [disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations · c7868bf0
      Andrew Trick authored
      better.
      
      Don't immediately give up when an add operation can't be trivially
      sign/zero-extended within a loop. If it has NSW/NUW flags, generate a
      new expression with sign extended (non-recurrent) operand. As before,
      if SCEV says that all sign extends are loop invariant, then we can
      widen the operation.
      
      llvm-svn: 139453
      c7868bf0
  12. Sep 09, 2011
  13. Sep 06, 2011
  14. Aug 26, 2011
  15. Aug 24, 2011
  16. Aug 10, 2011
    • Andrew Trick's avatar
      Cleanup. Make ScalarEvolution an explicit argument of the · e629d008
      Andrew Trick authored
      SimplifyIndVar utility since it is required.
      
      llvm-svn: 137202
      e629d008
    • Andrew Trick's avatar
      Added a SimplifyIndVar utility to simplify induction variable users · 3ec331ea
      Andrew Trick authored
      based on ScalarEvolution without changing the induction variable phis.
      
      This utility is the main tool of IndVarSimplifyPass, but the pass also
      restructures induction variables in strange ways that are sensitive to
      pass ordering. This provides a way for other loop passes to simplify
      new uses of induction variables created during transformation. The
      utility may be used by any pass that preserves ScalarEvolution. Soon
      LoopUnroll will use it.
      
      The net effect in this checkin is to cleanup the IndVarSimplify pass
      by factoring out the SimplifyIndVar algorithm into a standalone utility.
      
      llvm-svn: 137197
      3ec331ea
  17. Aug 06, 2011
    • Andrew Trick's avatar
      Made SCEV's UDiv expressions more canonical. When dividing a · 6d45a01b
      Andrew Trick authored
      recurrence, the initial values low bits can sometimes be ignored.
      
      To take advantage of this, added FoldIVUser to IndVarSimplify to fold
      an IV operand into a udiv/lshr if the operator doesn't affect the
      result.
      
      -indvars -disable-iv-rewrite now transforms
      
      i = phi i4
      i1 = i0 + 1
      idx = i1 >> (2 or more)
      i4 = i + 4
      
      into
      
      i = phi i4
      idx = i0 >> ...
      i4 = i + 4
      
      llvm-svn: 137013
      6d45a01b
  18. Jul 21, 2011
  19. Jul 20, 2011
  20. Jul 18, 2011
  21. Jul 16, 2011
  22. Jul 12, 2011
    • Andrew Trick's avatar
      indvars: Code reorganization in preparation for · cdc2297e
      Andrew Trick authored
      LinearFunctionTestReplace rewrite. No functionality.
      
      I've been wanting to group the indvar subphases into sections and
      order them by their logical sequence. My next checkin adds functions
      related to LFTR, and doing the reorg now should help reviewers. Since,
      most of the code in IndVarSimplify.cpp has recently been replaced or
      will be replaced soon, obscuring blame should not be an issue. This
      seems like an ideal time to shuffle the code around.
      
      I'm happy to take more suggestions for cleaning up the code. Or if
      you've been wanting to cleanup anything in this file yourself, now is
      a good time.
      
      llvm-svn: 134941
      cdc2297e
  23. Jul 06, 2011
  24. Jul 05, 2011
Loading