Changes

Summary

  1. [LoopInterchange] New cost model for loop interchange (details)
  2. [clang-tidy] Add proper emplace checks to modernize-use-emplace (details)
  3. [mlir:MultiOpDriver] Quick fix the assertion position (details)
  4. [MLIR][Presburger] Simplex: remove redundant member vars nRow, nCol (details)
  5. [mlir:PDLL] Add better support for providing Constraint/Pattern/Rewrite documentation (details)
  6. [vscode-mlir] Bump to version 0.8 (details)
  7. Add a release note for the scope enum initialization bug fix in (details)
  8. [mlir][python][f16] add ctype python binding support for f16 (details)
  9. [Sema] Reject list-initialization of enumeration types from a (details)
  10. [OpenMP][NFC] update status for 'omp_all_memory' directive to 'done' (details)
  11. Revert "[LoopInterchange] New cost model for loop interchange" (details)
  12. [BOLT][DOCS] Add PACKAGE_VERSION to doxygen config (details)
  13. [Clang][OpenMP] Add the codegen support for `atomic compare capture` (details)
  14. [NFC][Doc] Finish atomic compare (details)
  15. [BOLT][NFC] Make ICP::verifyProfile static (details)
  16. [mlir][NFC] Simplify the various `parseSourceFile<T>` overloads (details)
  17. [llvm-c][test] Convert tests to opaque pointers (details)
  18. [llvm-c-test] Default to opaque pointers (details)
  19. [RISCV] Give CSImm12MulBy4 PatLeaf priority over CSImm12MulBy8. NFC (details)
  20. [mlir][scf] Add option to loop pipelining to not peel the epilogue (details)
  21. [MachineSSAUpdate] Add a test for redundant phi generation. (details)
  22. [mlir][VectorToGPU] Fix bug generating incorrect ldmatrix ops (details)
  23. [M68k] Instruction selection to choose neg x when mul x -1 (Fix issue 48588) (details)
  24. [libc] Automatically add -mfma flag for architectures supporting FMA. (details)
  25. [SSAUpdaterImpl] Do not generate phi node with all the same incoming values (details)
  26. [NFC][MemDep] Remove unnecessary Worklist.clear (details)
  27. [LLVM][Docs] Update for HowToSetUpLLVMStyleRTTI.rst, NFC. (details)
  28. [mlir][cf] Implement missing SwitchOp::build function (details)
  29. [clang][driver] Dynamically select gcc-toolset/devtoolset (details)
  30. [ARM] Fix restoring stack for varargs with SEH split frame pointer push (details)
  31. [clang] [MSVC] Enable unwind tables for ARM (details)
  32. [Driver] Add multiarch path for RISC-V (details)
  33. [mlir][SCF] Add bufferization hook for scf.foreach_thread and terminator. (details)
  34. Revert "[SLP]Improve shuffles cost estimation where possible." (details)
  35. [clang-tidy] `bugprone-use-after-move`: Fix handling of moves in lambda captures (details)
  36. [clang][sema] Remove unused paramter from VerifyBitField (details)
  37. [NFC] Format CGBuilder.h (details)
  38. [DAGCombine] Handle promotion of shift with both operands the same (details)
  39. [mlir][OpenMP] Add memory_order clause tests (details)
  40. [flang][test-suite] Document need for NO_STOP_MESSAGE environment variable. NFC (details)
  41. [cmake] Fix typo in CrossCompile.cmake (details)
  42. [libc++] Fix conjunction/disjunction and mark a few LWG issues as complete (details)
  43. [clang-tidy] Add missing close quote in release notes. (details)
  44. [gn build] Port a29a1a33ac7b (details)
  45. [docs] Fix RST code-block syntax in HowToSetUpLLVMStyleRTTI.rst (details)
  46. [clang-tidy] Confusable identifiers detection (details)
  47. [AArch64] Add extra addp codegen tests. NFC (details)
  48. [mlir] Fix ClangTidy warning (NFC). (details)
  49. [VPlan] Replace CondBit with BranchOnCond VPInstruction. (details)
  50. [VPlan] Update failing HCFG unit tests after a5bb4a3b4d3db. (details)
  51. [SVE] Refactor sve-bitcast.ll to include all combinations for legal types. (details)
  52. [DAGCombiner] Add bf16 to the matrix of types that we don't promote to integer stores (details)
  53. [pp-trace] Print HashLoc in InclusionDirective callback (details)
  54. [gn build] (manually) port b94db7ed7eaf (Confusables.inc) (details)
  55. [VPlan] Inline variable into assertion. NFC. (details)
