Skip to content

Fir code split for merge in flang master#4

Open
jeanPerier wants to merge 12 commits intoflang-masterfrom
jpr-mono-split-2
Open

Fir code split for merge in flang master#4
jeanPerier wants to merge 12 commits intoflang-masterfrom
jpr-mono-split-2

Conversation

@jeanPerier
Copy link
Owner

This split of FIR development branch is based on:

It include necessary rebase changes due to header changes between in f18 (db5ebec and 32eb0d7). These changes are documented here: https://github.com/jeanPerier/f18/compare/864898c..ef115ab.

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the commits between:
schweitzpgi@8c320e3
and:
schweitzpgi@9b9ea05
The ASTBuilder structure is a temporary data structure that
is meant to be built from the parse tree just before lowering to
FIR and that will be deleted just afterwards. It is not meant to perfrom
optimization analysis and transformations. It only provides temporary
information, such as label target information or parse tree parent nodes,
that is meant to be used to lower the parse tree structure into
FIR operations.
A pretty printer is available to visualize this data structure.

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
- Add cmake/modules files
- Update f18 tools CMakeLists.txt
- Update README.md with build instructions
- Add a Version.h and Version.inic.in files for flang
- These CMake files are temporary; better versions are under development

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
Adds FIR library that implements an MLIR dialect to which Fortran
parse-tree will be lowered to.
FIR is documented in FIRLangRef.md added with this commit.

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
- Add the AbstractConverter class that provides an interface to
lower expressions and types but does not provide any implementation.
- Add an implementation of lowering of front-end types to FIR types.
- Add lowering of parser::CharBlock to mlir::Location

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
- Add helpers to manipulate MLIR OpBuilder (OpBuilder.h/cpp) and hide
  boilerplate.
- Lower Fortran scalar intrinsic operations (ConvertExpr.cpp)
- Add a framework to describe runtime and insert runtime calls in FIR
  (Runtime.h/.cpp) it allows to create a constexpr map to describe the
  runtime.
- Start Lowering of numerical intrinsics (Intrinsics.h/cpp)

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
- Add the `BurnsideBridge` class that implements the lowering of
the Fortran parse-tree to FIR operations as described in
BurnsidetoFIR.md.
- The lowering of IO statements is done in another file
(IO.cpp) to keep the bridge smaller.

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
This library provides transformation passes that can be run of FIR
to perform several high-level optimizations.

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
- Add bbc tool that takes a Fortran input file, drives parsing,
semantic analysis, and then lowers the parse-tree to FIR. It can
then run transformation passes on the obtained MLIR before
generating LLVM IR. The bbc tool is used for testing.
- Add tco tool that is meant to process mlir input files and
drives transformations on it. The tco tool is used for testing.

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
- A FIR round-trip tests (in test/fir)
- Add new FIR lit tests (in test-lit/fir)
- Add expression lowering test (in test/lower)

Note:
This commit does not reflect an actual work log, it is a feature based split of the
changes done in the FIR experimental branch. The related work log can be found in the
commits between:
864898c
and
137c23d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant