Skip to content
  1. Mar 14, 2014
  2. Mar 13, 2014
  3. Mar 12, 2014
    • Justin Bogner's avatar
      Back out Profile library and dependent commits · ec49f982
      Justin Bogner authored
      Chandler voiced some concern with checking this in without some
      discussion first. Reverting for now.
      
      This reverts r203703, r203704, r203708, and 203709.
      
      llvm-svn: 203723
      ec49f982
    • Justin Bogner's avatar
      Profile: Remove an inefficient and unnecessary API function · a1f278f9
      Justin Bogner authored
      This was leftover from an approach I abandoned, but I forgot to update
      it before committing.
      
      llvm-svn: 203708
      a1f278f9
    • Justin Bogner's avatar
      llvm-profdata: Use the Profile library, implement show and generate · bfee8d49
      Justin Bogner authored
      This replaces the llvm-profdata tool with a version that uses the
      recently introduced Profile library. The new tool has the ability to
      generate and summarize profdata files as well as merging them.
      
      llvm-svn: 203704
      bfee8d49
    • Eli Bendersky's avatar
      Move duplicated code into a helper function (exposed through overload). · 49f65652
      Eli Bendersky authored
      There's a bit of duplicated "magic" code in opt.cpp and Clang's CodeGen that
      computes the inliner threshold from opt level and size opt level.
      
      This patch moves the code to a function that lives alongside the inliner itself,
      providing a convenient overload to the inliner creation.
      
      A separate patch can be committed to Clang to use this once it's committed to
      LLVM. Standalone tools that use the inlining pass can also avoid duplicating
      this code and fearing it will go out of sync.
      
      Note: this patch also restructures the conditinal logic of the computation to
      be cleaner.
      
      llvm-svn: 203669
      49f65652
  4. Mar 11, 2014
    • Saleem Abdulrasool's avatar
      Object: rename ARMV7 to ARMNT · 5e1780e2
      Saleem Abdulrasool authored
      The official specifications state the name to be ARMNT (as per the Microsoft
      Portable Executable and Common Object Format Specification v8.3).
      
      llvm-svn: 203530
      5e1780e2
  5. Mar 10, 2014
  6. 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
  7. Mar 08, 2014
  8. Mar 07, 2014
  9. Mar 06, 2014
  10. Mar 05, 2014
  11. Mar 04, 2014
Loading