Skip to content
  1. Mar 10, 2014
  2. Mar 09, 2014
    • Chandler Carruth's avatar
      [PM] Switch new pass manager from polymorphic_ptr to unique_ptr now that · c3f3da3d
      Chandler Carruth authored
      it is available. Also make the move semantics sufficiently correct to
      tolerate move-only passes, as the PassManagers *are* move-only passes.
      
      llvm-svn: 203391
      c3f3da3d
    • Chandler Carruth's avatar
      [C++11] Add range based accessors for the Use-Def chain of a Value. · cdf47884
      Chandler Carruth authored
      This requires a number of steps.
      1) Move value_use_iterator into the Value class as an implementation
         detail
      2) Change it to actually be a *Use* iterator rather than a *User*
         iterator.
      3) Add an adaptor which is a User iterator that always looks through the
         Use to the User.
      4) Wrap these in Value::use_iterator and Value::user_iterator typedefs.
      5) Add the range adaptors as Value::uses() and Value::users().
      6) Update *all* of the callers to correctly distinguish between whether
         they wanted a use_iterator (and to explicitly dig out the User when
         needed), or a user_iterator which makes the Use itself totally
         opaque.
      
      Because #6 requires churning essentially everything that walked the
      Use-Def chains, I went ahead and added all of the range adaptors and
      switched them to range-based loops where appropriate. Also because the
      renaming requires at least churning every line of code, it didn't make
      any sense to split these up into multiple commits -- all of which would
      touch all of the same lies of code.
      
      The result is still not quite optimal. The Value::use_iterator is a nice
      regular iterator, but Value::user_iterator is an iterator over User*s
      rather than over the User objects themselves. As a consequence, it fits
      a bit awkwardly into the range-based world and it has the weird
      extra-dereferencing 'operator->' that so many of our iterators have.
      I think this could be fixed by providing something which transforms
      a range of T&s into a range of T*s, but that *can* be separated into
      another patch, and it isn't yet 100% clear whether this is the right
      move.
      
      However, this change gets us most of the benefit and cleans up
      a substantial amount of code around Use and User. =]
      
      llvm-svn: 203364
      cdf47884
  3. Mar 08, 2014
  4. Mar 07, 2014
  5. Mar 06, 2014
  6. Mar 05, 2014
  7. Mar 04, 2014
  8. Mar 03, 2014
    • Tom Stellard's avatar
      Add patch level to llvm version in CMake and Autoconf · e6ba81da
      Tom Stellard authored
      The shared library generated by autoconf will now be called
      libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)$(VERSION_SUFFIX).so
      and a symlink named
      libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_SUFFIX).so will
      also be created in the install directory.
      
      llvm-svn: 202720
      e6ba81da
    • Richard Osborne's avatar
      Don't emit a blank line when running llvm-config --system-libs. · 49ae1177
      Richard Osborne authored
      Summary:
      Previously llvm-config --system-libs would print something like:
      
      $ llvm-config --system-libs
      
      -lz -ltinfo -lrt -ldl -lm
      
      Now we don't emit blank line. Functionality is unchanged otherwise, in
      particular llvm-config --libs --system-libs still emits the LLVM libraries
      and the system libraries on different lines.
      
      Reviewers: chapuni
      
      Reviewed By: chapuni
      
      CC: llvm-commits
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2901
      
      llvm-svn: 202719
      49ae1177
  9. Mar 02, 2014
  10. Mar 01, 2014
  11. Feb 28, 2014
Loading