Commit 006334470d8d1b5d8f630890336fcb45795749d1 by congzhecao
[LoopInterchange] New cost model for loop interchange

This patch proposed to use a new cost model for loop interchange, which
is obtained from loop cache analysis.

Given a loopnest, what loop cache analysis returns is a vector of loops
[loop0, loop1, loop2, ...] where loop0 should be replaced as the outermost
loop, loop1 should be placed one more level inside, and loop2 one more level
inside, etc. What loop cache analysis does is not only more comprehensive than
the current cost model, it is also a "one-shot" query which means that we only
need to query it once during the entire loop interchange pass, which is better
than the current cost model where we query it every time we check whether it is
profitable to interchange two loops. Thus complexity is reduced, especially after
D120386 where we do more interchanges to get the globally optimal loop access pattern.

Updates made to test cases are mostly minor changes and some corrections.
Test coverage for loop interchange is not reduced.

Currently we did not completely remove the legacy cost model, but keep it as
fall-back in case the new cost model did not run successfully. This is because
currently we have some limitations in delinearization, which sometimes makes
loop cache analysis bail out. The longer term goal is to enhance delinearization
and eventually remove the legacy cost model compeletely.

Reviewed By: bmahjour, #loopoptwg

Differential Revision: https://reviews.llvm.org/D124926
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-dependencies-1.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/profitability.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/update-condbranch-duplicate-successors.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/perserve-lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/debuginfo.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-no-deps.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/currentLimitation.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/vector-gep-operand.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll
The file was modifiedllvm/test/Transforms/LICM/lnicm.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/call-instructions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/innermost-latch-uses-values-in-middle-header.ll
Commit 987f9cb6b9708ff16980c4f8c3f8ba4674463fb5 by ivan.murashko
[clang-tidy] Add proper emplace checks to modernize-use-emplace

modernize-use-emplace only recommends going from a push_back to an
emplace_back, but does not provide a recommendation when emplace_back is
improperly used. This adds the functionality of warning the user when
an unecessary temporary is created while calling emplace_back or other "emplacy"
functions from the STL containers.

Reviewed By: kuhar, ivanmurashko

Differential Revision: https://reviews.llvm.org/D101471
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.h
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/modernize-use-emplace.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/modernize-use-emplace.rst
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseEmplaceCheck.cpp
Commit 633ad1d864c807c7904419c80394231bd5c46ddf by chiahungduan
[mlir:MultiOpDriver] Quick fix the assertion position

The assertion should come after null check
The file was modifiedmlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
Commit 8bc2cff95acd68d3e94d524b40571d978c251566 by arjunpitchanathan
[MLIR][Presburger] Simplex: remove redundant member vars nRow, nCol

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D126790
The file was modifiedmlir/lib/Analysis/Presburger/Simplex.cpp
The file was modifiedmlir/include/mlir/Analysis/Presburger/Simplex.h
Commit bf352e0b2ef9f8824a5b88d44313b5a13258350d by riddleriver
[mlir:PDLL] Add better support for providing Constraint/Pattern/Rewrite documentation

This commit enables providing long-form documentation more seamlessly to the LSP
by revamping decl documentation. For ODS imported constructs, we now also import
descriptions and attach them to decls when possible. For PDLL constructs, the LSP will
now try to provide documentation by parsing the comments directly above the decls
location within the source file. This commit also adds a new parser flag
`enableDocumentation` that gates the import and attachment of ODS documentation,
which is unnecessary in the normal build process (i.e. it should only be used/consumed
by tools).

