Skip to content
  1. 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
  2. Jul 06, 2011
  3. Jul 05, 2011
  4. Jul 02, 2011
  5. Jun 30, 2011
  6. Jun 29, 2011
  7. Jun 28, 2011
  8. Jun 22, 2011
  9. Jun 21, 2011
    • Andrew Trick's avatar
      IVUsers no longer needs to record the phis. · fc4ccb20
      Andrew Trick authored
      llvm-svn: 133518
      fc4ccb20
    • Andrew Trick's avatar
      indvars -disable-iv-rewrite: Adds support for eliminating identity · 69d4452f
      Andrew Trick authored
      ops.
      
      This is a rewrite of the IV simplification algorithm used by
      -disable-iv-rewrite. To avoid perturbing the default mode, I
      temporarily split the driver and created SimplifyIVUsersNoRewrite. The
      idea is to avoid doing opcode/pattern matching inside
      IndVarSimplify. SCEV already does it. We want to optimize with the
      full generality of SCEV, but optimize def-use chains top down on-demand rather
      than rewriting the entire expression bottom-up. This was easy to do
      for operations that SCEV can prove are identity function. So we're now
      eliminating bitmasks and zero extends this way.
      
      A result of this rewrite is that indvars -disable-iv-rewrite no longer
      requires IVUsers.
      
      llvm-svn: 133502
      69d4452f
  10. May 26, 2011
  11. May 25, 2011
  12. May 20, 2011
  13. May 13, 2011
  14. May 12, 2011
    • Andrew Trick's avatar
      indvars: Added SimplifyIVUsers. · 81683ed2
      Andrew Trick authored
      Interleave IV simplifications. Currently involves EliminateComparison
      and EliminateRemainder. Next I'll add EliminateExtend.
      
      llvm-svn: 131210
      81683ed2
  15. May 04, 2011
    • Andrew Trick's avatar
      indvars: Added DisableIVRewrite and WidenIVs. · 1abe296c
      Andrew Trick authored
      This adds functionality to remove size/zero extension during indvars
      without generating a canonical IV and rewriting all IV users. It's
      disabled by default so should have no effect on codegen. Work in progress.
      
      llvm-svn: 130829
      1abe296c
    • Andrew Trick's avatar
      indvars: Added canExpandBackEdgeTakenCount. · 38c4e34a
      Andrew Trick authored
      Only create a canonical IV for backedge taken count if it will
      actually be used by LinearFunctionTestReplace. And some related
      cleanup, preparing to reduce dependence on canonical IVs.
      No significant effect on x86 or arm in the test-suite.
      
      llvm-svn: 130799
      38c4e34a
  16. Apr 28, 2011
  17. Mar 30, 2011
  18. Mar 18, 2011
  19. Jan 09, 2011
  20. Nov 17, 2010
  21. Oct 19, 2010
    • Owen Anderson's avatar
      Get rid of static constructors for pass registration. Instead, every pass... · 6c18d1aa
      Owen Anderson authored
      Get rid of static constructors for pass registration.  Instead, every pass exposes an initializeMyPassFunction(), which
      must be called in the pass's constructor.  This function uses static dependency declarations to recursively initialize
      the pass's dependencies.
      
      Clients that only create passes through the createFooPass() APIs will require no changes.  Clients that want to use the
      CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
      before parsing commandline arguments.
      
      I have tested this with all standard configurations of clang and llvm-gcc on Darwin.  It is possible that there are problems
      with the static dependencies that will only be visible with non-standard options.  If you encounter any crash in pass
      registration/creation, please send the testcase to me directly.
      
      llvm-svn: 116820
      6c18d1aa
  22. Oct 12, 2010
  23. Oct 08, 2010
  24. Sep 18, 2010
Loading