llvm::SDNode::hasPredecessorHelper

Return true if N is a predecessor of any node in Worklist.

Synopsis

Declared in <llvm/CodeGen/SelectionDAGNodes.h>

static
bool
hasPredecessorHelper(
    SDNode const* N,
    SmallPtrSetImpl<SDNode const*>& Visited,
    SmallVectorImpl<SDNode const*>& Worklist,
    unsigned int MaxSteps = 0,
    bool TopologicalPrune = false);

Description

This helper keeps Visited and Worklist sets externally to allow unions searches to be performed in parallel, caching of results across queries and incremental addition to Worklist. Stops early if N is found but will resume. Remember to clear Visited and Worklists if DAG changes. MaxSteps gives a maximum number of nodes to visit before giving up. The TopologicalPrune flag signals that positive NodeIds are topologically ordered (Operands have strictly smaller node id) and search can be pruned leveraging this.

Return Value

True if N is a predecessor of any node in Worklist.

Parameters

NameDescription
NNode sought as a predecessor.
VisitedSet of already-visited nodes (updated).
WorklistNodes whose predecessors are searched (updated).
MaxStepsMax nodes to visit, or 0 for unlimited.
TopologicalPruneEnable pruning via positive NodeIds.