forked from OSchip/llvm-project
TableGen/CodeGenDAGPatterns: addPredicateFn only once
Summary: The predicate function is added in InlinePatternFragments, no need to do it here. As a result, all uses of addPredicateFn are located in InlinePatternFragments. Test confirmed that there are no changes to generated files when building all (non-experimental) targets. Change-Id: I720e42e045ca596eb0aa339fb61adf6fe71034d5 Reviewers: arsenm, rampitec, RKSimon, craig.topper, hfinkel, uweigand Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D51993 llvm-svn: 343977
This commit is contained in:
parent
8dd92482ce
commit
46c91fd233
|
@ -3037,13 +3037,6 @@ void CodeGenDAGPatterns::ParsePatternFragments(bool OutFrags) {
|
|||
P->error("Operands list does not contain an entry for operand '" +
|
||||
*OperandsSet.begin() + "'!");
|
||||
|
||||
// If there is a code init for this fragment, keep track of the fact that
|
||||
// this fragment uses it.
|
||||
TreePredicateFn PredFn(P);
|
||||
if (!PredFn.isAlwaysTrue())
|
||||
for (auto T : P->getTrees())
|
||||
T->addPredicateFn(PredFn);
|
||||
|
||||
// If there is a node transformation corresponding to this, keep track of
|
||||
// it.
|
||||
Record *Transform = Frag->getValueAsDef("OperandTransform");
|
||||
|
|
|
@ -673,8 +673,8 @@ public:
|
|||
}
|
||||
void addPredicateFn(const TreePredicateFn &Fn) {
|
||||
assert(!Fn.isAlwaysTrue() && "Empty predicate string!");
|
||||
if (!is_contained(PredicateFns, Fn))
|
||||
PredicateFns.push_back(Fn);
|
||||
assert(!is_contained(PredicateFns, Fn) && "predicate applied recursively");
|
||||
PredicateFns.push_back(Fn);
|
||||
}
|
||||
|
||||
Record *getTransformFn() const { return TransformFn; }
|
||||
|
|
Loading…
Reference in New Issue