[llvm-dev] Sanitizers + New Pass Manager

Arthur Eubanks via llvm-dev llvm-dev at lists.llvm.org
Wed May 13 12:22:05 PDT 2020


Hi,

I've been trying to burn down the remaining sanitizer failures under the
new pass manager. Right now I'm stuck on some ASan tests.

Some ASan tests run under -O1. There are a couple differences between the
old and new pass managers under -O1, e.g. the old PM doesn't inline whereas
the new PM does. The differences seem to cause some lifetime intrinsics to
get stripped out (e.g. via SROA, InstCombine). It might be due to ASan
specifically testing undefined behavior, and different optimizations run
means different behavior. For a specific example,
use-after-scope-dtor-order.cpp runs under -O1 and fails under the new PM
because SROA strips out the lifetime intrinsics and by the time the ASan
pass runs it doesn't find the lifetime intrinsics to add its own
instrumentation.

What's the proper way to resolve this? Run the tests under -O0? Change the
passes pipeline under the new PM when ASan (and maybe other sanitizers) is
detected?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200513/90ff58d9/attachment.html>


More information about the llvm-dev mailing list