Fir code split for merge in flang master#4
Open
jeanPerier wants to merge 12 commits intoflang-masterfrom
Open
Conversation
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
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
- 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.