Differential Revision: https://reviews.llvm.org/D124881
The file was modifiedmlir/include/mlir/Tools/PDLL/Parser/Parser.h
The file was modifiedmlir/lib/Tools/PDLL/ODS/Operation.cpp
The file was modifiedmlir/include/mlir/Tools/PDLL/AST/Nodes.h
The file was modifiedmlir/lib/TableGen/Type.cpp
The file was modifiedmlir/tools/mlir-pdll/mlir-pdll.cpp
The file was modifiedmlir/test/mlir-pdll-lsp-server/hover.test
The file was modifiedmlir/include/mlir/TableGen/Type.h
The file was modifiedmlir/lib/TableGen/Attribute.cpp
The file was modifiedmlir/include/mlir/TableGen/Attribute.h
The file was modifiedmlir/include/mlir/TableGen/Constraint.h
The file was modifiedmlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
The file was modifiedmlir/lib/Tools/PDLL/Parser/Parser.cpp
The file was modifiedmlir/lib/TableGen/Constraint.cpp
The file was modifiedmlir/lib/Tools/PDLL/AST/Nodes.cpp
Commit bb81b3b274d87fad70e9d920d95622d883aae7e9 by riddleriver
[vscode-mlir] Bump to version 0.8

Since version 0.7 we've added:

* Initial language support for TableGen
* Tweaked syntax highlighting for PDLL
* Added a new command to view intermediate PDLL output
The file was modifiedmlir/utils/vscode/package-lock.json
The file was modifiedmlir/utils/vscode/package.json
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/test/python/execution_engine.py
The file was modifiedmlir/python/mlir/runtime/np_to_memref.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/not-interchanged-dependencies-1.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LICM/lnicm.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr48212.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/update-condbranch-duplicate-successors.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-innerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/vector-gep-operand.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchanged-loop-nest-3.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/debuginfo.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43326.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/currentLimitation.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchangeable.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/interchange-no-deps.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/profitability.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/outer-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/call-instructions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/innermost-latch-uses-values-in-middle-header.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/perserve-lcssa.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopInterchange.cpp
The file was modifiedllvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/inner-only-reductions.ll
The file was modifiedllvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.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/include/clang/AST/StmtOpenMP.h
The file was modifiedclang/lib/AST/StmtOpenMP.cpp
The file was modifiedclang/test/OpenMP/atomic_compare_codegen.cpp
The file was modifiedclang/lib/Serialization/ASTReaderStmt.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp
The file was modifiedclang/lib/Serialization/ASTWriterStmt.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/invoke.ll
The file was modifiedllvm/test/Bindings/llvm-c/echo.ll
The file was modifiedllvm/test/Bindings/llvm-c/atomics.ll
The file was modifiedllvm/test/Bindings/llvm-c/memops.ll
The file was modifiedllvm/test/Bindings/llvm-c/freeze.ll
Commit e33af271eaed0bdaf6f95edd7c0841423fd0fc0e by i
[llvm-c-test] Default to opaque pointers
The file was modifiedllvm/test/Bindings/llvm-c/echo.ll
The file was modifiedllvm/test/Bindings/llvm-c/atomics.ll
The file was modifiedllvm/test/Bindings/llvm-c/invoke.ll
The file was modifiedllvm/test/Bindings/llvm-c/freeze.ll
The file was modifiedllvm/tools/llvm-c-test/main.c
The file was modifiedllvm/test/Bindings/llvm-c/memops.ll
The file was modifiedllvm/tools/llvm-c-test/echo.cpp
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/lib/Dialect/SCF/Transforms/LoopPipelining.cpp
The file was modifiedmlir/test/Dialect/SCF/loop-pipelining.mlir
The file was modifiedmlir/include/mlir/Dialect/SCF/Transforms.h
The file was modifiedmlir/test/lib/Dialect/SCF/TestSCFUtils.cpp
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/lib/Conversion/VectorToGPU/VectorToGPU.cpp
The file was modifiedmlir/test/Conversion/VectorToGPU/vector-to-mma-ops-mma-sync.mlir
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/test/CodeGen/M68k/Arith/imul-neg.ll
The file was modifiedllvm/lib/Target/M68k/M68kISelDAGToDAG.cpp
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/x86_64/FMA.h
The file was modifiedlibc/src/math/generic/expf.cpp
The file was modifiedlibc/src/math/generic/expm1f.cpp
The file was modifiedlibc/test/src/math/CMakeLists.txt
The file was modifiedlibc/src/math/generic/log10f.cpp
The file was modifiedlibc/cmake/modules/LLVMLibCObjectRules.cmake
The file was modifiedlibc/src/math/generic/logf.cpp
The file was modifiedlibc/src/math/generic/log1pf.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/x86_64/PolyEval.h
The file was modifiedlibc/cmake/modules/LLVMLibCFlagRules.cmake
The file was modifiedlibc/src/math/CMakeLists.txt
The file was modifiedlibc/src/math/generic/CMakeLists.txt
The file was modifiedlibc/src/__support/FPUtil/PolyEval.h
The file was modifiedlibc/src/__support/FPUtil/CMakeLists.txt
The file was modifiedlibc/src/__support/architectures.h
The file was modifiedlibc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
The file was modifiedlibc/src/math/generic/exp2f.cpp
The file was modifiedlibc/src/math/fma.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/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
The file was modifiedllvm/test/CodeGen/WebAssembly/lower-em-ehsjlj.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h
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
Commit 40c937cba239db817b53d47c4525a751a8c488a0 by martin
[ARM] Fix restoring stack for varargs with SEH split frame pointer push

