[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