Skip to content
  1. Sep 27, 2011
  2. Jun 23, 2011
  3. Jun 21, 2011
  4. Jun 20, 2011
    • Jay Foad's avatar
      Change how PHINodes store their operands. · e03c05c3
      Jay Foad authored
      Change PHINodes to store simple pointers to their incoming basic blocks,
      instead of full-blown Uses.
      
      Note that this loses an optimization in SplitCriticalEdge(), because we
      can no longer walk the use list of a BasicBlock to find phi nodes. See
      the comment I removed starting "However, the foreach loop is slow for
      blocks with lots of predecessors".
      
      Extend replaceAllUsesWith() on a BasicBlock to also update any phi
      nodes in the block's successors. This mimics what would have happened
      when PHINodes were proper Users of their incoming blocks. (Note that
      this only works if OldBB->replaceAllUsesWith(NewBB) is called when
      OldBB still has a terminator instruction, so it still has some
      successors.)
      
      llvm-svn: 133435
      e03c05c3
  5. Jun 03, 2011
  6. May 25, 2011
  7. Feb 11, 2011
  8. Jan 08, 2011
    • Chris Lattner's avatar
      Revamp the ValueMapper interfaces in a couple ways: · 43f8d164
      Chris Lattner authored
      1. Take a flags argument instead of a bool.  This makes
         it more clear to the reader what it is used for.
      2. Add a flag that says that "remapping a value not in the
         map is ok".
      3. Reimplement MapValue to share a bunch of code and be a lot
         more efficient.  For lookup failures, don't drop null values
         into the map.
      4. Using the new flag a bunch of code can vaporize in LinkModules
         and LoopUnswitch, kill it.
      
      No functionality change.
      
      llvm-svn: 123058
      43f8d164
  9. Nov 23, 2010
  10. Nov 18, 2010
  11. Nov 14, 2010
  12. Oct 19, 2010
    • Owen Anderson's avatar
      Passes do not need to recursively initialize passes that they preserve, if · a4fefc19
      Owen Anderson authored
      they do not also require them.  This allows us to reduce inter-pass linkage
      dependencies.
      
      llvm-svn: 116854
      a4fefc19
    • 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
  13. Oct 13, 2010
  14. Oct 12, 2010
  15. Oct 08, 2010
  16. Sep 01, 2010
  17. Aug 29, 2010
  18. Aug 06, 2010
  19. Jul 22, 2010
  20. Jun 24, 2010
  21. Jun 09, 2010
  22. Apr 20, 2010
  23. Apr 05, 2010
  24. Apr 03, 2010
  25. Mar 10, 2010
  26. Feb 16, 2010
  27. Feb 15, 2010
  28. Feb 02, 2010
  29. Jan 05, 2010
Loading