|author||Slava Zakharin <firstname.lastname@example.org>||Wed Sep 27 08:20:17 2023 -0700|
|committer||Copybara-Service <email@example.com>||Wed Sep 27 08:26:17 2023 -0700|
[flang][runtime] Enable more code for offload device builds. (#67489) I extended the "closure" of the device code containing the initial transformational.cpp. The device side of the library should not be complete at least for some APIs. For example, I tested with C OpenMP code calling BesselJnX0 with a nullptr descriptor that failed with a runtime error when executing on a GPU. I added `--expt-relaxed-constexpr` for NVCC compiler to avoid multiple warnings about missing `__attribute__((device))` on constexpr methods coming from C++ header files. GitOrigin-RevId: 4bdec5830bc398cecf6e775cc54d9dd511e6e237
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.
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 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.