diff --git a/llvm/docs/CodeGenerator.rst b/llvm/docs/CodeGenerator.rst --- a/llvm/docs/CodeGenerator.rst +++ b/llvm/docs/CodeGenerator.rst @@ -1836,266 +1836,7 @@ ==================================== This section of the document explains features or design decisions that are -specific to the code generator for a particular target. First we start with a -table that summarizes what features are supported by each target. - -.. _target-feature-matrix: - -Target Feature Matrix ---------------------- - -Note that this table does not 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: - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`
UnknownNot ApplicableNo supportPartial SupportComplete Support
` - -Here is the table: - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` -:raw-html:`` - -:raw-html:`
Target
FeatureARMHexagonMSP430MipsNVPTXPowerPCSparcSystemZX86XCoreeBPF
is generally reliable
assembly parser
disassembler
inline asm
jit*
.o file writing
tail calls
segmented stacks *
` - -.. _feat_reliable: - -Is Generally Reliable -^^^^^^^^^^^^^^^^^^^^^ - -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. - -.. _feat_asmparser: - -Assembly Parser -^^^^^^^^^^^^^^^ - -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. - -.. _feat_disassembler: - -Disassembler -^^^^^^^^^^^^ - -This box indicates whether the target supports the MCDisassembler API for -disassembling machine opcode bytes into MCInst's. - -.. _feat_inlineasm: - -Inline Asm -^^^^^^^^^^ - -This box indicates whether the target supports most popular inline assembly -constraints and modifiers. - -.. _feat_jit: - -JIT Support -^^^^^^^^^^^ - -This box indicates whether the target supports the JIT compiler through the -ExecutionEngine interface. - -.. _feat_jit_arm: - -The ARM backend has basic support for integer code in ARM codegen mode, but -lacks NEON and full Thumb support. - -.. _feat_objectwrite: - -.o File Writing -^^^^^^^^^^^^^^^ - -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. - -Targets that don't support this feature can obviously still write out .o files, -they just rely on having an external assembler to translate from a .s file to a -.o file (as is the case for many C compilers). - -.. _feat_tailcall: - -Tail Calls -^^^^^^^^^^ - -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`_ for more details. - -.. _feat_segstacks: - -Segmented Stacks -^^^^^^^^^^^^^^^^ - -This box indicates whether the target supports segmented stacks. This replaces -the traditional large C stack with many linked segments. It is compatible with -the `gcc implementation `_ used by the Go -front end. - -.. _feat_segstacks_x86: - -Basic support exists on the X86 backend. Currently vararg doesn't work and the -object files are not marked the way the gold linker expects, but simple Go -programs can be built by dragonegg. +specific to the code generator for a particular target. .. _tail call section: