Navigation

The llc command compiles LLVM source inputs into assembly language
for a specified architecture. The assembly language output can then be passed
through a native assembler and linker to generate a native executable.

The choice of architecture for the output assembly code is automatically
determined from the input file, unless the -march option is used to
override the default.

If filename is “-” or omitted, llc reads from standard input.
Otherwise, it will from filename. Inputs can be in either the LLVM assembly
language format (.ll) or the LLVM bitcode format (.bc).

If the -o option is omitted, then llc will send its output
to standard output if the input is from standard input. If the -o
option specifies “-”, then the output will also be sent to standard output.

If no -o option is specified and an input file other than “-” is
specified, then llc creates the output filename by taking the input
filename, removing any existing .bc extension, and adding a .s suffix.

Specify the architecture for which to generate assembly, overriding the target
encoded in the input file. See the output of llc-help for a list of
valid architectures. By default this is inferred from the target triple or
autodetected to the current architecture.

Specify a specific chip in the current architecture to generate code for.
By default this is inferred from the target triple and autodetected to
the current architecture. For a list of available CPUs, use:

Override or control specific attributes of the target, such as whether SIMD
operations are enabled or not. The default set of attributes is set by the
current CPU. For a list of available attributes, use:

Enable optimizations that make unsafe assumptions about IEEE math (e.g. that
addition is associative) or may not work for all input ranges. These
optimizations allow the code generator to make use of some instructions which
would otherwise not be usable (such as fsin on X86).

Dynamically load dso_path (a path to a dynamically shared object) that
implements an LLVM target. This will permit the target name to be used with
the -march option so that code can be generated for that target.