如何强制clang使用llvm汇编程序代替系统?

时间:2014-12-14 07:34:27

标签: c++ assembly clang llvm

我正在研究LLVM / Clang fork(适用于AVR)。我如何强制Clang Driver使用LLVM汇编程序而不是系统程序?

  

MBA-Anton:bin asmirnov $ ./clang++   -I / Applications / avr.app / Contents / Resources / Java / hardware / avr / cores / avr -I / Applications / avr.app / Contents / Resources / Java / hardware / avr / variants / standard   /var/folders/64/fwfkm1k51zbd4_c5lwpsbljh0000gn/T/build5450310618632673119.tmp/Blink.cpp   -o /tmp/Blink.avr.hex -I /Applications/avr.app//Contents/Resources/Java/hardware/tools/avr/avr/include/   --target = avr -O1 -v

它使用LLVM clang编译器(不是系统,正确):

clang version 3.6.0 (https://github.com/4ntoine/clang.git 0d08deedd548d964f63cf896ae9acb8d878a5fd8)     (https://github.com/dylanmckay/avr-llvm.git 447b58bced825fa7bea31f3882f277535cc9fca6)
Target: avr
Thread model: posix
"/Users/asmirnov/Documents/dev/src/llvm_dylan/installed/bin/clang" -cc1 ...

但系统汇编程序(不正确):

  

“/ usr / bin / as”-o ...

它应该使用LLVM的llvm-as因为它“知道”AVR目标(操作码等)。我如何强制它使用LLVM的汇编程序?

1 个答案:

答案 0 :(得分:0)

您可以使用选项-emit-llvm

使用clang发出LLVM IR代码

假设您要将C文件编译为LLVM IR:

clang -emit-llvm -c file.c

它将创建一个LLVM字节码文件file.bc。您将能够使用llc编译文件。