[llvm] [MachineLICM] Correctly Apply Register Masks (PR #95746)

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 18 03:59:17 PDT 2024


mstorsjo wrote:

> @mstorsjo I must be missing some flags. When I run it locally like this, LICM doesn't kick in.
> 
> ```
> llc -run-pass=machinelicm before.mir -o after-trunk.mir -mtriple=aarch64-linux-gnu
> ```

Sorry, no idea about that... In this case, it's triggered with a compilation command like this: `clang++ -O3 -fno-strict-aliasing -fPIC -fstack-protector-all -march=armv8-a -c -o test/encoder/EncUT_MotionCompensation2.o test/encoder/EncUT_MotionCompensation2.cpp`, not sure if that sets any flags that affect whether this is run or not.

> I also had to add names to the EH_LABEL instructions because they didn't have any and the MIR couldn't be parsed without that.
> 
> The only difference is that in the "after" patch, we have
> 
> ```
>     renamable $q10 = MVNIv4i32 4, 0
>     renamable $q11 = MOVIv4i32 2, 8
> ```
> 
> being hoisted
> 
> I wonder if some clobber is missing from an instruction somewhere and this just exposes it?
>
> Just to be sure, you checked latest main too and it still fails over there?

Yes, it's still failing with latest main too.

https://github.com/llvm/llvm-project/pull/95746


More information about the llvm-commits mailing list