Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rust-lang/llvm
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3e03f7374169cd41547d75e62ac2ab8a103a913c
Choose a base ref
...
head repository: rust-lang/llvm
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: ac1c94226e9fa17005ce7e2dd52dd6d1875f3137
Choose a head ref
  • 6 commits
  • 7 files changed
  • 5 contributors

Commits on Sep 30, 2016

  1. Merge pull request #52 from brson/fastcomp

    Import of fastcomp commit 4105790
    brson authored Sep 30, 2016
    Configuration menu
    Copy the full SHA
    b892152 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2016

  1. [SimplifyCFG] Correctly test for unconditional branches in GetCaseRes…

    …ults
    
    GetCaseResults assumed that a terminator with one successor was an
    unconditional branch.  This is not necessarily the case, it could be a
    cleanupret.
    
    Strengthen the check by querying whether or not the terminator is
    exceptional.
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283517 91177308-0d34-0410-b5e6-96231b3b80d8
    majnemer authored and arielb1 committed Oct 7, 2016
    Configuration menu
    Copy the full SHA
    9b74379 View commit details
    Browse the repository at this point in the history
  2. Propagate DBG_VALUE entries when there are unvisited predecessors

    Variables are sometimes missing their debug location information in
    blocks in which the variables should be available. This would occur
    when one or more predecessor blocks had not yet been visited by the
    routine which propagated the information from predecessor blocks.
    
    This is addressed by only considering predecessor blocks which have
    already been visited.
    
    The solution to this problem was suggested by Daniel Berlin on the
    LLVM developer mailing list.
    
    Differential Revision: https://reviews.llvm.org/D24927
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282506 91177308-0d34-0410-b5e6-96231b3b80d8
    Keith Walker authored and michaelwoerister committed Oct 7, 2016
    Configuration menu
    Copy the full SHA
    0d4331a View commit details
    Browse the repository at this point in the history
  3. Teach LiveDebugValues about lexical scopes.

    This addresses PR26055 LiveDebugValues is very slow.
    
    Contrary to the old LiveDebugVariables pass LiveDebugValues currently
    doesn't look at the lexical scopes before inserting a DBG_VALUE
    intrinsic. This means that we often propagate DBG_VALUEs much further
    down than necessary. This is especially noticeable in large C++
    functions with many inlined method calls that all use the same
    "this"-pointer.
    
    For example, in the following code it makes no sense to propagate the
    inlined variable a from the first inlined call to f() into any of the
    subsequent basic blocks, because the variable will always be out of
    scope:
    
    void sink(int a);
    void __attribute((always_inline)) f(int a) { sink(a); }
    void foo(int i) {
       f(i);
       if (i)
         f(i);
       f(i);
    }
    
    This patch reuses the LexicalScopes infrastructure we have for
    LiveDebugVariables to take this into account.
    
    The effect on compile time and memory consumption is quite noticeable:
    I tested a benchmark that is a large C++ source with an enormous
    amount of inlined "this"-pointers that would previously eat >24GiB
    (most of them for DBG_VALUE intrinsics) and whose compile time was
    dominated by LiveDebugValues. With this patch applied the memory
    consumption is 1GiB and 1.7% of the time is spent in LiveDebugValues.
    
    https://reviews.llvm.org/D24994
    Thanks to Daniel Berlin and Keith Walker for reviewing!
    
    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282611 91177308-0d34-0410-b5e6-96231b3b80d8
    adrian-prantl authored and michaelwoerister committed Oct 7, 2016
    Configuration menu
    Copy the full SHA
    8a0fc26 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #53 from michaelwoerister/live-debug-values-fix

    Cherry-pick fixes for LiveDebugValues pass.
    alexcrichton authored Oct 7, 2016
    Configuration menu
    Copy the full SHA
    abbf675 View commit details
    Browse the repository at this point in the history

Commits on Oct 8, 2016

  1. Merge pull request #54 from arielb1/cleanup-is-not-a-jump

    Backport "[SimplifyCFG] Correctly test for unconditional branches in GetCaseResults"
    alexcrichton authored Oct 8, 2016
    Configuration menu
    Copy the full SHA
    ac1c942 View commit details
    Browse the repository at this point in the history
Loading