Skip to content
  1. Mar 30, 2011
  2. Jan 29, 2011
  3. Nov 16, 2010
  4. 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
  5. Oct 08, 2010
  6. Aug 31, 2010
  7. Aug 06, 2010
  8. Jul 22, 2010
  9. Jul 13, 2010
  10. Jul 12, 2010
  11. Jul 10, 2010
    • Duncan Sands's avatar
      The accumulator tail recursion transform claims to work for any associative · 82b21c08
      Duncan Sands authored
      operation, but the way it's implemented requires the operation to also be
      commutative.  So add a check for commutativity (and tweak the corresponding
      comments).  This makes no difference in practice since every associative
      LLVM instruction is also commutative!  Here's an example to show the need
      for commutativity: the accum_recursion.ll testcase calculates the factorial
      function.  Before the transformation the result of a call is
        ((((1*1)*2)*3)...)*x
      while afterwards it is
        (((1*x)*(x-1))...*2)*1
      which clearly requires both associativity and commutativity of * to be equal
      to the original.
      
      llvm-svn: 108056
      82b21c08
  12. Jun 26, 2010
  13. Jun 24, 2010
  14. May 28, 2010
  15. Apr 17, 2010
  16. Apr 16, 2010
  17. Apr 15, 2010
  18. Feb 03, 2010
  19. Jan 31, 2010
  20. Jan 30, 2010
  21. Nov 07, 2009
  22. Sep 02, 2009
  23. Aug 13, 2009
  24. Jun 19, 2009
  25. May 06, 2009
  26. Sep 04, 2008
  27. Jun 14, 2008
Loading