[PATCH] D114642: [AArch64][SchedModels] Handle virtual registers in FP/NEON predicates
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 14 01:14:38 PST 2022
dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.
In D114642#3314092 <https://reviews.llvm.org/D114642#3314092>, @kpdev42 wrote:
> @dmgreen
>
>> Is it possible to a better example? COPY instructions (especially no-op copys like these) are often expected to be removed by reg-alloc and any scheduling info you give them is likely misleading.”
>
> Well, after some further studying of Exynos M5 model the only instruction group where Q-Form predicate us used is FMINV/FMAXV/FMAXNMV/FMINNMV:
>
> def : InstRW<[M5WriteNEONZ], (instregex "^F(MAX|MIN)(NM)?Vv")>;
>
> Q-Form of these instructions can be detected by operand 1, not operand 0. For instance default write resource for “fmaxv h0, v1.4h” is WriteVd and WriteVq for “fmaxv s0, v1.4s”. That’s why we’re now scanning all operands instead of just operand 0 (and both isFpOrNeon and isQForm can probably be considered general). See updated test case. Thank you!
I see. Perhaps it is sometimes clearer to be explicit in the schedule with opcode matching.
This looks like an improvement in either case, so LGTM.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114642/new/
https://reviews.llvm.org/D114642
More information about the llvm-commits
mailing list