[cfe-dev] Possible bug when using -O2/-O3 in clang 13 for ARMv7

Mikhail R. Gadelha via cfe-dev cfe-dev at lists.llvm.org
Sat Dec 11 10:01:15 PST 2021


Hi everyone,

This is kind of a follow-up to my previous email about compiling JSC using
clang for ARMv7: when I build JSC using either -O2 or -O3, I get random
garbage when querying for the "Infinity" constant from javascript, as if
the constant was not being initialized. The variable is being initialized
correctly, that I'm sure.

Some tests I did:
1. Using -O1 or no optimization doesn't trigger the issue.
2. Using either -O2 or -O3 with address or the undef behavior sanitizers
doesn't trigger the issue.
3. Building JSC with clang 11.0.1-2 (from Debian) and clang 12.0.1 (from
github) doesn't trigger the issue.
4. The issue happens with clang 13.0.0 (from github) and the 13.0.1-rc1
(also from github).

It seems like some optimization introduced by -O2 is causing the issue.

Does anyone have any tips I can follow to improve this bug report? I'll try
to compile JSC with -O2 and disable the optimizations manually to pinpoint
what's causing the issue (hopefully it's a single optimization and not a
combination of them). Is there a flag in clang to print which optimizations
are enabled for -O1 and -O2 so I can diff them?

I wish I had more information, but I'm still trying to debug why this is
happening. I wanted to try to get more information first before opening a
github issue.

Thanks in advance,

-- 

Mikhail R. Gadelha.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20211211/020e8946/attachment.html>


More information about the cfe-dev mailing list