Previously, the "add sp, #12" ended up inserted after "bx lr".

Differential Revision: https://reviews.llvm.org/D126872
The file was modifiedllvm/test/CodeGen/ARM/Windows/wineh-framepointer.ll
The file was modifiedllvm/lib/Target/ARM/ARMFrameLowering.cpp
Commit e8402d5de82ace9399498570a6a2d5cf64463af3 by martin
[clang] [MSVC] Enable unwind tables for ARM

The backend now can generate working unwind information for this
target.

Improve the existing windows-exceptions.cpp testcase to check for
the state of unwind tables on all MSVC architectures.

Differential Revision: https://reviews.llvm.org/D126862
The file was modifiedclang/test/Driver/windows-exceptions.cpp
The file was modifiedclang/lib/Driver/ToolChains/MSVC.cpp
Commit 0d2186373f73995cfcc45f445024fbc9841c99d6 by hahnjo
[Driver] Add multiarch path for RISC-V

This is required to find headers on the Debian port for RISC-V.

Differential Revision: https://reviews.llvm.org/D126672
The file was modifiedclang/lib/Driver/ToolChains/Linux.cpp
Commit 72de7588cc8bf54b48f66e649f621ec182435e1a by nicolas.vasilache
[mlir][SCF] Add bufferization hook for scf.foreach_thread and terminator.

`scf.foreach_thread` results alias with the underlying `scf.foreach_thread.parallel_insert_slice` destination operands
and they bufferize to equivalent buffers in the absence of other conflicts.
`scf.foreach_thread.parallel_insert_slice` conflict detection is similar to `tensor.insert_slice` conflict detection.

Reviewed By: springerm

Differential Revision: https://reviews.llvm.org/D126769
The file was modifiedmlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
The file was modifiedmlir/test/Dialect/SCF/one-shot-bufferize.mlir
Commit df0f30dc36c1703ad1fbefda90d74ca40f207077 by i
Revert "[SLP]Improve shuffles cost estimation where possible."

This reverts commit 9980c9971892378ea82475e000de8df210a58e69.

Caused assertion failures: https://reviews.llvm.org/D115462#3555350
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/load-merge-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/malformed_phis.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/alternate-int.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/accelerate-vector-functions-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/load-merge.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/resched.ll
Commit 8b90b2539048a581052a4b0d7628ffba0cd582a9 by mboehme
[clang-tidy] `bugprone-use-after-move`: Fix handling of moves in lambda captures

Previously, we were treating a move in the lambda capture as if it happened
within the body of the lambda, not within the function that defines the lambda.

This fixes the same bug as https://reviews.llvm.org/D119165 (which it appears
may have been abandoned by the author?) but does so more simply.

Reviewed By: njames93

Differential Revision: https://reviews.llvm.org/D126780
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-use-after-move.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
Commit a459d1eb2c779516652b3e6863cc3973d9bfbbef by tbaeder
[clang][sema] Remove unused paramter from VerifyBitField

The ZeroWidth paramter is unused in every call site of VerifyBitField.
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
Commit c698189696d33e7304d94cd4212bd81818ea81a0 by gchatelet
[NFC] Format CGBuilder.h
The file was modifiedclang/lib/CodeGen/CGBuilder.h
Commit ad742cf85da105c9374aa24764b30f5ff668e361 by npopov
[DAGCombine] Handle promotion of shift with both operands the same

