diff options
author | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-06 18:14:24 +0000 |
---|---|---|
committer | Mikhail Glushenkov <foldr@codedgers.com> | 2008-05-06 18:14:24 +0000 |
commit | 7dbc0abc6d5cd021a4f92a21c40ab6cceaf0f767 (patch) | |
tree | ce39b38a87d9e75b283bee66bc1df981082eab94 /utils | |
parent | 028f18e469ff8266291afe4761f672e0806a0c40 (diff) | |
download | external_llvm-7dbc0abc6d5cd021a4f92a21c40ab6cceaf0f767.zip external_llvm-7dbc0abc6d5cd021a4f92a21c40ab6cceaf0f767.tar.gz external_llvm-7dbc0abc6d5cd021a4f92a21c40ab6cceaf0f767.tar.bz2 |
Add weights to graph edges. Choose between edges based on their weight.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50757 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/LLVMCConfigurationEmitter.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/utils/TableGen/LLVMCConfigurationEmitter.cpp b/utils/TableGen/LLVMCConfigurationEmitter.cpp index ab6f2ef..3db9176 100644 --- a/utils/TableGen/LLVMCConfigurationEmitter.cpp +++ b/utils/TableGen/LLVMCConfigurationEmitter.cpp @@ -974,9 +974,9 @@ void EmitEdgeClass(unsigned N, const std::string& Target, << Indent1 << "Edge" << N << "() : Edge(\"" << Target << "\") {}\n\n" - // Function isEnabled(). - << Indent1 << "bool isEnabled() const {\n" - << Indent2 << "bool ret = false;\n"; + // Function Weight(). + << Indent1 << "unsigned Weight() const {\n" + << Indent2 << "unsigned ret = 0;\n"; for (size_t i = 0, PropsSize = Props->size(); i < PropsSize; ++i) { const DagInit& Prop = dynamic_cast<DagInit&>(*Props->getElement(i)); @@ -985,7 +985,7 @@ void EmitEdgeClass(unsigned N, const std::string& Target, if (PropName == "default") IsDefault = true; - O << Indent2 << "if (ret || ("; + O << Indent2 << "if (("; if (PropName == "and") { O << '('; for (unsigned j = 0, NumArgs = Prop.getNumArgs(); j < NumArgs; ++j) { @@ -1002,19 +1002,14 @@ void EmitEdgeClass(unsigned N, const std::string& Target, else { EmitEdgePropertyTest(PropName, Prop, OptDescs, O); } - O << "))\n" << Indent3 << "ret = true;\n"; + O << "))\n" << Indent3 << "ret += 2;\n"; } - O << Indent2 << "return ret;\n" - << Indent1 << "};\n\n" - - // Function isDefault(). - << Indent1 << "bool isDefault() const { return "; if (IsDefault) - O << "true"; - else - O << "false"; - O <<"; }\n};\n\n"; + O << Indent2 << "ret += 1;\n"; + + O << Indent2 << "return ret;\n" + << Indent1 << "};\n\n};\n\n"; } // Emit Edge* classes that represent graph edges. |