c – 如何使用LLVM为不同的目标体系结构编译程序?

我想使用LLVM / Clang将基本程序hello.c编译为本机x86架构,以生成中间件和程序集.
我使用了以下命令:

clang -O3 -emit-llvm hello.c -c -o hello.bc
llc hello.bc -o hello.s

它完美地运作.如何生成其他架构的代码说SPARC 32位? clang中是否有用于指定架构的标志?

解决方法:

您可以运行llc –version来获取支持的目标列表.从我的机器:

$llc --version
LLVM (http://llvm.org/):
  LLVM version 3.2svn
  Optimized build with assertions.
  Built Aug 30 2012 (23:29:11).
  Default target: mipsel-sde-elf
  Host CPU: corei7-avx

  Registered Targets:
    arm      - ARM
    cellspu  - STI CBEA Cell SPU [experimental]
    cpp      - C++ backend
    hexagon  - Hexagon
    mblaze   - MBlaze
    mips     - Mips
    mips64   - Mips64 [experimental]
    mips64el - Mips64el [experimental]
    mipsel   - Mipsel
    msp430   - MSP430 [experimental]
    nvptx    - NVIDIA PTX 32-bit
    nvptx64  - NVIDIA PTX 64-bit
    ppc32    - PowerPC 32
    ppc64    - PowerPC 64
    sparc    - Sparc
    sparcv9  - Sparc V9
    thumb    - Thumb
    x86      - 32-bit X86: Pentium-Pro and above
    x86-64   - 64-bit X86: EM64T and AMD64
    xcore    - XCore

在你的情况下,你可能需要llc -march = sparc.

上一篇:无法使用llvm和clang解析C.


下一篇:手动编译一个windows下64位的LLVM3.3(clang3.3)