diff options
| author | Michael Kruse <llvm@meinersbur.de> | 2017-08-01 22:15:04 +0000 |
|---|---|---|
| committer | Michael Kruse <llvm@meinersbur.de> | 2017-08-01 22:15:04 +0000 |
| commit | fd350896890b904968d2c65c289c211bcdda0238 (patch) | |
| tree | 9bb3e14bfb24140a455bd91eb51493bbe65b3e0b | |
| parent | d89a1eb4fbd11e23cb01971199e6ba0b0717ddeb (diff) | |
| download | bcm5719-llvm-fd350896890b904968d2c65c289c211bcdda0238.tar.gz bcm5719-llvm-fd350896890b904968d2c65c289c211bcdda0238.zip | |
[ForwardOpTree] Execute canForwardTree also in release builds.
Commit r309730 moved the call to canForwardTree into an assert(), even
though this function has side-effects if its DoIt parameter is true. To
avoid a warning in release builds, do an (void)Execution of its result
instead.
To avoid such confusion in the future, rename
canForwardTree() to forwardTree().
llvm-svn: 309753
| -rw-r--r-- | polly/lib/Transform/ForwardOpTree.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/polly/lib/Transform/ForwardOpTree.cpp b/polly/lib/Transform/ForwardOpTree.cpp index cccb0b82b73..5c88065f6b6 100644 --- a/polly/lib/Transform/ForwardOpTree.cpp +++ b/polly/lib/Transform/ForwardOpTree.cpp @@ -137,9 +137,8 @@ private: /// /// @return If DoIt==false, return whether the operand tree can be forwarded. /// If DoIt==true, return FD_DidForward. - ForwardingDecision canForwardTree(ScopStmt *TargetStmt, Value *UseVal, - ScopStmt *UseStmt, Loop *UseLoop, - bool DoIt) { + ForwardingDecision forwardTree(ScopStmt *TargetStmt, Value *UseVal, + ScopStmt *UseStmt, Loop *UseLoop, bool DoIt) { VirtualUse VUse = VirtualUse::create(UseStmt, UseLoop, UseVal, true); switch (VUse.getKind()) { case VirtualUse::Constant: @@ -241,7 +240,7 @@ private: for (Value *OpVal : Inst->operand_values()) { ForwardingDecision OpDecision = - canForwardTree(TargetStmt, OpVal, DefStmt, DefLoop, DoIt); + forwardTree(TargetStmt, OpVal, DefStmt, DefLoop, DoIt); switch (OpDecision) { case FD_CannotForward: assert(!DoIt); @@ -275,13 +274,16 @@ private: Loop *InLoop = Stmt->getSurroundingLoop(); ForwardingDecision Assessment = - canForwardTree(Stmt, RA->getAccessValue(), Stmt, InLoop, false); + forwardTree(Stmt, RA->getAccessValue(), Stmt, InLoop, false); assert(Assessment != FD_DidForward); if (Assessment != FD_CanForwardTree) return false; - assert(canForwardTree(Stmt, RA->getAccessValue(), Stmt, InLoop, true) == - FD_DidForward); + ForwardingDecision Execution = + forwardTree(Stmt, RA->getAccessValue(), Stmt, InLoop, true); + assert(Execution == FD_DidForward && + "A previous positive assessment must also be executable"); + (void)Execution; Stmt->removeSingleMemoryAccess(RA); return true; |

