add a new target hook.

llvm-svn: 43165
This commit is contained in:
Chris Lattner 2007-10-19 03:31:45 +00:00
parent 5d979d57ae
commit 579db81f1c
2 changed files with 17 additions and 0 deletions

View File

@ -885,6 +885,15 @@ public:
/// implement this. The default implementation of this aborts.
virtual SDOperand LowerOperation(SDOperand Op, SelectionDAG &DAG);
/// ExpandOperation - This callback is invoked for operations that are
/// unsupported by the target, which are registered to use 'custom' lowering,
/// and whose result type needs to be expanded.
///
/// If the target has no operations that require custom lowering, it need not
/// implement this. The default implementation of this aborts.
virtual std::pair<SDOperand,SDOperand>
ExpandOperation(SDOperand Op, SelectionDAG &DAG);
/// IsEligibleForTailCallOptimization - Check whether the call is eligible for
/// tail call optimization. Targets which want to do tail call optimization
/// should override this function.

View File

@ -4134,6 +4134,14 @@ SDOperand TargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
return SDOperand();
}
std::pair<SDOperand,SDOperand>
TargetLowering::ExpandOperation(SDOperand Op, SelectionDAG &DAG) {
assert(0 && "ExpandOperation not implemented for this target!");
abort();
return std::pair<SDOperand,SDOperand>();
}
SDOperand TargetLowering::CustomPromoteOperation(SDOperand Op,
SelectionDAG &DAG) {
assert(0 && "CustomPromoteOperation not implemented for this target!");