llvm::TargetLowering::LowerOperationWrapper

Custom-lower a node with an illegal operand type but legal result types.

Synopsis

Declared in <llvm/CodeGen/TargetLowering.h>

virtual
void
LowerOperationWrapper(
    SDNode* N,
    SmallVectorImpl<SDValue>& Results,
    SelectionDAG& DAG) const;

Description

This callback is invoked by the type legalizer to legalize nodes with an illegal operand type but legal result types. It replaces the LowerOperation callback in the type Legalizer. The reason we can not do away with LowerOperation entirely is that LegalizeDAG isn't yet ready to use this callback. TODO: Consider merging with ReplaceNodeResults.

The target places new result values for the node in Results (their number and types must exactly match those of the original return values of the node), or leaves Results empty, which indicates that the node is not to be custom lowered after all. The default implementation calls LowerOperation.

Parameters

NameDescription
NSDNode being queried.
ResultsReplacement results.
DAGSelectionDAG providing context.