hanchenye-llvm-project/clang
Arpith Chacko Jacob fc711b1f47 [OpenMP] Teams reduction on the NVPTX device.
This patch implements codegen for the reduction clause on
any teams construct for elementary data types.  It builds
on parallel reductions on the GPU.  Subsequently,
the team master writes to a unique location in a global
memory scratchpad.  The last team to do so loads and
reduces this array to calculate the final result.

This patch emits two helper functions that are used by
the OpenMP runtime on the GPU to perform reductions across
teams.

Patch by Tian Jin in collaboration with Arpith Jacob

Reviewers: ABataev
Differential Revision: https://reviews.llvm.org/D29879

llvm-svn: 295335
2017-02-16 16:48:49 +00:00
..
INPUTS
bindings [libclang] [OpenCL] Expose half type. 2017-02-10 15:51:11 +00:00
cmake [CMake] Add CLANG_INCLUDE_DIRS to CMake exports 2017-02-06 18:17:23 +00:00
docs [OpenCL][Doc] Added OpenCL vendor extension description to user manual doc 2017-02-16 12:49:29 +00:00
examples Add LLVMOption to clang-interpreter, corresponding to r291938. 2017-01-14 08:54:05 +00:00
include [OpenCL] Correct ndrange_t implementation 2017-02-16 12:27:47 +00:00
lib [OpenMP] Teams reduction on the NVPTX device. 2017-02-16 16:48:49 +00:00
runtime [sanitizer] Passthrough CMAKE_OSX_DEPLOYMENT_TARGET and CMAKE_OSX_SYSROOT when building compiler-rt from clang/runtime/CMakeLists.txt 2016-12-15 23:20:54 +00:00
test [OpenMP] Teams reduction on the NVPTX device. 2017-02-16 16:48:49 +00:00
tools [OpenCL] Correct ndrange_t implementation 2017-02-16 12:27:47 +00:00
unittests [clang-format] Align block comment decorations 2017-02-16 12:39:31 +00:00
utils Improve workaround for Sphinx's lack of support for command line options containing '+', '.' etc. to be more stable as the set of options changes. 2017-01-27 01:54:42 +00:00
www [c++1z] Diagnose non-deducible template parameters in deduction guide templates, per [temp.param]p11. 2017-02-16 00:36:47 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt Fix r291495 -- Normalize LLVM_CMAKE_PATH in clang standalone build. 2017-02-13 14:59:53 +00:00
CODE_OWNERS.TXT
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/