llvm-capstone/flang
Mats Petersson 6180964a01
[flang]Pass to add vscale range attribute (#68103)
Add vscale range attirbute for the Scalable Vector Extension (SVE) if
provided on the command-line (options in a previous commit)

If no command-line option is provided, if the target-feature of SVE is
specified and the architecture is AArch64, it defualts to 128-2048. in
other words a vscale-min of 1, vscale-max of 16.

A pass is used to add the atribute to all functions. The vectorizer will
use this attribute to generate the SVE instruction to match the range
specified. The attribute is harmless if there is no vectorizable
operations in the function.
2023-10-05 11:06:00 +01:00
..
cmake/modules Revert "[Flang] [FlangRT] Introduce FlangRT project as solution to Flang's runtime LLVM integration" 2023-10-02 09:02:05 +00:00
docs [flang] Zero initialize uninitialized components in saved default init (#67777) 2023-10-02 09:53:09 +02:00
examples [Flang][OpenMP][Sema] Support propagation of REQUIRES information across program units 2023-09-11 15:01:57 +01:00
include [flang]Pass to add vscale range attribute (#68103) 2023-10-05 11:06:00 +01:00
lib [flang]Pass to add vscale range attribute (#68103) 2023-10-05 11:06:00 +01:00
module [flang] Adding two more PowerPC MMA intrinsics 2023-08-21 11:00:19 -04:00
runtime [flang][runtime] Added Assign runtime to CUDA build closure. (#68171) 2023-10-04 08:21:46 -07:00
test [flang]Pass to add vscale range attribute (#68103) 2023-10-05 11:06:00 +01:00
tools [flang][NFCI]Use config structure for MLIR to LLVM pass creation (#67792) 2023-10-03 14:01:50 +01:00
unittests [flang][openacc] Do not use special character in type string representation (#68158) 2023-10-03 14:30:16 -07:00
.clang-format
.clang-tidy
.drone.star
.gitignore
CMakeLists.txt Revert "[Flang] [FlangRT] Introduce FlangRT project as solution to Flang's runtime LLVM integration" 2023-10-02 09:02:05 +00:00
CODE_OWNERS.TXT
LICENSE.TXT
README.md

Flang

Flang is a ground-up implementation of a Fortran front end written in modern C++. It started off as the f18 project (https://github.com/flang-compiler/f18) with an aim to replace the previous flang project (https://github.com/flang-compiler/flang) and address its various deficiencies. F18 was subsequently accepted into the LLVM project and rechristened as Flang.

Please note that flang is not ready yet for production usage.

Getting Started

Read more about flang in the docs directory. Start with the compiler overview.

To better understand Fortran as a language and the specific grammar accepted by flang, read Fortran For C Programmers and flang's specifications of the Fortran grammar and the OpenMP grammar.

Treatment of language extensions is covered in this document.

To understand the compilers handling of intrinsics, see the discussion of intrinsics.

To understand how a flang program communicates with libraries at runtime, see the discussion of runtime descriptors.

If you're interested in contributing to the compiler, read the style guide and also review how flang uses modern C++ features.

If you are interested in writing new documentation, follow LLVM's Markdown style guide.

Consult the Getting Started with Flang for information on building and running flang.