From 68de602ff67758c4354840c2c37ae1d1e2fffe06 Mon Sep 17 00:00:00 2001
From: Chris Lattner
+
This section of the document explains features or design decisions that are - specific to the code generator for a particular target.
+ specific to the code generator for a particular target. First we start + with a table that summarizes what features are supported by each target.Note that this table does not include the C backend or Cpp backends, since +they do not use the target independent code generator infrastructure. It also +doesn't list features that are not supported fully by any target yet. It +considers a feature to be supported if at least one subtarget supports it. A +feature being supported means that it is useful and works for most cases, it +does not indicate that there are zero known bugs in the implementation. Here +is the key:
+ + +Unknown | +No support | +Partial Support | +Complete Support | +
---|---|---|---|
+ | + | + | + |
Here is the table:
+ ++ | Target | +||||||||||||
Feature | +ARM | +Alpha | +Blackfin | +CellSPU | +MBlaze | +MSP430 | +Mips | +PTX | +PowerPC | +Sparc | +SystemZ | +X86 | +XCore | +
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
is generally reliable | ++ | + | + | + | + | + | + | + | + | + | + | + | + |
assembly parser | ++ | + | + | + | + | + | + | + | + | + | + | + | + |
disassembler | ++ | + | + | + | + | + | + | + | + | + | + | + | + |
inline asm | ++ | + | + | + | + | + | + | + | + | + | + | * | ++ |
jit | +* | ++ | + | + | + | + | + | + | + | + | + | + | + |
.o file writing | ++ | + | + | + | + | + | + | + | + | + | + | + | + |
tail calls | ++ | + | + | + | + | + | + | + | + | + | + | + | + |
This box indicates whether the target is considered to be production quality. +This indicates that the target has been used as a static compiler to +compile large amounts of code by a variety of different people and is in +continuous use.
+This box indicates whether the target supports parsing target specific .s +files by implementing the MCAsmParser interface. This is required for llvm-mc +to be able to act as a native assembler and is required for inline assembly +support in the native .o file writer.
+ +This box indicates whether the target supports the MCDisassembler API for +disassembling machine opcode bytes into MCInst's.
+ +This box indicates whether the target supports most popular inline assembly +constraints and modifiers.
+ +X86 lacks reliable support for inline assembly +constraints relating to the X86 floating point stack.
+ +This box indicates whether the target supports the JIT compiler through +the ExecutionEngine interface.
+ +The ARM backend has basic support for integer code +in ARM codegen mode, but lacks NEON and full Thumb support.
+ +This box indicates whether the target supports writing .o files (e.g. MachO, +ELF, and/or COFF) files directly from the target. Note that the target also +must include an assembly parser and general inline assembly support for full +inline assembly support in the .o writer.
+ +This box indicates whether the target supports guaranteed tail calls. These +are calls marked "tail" and use the fastcc +calling convention. Please see the tail call section +more more details.
+ +