Slava Zakharin aa38754117
[RFC][flang] Add support for assumed-shape dummy arrays repacking. (#127147)
This is a document describing why and how to add support for repacking
of assumed-shape dummy arrrays to provide more efficient data cache.
It proposes adding new FIR operations and outlines the compiler flow
handling these operations.
I would like to hear feedback on all of it, but especially on:
  * The possibility of detecting safeness of the repacking
    in the context of OpenACC/OpenMP. If it is not possible
    to do the runtime checks to determine safety, then
    there is not need to add the `TempCopyIsSafe` attributes
    to the instruction.
  * Whether it is possible to preserve the debug information
    in cases where `fir.pack_array` is sunk after `[hl]fir.declare`,
    so that before the `fir.pack_array` a debugger will refer
    to the values in the original array, and after `fir.pack_array`
    it will refer to the copy.
2025-03-10 11:08:37 -07:00

100 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
ArrayRepacking
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
Unsigned
```
# Indices and tables
```{eval-rst}
* :ref:`genindex`
* :ref:`search`
```