2016-11-01 10 views
0

Есть ли способ получить llvm IR после ссылки на lto? Например, у меня есть следующие строки:Получить llvm IR после привязки lto

$ clang -flto -O2 a.c main.c -fuse-ld=gold -v -save-temps

Так что я хочу, чтобы получить LLVM IR, где файл a.c и файл main.c связаны в одном monlithic.bc (или monlithic.o с ИК). Я пытался добавить опцию -Wl,-plugin-opt=save-temps, но это происходит ошибка:

libLLVMLTO: Unknown command line argument 'save-temps'. Try: 'libLLVMLTO -help' clang: error: linker command failed with exit code 1 (use -v to see invocation)

А также есть ли способ сбросить LTO преобразования ИК?

ответ

0

Проблема была решена с новым линкером и LLVM (LLVM-3,8 и Binutils-2.25) следующим образом:

$ ls

t1.c t2.c t2.h

$ clang -flto -O2 t1.c t2.c -v -fuse-ld=gold -save-temps -Wl,-plugin-opt=save-temps -Wl,--verbose

...

$ ls

a.out a.out.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