[llvm-dev] GlobalVariable I inserted gets removed by LTO

Gleb Popov via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 22 07:34:07 PDT 2019


Hello llvm-dev@

I have a pass that puts a global constant data array into the module. And
another pass that gets runned by lld during LTO stage.

When I look at bytecode files corresponding to source TUs produced by
`clang -flto`, I can see GVs inserted by my pass #1. However, when pass #2
gets to run, these GV's are gone.

I figured out that passing -mllvm -compute-dead=0 to the linker fixes the
problem, but I'm not sure if it is right thing to do. Ideally, I'd like to
trick LTO to ignore only mine GVs during compute-dead analysis.

I even tried creating another function that "uses" created GV, but it also
got deleted.

Any hints?

Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190722/ff3f9950/attachment.html>


More information about the llvm-dev mailing list