我正在研究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的汇编程序?
答案 0 :(得分:0)
您可以使用选项-emit-llvm
。
假设您要将C文件编译为LLVM IR:
clang -emit-llvm -c file.c
它将创建一个LLVM字节码文件file.bc
。您将能够使用llc编译文件。