diff options
author | Chris Lattner <sabre@nondot.org> | 2010-02-21 20:10:43 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-02-21 20:10:43 +0000 |
commit | be92e6a0d2108bc086a3a2705bf218da1c7337c8 (patch) | |
tree | 6a101d9cc57c8a0b174ead670397629733aceeaf | |
parent | 1d4cb41fdd7e644d23864e2db4f7d2576c713a88 (diff) |
teach OPC_CheckType to handle MVT::iPTR, down to 2 ppc failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96752 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/DAGISelHeader.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/DAGISelHeader.h b/include/llvm/CodeGen/DAGISelHeader.h index 137d45c3d2..5d91c2bd88 100644 --- a/include/llvm/CodeGen/DAGISelHeader.h +++ b/include/llvm/CodeGen/DAGISelHeader.h @@ -406,10 +406,16 @@ SDNode *SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable, case OPC_CheckOpcode: if (N->getOpcode() != MatcherTable[MatcherIndex++]) break; continue; - case OPC_CheckType: - if (N.getValueType() != - (MVT::SimpleValueType)MatcherTable[MatcherIndex++]) break; + case OPC_CheckType: { + MVT::SimpleValueType VT = + (MVT::SimpleValueType)MatcherTable[MatcherIndex++]; + if (N.getValueType() != VT) { + // Handle the case when VT is iPTR. + if (VT != MVT::iPTR || N.getValueType() != TLI.getPointerTy()) + break; + } continue; + } case OPC_CheckCondCode: if (cast<CondCodeSDNode>(N)->get() != (ISD::CondCode)MatcherTable[MatcherIndex++]) break; |