================ @@ -153,6 +153,67 @@ Please run this, then file a bug with the instructions and reduced .bc file that bugpoint emits. If something goes wrong with bugpoint, please submit the "foo.bc" file and the option that llc crashes with. +LTO bugs +--------------------------- + +If you encounter a bug that leads to crashes in the LLVM LTO phase when using +the `-flto` option, follow these steps to diagnose and report the issue: + +Compile your source file to a .bc (Bitcode) file with the following flags, +in addition to your existing compilation options: + +.. code-block:: bash + + export CFLAGS="-flto -fuse-ld=lld" CXXFLAGS="-flto -fuse-ld=lld" LDFLAGS="-Wl,-plugin-opt=save-temps" + +These flags enable LTO and save temporary files generated during compilation +for later analysis. + +On Windows, you should use lld-link as the linker. Adjust your compilation +flags as follows: + +.. code-block:: bash + + export CFLAGS="-flto -fuse-ld=lld-link" CXXFLAGS="-flto -fuse-ld=lld-link" LDFLAGS="-Wl,-plugin-opt=save-temps" + +Using the specified flags will generate four intermediate bytecode files: + +#. a.out.0.0.preopt.bc (Before any link-time optimizations (LTO) are applied) +#. a.out.0.2.internalize.bc (After initial optimizations are applied) +#. a.out.0.4.opt.bc (After an extensive set of optimizations) +#. a.out.0.5.precodegen.bc (After LTO but before translating into machine code) + +Execute one of the following commands to identify the source of the problem: + +#. ``opt "-passes=lto<O3>" a.out.0.0.preopt.bc`` +#. ``opt "-passes=lto<O3>" a.out.0.2.internalize.bc`` ---------------- MaskRay wrote:
For ThinLTO, it is `*.3.import.bc` https://github.com/llvm/llvm-project/pull/68389 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits