diff options
author | Chris Lattner <sabre@nondot.org> | 2005-12-21 05:31:05 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-12-21 05:31:05 +0000 |
commit | 4e6a1d2433d498ae187791d3b8c925bce97922e6 (patch) | |
tree | 101d0afa5ee515e9506a53a22e8fc2c9c39a38f9 /utils/TableGen/DAGISelEmitter.cpp | |
parent | 7669a51c347db563a8583c4a4466e3bbb30bdb44 (diff) | |
download | external_llvm-4e6a1d2433d498ae187791d3b8c925bce97922e6.zip external_llvm-4e6a1d2433d498ae187791d3b8c925bce97922e6.tar.gz external_llvm-4e6a1d2433d498ae187791d3b8c925bce97922e6.tar.bz2 |
Eliminate some GCC warnings from the generated code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24897 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/DAGISelEmitter.cpp')
-rw-r--r-- | utils/TableGen/DAGISelEmitter.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 80f226c..be8fb75 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -1770,18 +1770,24 @@ public: TreePatternNode *pattern, TreePatternNode *instr, unsigned PatNum, std::ostream &os) : ISE(ise), Predicates(preds), Pattern(pattern), Instruction(instr), - PatternNo(PatNum), OS(os), FoundChain(false), TmpNo(0) {}; - + PatternNo(PatNum), OS(os), FoundChain(false), TmpNo(0) {} + + /// isPredeclaredSDOperand - Return true if this is one of the predeclared + /// SDOperands. + bool isPredeclaredSDOperand(const std::string &OpName) const { + return OpName == "N0" || OpName == "N1" || OpName == "N2" || + OpName == "N00" || OpName == "N01" || + OpName == "N10" || OpName == "N11" || + OpName == "Tmp0" || OpName == "Tmp1" || + OpName == "Tmp2" || OpName == "Tmp3"; + } + /// DeclareSDOperand - Emit "SDOperand <opname>" or "<opname>". This works /// around an ugly GCC bug where SelectCode is using too much stack space void DeclareSDOperand(const std::string &OpName) const { // If it's one of the common cases declared at the top of SelectCode, just // use the existing declaration. - if (OpName == "N0" || OpName == "N1" || OpName == "N2" || - OpName == "N00" || OpName == "N01" || - OpName == "N10" || OpName == "N11" || - OpName == "Tmp0" || OpName == "Tmp1" || - OpName == "Tmp2" || OpName == "Tmp3") + if (isPredeclaredSDOperand(OpName)) OS << OpName; else OS << "SDOperand " << OpName; @@ -1986,9 +1992,11 @@ public: std::string Fn = CP->getSelectFunc(); NumRes = CP->getNumOperands(); for (unsigned i = 0; i != NumRes; ++i) { - OS << " "; - DeclareSDOperand("Tmp" + utostr(i+ResNo)); - OS << ";\n"; + if (!isPredeclaredSDOperand("Tmp" + utostr(i+ResNo))) { + OS << " "; + DeclareSDOperand("Tmp" + utostr(i+ResNo)); + OS << ";\n"; + } } OS << " if (!" << Fn << "(" << Val; for (unsigned i = 0; i < NumRes; i++) |