[all-commits] [llvm/llvm-project] d08d49: [OpenMPOpt][NFC] Clang format
Johannes Doerfert via All-commits
all-commits at lists.llvm.org
Tue Dec 15 14:52:41 PST 2020
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d08d490a4cb93d05d728b6661f8c34d0064a53c6
https://github.com/llvm/llvm-project/commit/d08d490a4cb93d05d728b6661f8c34d0064a53c6
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2020-12-15 (Tue, 15 Dec 2020)
Changed paths:
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
Log Message:
-----------
[OpenMPOpt][NFC] Clang format
Commit: b9c77542e23756967e77dc42412effc41257a850
https://github.com/llvm/llvm-project/commit/b9c77542e23756967e77dc42412effc41257a850
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2020-12-15 (Tue, 15 Dec 2020)
Changed paths:
M clang/docs/LanguageExtensions.rst
M clang/include/clang/Basic/Attr.td
M clang/include/clang/Basic/AttrDocs.td
M clang/include/clang/Basic/DiagnosticGroups.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/CodeGen/CGCall.cpp
M clang/lib/Sema/CMakeLists.txt
M clang/lib/Sema/SemaDeclAttr.cpp
A clang/test/CodeGen/assume_attr.c
A clang/test/CodeGenCXX/assume_attr.cpp
M clang/test/Misc/pragma-attribute-supported-attributes-list.test
A clang/test/Sema/attr-assume.c
A llvm/include/llvm/IR/Assumptions.h
A llvm/lib/IR/Assumptions.cpp
M llvm/lib/IR/CMakeLists.txt
Log Message:
-----------
[Clang][Attr] Introduce the `assume` function attribute
The `assume` attribute is a way to provide additional, arbitrary
information to the optimizer. For now, assumptions are restricted to
strings which will be accumulated for a function and emitted as comma
separated string function attribute. The key of the LLVM-IR function
attribute is `llvm.assume`. Similar to `llvm.assume` and
`__builtin_assume`, the `assume` attribute provides a user defined
assumption to the compiler.
A follow up patch will introduce an LLVM-core API to query the
assumptions attached to a function. We also expect to add more options,
e.g., expression arguments, to the `assume` attribute later on.
The `omp [begin] asssumes` pragma will leverage this attribute and
expose the functionality in the absence of OpenMP.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D91979
Commit: dcaec81211be973364cf7830a3db63781e15a474
https://github.com/llvm/llvm-project/commit/dcaec81211be973364cf7830a3db63781e15a474
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2020-12-15 (Tue, 15 Dec 2020)
Changed paths:
M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
M llvm/test/Transforms/OpenMP/icv_tracking.ll
Log Message:
-----------
[OpenMP] Use assumptions during ICV tracking
The OpenMP 5.1 assumptions `no_openmp` and `no_openmp_routines` allow us
to ignore calls that would otherwise prevent ICV tracking.
Once we track more ICVs we might need to distinguish the ones that could
be impacted even with `no_openmp_routines`.
Reviewed By: sstefan1
Differential Revision: https://reviews.llvm.org/D92050
Commit: a5a14cbe7f87e01882ecaa14df5d596cbf38823a
https://github.com/llvm/llvm-project/commit/a5a14cbe7f87e01882ecaa14df5d596cbf38823a
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2020-12-15 (Tue, 15 Dec 2020)
Changed paths:
M clang/include/clang/Basic/DiagnosticParseKinds.td
M clang/include/clang/Parse/Parser.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Parse/ParseOpenMP.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaLambda.cpp
M clang/lib/Sema/SemaOpenMP.cpp
A clang/test/OpenMP/assumes_codegen.cpp
A clang/test/OpenMP/assumes_include_nvptx.cpp
A clang/test/OpenMP/assumes_messages.c
A clang/test/OpenMP/assumes_print.cpp
A clang/test/OpenMP/assumes_template_print.cpp
M llvm/include/llvm/Frontend/OpenMP/OMP.td
M llvm/include/llvm/Frontend/OpenMP/OMPConstants.h
M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
Log Message:
-----------
[OpenMP] Add initial support for `omp [begin/end] assumes`
The `assumes` directive is an OpenMP 5.1 feature that allows the user to
provide assumptions to the optimizer. Assumptions can refer to
directives (`absent` and `contains` clauses), expressions (`holds`
clause), or generic properties (`no_openmp_routines`, `ext_ABCD`, ...).
The `assumes` spelling is used for assumptions in the global scope while
`assume` is used for executable contexts with an associated structured
block.
This patch only implements the global spellings. While clauses with
arguments are "accepted" by the parser, they will simply be ignored for
now. The implementation lowers the assumptions directly to the
`AssumptionAttr`.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D91980
Compare: https://github.com/llvm/llvm-project/compare/02220f320498...a5a14cbe7f87
More information about the All-commits
mailing list