Revert "[FunctionAttrs] Remove redundant assignment."
authorTilmann Scheller <t.scheller@samsung.com>
Fri, 20 Nov 2015 19:17:10 +0000 (19:17 +0000)
committerTilmann Scheller <t.scheller@samsung.com>
Fri, 20 Nov 2015 19:17:10 +0000 (19:17 +0000)
This reverts r253661.

Turns out that the assignment is not redundant (despite the Clang static analyzer claiming the opposite).

The variable is being used by the lambda function AddUsersToWorklistIfCapturing().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253696 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/FunctionAttrs.cpp

index 9c33f995789e6e1a7ea06154b5f387f15060b5a3..e699c5e0df5cf100581e5dba163b486b2b0c8e10 100644 (file)
@@ -486,6 +486,8 @@ determinePointerReadAttrs(Argument *A,
         return Attribute::None;
       }
 
+      Captures &= !CS.doesNotCapture(UseIndex);
+
       // Since the optimizer (by design) cannot see the data flow corresponding
       // to a operand bundle use, these cannot participate in the optimistic SCC
       // analysis.  Instead, we model the operand bundle uses as arguments in