From 673537e5c000f37963a41b15079162984f9208c9 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 15 Aug 2003 04:28:04 +0000 Subject: [PATCH] Add support for nodes with void arguments, like chain nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7869 91177308-0d34-0410-b5e6-96231b3b80d8 --- support/tools/TableGen/InstrSelectorEmitter.cpp | 5 +++-- utils/TableGen/InstrSelectorEmitter.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/support/tools/TableGen/InstrSelectorEmitter.cpp b/support/tools/TableGen/InstrSelectorEmitter.cpp index 28c7de11403..2db6da4bd2f 100644 --- a/support/tools/TableGen/InstrSelectorEmitter.cpp +++ b/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)) diff --git a/utils/TableGen/InstrSelectorEmitter.cpp b/utils/TableGen/InstrSelectorEmitter.cpp index 28c7de11403..2db6da4bd2f 100644 --- a/utils/TableGen/InstrSelectorEmitter.cpp +++ b/utils/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)) -- 2.34.1