aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-25 06:47:53 +0000
committerChris Lattner <sabre@nondot.org>2006-03-25 06:47:53 +0000
commit9bf2d3e6d6768809144eb72c1a6f8e03d2b328f3 (patch)
tree4e5703bc78d70fded498b13a7a14f242d5ff7875 /utils
parent420736dc85c01702bb7bc40495f8a4be5e5f8a6c (diff)
downloadexternal_llvm-9bf2d3e6d6768809144eb72c1a6f8e03d2b328f3.zip
external_llvm-9bf2d3e6d6768809144eb72c1a6f8e03d2b328f3.tar.gz
external_llvm-9bf2d3e6d6768809144eb72c1a6f8e03d2b328f3.tar.bz2
When failing selection for an intrinsic, print this:
Cannot yet select: intrinsic %llvm.ppc.altivec.lvx instead of this: Cannot yet select: 0x9b047e0: v4i32,ch = INTRINSIC 0x9b04540:1, 0x9b04710, 0x9b04790, 0x9b04540 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27110 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/TableGen/DAGISelEmitter.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index aba5428..81a45e1 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -3114,7 +3114,14 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
// the case where nothing handles a pattern.
if (mightNotMatch)
OS << " std::cerr << \"Cannot yet select: \";\n"
- << " N.Val->dump(CurDAG);\n"
+ << " if (N.getOpcode() != ISD::INTRINSIC) {\n"
+ << " N.Val->dump(CurDAG);\n"
+ << " } else {\n"
+ << " unsigned iid = cast<ConstantSDNode>(N.getOperand("
+ "N.getOperand(0).getValueType() == MVT::Other))->getValue();\n"
+ << " std::cerr << \"intrinsic %\"<< "
+ "Intrinsic::getName((Intrinsic::ID)iid);\n"
+ << " }\n"
<< " std::cerr << '\\n';\n"
<< " abort();\n";
@@ -3275,7 +3282,14 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
OS << " } // end of big switch.\n\n"
<< " std::cerr << \"Cannot yet select: \";\n"
- << " N.Val->dump(CurDAG);\n"
+ << " if (N.getOpcode() != ISD::INTRINSIC) {\n"
+ << " N.Val->dump(CurDAG);\n"
+ << " } else {\n"
+ << " unsigned iid = cast<ConstantSDNode>(N.getOperand("
+ "N.getOperand(0).getValueType() == MVT::Other))->getValue();\n"
+ << " std::cerr << \"intrinsic %\"<< "
+ "Intrinsic::getName((Intrinsic::ID)iid);\n"
+ << " }\n"
<< " std::cerr << '\\n';\n"
<< " abort();\n"
<< "}\n";