When promoting a shift, make sure we only fetch the second operand
after promoting the first. Load promotion may replace users of the
old load, and we don't want to be left with a dangling reference to
the old load instruction.

The crashing test case is from https://reviews.llvm.org/D126689#3553212.

Differential Revision: https://reviews.llvm.org/D126886
The file was addedllvm/test/CodeGen/X86/promote-sra-by-itself.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit f5d29c15bf8f70bcab6a697e7c1cbc04607bee95 by Shraiysh.Vaishay
[mlir][OpenMP] Add memory_order clause tests

This patch adds tests for memory_order clause for atomic update and
capture operations. This patch also adds a check for making sure that
the operations inside and omp.atomic.capture region do not specify the
memory_order clause.

Reviewed By: kiranchandramohan, peixin

Differential Revision: https://reviews.llvm.org/D126195
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
The file was modifiedmlir/test/Dialect/OpenMP/ops.mlir
The file was modifiedmlir/test/Dialect/OpenMP/invalid.mlir
Commit 7ce8c59b383a372d8fd4c44ab3b0dfbcd568d757 by diana.picus
[flang][test-suite] Document need for NO_STOP_MESSAGE environment variable. NFC

When running the llvm-test-suite with flang, we get a lot of failures
because of the output of the `STOP` statement. We can workaround them by
setting `NO_STOP_MESSAGE=1` in the environment. This patch adds a few
words about it to the docs about the Fortran part of the llvm-test-suite.

See also https://reviews.llvm.org/D126360
The file was modifiedflang/docs/FortranLLVMTestSuite.md
Commit f31797f9f1b48f2746e36724d248f6c2d8b9e276 by hahnjo
[cmake] Fix typo in CrossCompile.cmake
The file was modifiedllvm/cmake/modules/CrossCompile.cmake
Commit a29a1a33ac7b567031e5995cc0f17784a1c4be7a by nikolasklauser
[libc++] Fix conjunction/disjunction and mark a few LWG issues as complete

Fixes #54803
Fixes #53133

Reviewed By: ldionne, #libc

Spies: libcxx-commits, mgorny

Differential Revision: https://reviews.llvm.org/D125221
The file was modifiedlibcxx/test/libcxx/private_headers.verify.cpp
The file was removedlibcxx/test/std/utilities/meta/meta.logical/conjunction.pass.cpp
The file was addedlibcxx/test/std/utilities/meta/meta.logical/disjunction.compile.pass.cpp
The file was modifiedlibcxx/docs/Status/Cxx17Issues.csv
The file was removedlibcxx/test/std/utilities/meta/meta.logical/disjunction.pass.cpp
The file was addedlibcxx/include/__type_traits/conjunction.h
The file was modifiedlibcxx/include/module.modulemap
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedlibcxx/include/type_traits
The file was addedlibcxx/include/__type_traits/disjunction.h
The file was addedlibcxx/test/std/utilities/meta/meta.logical/conjunction.compile.pass.cpp
Commit b50542f21e95800ca1d49b50bddd8e91e0f256fc by mboehme
[clang-tidy] Add missing close quote in release notes.

Sorry for the breakage.
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
Commit 1523e8bb192804df336a308364887e9ad1bef087 by llvmgnsyncbot
[gn build] Port a29a1a33ac7b
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 8b18572ea7ca7733d8140cb1947079b8704d37db by kristof.beyls
[docs] Fix RST code-block syntax in HowToSetUpLLVMStyleRTTI.rst
The file was modifiedllvm/docs/HowToSetUpLLVMStyleRTTI.rst
Commit b94db7ed7eaf4a3b21f600653a09c55cab77b79f by sguelton
[clang-tidy] Confusable identifiers detection

Detect identifiers that are confusable according to Unicode definition

        http://www.unicode.org/reports/tr39/#Confusable_Detection

and have conflicting scopes.

