代码之家  ›  专栏  ›  技术社区  ›  alexanius

lto链接后获取llvm IR

  •  3
  • alexanius  · 技术社区  · 8 年前

    链接到lto后,是否有任何方法获取llvm IR?例如,我有以下行:

    $clang-flto-O2交流总管。c-保险丝ld=金-v-保存温度

    所以我想得到llvm.IR.where文件 a.c 和文件 main.c 连成一体 monlithic.bc (或 monlithic.o 具有IR)。我试图添加选项 -Wl,-plugin-opt=save-temps 但它发生了一个错误:

    libLLVMLTO:未知的命令行参数“save temps”。尝试: “libLLVMLTO-help”clang:错误:链接器命令失败,退出代码为 1(使用-v查看调用)

    还有什么方法可以转储IR的lto变换?

    1 回复  |  直到 8 年前
        1
  •  2
  •   alexanius    8 年前

    使用较新的链接器和llvm(llvm-3.8和binutils-2.25)以以下方式解决了该问题:

    t1.c t2.c t2.h

    $clang-flto-O2 t1.c t2.c-v保险丝ld=黄金-保存温度 -Wl,-plugin opt=save temps-Wl,--verbose

    ...

    $ls

    a、 出局。bc a.out。o.a.out.opt。bc t1.bc t1.c t1.i t1.o t2.bc t2.c t2.h t2.i t2.o

    $llvm dis a.out.bc

    $vim a.out.ll