abidh 357f6c7826
[flang] Add design document for debug info generation. (#86939)
This document discusses some options where the debug metadata can be
generated. It also goes through various language constructs and explains
how the debug metadata will look like for that construct and how we can
extract that information.

The real point of discussion is how and where to extract the information
about various language features to generate the debug metadata. The
structure of the metadata itself is mostly settled as that is dictated by
the DWARF and structure of LLVM IR metadata. The classic flang
and gfortran generate quite similar DWARF for the various language
constructs.

This document is based on what Kiran posted in
https://reviews.llvm.org/D138534.

---------

Co-authored-by: Tom Eccles <t@freedommail.info>
Co-authored-by: Kiran Chandramohan <kiranchandramohan@gmail.com>
2024-04-11 17:53:25 +01:00

98 lines
2.0 KiB
Markdown

# Welcome to Flang's documentation
Flang is LLVM's Fortran frontend that can be found
[here](https://github.com/llvm/llvm-project/tree/main/flang). It is often
referred to as "LLVM Flang" to differentiate itself from ["Classic
Flang"](https://github.com/flang-compiler/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 [Getting Involved](GettingInvolved) for tips
on how to get in touch with us and to learn more about the current status.
```{eval-rst}
.. toctree::
:titlesonly:
ReleaseNotes
```
# Contributing to Flang
```{eval-rst}
.. toctree::
:titlesonly:
C++17
C++style
DesignGuideline
FortranForCProgrammers
GettingInvolved
GettingStarted
ImplementingASemanticCheck
PullRequestChecklist
```
# Design Documents
```{eval-rst}
.. toctree::
:titlesonly:
Aliasing
AliasingAnalysisFIR
ArrayComposition
AssumedRank
BijectiveInternalNameUniquing
Calls
Character
ComplexOperations
ControlFlowGraph
DebugGeneration
Directives
DoConcurrent
Extensions
F202X
FIRArrayOperations
FIRLangRef
FlangCommandLineReference
FlangDriver
FortranFeatureHistory
FortranIR
FortranLLVMTestSuite
HighLevelFIR
IORuntimeInternals
InternalProcedureTrampolines
Intrinsics
IntrinsicTypes
LabelResolution
ModFiles
OpenACC
OpenACC-descriptor-management.md
OpenMP-4.5-grammar.md
OpenMP-declare-target
OpenMP-descriptor-management
OpenMP-semantics
OptionComparison
Overview
ParameterizedDerivedTypes
ParserCombinators
Parsing
PolymorphicEntities
Preprocessing
ProcedurePointer
RuntimeDescriptor
RuntimeEnvironment
RuntimeTypeInfo
Semantics
f2018-grammar.md
fstack-arrays
Real16MathSupport
```
# Indices and tables
```{eval-rst}
* :ref:`genindex`
* :ref:`search`
```