llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
27.82k stars 11.46k forks source link

[windows] The VS compiler optimizes out fieldFromInstruction in Release builds when LLVM_ENABLE_ASSERTIONS is set to OFF #37640

Open c865380c-e43e-4621-95cb-b0e85c2384bb opened 6 years ago

c865380c-e43e-4621-95cb-b0e85c2384bb commented 6 years ago
Bugzilla Link 38292
Version trunk
OS Windows NT
CC @dwblaikie

Extended Description

The VS compiler (on Windows) has a bug which results in fieldFromInstruction being optimized out in some circumstances. This only happens in release no debug info builds that have assertions turned off - in all other situations the function is not inlined, so the functionality is correct.

All of the bots have assertions turned on, so this path is not regularly tested.

The workaround is to not inline the function on Windows - if the bug is fixed in a later release of the VS compiler, the noinline specification can be removed.

The test that consistently reproduces this is Lanai v11.txt test.

This bug is to track the workaround in FixedLenDecoderEmitter.cpp (and it's potential future removal).

c865380c-e43e-4621-95cb-b0e85c2384bb commented 6 years ago

See https://reviews.llvm.org/D49753 for the code change