[PATCH] D76055: [SystemZ] Improve foldMemoryOperandImpl().

Ulrich Weigand via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 12 05:54:02 PDT 2020


uweigand added a comment.

Ah, that's a good idea.  I agree this makes sense.

I'm wondering if there are other memory-and-immediate instructions that could be handled like that.   Looking at the list, I see:

- logical compares (CLFHSI, CLGHSI) -- those should be trivial to add
- addition (ASI, AGSI, potentially also ALSI, ALGSI) -- it should be possible to add them, I think (it may be a bit different since it would replace a read-modify-write)

Then there are a number of instructions that operate on a byte or halfword level in memory:

- MVI, MVHHI,
- CLI, CHHSI, CLHHSI
- NI, OI, XI

I'm not sure if there is an option to exploit those, given that LLVM will never spill 8- or 16-bit values.  But maybe there could be some opportunities in special cases?  E.g. an OILL with a small constant could be replaced by an OI targeting just the low byte of the in-memory value.

Maybe this would be something to think about for future extensions.


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

https://reviews.llvm.org/D76055





More information about the llvm-commits mailing list