AbortedChanges

Summary

  1. Added openmp docs to SphinxDocsBuilder. (details)
Commit 786748274ad0b07093fed1422f49ca885c397c11 by alebedev
Added openmp docs to SphinxDocsBuilder.

Since openmp Sphinx docs are buildable, we can expand SphinxDocsBuilder to build and publish that as well.

Reviewed By: gkistanova, jdoerfert

Differential Revision: https://reviews.llvm.org/D88277
The file was modifiedzorg/buildbot/builders/SphinxDocsBuilder.py (diff)

Summary

  1. [Clang][OpenMP] Added support for nowait target in CodeGen via regular task (details)
  2. Common code preparation for tblgen-types patch (details)
  3. [bindings/go] Fix TestAttributes after D88241 (details)
  4. [Driver] Perform Linux distribution detection only once (details)
  5. [Driver] Fix formatting as suggested by clang-format (NFC) (details)
  6. [SelectionDAG] Add guard to automatically insert flags (details)
  7. [CodeGen] Do not call `emitGlobalConstantLargeInt` for constant requires 8 bytes to store (details)
Commit ebb1092a2875739d3e9bb6b1fb230c0e0d88ebff by tianshilei1992
[Clang][OpenMP] Added support for nowait target in CodeGen via regular task

Previously for nowait target, CG emitted a function call to `__tgt_target_nowait`, etc. However, in OpenMP RTL, these functions just directly call the no-nowait version, which means nowait is not working as expected.

OpenMP specification says a target is acutally a target task, which is an untied and detachable task. It is natural to go to the direction that generates a task for a nowait target. However, OpenMP task has a problem that it must be within to a parallel region; otherwise the task will be executed immediately. As a result, if we directly wrap to a regular task, the `target nowait` outside of a parallel region is still a synchronous version.

In D77609, I added the support for unshackled task in OpenMP RTL. Basically, unshackled task is a task that is not bound to any parallel region. So all nowait target will be tranformed into an unshackled task. In order to distinguish from regular task, a new flag bit is set for unshackled task. This flag will be used by RTL for later process.

Since all target tasks are allocated via `__kmpc_omp_target_task_alloc`, and in current `libomptarget`, `__kmpc_omp_target_task_alloc` just calls `__kmpc_omp_task_alloc`. Therefore, we can modify the flag in `__kmpc_omp_target_task_alloc` so that we don't need to modify the FE too much. If users choose to opt out the feature, they just need to use a RTL w/o support of unshackled threads.

As a result, in this patch, the `target nowait` region is simply wrapped into a regular task. Later once we have RTL support for unshackled tasks, the wrapped tasks can be executed by unshackled threads w/o changes in the FE.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D78075
The file was modifiedclang/test/OpenMP/target_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/declare_mapper_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_codegen.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_codegen.cpp
The file was modifiedclang/test/OpenMP/target_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_distribute_codegen.cpp
The file was modifiedclang/test/OpenMP/target_teams_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_simd_codegen.cpp
Commit 76419525fba62c93d5c337acdb0b80d6e42b00c9 by joker.eph
Common code preparation for tblgen-types patch

Cleanup and add methods which https://reviews.llvm.org/D86904 requires. Breaking up to lower review load.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D88267
The file was modifiedmlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
The file was modifiedmlir/lib/TableGen/Operator.cpp
The file was modifiedllvm/include/llvm/TableGen/Record.h
The file was modifiedllvm/lib/TableGen/Record.cpp
The file was modifiedmlir/include/mlir/TableGen/Operator.h
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp
The file was addedmlir/include/mlir/TableGen/CodeGenHelpers.h
Commit 63c58c2b934525c9863e624cf39ec542dd84ca78 by i
[bindings/go] Fix TestAttributes after D88241
The file was modifiedllvm/bindings/go/llvm/ir_test.go
Commit 96318f64a7864747ebbb4e33cb75b0dea465abfc by dmantipov
[Driver] Perform Linux distribution detection only once

Differential Revision: https://reviews.llvm.org/D87187
The file was modifiedclang/include/clang/Driver/Distro.h
The file was modifiedclang/lib/Driver/Distro.cpp
Commit 2ca0ea15e5c910ff93874679f0a03c923fe85e5b by dmantipov
[Driver] Fix formatting as suggested by clang-format (NFC)
The file was modifiedclang/include/clang/Driver/Distro.h
Commit c0f8e4c06c85db256806cfce90a2b49e4cdd58d4 by qiucofan
[SelectionDAG] Add guard to automatically insert flags

This is like FastMathFlagGuard in IR. Since we use SDAG instance to get
values, it's with SelectionDAG. By creating a FlagInserter in current
scope, all values created by getNode will get the flags if no Flags
argument provided.

In this patch, I applied it to floating point operations folding part in
DAG combiner, and removed Flags passing to getNode to show its effect.
Other places in DAG combiner and other helper methods similar to getNode
also need this. They can be done in follow-up patches.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D87361
The file was modifiedllvm/test/CodeGen/X86/sqrt-fastmath-mir.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/include/llvm/CodeGen/SelectionDAG.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit c6c5629f2fb4ddabd376fbe7c218733283e91d09 by simon
[CodeGen] Do not call `emitGlobalConstantLargeInt` for constant requires 8 bytes to store

This is a fix for PR47630. The regression is caused by the D78011. After
this change the code starts to call the `emitGlobalConstantLargeInt` even
for constants which requires eight bytes to store.

Differential revision: https://reviews.llvm.org/D88261
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was modifiedllvm/test/CodeGen/Mips/emit-big-cst.ll

Summary

  1. Added openmp docs to SphinxDocsBuilder. (details)
Commit 786748274ad0b07093fed1422f49ca885c397c11 by alebedev
Added openmp docs to SphinxDocsBuilder.

Since openmp Sphinx docs are buildable, we can expand SphinxDocsBuilder to build and publish that as well.

Reviewed By: gkistanova, jdoerfert

Differential Revision: https://reviews.llvm.org/D88277
The file was modifiedzorg/buildbot/builders/SphinxDocsBuilder.py