From 853b919d93c62498ba30e7a78ab393291517cd42 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 19 Feb 2010 00:33:13 +0000 Subject: [PATCH] I confused myself, temporaries will be recorded right along with other inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96639 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/DAGISelMatcherGen.cpp | 38 +++++----------------------- 1 file changed, 7 insertions(+), 31 deletions(-) diff --git a/utils/TableGen/DAGISelMatcherGen.cpp b/utils/TableGen/DAGISelMatcherGen.cpp index 9bf929ceead..d87f7378161 100644 --- a/utils/TableGen/DAGISelMatcherGen.cpp +++ b/utils/TableGen/DAGISelMatcherGen.cpp @@ -21,35 +21,15 @@ namespace { /// matcher or it can be a temporary value created by the emitter for things /// like constants. class ResultVal { - unsigned Number : 30; - enum { - Recorded, Temporary - } Kind : 2; // True if temporary, false if recorded. + unsigned Number; public: - static ResultVal getRecorded(unsigned N) { + static ResultVal get(unsigned N) { ResultVal R; R.Number = N; - R.Kind = Recorded; - return R; - } - - static ResultVal getTemp(unsigned N) { - ResultVal R; - R.Number = N; - R.Kind = Temporary; return R; } - bool isTemp() const { return Kind == Temporary; } - bool isRecorded() const { return Kind == Recorded; } - - unsigned getTempNo() const { - assert(isTemp()); - return Number; - } - - unsigned getRecordedNo() const { - assert(isRecorded()); + unsigned getNumber() const { return Number; } }; @@ -74,10 +54,6 @@ namespace { /// record into. unsigned NextRecordedOperandNo; - /// NextTemporary - As we generate code, this indicates the next temporary - /// ID that will be generated. - unsigned NextTemporary; - /// InputChains - This maintains the position in the recorded nodes array of /// all of the recorded input chains. SmallVector InputChains; @@ -123,7 +99,7 @@ namespace { MatcherGen::MatcherGen(const PatternToMatch &pattern, const CodeGenDAGPatterns &cgp) -: Pattern(pattern), CGP(cgp), NextRecordedOperandNo(0), NextTemporary(0), +: Pattern(pattern), CGP(cgp), NextRecordedOperandNo(0), Matcher(0), CurPredicate(0) { // We need to produce the matcher tree for the patterns source pattern. To do // this we need to match the structure as well as the types. To do the type @@ -449,7 +425,7 @@ void MatcherGen::EmitResultLeafAsOperand(const TreePatternNode *N, if (IntInit *II = dynamic_cast(N->getLeafValue())) { AddMatcherNode(new EmitIntegerMatcherNode(II->getValue(),N->getTypeNum(0))); - ResultOps.push_back(ResultVal::getTemp(NextTemporary++)); + ResultOps.push_back(ResultVal::get(NextRecordedOperandNo++)); return; } @@ -458,13 +434,13 @@ void MatcherGen::EmitResultLeafAsOperand(const TreePatternNode *N, if (DI->getDef()->isSubClassOf("Register")) { AddMatcherNode(new EmitRegisterMatcherNode(DI->getDef(), N->getTypeNum(0))); - ResultOps.push_back(ResultVal::getTemp(NextTemporary++)); + ResultOps.push_back(ResultVal::get(NextRecordedOperandNo++)); return; } if (DI->getDef()->getName() == "zero_reg") { AddMatcherNode(new EmitRegisterMatcherNode(0, N->getTypeNum(0))); - ResultOps.push_back(ResultVal::getTemp(NextTemporary++)); + ResultOps.push_back(ResultVal::get(NextRecordedOperandNo++)); return; }