mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-24 05:46:06 +00:00

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.
2.0 KiB
2.0 KiB
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 Getting Involved for tips on how to get in touch with us and to learn more about the current status.
.. toctree::
:titlesonly:
ReleaseNotes
Contributing to Flang
.. toctree::
:titlesonly:
C++17
C++style
DesignGuideline
FortranForCProgrammers
GettingInvolved
GettingStarted
ImplementingASemanticCheck
PullRequestChecklist
Design Documents
.. 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
* :ref:`genindex`
* :ref:`search`