diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2016-11-09 18:17:50 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2016-11-09 18:17:50 +0000 |
commit | a9cadeddd49dd8dcbede4cee8d8cdd93766ab96e (patch) | |
tree | 28afee3e3a6c352b5d9aaa56b98cd7f77bafabb7 /llvm/utils/TableGen | |
parent | 4c15db45e471f7eebe733c9a3efacb0678a41589 (diff) | |
download | bcm5719-llvm-a9cadeddd49dd8dcbede4cee8d8cdd93766ab96e.tar.gz bcm5719-llvm-a9cadeddd49dd8dcbede4cee8d8cdd93766ab96e.zip |
Revert r286384, "X86: Introduce the "relocImm" ComplexPattern, which represents a relocatable immediate."
Suspected to be the cause of a sanitizer-windows bot failure:
Assertion failed: isImm() && "Wrong MachineOperand accessor", file C:\b\slave\sanitizer-windows\llvm\include\llvm/CodeGen/MachineOperand.h, line 420
llvm-svn: 286385
Diffstat (limited to 'llvm/utils/TableGen')
-rw-r--r-- | llvm/utils/TableGen/CodeGenDAGPatterns.cpp | 7 | ||||
-rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.cpp | 10 | ||||
-rw-r--r-- | llvm/utils/TableGen/CodeGenTarget.h | 3 |
3 files changed, 7 insertions, 13 deletions
diff --git a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp index 3cc7b1b4ec3..c8ced6b4321 100644 --- a/llvm/utils/TableGen/CodeGenDAGPatterns.cpp +++ b/llvm/utils/TableGen/CodeGenDAGPatterns.cpp @@ -805,9 +805,14 @@ static unsigned getPatternSize(const TreePatternNode *P, if (P->isLeaf() && isa<IntInit>(P->getLeafValue())) Size += 2; + // FIXME: This is a hack to statically increase the priority of patterns + // which maps a sub-dag to a complex pattern. e.g. favors LEA over ADD. + // Later we can allow complexity / cost for each pattern to be (optionally) + // specified. To get best possible pattern match we'll need to dynamically + // calculate the complexity of all patterns a dag can potentially map to. const ComplexPattern *AM = P->getComplexPatternInfo(CGP); if (AM) { - Size += AM->getComplexity(); + Size += AM->getNumOperands() * 3; // We don't want to count any children twice, so return early. return Size; diff --git a/llvm/utils/TableGen/CodeGenTarget.cpp b/llvm/utils/TableGen/CodeGenTarget.cpp index 42fbb986747..e87ffb730ec 100644 --- a/llvm/utils/TableGen/CodeGenTarget.cpp +++ b/llvm/utils/TableGen/CodeGenTarget.cpp @@ -393,16 +393,6 @@ ComplexPattern::ComplexPattern(Record *R) { SelectFunc = R->getValueAsString("SelectFunc"); RootNodes = R->getValueAsListOfDefs("RootNodes"); - // FIXME: This is a hack to statically increase the priority of patterns which - // maps a sub-dag to a complex pattern. e.g. favors LEA over ADD. To get best - // possible pattern match we'll need to dynamically calculate the complexity - // of all patterns a dag can potentially map to. - int64_t RawComplexity = R->getValueAsInt("Complexity"); - if (RawComplexity == -1) - Complexity = NumOperands * 3; - else - Complexity = RawComplexity; - // Parse the properties. Properties = 0; std::vector<Record*> PropList = R->getValueAsListOfDefs("Properties"); diff --git a/llvm/utils/TableGen/CodeGenTarget.h b/llvm/utils/TableGen/CodeGenTarget.h index 9a9522edc9b..b16750c9d17 100644 --- a/llvm/utils/TableGen/CodeGenTarget.h +++ b/llvm/utils/TableGen/CodeGenTarget.h @@ -196,8 +196,8 @@ class ComplexPattern { std::string SelectFunc; std::vector<Record*> RootNodes; unsigned Properties; // Node properties - unsigned Complexity; public: + ComplexPattern() : NumOperands(0) {} ComplexPattern(Record *R); MVT::SimpleValueType getValueType() const { return Ty; } @@ -207,7 +207,6 @@ public: return RootNodes; } bool hasProperty(enum SDNP Prop) const { return Properties & (1 << Prop); } - unsigned getComplexity() const { return Complexity; } }; } // End llvm namespace |