summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2017-08-01 22:15:04 +0000
committerMichael Kruse <llvm@meinersbur.de>2017-08-01 22:15:04 +0000
commitfd350896890b904968d2c65c289c211bcdda0238 (patch)
tree9bb3e14bfb24140a455bd91eb51493bbe65b3e0b
parentd89a1eb4fbd11e23cb01971199e6ba0b0717ddeb (diff)
downloadbcm5719-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.cpp16
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;
OpenPOWER on IntegriCloud