LFortran - modern interactive LLVM-based Fortran compiler
lfortran OPTIONS [files...] [SUBCOMMAND]
LFortran is a modern interactive Fortran compiler based on
LLVM.
- •
- -h, --help: Print this help message and exit
- •
- -S: Emit assembly, do not assemble or link
- •
- -c: Compile and assemble, do not link
- •
- -o TEXT: Specify the file to place the
compiler’s output into
- •
- -v: Be more verbose
- •
- -E: Preprocess only; do not compile, assemble, or
link
- •
- -l TEXT ...: Link library option
- •
- -L TEXT ...: Library path option
- •
- -I TEXT ...: Include path
- •
- -J TEXT: Where to save mod files
- •
- -g: Compile with debugging information
- •
- --debug-with-line-column: Convert the linear
location info into line + column in the debugging information
- •
- -D TEXT ...: Define
<macro>=<value> (or 1 if
<value> omitted)
- •
- --version: Display compiler version
information
- •
- -W TEXT ...: Linker flags
- •
- -f TEXT ...: All -f* flags
(only -fPIC supported for now)
- •
- --cpp: Enable C preprocessing
- •
- --fixed-form: Use fixed form Fortran source
parsing
- •
- --fixed-form-infer: Use heuristics to infer if a
file is in fixed form
- •
- --no-prescan: Turn off prescan
- •
- --show-prescan: Show tokens for the given file and
exit
- •
- --show-tokens: Show tokens for the given file and
exit
- •
- --show-ast: Show AST for the given file and
exit
- •
- --show-asr: Show ASR for the given file and
exit
- •
- --with-intrinsic-mods: Show intrinsic modules in
ASR
- •
- --show-ast-f90: Show Fortran from AST for the
given file and exit
- •
- --no-color: Turn off colored AST/ASR
- •
- --no-indent: Turn off Indented print ASR/AST
- •
- --tree: Tree structure print ASR/AST
- •
- --json: Print ASR/AST Json format
- •
- --no-loc: Skip location information in ASR/AST
Json format
- •
- --visualize: Print ASR/AST Visualization
- •
- --pass TEXT: Apply the ASR pass and show ASR
(implies –show-asr)
- •
- --skip-pass TEXT: Skip an ASR pass in the default
pipeline
- •
- --show-llvm: Show LLVM IR for the given file and
exit
- •
- --show-cpp: Show C++ translation source for the
given file and exit
- •
- --show-c: Show C translation source for the given
file and exit
- •
- --show-asm: Show assembly for the given file and
exit
- •
- --show-wat: Show WAT (WebAssembly Text Format) and
exit
- •
- --show-julia: Show Julia translation source for
the given file and exit
- •
- --show-fortran: Show Fortran translation source
for the given file and exit
- •
- --show-stacktrace: Show internal stacktrace on
compiler errors
- •
- --symtab-only: Only create symbol tables in ASR
(skip executable stmt)
- •
- --time-report: Show compilation time report
- •
- --static: Create a static executable
- •
- --no-warnings: Turn off all warnings
- •
- --no-error-banner: Turn off error banner
- •
- --error-format TEXT=human: Control how errors are
produced (human, short)
- •
- --backend TEXT=llvm: Select a backend (llvm, cpp,
x86, wasm, fortran)
- •
- --openmp: Enable OpenMP
- •
- --generate-object-code: Generate object code into
.o files
- •
- --rtlib: Include the full runtime library in the
LLVM output
- •
- --use-loop-variable-after-loop: Allow using loop
variable after the loop
- •
- --fast: Best performance (disable strict standard
compliance)
- •
- --link-with-gcc: Calls GCC for linking instead of
clang
- •
- --target TEXT: Generate code for the given
target
- •
- --print-targets: Print the registered targets
- •
- --implicit-typing: Allow implicit typing
- •
- --implicit-interface: Allow implicit
interface
- •
- --implicit-argument-casting: Allow implicit
argument casting
- •
- --print-leading-space: Print leading white space
if format is unspecified
- •
- --interactive-parse: Use interactive parse
- •
- --verbose: Print debugging statements
- •
- --dump-all-passes: Apply all the passes and dump
the ASR into a file
- •
- --dump-all-passes-fortran: Apply all passes and
dump the ASR after each pass into a Fortran file
- •
- --cumulative: Apply all the passes cumulatively
till the given pass
- •
- --realloc-lhs: Reallocate left-hand side
automatically
- •
- --module-mangling: Mangles the module name
- •
- --global-mangling: Mangles all the global
symbols
- •
- --intrinsic-mangling: Mangles all the intrinsic
symbols
- •
- --all-mangling: Mangles all possible symbols
- •
- --bindc-mangling: Mangles functions with ABI
bind(c)
- •
- --apply-fortran-mangling: Mangle symbols with
Fortran supported syntax
- •
- --mangle-underscore: Mangles with underscore
- •
- --legacy-array-sections: Enables passing array
items as sections if required
- •
- --ignore-pragma: Ignores all the pragmas
- •
- --stack-arrays: Allocate memory for arrays on
stack
- •
- fmt: Format Fortran source files.
- •
- kernel: Run in Jupyter kernel mode.
- •
- mod: Fortran mod file utilities.
- •
- pywrap: Python wrapper generator
For more information, visit the official LFortran documentation at
https://docs.lfortran.org/.