Changes

Summary

  1. Add a release note for the scope enum initialization bug fix in (details)
  2. [mlir][python][f16] add ctype python binding support for f16 (details)
  3. [Sema] Reject list-initialization of enumeration types from a (details)
  4. [OpenMP][NFC] update status for 'omp_all_memory' directive to 'done' (details)
  5. Revert "[LoopInterchange] New cost model for loop interchange" (details)
  6. [BOLT][DOCS] Add PACKAGE_VERSION to doxygen config (details)
  7. [Clang][OpenMP] Add the codegen support for `atomic compare capture` (details)
  8. [NFC][Doc] Finish atomic compare (details)
  9. [BOLT][NFC] Make ICP::verifyProfile static (details)
  10. [mlir][NFC] Simplify the various `parseSourceFile<T>` overloads (details)
  11. [llvm-c][test] Convert tests to opaque pointers (details)
  12. [llvm-c-test] Default to opaque pointers (details)
  13. [RISCV] Give CSImm12MulBy4 PatLeaf priority over CSImm12MulBy8. NFC (details)
  14. [mlir][scf] Add option to loop pipelining to not peel the epilogue (details)
  15. [MachineSSAUpdate] Add a test for redundant phi generation. (details)
  16. [mlir][VectorToGPU] Fix bug generating incorrect ldmatrix ops (details)
  17. [M68k] Instruction selection to choose neg x when mul x -1 (Fix issue 48588) (details)
  18. [libc] Automatically add -mfma flag for architectures supporting FMA. (details)
  19. [SSAUpdaterImpl] Do not generate phi node with all the same incoming values (details)
  20. [NFC][MemDep] Remove unnecessary Worklist.clear (details)
  21. [LLVM][Docs] Update for HowToSetUpLLVMStyleRTTI.rst, NFC. (details)
  22. [mlir][cf] Implement missing SwitchOp::build function (details)
  23. [clang][driver] Dynamically select gcc-toolset/devtoolset (details)
Commit b64f6e5722024b29f0799f2a0eae08778162dc61 by Akira
Add a release note for the scope enum initialization bug fix in
https://reviews.llvm.org/D126084
The file was modifiedclang/docs/ReleaseNotes.rst
Commit f8b692dd31d986bc5a83437fceecf80d4e90f745 by ajcbik
[mlir][python][f16] add ctype python binding support for f16

Similar to complex128/complex64, float16 has no direct support
in the ctypes implementation. This fixes the issue by using a
custom F16 type to change the view in and out of MLIR code

Reviewed By: wrengr

Differential Revision: https://reviews.llvm.org/D126928
The file was modifiedmlir/python/mlir/runtime/np_to_memref.py
The file was modifiedmlir/test/python/execution_engine.py
Commit 66e08995b0b72d28acb5e87b90292e59fabfadae by Akira
[Sema] Reject list-initialization of enumeration types from a
brace-init-list containing a single element of a different scoped
enumeration type

It is rejected because it doesn't satisfy the condition that the element
has to be implicitly convertible to the underlying type of the
enumeration.

http://eel.is/c++draft/dcl.init.list#3.8

Differential Revision: https://reviews.llvm.org/D126084
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/test/SemaCXX/enum-scoped.cpp
Commit 48d6a6c9add90f3684de362907d5f05a0988244a by michael.p.rice
[OpenMP][NFC] update status for 'omp_all_memory' directive to 'done'
The file was modifiedclang/docs/OpenMPSupport.rst
Commit f1940a589516d193bf89104e17988fa36fab13e1 by dsuchkov
Revert "[LoopInterchange] New cost model for loop interchange"

Reverting the commit due to numerous buildbot failures.

This reverts commit 006334470d8d1b5d8f630890336fcb45795749d1.
The file was modifiedllvm/test/Transforms/LoopInterchange/currentLimitation.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-no-deps.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/call-instructions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/vector-gep-operand.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/perserve-lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/debuginfo.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-dependencies-1.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-innerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr48212.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/profitability.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/update-condbranch-duplicate-successors.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/innermost-latch-uses-values-in-middle-header.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LICM/lnicm.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-only-reductions.ll
Commit 65a84195ca61a4d79f804e4e6ddcc1c86f415bcf by aaupov
[BOLT][DOCS] Add PACKAGE_VERSION to doxygen config

Clang's doxygen documentation specifies LLVM revision. Do the same for BOLT.

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D126912
The file was modifiedbolt/docs/doxygen.cfg.in
Commit c4a90db72064cca70c51b9c49212fa54d34b02ba by i
[Clang][OpenMP] Add the codegen support for `atomic compare capture`

