Skip to content
  1. Jan 02, 2013
    • Chandler Carruth's avatar
      Move all of the header files which are involved in modelling the LLVM IR · 9fb823bb
      Chandler Carruth authored
      into their new header subdirectory: include/llvm/IR. This matches the
      directory structure of lib, and begins to correct a long standing point
      of file layout clutter in LLVM.
      
      There are still more header files to move here, but I wanted to handle
      them in separate commits to make tracking what files make sense at each
      layer easier.
      
      The only really questionable files here are the target intrinsic
      tablegen files. But that's a battle I'd rather not fight today.
      
      I've updated both CMake and Makefile build systems (I think, and my
      tests think, but I may have missed something).
      
      I've also re-sorted the includes throughout the project. I'll be
      committing updates to Clang, DragonEgg, and Polly momentarily.
      
      llvm-svn: 171366
      9fb823bb
  2. Dec 03, 2012
    • Chandler Carruth's avatar
      Use the new script to sort the includes of every file under lib. · ed0881b2
      Chandler Carruth authored
      Sooooo many of these had incorrect or strange main module includes.
      I have manually inspected all of these, and fixed the main module
      include to be the nearest plausible thing I could find. If you own or
      care about any of these source files, I encourage you to take some time
      and check that these edits were sensible. I can't have broken anything
      (I strictly added headers, and reordered them, never removed), but they
      may not be the headers you'd really like to identify as containing the
      API being implemented.
      
      Many forward declarations and missing includes were added to a header
      files to allow them to parse cleanly when included first. The main
      module rule does in fact have its merits. =]
      
      llvm-svn: 169131
      ed0881b2
  3. Sep 27, 2012
  4. Apr 30, 2012
    • Bill Wendling's avatar
      Second attempt at PR12573: · bf4b9afb
      Bill Wendling authored
      Allow the "SplitCriticalEdge" function to split the edge to a landing pad. If
      the pass is *sure* that it thinks it knows what it's doing, then it may go ahead
      and specify that the landing pad can have its critical edge split. The loop
      unswitch pass is one of these passes. It will split the critical edges of all
      edges coming from a loop to a landing pad not within the loop. Doing so will
      retain important loop analysis information, such as loop simplify.
      
      llvm-svn: 155817
      bf4b9afb
    • Bill Wendling's avatar
      Use an ArrayRef instead of explicit vector type. · 325e6cd9
      Bill Wendling authored
      llvm-svn: 155816
      325e6cd9
  5. Dec 09, 2011
  6. Oct 04, 2011
  7. Sep 21, 2011
    • Bill Wendling's avatar
      Relax this condition. · a6e1c51e
      Bill Wendling authored
      Some passes require breaking critical edges before they're called. Don't
      segfault because of that.
      
      llvm-svn: 140196
      a6e1c51e
  8. Aug 17, 2011
  9. Jul 20, 2011
  10. Jun 23, 2011
  11. Jun 21, 2011
  12. 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
  13. May 17, 2011
  14. Apr 15, 2011
  15. Mar 30, 2011
  16. Jan 18, 2011
  17. Jan 14, 2011
  18. Jan 02, 2011
  19. 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
  20. Oct 08, 2010
  21. Aug 23, 2010
  22. Aug 06, 2010
  23. Jul 22, 2010
  24. Jul 09, 2010
  25. Mar 26, 2010
  26. Feb 13, 2010
  27. Dec 18, 2009
  28. Nov 01, 2009
Loading