llvm-project/clang
Giorgis Georgakoudis 1d66649adf [OpenMP] Codegen aggregate for outlined function captures
Parallel regions are outlined as functions with capture variables explicitly generated as distinct parameters in the function's argument list. That complicates the fork_call interface in the OpenMP runtime: (1) the fork_call is variadic since there is a variable number of arguments to forward to the outlined function, (2) wrapping/unwrapping arguments happens in the OpenMP runtime, which is sub-optimal, has been a source of ABI bugs, and has a hardcoded limit (16) in the number of arguments, (3)  forwarded arguments must cast to pointer types, which complicates debugging. This patch avoids those issues by aggregating captured arguments in a struct to pass to the fork_call.

Reviewed By: jdoerfert, jhuber6

Differential Revision: https://reviews.llvm.org/D102107
2021-09-21 10:50:04 -07:00
..
INPUTS
bindings [Clang] Add __ibm128 type to represent ppc_fp128 2021-09-06 18:00:58 +08:00
cmake Revert "Fix CLANG_ENABLE_STATIC_ANALYZER=OFF building all analyzer source" 2021-09-20 16:18:03 -04:00
docs [OpenMP][NFC] Add declare variant and metadirective to support page 2021-09-21 11:28:13 -05:00
examples Revert "Reland "[clang-repl] Re-implement clang-interpreter as a test case."" 2021-09-03 13:18:09 +00:00
include Revert "Diagnose -Wunused-value based on CFG reachability" 2021-09-21 12:25:13 -04:00
lib [OpenMP] Codegen aggregate for outlined function captures 2021-09-21 10:50:04 -07:00
runtime Prepare Compiler-RT for GnuInstallDirs, matching libcxx, document all 2021-07-13 15:21:41 +00:00
test [OpenMP] Codegen aggregate for outlined function captures 2021-09-21 10:50:04 -07:00
tools [Clang] [Fix] Clang build fails when build directory contains space character 2021-09-20 18:19:08 +05:30
unittests Fix a unittest file after D108695 when Z3 is enabled 2021-09-14 16:11:11 +02:00
utils [AST] Avoid single-trip loop in ClangAttrEmitter 2021-08-20 08:49:57 +02:00
www Add information about C99 to the C status page. 2021-09-17 13:49:17 -04:00
.clang-format
.clang-tidy .clang-tidy: Disable misc-no-recursion in general/across the monorepo 2021-06-08 08:31:33 -07:00
.gitignore
CMakeLists.txt Add CMAKE_BUILD_TYPE to the list of BOOTSTRAP_DEFAULT_PASSTHROUGH variables 2021-09-21 10:44:08 +02:00
CODE_OWNERS.TXT Add myself as a code owner for SYCL support 2021-09-20 09:32:25 +03:00
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:             http://clang.llvm.org/
Building and using Clang:         http://clang.llvm.org/get_started.html
Clang Static Analyzer:            http://clang-analyzer.llvm.org/
Information on the LLVM project:  http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/