Welcome to Flang’s documentation¶
Flang is LLVM’s Fortran frontend that can be found here. It is often referred to as “LLVM Flang” to differentiate itself from “Classic Flang” - these are two separate and independent Fortran compilers. LLVM Flang is under active development. While it is capable of generating executables for a number of examples, some functionality is still missing. See GettingInvolved for tips on how to get in touch with us and to learn more about the current status.
Contributing to Flang¶
Design Documents¶
- Array Composition
- Bijective Internal Name Uniquing
- Representation of Fortran function calls
- Implementation of
CHARACTER
types in f18 - Control Flow Graph
- Compiler directives supported by Flang
DO CONCURRENT
isn’t necessarily concurrent- Fortran Extensions supported by Flang
- FIR Language Reference
- Flang command line argument reference
- Flang drivers
- CMake Support
- Testing
- Frontend Driver Plugins
- LLVM Pass Plugins
- Design: Fortran IR
- Fortran Tests in the LLVM Test Suite
- Fortran I/O Runtime Library Internal Design
- A categorization of standard (2018) and extended Fortran intrinsic procedures
- Implementation of
Intrinsic
types in f18 - Semantics: Resolving Labels and Construct Names
- Module Files
- OpenMP 4.5 Grammar
- OpenMP Semantic Analysis
- Compiler options comparison
- Overview of Compiler Phases
- Analysis
- Lowering
- Object code generation and linking
- Parser Combinators
- The F18 Parser
- Fortran Preprocessing
- Runtime Descriptors
- The derived type runtime information table
- Semantic Analysis
- Fortran 2018 Grammar