diff options
-rw-r--r-- | include/llvm/CodeGen/DAGISelHeader.h | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/include/llvm/CodeGen/DAGISelHeader.h b/include/llvm/CodeGen/DAGISelHeader.h index 5bb53b0..4a3d70f 100644 --- a/include/llvm/CodeGen/DAGISelHeader.h +++ b/include/llvm/CodeGen/DAGISelHeader.h @@ -26,29 +26,6 @@ /// node list. SelectionDAG::allnodes_iterator ISelPosition; -/// ChainNotReachable - Returns true if Chain does not reach Op. -static bool ChainNotReachable(SDNode *Chain, SDNode *Op) { - if (Chain->getOpcode() == ISD::EntryToken) - return true; - if (Chain->getOpcode() == ISD::TokenFactor) - return false; - if (Chain->getNumOperands() > 0) { - SDValue C0 = Chain->getOperand(0); - if (C0.getValueType() == MVT::Other) - return C0.getNode() != Op && ChainNotReachable(C0.getNode(), Op); - } - return true; -} - -/// IsChainCompatible - Returns true if Chain is Op or Chain does not reach Op. -/// This is used to ensure that there are no nodes trapped between Chain, which -/// is the first chain node discovered in a pattern and Op, a later node, that -/// will not be selected into the pattern. -static bool IsChainCompatible(SDNode *Chain, SDNode *Op) { - return Chain == Op || ChainNotReachable(Chain, Op); -} - - /// ISelUpdater - helper class to handle updates of the /// instruciton selection graph. class VISIBILITY_HIDDEN ISelUpdater : public SelectionDAG::DAGUpdateListener { @@ -117,6 +94,7 @@ void SelectRoot(SelectionDAG &DAG) { continue; SDNode *ResNode = Select(Node); + // If node should not be replaced, continue with the next one. if (ResNode == Node) continue; |