summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2016-11-09 18:17:50 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2016-11-09 18:17:50 +0000
commita9cadeddd49dd8dcbede4cee8d8cdd93766ab96e (patch)
tree28afee3e3a6c352b5d9aaa56b98cd7f77bafabb7 /llvm/utils/TableGen
parent4c15db45e471f7eebe733c9a3efacb0678a41589 (diff)
downloadbcm5719-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.cpp7
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.cpp10
-rw-r--r--llvm/utils/TableGen/CodeGenTarget.h3
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
OpenPOWER on IntegriCloud