LDMD(1)
NAME
LDMD - manual page for LLVM D Compiler
DESCRIPTION
OVERVIEW: LLVM-based D Compiler
- USAGE: ldc [options] files --run program args...
- OPTIONS:
- -D - Generate documentation
- -Dd=<docdir> - Write documentation file
to <docdir> directory
- -Df=<filename> - Write documentation file
to <filename>
- -H - Generate 'header' file
- -Hd=<hdrdir> - Write 'header' file to
<hdrdir> directory
- -Hf=<filename> - Write 'header' file to
<filename>
- -I=<path> - Where to look for
imports
- -J=<path> - Where to look for string
imports
- -L=<linkerflag> - Pass <linkerflag> to the
linkerSetting the optimization level:
- -O - Equivalent to -O2
- -O0 - No optimizations (default)
- -O1 - Simple optimizations
- -O2 - Good optimizations
- -O3 - Aggressive optimizations
- -O4 - Link-time optimization
- -O5 - Link-time optimization
- -annotate - Annotate the bitcode
with human readable source code
- -asm-verbose - Add comments to direc
tives.
- -c - Do not link
- -check-printf-calls - Validate printf call
format strings against arguments
- -code-model - Choose code model
- =default
- Target default code model
- =small - Small code model
- =kernel
- Kernel code model
- =medium
- Medium code model
- =large - Large code model
- -d - Allow deprecated lan
guage features
- -d-debug=<level/idents> - Compile in debug code >=
<level> or identified by <idents>.
- -d-version=<level/idents> - Compile in version code
>= <level> or identified by <idents>
- -debuglib=<lib,...> - Set default libraries
for debug build
- -defaultlib=<lib,...> - Set default libraries
for non-debug build
- -deps=<filename> - Write module dependen
cies to filename
- -enable-asserts - (*) Enable assertions
- -enable-boundscheck - (*) Enable array bounds
checks
- -enable-contracts - (*) Enable function pre
and post-conditions
- -disable-d-passes - Disable D-specific
passes in -O<N>
- -disable-excess-fp-precision - Disable optimizations
that may increase FP precision
- -disable-fp-elim - Disable frame pointer
elimination optimization
- -disable-gc2stack - Disable promotion of GC
allocations to stack memory in -O<N>
- -enable-inlining - (*) Enable function
inlining in -O<N>
- -enable-invariants - (*) Enable invariants
- -disable-post-RA-scheduler - Disable scheduling after
register allocation
- -enable-postconditions - (*) Enable function
postconditions
- -enable-preconditions - (*) Enable function pre
conditions
- -disable-simplify-drtcalls - Disable simplification
of runtime calls in -O<N>
- -disable-spill-fusing - Disable fusing of spill
code into instructions
- -enable-correct-eh-support - Make the -lowerinvoke
pass insert expensive, but correct, EH code
- -enable-eh - Emit DWARF exception
handling (default if target supports)
- -enable-finite-only-fp-math - Enable optimizations
that assumes non- NaNs / +-Infs
- -enable-fp-mad - Enable less precise MAD
instructions to be generated
- -enable-load-pre
- -enable-sjlj-eh - Emit SJLJ exception han
dling (default if target supports)
- -enable-unsafe-fp-math - Enable optimizations
that may decrease FP precision
- -float-abi - Choose float ABI type
- =default
- Target default float ABI type
- =soft - Soft float ABI (implied by -soft-float)
- =hard - Hard float ABI (uses FP registers)
Generating debug information: - -g - Generate debug information
- -gc - Same as -g, but pretend to
be C
- -help - Display available
options (--help-hidden for more)
- -ignore - Ignore unsupported prag
mas
- -internalize-public-api-file=<filename> - A file containing list
of symbol names to preserve
- -internalize-public-api-list=<list> - A list of symbol names
to preserve
- -join-liveintervals - Coalesce copies
(default=true)
- -limit-float-precision=<uint> - Generate low-precision
inline sequences for some float libcalls
- -m32 - 32 bit target
- -m64 - 64 bit target
- -march=<string> - Architecture to generate
code for:
- -mattr=<a1,+a2,-a3,...> - Target specific
attributes (-mattr=help for details)
- -mcpu=<cpu-name> - Target a specific cpu
type (-mcpu=help for details)
- -mtriple=<string> - Override target triple
- -nested-ctx - How to construct a
nested function's context:
- =array
- Array of pointers to variables (including multi-level)
- =hybrid
- List of pointers to structs of variables, one per level.
- -noasm - Disallow use of inline
assembler
- -nodefaultlib - Don't add a default
library for linking implicitly
- -noruntime - Do not allow code that
generates implicit runtime calls
- -noverify - Do not run the valida
tion pass before writing bitcode
- -nozero-initialized-in-bss - Don't place zero-ini
tialized symbols into bss section
- -o- - Do not write object file
- -od=<objdir> - Write object files to
directory <objdir>
- -of=<filename> - Use <filename> as output
file name
- -op - Do not strip paths from
source file
- -oq - Write object files with
fully qualified names
- -output-bc - Write LLVM bitcode
- -output-ll - Write LLVM IR
- -output-o - Write native object
- -output-s - Write native assembly
- -pre-RA-sched - Instruction schedulers
available (before register allocation):
- =fast - Fast suboptimal list scheduling
- =list-td
- Top-down list scheduler
- =list-tdrr
- Top-down register reduction list scheduling
- =list-burr
- Bottom-up register reduction list scheduling
- =default
- Best scheduler for the target
- -print-machineinstrs - Print generated machine
code
- -profile-estimator-loop-weight=<loop-weight> - Number of loop execu
tions used for profile-estimator
- -profile-info-file=<filename> - Profile file loaded by
-profile-loader
- -profile-randomness - How to randomly choose
to profile:
- =global
- global counter
- =ra_global
- register allocated global counter
- =rdcc - cycle counter
- -realign-stack - Realign stack if needed
- -regalloc - Register allocator to
use: (default = linearscan)
- =linearscan
- linear scan register allocator
- -release - Disables asserts,
invariants, contracts and boundscheck
- -relocation-model - Choose relocation model
- =default
- Target default relocation model
- =static
- Non-relocatable code
- =pic - Fully relocatable, position independent code
- =dynamic-no-pic
- Relocatable external references, non-relocatable code
- -rewriter - Rewriter to use:
(default: local)
- =local
- local rewriter
- =trivial
- trivial rewriter
- -run=<string> - program args...
- -schedule-livein-copies - Schedule copies of
livein registers
- -schedule-spills - Schedule spill code
- -shrink-wrap - Shrink wrap callee-saved
register spills/restores
- -singleobj - Create only a single
output object file
- -soft-float - Generate software float
ing point library calls
- -stack-alignment=<uint> - Override default stack
alignment
- -stack-protector-buffer-size=<uint> - Lower bound for a buffer
to be considered for stack protection
- -stats - Enable statistics output
from program
- -tailcallopt - Turn on tail call opti
mization.
- -time-passes - Time each pass, printing
elapsed time for each on exit
- -unittest - Compile in unit tests
- -unwind-tables - Generate unwinding
tables for all functions
- -v - Verbose
- -v-cg - Verbose codegen
- -verify-dom-info - Verify dominator info
(time consuming)
- -version - Display the version of
this program
- -vv - Very verbose
- -w - Enable warnings
- -x86-asm-syntax - Choose style of code to
emit from X86 backend:
- =att - Emit AT&T-style assembly
- =intel - Emit Intel-style assembly
- -d-debug can also be specified without options, in which case it enables all debug checks (i.e. (asserts, boundchecks, contracts and invariants) as well as acting as -d-debug=1
- Options marked with (*) also have a -disable-FOO variant with inverted meaning.
- based on DMD v1.051 and llvm 2.6 (Wed Dec 2 17:39:53 2009) Copyright (c) 1999-2009 by Digital Mars and Tomas Lindquist Olsen written by Walter Bright and Tomas Lindquist Olsen D Language Documentation: http://www.digitalmars.com/d/1.0/index.html LDC Homepage: http://www.dsource.org/projects/ldc
SEE ALSO
- The full documentation for LLVM is maintained as a Texinfo manual. If
the info and LLVM programs are properly installed at your site, the
command
- info LLVM
- should give you access to the complete manual.