summaryrefslogtreecommitdiffstats
path: root/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-08-15 04:28:04 +0000
committerChris Lattner <sabre@nondot.org>2003-08-15 04:28:04 +0000
commit32dd756809d7293ca052126c310355236d231411 (patch)
tree8d4e5745152d552a23a73d73ce6cb422e6277b3e /llvm/support/tools/TableGen/InstrSelectorEmitter.cpp
parent2e9fc94afc2580c5da4c0c149087ce54c8dc8700 (diff)
downloadbcm5719-llvm-32dd756809d7293ca052126c310355236d231411.tar.gz
bcm5719-llvm-32dd756809d7293ca052126c310355236d231411.zip
Add support for nodes with void arguments, like chain nodes
llvm-svn: 7869
Diffstat (limited to 'llvm/support/tools/TableGen/InstrSelectorEmitter.cpp')
-rw-r--r--llvm/support/tools/TableGen/InstrSelectorEmitter.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp b/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp
index 28c7de11403..2db6da4bd2f 100644
--- a/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp
+++ b/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp
@@ -299,6 +299,9 @@ bool Pattern::InferTypes(TreePatternNode *N, bool &MadeChange) {
MadeChange |= Child->updateNodeType(ISE.getTarget().getPointerType(),
TheRecord->getName());
break;
+ case NodeType::Void:
+ MadeChange |= Child->updateNodeType(MVT::isVoid, TheRecord->getName());
+ break;
default: assert(0 && "Invalid argument ArgType!");
}
}
@@ -449,8 +452,6 @@ void InstrSelectorEmitter::ReadNodeTypes() {
throw "In node " + Node->getName() + ", arg 0 cannot have type 'arg0'!";
if (a == 1 && ArgTypes.back() == NodeType::Arg1)
throw "In node " + Node->getName() + ", arg 1 cannot have type 'arg1'!";
- if (ArgTypes.back() == NodeType::Void)
- throw "In node " + Node->getName() + ", args cannot be void type!";
}
if ((RetTy == NodeType::Arg0 && Args->getSize() == 0) ||
(RetTy == NodeType::Arg1 && Args->getSize() < 2))
OpenPOWER on IntegriCloud