Skip to content
  1. Aug 16, 2011
  2. Aug 15, 2011
  3. Aug 12, 2011
  4. Aug 11, 2011
    • Andrew Trick's avatar
      Fix for LoopInfo::updateUnloop. Remove subloop blocks from former · c12c30a6
      Andrew Trick authored
      ancestor loops.
      
      I have a unit test that depends on scev-unroll, which unfortunately
      isn't checked in. But I will check it in when I can.
      
      llvm-svn: 137341
      c12c30a6
    • Andrew Trick's avatar
      Cleanup. Another thorough review by Nick! · 266ab100
      Andrew Trick authored
      llvm-svn: 137317
      266ab100
    • Andrew Trick's avatar
      Reapplying r136844. · d3530b91
      Andrew Trick authored
      An algorithm for incrementally updating LoopInfo within a
      LoopPassManager. The incremental update should be extremely cheap in
      most cases and can be used in places where it's not feasible to
      regenerate the entire loop forest.
      
      - "Unloop" is a node in the loop tree whose last backedge has been removed.
      - Perform reverse dataflow on the block inside Unloop to propagate the
        nearest loop from the block's successors.
      - For reducible CFG, each block in unloop is visited exactly
        once. This is because unloop no longer has a backedge and blocks
        within subloops don't change parents.
      - Immediate subloops are summarized by the nearest loop reachable from
        their exits or exits within nested subloops.
      - At completion the unloop blocks each have a new parent loop, and
        each immediate subloop has a new parent.
      
      llvm-svn: 137276
      d3530b91
  5. Aug 10, 2011
  6. Aug 09, 2011
  7. Aug 06, 2011
    • Andrew Trick's avatar
      Made SCEV's UDiv expressions more canonical. When dividing a · 6d45a01b
      Andrew Trick authored
      recurrence, the initial values low bits can sometimes be ignored.
      
      To take advantage of this, added FoldIVUser to IndVarSimplify to fold
      an IV operand into a udiv/lshr if the operator doesn't affect the
      result.
      
      -indvars -disable-iv-rewrite now transforms
      
      i = phi i4
      i1 = i0 + 1
      idx = i1 >> (2 or more)
      i4 = i + 4
      
      into
      
      i = phi i4
      idx = i0 >> ...
      i4 = i + 4
      
      llvm-svn: 137013
      6d45a01b
  8. Aug 05, 2011
    • Chandler Carruth's avatar
      Temporarily revert r135528 which distinguishes between two copies of one · 81b7e11c
      Chandler Carruth authored
      inlined variable, based on the discussion in PR10542.
      
      This explodes the runtime of several passes down the pipeline due to
      a large number of "copies" remaining live across a large function. This
      only shows up with both debug and opt, but when it does it creates
      a many-minute compile when self-hosting LLVM+Clang. There are several
      other cases that show these types of regressions.
      
      All of this is tracked in PR10542, and progress is being made on fixing
      the issue. Once its addressed, the re-instated, but until then this
      restores the performance for self-hosting and other opt+debug builds.
      
      Devang, let me know if this causes any trouble, or impedes fixing it in
      any way, and thanks for working on this!
      
      llvm-svn: 136953
      81b7e11c
  9. Aug 04, 2011
  10. Aug 03, 2011
  11. Aug 02, 2011
  12. Aug 01, 2011
  13. Jul 31, 2011
  14. Jul 29, 2011
    • Jakub Staszak's avatar
      Add more constantness in BranchProbabilityInfo. · efd94c8f
      Jakub Staszak authored
      llvm-svn: 136502
      efd94c8f
    • Jakub Staszak's avatar
      Remove incEdgeWeight and decEdgeWeight. Set edge weight directly to avoid · 09784268
      Jakub Staszak authored
      rounding errors.
      
      llvm-svn: 136456
      09784268
    • Chandler Carruth's avatar
      Rewrite the CMake build to use explicit dependencies between libraries, · 9d7feab3
      Chandler Carruth authored
      specified in the same file that the library itself is created. This is
      more idiomatic for CMake builds, and also allows us to correctly specify
      dependencies that are missed due to bugs in the GenLibDeps perl script,
      or change from compiler to compiler. On Linux, this returns CMake to
      a place where it can relably rebuild several targets of LLVM.
      
      I have tried not to change the dependencies from the ones in the current
      auto-generated file. The only places I've really diverged are in places
      where I was seeing link failures, and added a dependency. The goal of
      this patch is not to start changing the dependencies, merely to move
      them into the correct location, and an explicit form that we can control
      and change when necessary.
      
      This also removes a serialization point in the build because we don't
      have to scan all the libraries before we begin building various tools.
      We no longer have a step of the build that regenerates a file inside the
      source tree. A few other associated cleanups fall out of this.
      
      This isn't really finished yet though. After talking to dgregor he urged
      switching to a single CMake macro to construct libraries with both
      sources and dependencies in the arguments. Migrating from the two macros
      to that style will be a follow-up patch.
      
      Also, llvm-config is still generated with GenLibDeps.pl, which means it
      still has slightly buggy dependencies. The internal CMake
      'llvm-config-like' macro uses the correct explicitly specified
      dependencies however. A future patch will switch llvm-config generation
      (when using CMake) to be based on these deps as well.
      
      This may well break Windows. I'm getting a machine set up now to dig
      into any failures there. If anyone can chime in with problems they see
      or ideas of how to solve them for Windows, much appreciated.
      
      llvm-svn: 136433
      9d7feab3
    • Jakub Staszak's avatar
      Change LBH_TAKEN_WEIGHT to 124 (from 128). Right now, sum of · eec01ccb
      Jakub Staszak authored
      LBH_TAKEN_WEIGHT + LBH_NONTAKEN_WEIGHT = 128 which in _most_ cases reduce
      number of rounding errors.
      
      llvm-svn: 136428
      eec01ccb
  15. Jul 28, 2011
  16. Jul 27, 2011
Loading