Differential Revision: https://reviews.llvm.org/D112916
The file was modifiedclang-tools-extra/clang-tidy/misc/CMakeLists.txt
The file was addedclang-tools-extra/clang-tidy/misc/ConfusableTable/build_confusable_table.cpp
The file was modifiedclang-tools-extra/clang-tidy/misc/MiscTidyModule.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was addedclang-tools-extra/clang-tidy/misc/ConfusableTable/CMakeLists.txt
The file was addedclang-tools-extra/clang-tidy/misc/Homoglyph.cpp
The file was addedclang-tools-extra/clang-tidy/misc/ConfusableTable/confusables.txt
The file was addedclang-tools-extra/clang-tidy/misc/Homoglyph.h
The file was addedclang-tools-extra/test/clang-tidy/checkers/misc-homoglyph.cpp
The file was addedclang-tools-extra/docs/clang-tidy/checks/misc-homoglyph.rst
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
Commit 79e3b043e59af643f2540b12a826c695f054e782 by david.green
[AArch64] Add extra addp codegen tests. NFC
The file was modifiedllvm/test/CodeGen/AArch64/arm64-addp.ll
Commit 39f28397e2981238423f5482bef956306ef47c1f by akuegel
[mlir] Fix ClangTidy warning (NFC).

virtual is redundant since the function is already declared 'override'.
The file was modifiedmlir/lib/Parser/AsmParserImpl.h
Commit a5bb4a3b4d3dbf52ad6ec45e6a2557c3ccbe1626 by flo
[VPlan] Replace CondBit with BranchOnCond VPInstruction.

This patch removes CondBit and Predicate from VPBasicBlock. To do so,
the patch introduces a new branch-on-cond VPInstruction opcode to model
a branch on a condition explicitly.

This addresses a long-standing TODO/FIXME that blocks shouldn't be users
of VPValues. Those extra users can cause issues for VPValue-based
analyses that don't expect blocks. Addressing this fixme should allow us
to re-introduce 266ea446ab7476.

The generic branch opcode can also be used in follow-up patches.

Depends on D123005.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D126618
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing-outer-loop.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanValue.h
The file was modifiedllvm/test/Transforms/LoopVectorize/icmp-uniforms.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge-vf1.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
Commit fe65c567a5694fbd143627a0bb3ac976ecf59c04 by flo
[VPlan] Update failing HCFG unit tests after a5bb4a3b4d3db.
The file was modifiedllvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp
Commit 2dde272db767dbc74ebc326b787d25aa82a05b2e by paul.walker
[SVE] Refactor sve-bitcast.ll to include all combinations for legal types.

Patch enables custom lowering for MVT::nxv4bf16 because otherwise
the refactored test file triggers a selection failure.

The reason for the refactoring it to highlight cases where the
generated code is wrong.
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-bitcast.ll
Commit e8e4b741dd108bd0e7f49dd88435519f52d55d54 by benny.kra
[DAGCombiner] Add bf16 to the matrix of types that we don't promote to integer stores

Remove a few stray semicolons while there.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 8df2b1a866800b41984bd7721b244a9821810764 by ty1208chiang
[pp-trace] Print HashLoc in InclusionDirective callback

The HashLoc in InclusionDirective callback is an unused parameter.
Since pp-trace is also used as a test of Clang’s PPCallbacks interface,
add it to the output of pp-trace could avoid some unintended change on
it.

This shuold resolves PR52673

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D125373
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was modifiedclang-tools-extra/docs/pp-trace.rst
The file was modifiedclang-tools-extra/pp-trace/PPCallbacksTracker.cpp
The file was modifiedclang-tools-extra/test/pp-trace/pp-trace-include.cpp
Commit 180bae08a04d4dc724cb5e6f2ea9df8641a3f657 by thakis
[gn build] (manually) port b94db7ed7eaf (Confusables.inc)
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/misc/BUILD.gn
The file was modifiedclang-tools-extra/clang-tidy/misc/ConfusableTable/CMakeLists.txt
The file was addedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/misc/ConfusableTable/BUILD.gn
Commit 6b7c18639021cd3da69c6c2812e189b9cd4cf34f by benny.kra
[VPlan] Inline variable into assertion. NFC.

Avoids a warning in release builds
llvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.cpp:311:14: warning: unused variable 'BrCond' [-Wunused-variable]
      Value *BrCond = Br->getCondition();
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanHCFGBuilder.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)