This patch adds the codegen support for `atomic compare capture` in clang.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D120290
The file was modifiedclang/lib/AST/StmtOpenMP.cpp
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/include/clang/AST/StmtOpenMP.h
The file was modifiedclang/lib/Serialization/ASTWriterStmt.cpp
The file was modifiedclang/test/OpenMP/atomic_compare_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
Commit b917433835473d5a9dff5b1034e861cf5dc9e5bc by i
[NFC][Doc] Finish atomic compare
The file was modifiedclang/docs/OpenMPSupport.rst
Commit e2142ff47c72cc083a8f5261875b30c29d3cf66a by aaupov
[BOLT][NFC] Make ICP::verifyProfile static

Follow LLVM style guide suggestion to avoid function definitions in anonymous
namespaces: https://llvm.org/docs/CodingStandards.html#anonymous-namespaces

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D124896
The file was modifiedbolt/lib/Passes/IndirectCallPromotion.cpp
Commit ee1cf1f64519c815025d962bdf9c9bb3d09d7699 by riddleriver
[mlir][NFC] Simplify the various `parseSourceFile<T>` overloads

These effectively all share the same implementation, i.e. forward
to the non-templated overload and then construct the container op.
The file was modifiedmlir/include/mlir/Parser/Parser.h
Commit 8d846849f838895a9b2a70fde2084a5a4e7fa03d by i
[llvm-c][test] Convert tests to opaque pointers

echo.ll is unchanged to test typed pointers.
The file was modifiedllvm/test/Bindings/llvm-c/memops.ll
The file was modifiedllvm/test/Bindings/llvm-c/freeze.ll
The file was modifiedllvm/test/Bindings/llvm-c/echo.ll
The file was modifiedllvm/test/Bindings/llvm-c/invoke.ll
The file was modifiedllvm/test/Bindings/llvm-c/atomics.ll
Commit e33af271eaed0bdaf6f95edd7c0841423fd0fc0e by i
[llvm-c-test] Default to opaque pointers
The file was modifiedllvm/test/Bindings/llvm-c/atomics.ll
The file was modifiedllvm/tools/llvm-c-test/main.c
The file was modifiedllvm/tools/llvm-c-test/echo.cpp
The file was modifiedllvm/test/Bindings/llvm-c/echo.ll
The file was modifiedllvm/test/Bindings/llvm-c/freeze.ll
The file was modifiedllvm/test/Bindings/llvm-c/invoke.ll
The file was modifiedllvm/test/Bindings/llvm-c/memops.ll
Commit 1d67adbfbf2743a9ee7a08be2ce441710c95e5e8 by craig.topper
[RISCV] Give CSImm12MulBy4 PatLeaf priority over CSImm12MulBy8. NFC

The immediate range check for CSImm12MulBy8 included some values
covered by CSImm12MulBy4. I assume CSImm12MulBy4 had priority due
to pattern order in the td file, but this makes the priority
explicit in the predicate.
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoZb.td
Commit 205c08b54d70532440186fe9070293686d1d0d06 by thomasraoux
[mlir][scf] Add option to loop pipelining to not peel the epilogue

Add an option to predicate the epilogue within the kernel instead of
peeling the epilogue. This is a useful option to prevent generating
large amount of code for deep pipeline. This currently require a user
lamdba to implement operation predication.

Differential Revision: https://reviews.llvm.org/D126753
The file was modifiedmlir/test/Dialect/SCF/loop-pipelining.mlir
The file was modifiedmlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp
The file was modifiedmlir/test/lib/Dialect/SCF/TestSCFUtils.cpp
The file was modifiedmlir/include/mlir/Dialect/SCF/Transforms.h
Commit c4d955dd7f68b80119529165bbd878b09271c4d3 by serguei.katkov
[MachineSSAUpdate] Add a test for redundant phi generation.
The file was addedllvm/test/CodeGen/AArch64/tail-dup-redundant-phi.mir
Commit 271a48e02917859cd09ee7f230adea7b6cc7a578 by thomasraoux
[mlir][VectorToGPU] Fix bug generating incorrect ldmatrix ops

ldmatrix transpose can only be used with types that are 16bits wide.

Differential Revision: https://reviews.llvm.org/D126846
The file was modifiedmlir/test/Conversion/VectorToGPU/vector-to-mma-ops-mma-sync.mlir
The file was modifiedmlir/lib/Conversion/VectorToGPU/VectorToGPU.cpp
Commit 78b16ccf2b5c4ba4ebd7f1e2a2fc1dcad0e1a343 by sheng
[M68k] Instruction selection to choose neg x when mul x -1 (Fix issue 48588)

