diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-19 22:40:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-19 22:40:56 +0000 |
commit | 933b2cf9a851f3942f76fb363fc7cc40acdea95c (patch) | |
tree | 26f80eabe8d1bb9771a021ae7542fdb8becd49c2 /llvm/utils/TableGen/CodeGenTarget.cpp | |
parent | 9507d46d623e440bd4145d9ad89ea850a5737138 (diff) | |
download | bcm5719-llvm-933b2cf9a851f3942f76fb363fc7cc40acdea95c.tar.gz bcm5719-llvm-933b2cf9a851f3942f76fb363fc7cc40acdea95c.zip |
Change intrinsic result type for void to store it as an empty list
instead of as a single element list with VoidTy.
llvm-svn: 99009
Diffstat (limited to 'llvm/utils/TableGen/CodeGenTarget.cpp')
-rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index 79bc30d8c9a..0d29a2f3557 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -490,12 +490,15 @@ CodeGenIntrinsic::CodeGenIntrinsic(Record *R) { OverloadedVTs.push_back(VT); isOverloaded |= true; } + IS.RetVTs.push_back(VT); IS.RetTypeDefs.push_back(TyEl); } - - if (IS.RetVTs.size() == 0) - throw "Intrinsic '"+DefName+"' needs at least a type for the ret value!"; + + if (IS.RetVTs.size() == 1 && IS.RetVTs[0] == MVT::isVoid) { + IS.RetVTs.pop_back(); + IS.RetTypeDefs.pop_back(); + } // Parse the list of parameter types. TypeList = R->getValueAsListInit("ParamTypes"); |