[PATCH] D29711: [globalisel] Sort RuleMatchers by priority.
Daniel Sanders via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 16 07:51:27 PST 2017
dsanders added inline comments.
================
Comment at: utils/TableGen/GlobalISelEmitter.cpp:299
+ if (predicates_size() > B.predicates_size())
+ return true;
+
----------------
dsanders wrote:
> rovka wrote:
> > dsanders wrote:
> > > rovka wrote:
> > > > Shouldn't you also return false if predicates_size() < B.predicates_size() ?
> > > I think that makes sense but I don't think it has a functional effect on the matcher. I'll make this change (and the others like it).
> > It might have a functional effect on the sort, but I'll admit I haven't thought enough about it to be sure. Anyway, it looks like a simple way to make sure we're preserving asymmetry at least in a few extra cases.
> While updating the next patch, I've spotted a bug that the previous version of this patch was hiding.
>
> We shouldn't be checking the size of the predicates list first because IntOperandMatcher needs priority over the RegisterBankOperandMatcher+LLTOperandMatcher pair used by register operands.
>
> I'll post an update that fixes this tomorrow (either by adding an LLTOperandMatcher, or moving the predicate list size check down).
I decided to fix this by adding an LLTOperandMatcher in D29712
https://reviews.llvm.org/D29711
More information about the llvm-commits
mailing list