I am trying to build a bytecode file with optimizations and debug
information using llvm-gcc. Compiling with "-g" works fine, but when
I add the optimizations flag, all debug information disappears.
On the other hand, if I first "-emit-llvm" with "-g" and no
optimizations, and then apply "opt -std-compile-opts", then debug
information seems to be preserved.
I have two questions:
1) The "Source Level Debugging with LLVM" documentation page states
the following: "Compiling a program with "-O3 -g" gives you full
debug information that is always available and accurate for reading
[...]" Is this incorrect or am I missing something? What is causing
the debug info to be wiped?
2) Are the llvm-gcc -O levels (e.g. -O1, -O2, etc.) approximately
equivalent to the regular gcc -O levels, or are they really quite
different? I couldn't find any recent discussion on this in the