[PATCH] D94350: [GlobalISel] Combine (a[0]) | (a[1] << k1) | ...| (a[m] << kn) into a wide load

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 14 16:11:41 PST 2021


aemerson added a comment.

In D94350#2499061 <https://reviews.llvm.org/D94350#2499061>, @paquette wrote:

> In D94350#2496310 <https://reviews.llvm.org/D94350#2496310>, @aemerson wrote:
>
>> We also need to check for the strict-align function attribute before we generate wider loads.
>
> Shouldn't the legalizer check alignment requirements on the load? Or is this something different?

Each pass has to respect the semantics though. At the moment we fall back in the translator for strict-align, but when we do add support places like this will need to correct. Unless you add alignment checks for this combine, this might create unaligned wide loads which are illegal with strict-align, since we’re not allowed to assume that unaligned loads are safe.


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

https://reviews.llvm.org/D94350



More information about the llvm-commits mailing list