[PATCH] D116157: [AArch64] Adding "armv8.8-a" memcpy/memset support.

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 5 05:15:35 PST 2022


dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.

> Use Sched<[]> rather than hasNoSchedulingInfo. This requried updating the regexes used by various scheduling models to apply InstRW to CPY* instructions so that they do not capture the new MOPS instructions.

Yeah, I got confused as to why this worked differently to the other new instructions like ST64B. Enough to go and have a look at what was going on, and came to the same conclusion.

I think it's worth renaming the old "CPY" instruction just for clarity. It is not anything to do with any CPY instructions after all. I put up D116655 <https://reviews.llvm.org/D116655> for that.

Otherwise that and the other point here, this patch LGTM.



================
Comment at: llvm/lib/Target/AArch64/AArch64InstrFormats.td:11456
+  let hasNoSchedulingInfo = 1;
+  let hasSideEffects = 1;
+  let mayLoad = 1;
----------------
Sorry, I should have been more clear. I'm not sure this actually needs hasSideEffects. I was just trying to explain that it would already have it set (implicitly), so missing mayLoad/mayStore would not technically be a problem, as it already had sideeffects. With mayLoad and mayStore, I don't believe there are any other side effects of these instructions. They just update registers and load/store memory.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D116157/new/

https://reviews.llvm.org/D116157



More information about the llvm-commits mailing list