Allow targets to custom handle softening of results or operands before trying the...
authorSanjiv Gupta <sanjiv.gupta@microchip.com>
Mon, 3 Aug 2009 17:35:21 +0000 (17:35 +0000)
committerSanjiv Gupta <sanjiv.gupta@microchip.com>
Mon, 3 Aug 2009 17:35:21 +0000 (17:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77974 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp

index 5957e3a503bb5ea1c159a0c3006d0aa9b47a2bf6..a4f3b1eb965befbd0f35a0b170bc228d2235dc4c 100644 (file)
@@ -47,6 +47,10 @@ void DAGTypeLegalizer::SoftenFloatResult(SDNode *N, unsigned ResNo) {
         errs() << "\n");
   SDValue R = SDValue();
 
+  // See if the target wants to custom handle softening this result.
+  if (CustomLowerNode(N, N->getValueType(ResNo), true))
+        return;
+
   switch (N->getOpcode()) {
   default:
 #ifndef NDEBUG
@@ -535,6 +539,10 @@ bool DAGTypeLegalizer::SoftenFloatOperand(SDNode *N, unsigned OpNo) {
         errs() << "\n");
   SDValue Res = SDValue();
 
+  // See if target wants to custom handle softening this operand.
+  if (CustomLowerNode(N, N->getOperand(OpNo).getValueType(), false))
+     return false;
+
   switch (N->getOpcode()) {
   default:
 #ifndef NDEBUG