[PATCH] D99424: [BasicAA] Be more careful with modulo ops on VariableGEPIndex.
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 30 06:11:14 PDT 2021
mstorsjo added a comment.
In D99424#2849596 <https://reviews.llvm.org/D99424#2849596>, @fhahn wrote:
> In D99424#2849581 <https://reviews.llvm.org/D99424#2849581>, @fhahn wrote:
>
>> In D99424#2849458 <https://reviews.llvm.org/D99424#2849458>, @mstorsjo wrote:
>>
>>> The problem appears with https://martin.st/temp/pixlet-preproc.c, compiled with “clang -target aarch64-w64-mingw32 -c -O3 pixlet-preproc.c”. I haven’t pinpointed exactly what changes and whether that’s wrong or if the source itself relies on something undefined though, or if there’s some strict aliasing violation.
>
> If you manage to reduce it further down, that would be very helpful. Unfortunately it looks like the only difference comes from the MachineScheduler, so it is a bit tricky to extract a nice test case.
FWIW, if you’ve got access to aarch64 linux, I would expect that you can reproduce the same issue there. (I haven’t verified myself yet.) To try it out at runtime, you should be able to do this:
git clone git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --cc=clang --samples=/path/to/empty/dir
make fate-rsync # sync data samples for running tests, into the path specified above
make -j$(nproc) fate-pixlet-rgb fate-twinvq
The miscompilation happens in object files `libavcodec/pixlet.o` and `libavcodec/twinvq.o`.
(Sorry I'm not of more assistance in narrowing down the actual change itself at the moment.)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99424/new/
https://reviews.llvm.org/D99424
More information about the llvm-commits
mailing list