aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/llvm/CodeGen/DAGISelHeader.h16
1 files changed, 7 insertions, 9 deletions
diff --git a/include/llvm/CodeGen/DAGISelHeader.h b/include/llvm/CodeGen/DAGISelHeader.h
index 9aec982..51bb2f4 100644
--- a/include/llvm/CodeGen/DAGISelHeader.h
+++ b/include/llvm/CodeGen/DAGISelHeader.h
@@ -889,17 +889,15 @@ SDNode *SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
Res->setNodeId(-1);
}
- // FIXME: Whether the selected node has a flag result should come from
- // flags on the node.
unsigned ResNumResults = Res->getNumValues();
- if (Res->getValueType(ResNumResults-1) == MVT::Flag) {
- // Move the flag if needed.
- if (OldFlagResultNo != -1 &&
- (unsigned)OldFlagResultNo != ResNumResults-1)
- ReplaceUses(SDValue(NodeToMatch, OldFlagResultNo),
- SDValue(Res, ResNumResults-1));
+ // Move the flag if needed.
+ if ((EmitNodeInfo & OPFL_FlagOutput) && OldFlagResultNo != -1 &&
+ (unsigned)OldFlagResultNo != ResNumResults-1)
+ ReplaceUses(SDValue(NodeToMatch, OldFlagResultNo),
+ SDValue(Res, ResNumResults-1));
+
+ if ((EmitNodeInfo & OPFL_FlagOutput) != 0)
--ResNumResults;
- }
// Move the chain reference if needed.
if ((EmitNodeInfo & OPFL_Chain) && OldChainResultNo != -1 &&