This patch is trying to fix issue 48588(https://github.com/llvm/llvm-project/issues/48588)

I found the results of Instruction Selection between SelectionDAG and FastISEL for the `%mul = mul i32 %A, 4294967295`:
(seldag-isel) mul --> sub --> SUB32dp
(fast-isel)   mul --> sub --> NEG32d

My patch to fix this issue is by overriding a virtual function M68kDAGToDAGISel::IsProfitableToFold(). Return `false` when it was trying to match with SUB, then it will match with NEG.

Reviewed By: myhsu

Differential Revision: https://reviews.llvm.org/D116886
The file was modifiedllvm/lib/Target/M68k/M68kISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/M68k/Arith/imul-neg.ll
Commit 614567a7bf4a7a4c2570ad9a499b77155dfb54ce by lntue
[libc] Automatically add -mfma flag for architectures supporting FMA.

Detect if the architecture supports FMA instructions and if
the targets depend on fma.

Reviewed By: gchatelet

Differential Revision: https://reviews.llvm.org/D123615
The file was modifiedlibc/src/__support/FPUtil/CMakeLists.txt
The file was modifiedlibc/src/math/generic/expm1f.cpp
The file was modifiedlibc/src/math/CMakeLists.txt
The file was modifiedlibc/src/math/fma.cpp
The file was modifiedlibc/src/math/generic/log1pf.cpp
The file was modifiedlibc/src/__support/architectures.h
The file was modifiedlibc/test/src/math/CMakeLists.txt
The file was modifiedlibc/cmake/modules/LLVMLibCFlagRules.cmake
The file was modifiedlibc/src/__support/FPUtil/x86_64/PolyEval.h
The file was modifiedlibc/src/math/generic/log10f.cpp
The file was modifiedlibc/src/math/generic/logf.cpp
The file was modifiedlibc/src/math/fmaf.cpp
The file was modifiedlibc/src/math/generic/log2f.cpp
The file was modifiedlibc/src/__support/FPUtil/PolyEval.h
The file was modifiedlibc/src/__support/FPUtil/x86_64/FMA.h
The file was modifiedlibc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
The file was modifiedlibc/src/math/generic/CMakeLists.txt
The file was modifiedlibc/cmake/modules/LLVMLibCObjectRules.cmake
The file was modifiedlibc/src/math/generic/exp2f.cpp
The file was modifiedlibc/src/math/generic/expf.cpp
Commit 24e16e4af20858e0c276d3cf4137b7a57afd2d19 by serguei.katkov
[SSAUpdaterImpl] Do not generate phi node with all the same incoming values

If all available vals to basic block are the same - do not build new phi node and
just use this value.

Reviewed By: sameerds
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D126525
The file was modifiedllvm/test/CodeGen/WebAssembly/lower-em-ehsjlj.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
The file was modifiedllvm/test/Transforms/LICM/sink-debuginfo-preserve.ll
The file was modifiedllvm/test/CodeGen/AArch64/tail-dup-redundant-phi.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/nested-loop-conditions.ll
Commit 8555e59a7172a7597f5eeecdc620f293297e2294 by mkazantsev
[NFC][MemDep] Remove unnecessary Worklist.clear

This execution path leads to return 'false' where the Worklist
will be deallocated anyways. No need to clear it separately.
The file was modifiedllvm/lib/Analysis/MemoryDependenceAnalysis.cpp
Commit 47231248f59b733b6351b71523c7067a9559228a by aman.lachapelle
[LLVM][Docs] Update for HowToSetUpLLVMStyleRTTI.rst, NFC.

This patch updates the document with some advanced use cases and examples on how to set up and use LLVM-style RTTI. It includes a few motivating examples to get readers comfortable with the concepts.

Reviewed By: lattner

Differential Revision: https://reviews.llvm.org/D126943
The file was modifiedllvm/docs/HowToSetUpLLVMStyleRTTI.rst
Commit b34fb277df672ca2de2721702b53bbb91f1d68dc by alexbatashev
[mlir][cf] Implement missing SwitchOp::build function

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D126594
The file was modifiedmlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
Commit 9f97720268911abae2ad9d90e270358db234a1c1 by tbaeder
[clang][driver] Dynamically select gcc-toolset/devtoolset

Instead of adding all devtoolset and gcc-toolset prefixes to the list of
prefixes, just scan the /opt/rh/ directory for the one with the highest
version number and only add that one.

Differential Revision: https://reviews.llvm.org/D125862
The file was modifiedclang/unittests/Driver/ToolChainTest.cpp
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp

Summary

  1. [Fortran] Forward NO_STOP_MESSAGE to FCVS tests (details)
Commit f425709b9cd0d64a3fdda86e6da37ca709599c76 by diana.picus
[Fortran] Forward NO_STOP_MESSAGE to FCVS tests

By default, Flang outputs 'Fortran STOP' as part of the STOP statement,
and sometimes also warnings about signaling exceptions, which are
platform-dependent. This output will cause test failures, but it can be
suppressed by setting the environment variable NO_STOP_MESSAGE=1. This
patch makes sure that llvm-lit forwards the NO_STOP_MESSAGE variable to
the tests if it is set in the environment.

Differential Revision: https://reviews.llvm.org/D126360
The file was modifiedFortran/UnitTests/fcvs21_f95/lit.local.cfg (diff)