Changes

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [flang] Fix crashes on calls to non-procedures (details)
  2. Add hook for dialect specializing processing blocks post inlining calls (details)
  3. [MLIR] Fix affine parallelize pass. (details)
  4. [MLIR] Make store to load fwd condition less conservative (details)
  5. [ASTMatchers] Fix bug in `hasUnaryOperand` (details)
  6. Add sparse matrix multiplication integration test (details)
  7. [libTooling] Change `access` stencil to recognize use of `operator*`. (details)
  8. [OpenMP] Add Two-level Distributed Barrier (details)
  9. [flang] Cope with errors with array constructors (details)
  10. [flang][driver] Add missing `! REQUIRES` LIT directive (details)
  11. [flang] Fold MAXVAL & MINVAL (details)
  12. [scudo] Ensure proper allocator alignment in TSD test (details)
  13. [flang] Use a "double-double" accumulator in SUM (details)
  14. Move the definition of LLVM_SUPPORT_XCODE_SIGNPOSTS into llvm-config.h (details)
  15. Use `-cfg-func-name` value as filter for `-view-cfg`, etc. (details)
  16. [flang] Implement runtime for IALL & IANY (details)
  17. [gn build] (manually) port f9aba9a5afe (details)
  18. [mlir] Make Type::print and Type::dump const (details)
  19. [RISCV][test] Add new tests of SH*ADD in the zba extension (details)
  20. [flang] Fix ARM/POWER test failure (folding20.f90) (details)
  21. Decouple registring passes from specifying argument/description (details)
  22. Migrate MLIR test passes to the new registration API (details)
  23. [clang] NRVO: Improvements and handling of more cases. (details)
  24. [AMDGPU] Fixed constexpr expansion to handle multiple uses (details)
  25. [clang] use correct builtin type for defaulted comparison analyzer (details)
  26. Improve error message on pass registration failures to include the faulty pass name (details)
  27. [mlir-lsp-server][Docs] Tweak the documentation for the visual studio code extension (details)
  28. [flang] Complain about more cases of calls to insufficiently defined procedures (details)
  29. Relax language comparison when matching up C++ forward decls with definitions (details)
  30. [mlir-lsp-server] Add an explicit blurb on where to send code contributions. (details)
  31. [mlir-vscode] Add a link to mlir.llvm.org at the top of the vscode extension doc (details)
  32. Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack. (details)
  33. [mlir] Fixed dynamic operand storage on big-endian machines. (details)
  34. [lld][MachO] Sort symbols in parallel in -map (details)
  35. Improve error reporting on pass registration collision (NFC) (details)
  36. [ORC] Switch from uint8_t to char buffers for TargetProcessControl::runWrapper. (details)
  37. [mlir] Move `memref.dim` canonicalization using `InferShapedTypeOpInterface` to a separate pass. (details)
  38. Avoid unnecessary AArch64 DSB in __clear_cache in some situations. (details)
Commit e5813a683a81001d3853cb3d2b1397a11e98c1dd by pklausler
[flang] Fix crashes on calls to non-procedures

When a procedure reference is attempted to an entity that just
isn't a procedure, say so.

Differential Revision: https://reviews.llvm.org/D104329
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/resolve09.f90
The file was addedflang/test/Semantics/call19.f90
Commit 0e760a0870e61b0a150bdea24532ad054774ade4 by jpienaar
Add hook for dialect specializing processing blocks post inlining calls

This allows for dialects to do different post-processing depending on operations with the inliner (my use case requires different attribute propagation rules depending on call op). This hook runs before the regular processInlinedBlocks method.

Differential Revision: https://reviews.llvm.org/D104399
The file was modifiedmlir/include/mlir/Transforms/InliningUtils.h
The file was modifiedmlir/lib/Transforms/Utils/InliningUtils.cpp
The file was modifiedmlir/test/Transforms/inlining.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
Commit 51d43bbc4662202d7f694c43b968fb289a56a355 by uday
[MLIR] Fix affine parallelize pass.

To control the number of outer parallel loops, we need to process the
outer loops first and hence pre-order walk fixes the issue.

Reviewed By: bondhugula

Differential Revision: https://reviews.llvm.org/D104361
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineParallelize.cpp
The file was modifiedmlir/test/Dialect/Affine/parallelize.mlir
Commit 54384d172397402a3ad606ef990af488f344eb19 by uday
[MLIR] Make store to load fwd condition less conservative

Make store to load fwd condition for -memref-dataflow-opt less
conservative. Post dominance info is not really needed. Add additional
check for common cases.

Differential Revision: https://reviews.llvm.org/D104174
The file was modifiedmlir/test/Dialect/Affine/scalrep.mlir
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineScalarReplacement.cpp
Commit 439c9206945aba15d74d5bcaef3bf3f4d1e32b5e by yitzhakm
[ASTMatchers] Fix bug in `hasUnaryOperand`

Currently, `hasUnaryOperand` fails for the overloaded `operator*`. This patch fixes the bug and
adds tests for this case.

Differential Revision: https://reviews.llvm.org/D104389
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchersInternal.h
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
Commit f9a6d47c3642cb07b5e98e8b08330ccc95b85dd8 by ajcbik
Add sparse matrix multiplication integration test

Adds an integration test for the SPMM (sparse matrix multiplication) kernel, which multiplies a sparse matrix by a dense matrix, resulting in a dense matrix. This is just a simple modification on the existing matrix-vector multiplication kernel.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D104334
The file was addedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir
Commit c7ed4fe56e0a6c664c5fb5dedaedb426abe7224d by yitzhakm
[libTooling] Change `access` stencil to recognize use of `operator*`.

Currently, `access` doesn't recognize a dereferenced smart pointer. So,
`access(e, "field")` where `e = *x`, yields:
* `x->field`, for normal-pointer x,
* `(*x).field`, for smart-pointer x.

This patch normalizes handling of smart pointer to match normal pointer, when
the smart pointer type supports `->`.

Differential Revision: https://reviews.llvm.org/D104390
The file was modifiedclang/lib/Tooling/Transformer/Stencil.cpp
The file was modifiedclang/unittests/Tooling/StencilTest.cpp
Commit 25073a4ecfc9b2e3cb76776185e63bfdb094cd98 by terry.l.wilmarth
[OpenMP] Add Two-level Distributed Barrier

Two-level distributed barrier is a new experimental barrier designed
for Intel hardware that has better performance in some cases than the
default hyper barrier.

This barrier is designed to handle fine granularity parallelism where
barriers are used frequently with little compute and memory access
between barriers.  There is no need to use it for codes with few
barriers and large granularity compute, or memory intensive
applications, as little difference will be seen between this barrier
and the default hyper barrier. This barrier is designed to work
optimally with a fixed number of threads, and has a significant setup
time, so should NOT be used in situations where the number of threads
in a team is varied frequently.

The two-level distributed barrier is off by default -- hyper barrier
is used by default. To use this barrier, you must set all barrier
patterns to use this type, because it will not work with other barrier
patterns.  Thus, to turn it on, the following settings are required:

KMP_FORKJOIN_BARRIER_PATTERN=dist,dist
KMP_PLAIN_BARRIER_PATTERN=dist,dist
KMP_REDUCTION_BARRIER_PATTERN=dist,dist

Branching factors (set with KMP_FORKJOIN_BARRIER, KMP_PLAIN_BARRIER,
and KMP_REDUCTION_BARRIER) are ignored by the two-level distributed
barrier.

Differential Revision: https://reviews.llvm.org/D103121
The file was modifiedopenmp/runtime/src/kmp_wait_release.cpp
The file was modifiedopenmp/runtime/src/kmp_stats.h
The file was modifiedopenmp/runtime/src/kmp_barrier.cpp
The file was modifiedopenmp/runtime/src/kmp_global.cpp
The file was modifiedopenmp/runtime/src/kmp_wait_release.h
The file was modifiedopenmp/runtime/src/kmp_str.h
The file was modifiedopenmp/runtime/src/kmp_os.h
The file was modifiedopenmp/runtime/src/kmp_str.cpp
The file was modifiedopenmp/runtime/src/kmp_tasking.cpp
The file was modifiedopenmp/runtime/src/kmp_runtime.cpp
The file was modifiedopenmp/runtime/src/kmp_atomic.cpp
The file was modifiedopenmp/runtime/src/z_Windows_NT_util.cpp
The file was modifiedopenmp/runtime/src/kmp.h
The file was addedopenmp/runtime/src/kmp_barrier.h
The file was modifiedopenmp/runtime/src/kmp_settings.cpp
The file was modifiedopenmp/runtime/test/barrier/omp_barrier.c
The file was modifiedopenmp/runtime/src/z_Linux_util.cpp
The file was modifiedopenmp/runtime/src/i18n/en_US.txt
Commit ec3049c79beb5ea24921dd5e4f011cf8ade1e9bd by pklausler
[flang] Cope with errors with array constructors

When a program attempts to put something like a subprogram
into an array constructor, emit an error rather than crashing.

Differential Revision: https://reviews.llvm.org/D104336
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/array-constr-values.f90
Commit 46446e398b5202303280d9e18676c07529f1d0b0 by andrzej.warzynski
[flang][driver] Add missing `! REQUIRES` LIT directive

The test added in https://reviews.llvm.org/D104305 will only work with
the new driver and should be marked as such.

Sending this without a review as it's fairly straightforward and fixes
test failures for developers that don't want to build the new driver.
The file was modifiedflang/test/Driver/dump-all.f90
Commit 47f18af55fd59e813144cc76711806d57a160e50 by pklausler
[flang] Fold MAXVAL & MINVAL

Implement constant folding for the reduction transformational
intrinsic functions MAXVAL and MINVAL.

In anticipation of more folding work to follow, with (I hope)
some common infrastructure, these two have been implemented in a
new header file.

Differential Revision: https://reviews.llvm.org/D104337
The file was modifiedflang/include/flang/Evaluate/tools.h
The file was modifiedflang/lib/Evaluate/fold-implementation.h
The file was addedflang/test/Evaluate/folding20.f90
The file was modifiedflang/lib/Evaluate/fold-character.cpp
The file was modifiedflang/lib/Evaluate/fold-integer.cpp
The file was modifiedflang/runtime/reduction.cpp
The file was modifiedflang/lib/Evaluate/fold-real.cpp
The file was addedflang/lib/Evaluate/fold-reduction.h
The file was modifiedflang/include/flang/Evaluate/integer.h
The file was modifiedflang/include/flang/Evaluate/shape.h
The file was modifiedflang/include/flang/Evaluate/call.h
The file was modifiedflang/lib/Evaluate/shape.cpp
The file was modifiedflang/lib/Evaluate/tools.cpp
Commit 8b062b61606270950645d73b68036c9ab2c7c4bc by kostyak
[scudo] Ensure proper allocator alignment in TSD test

The `MockAllocator` used in `ScudoTSDTest` wasn't allocated
properly aligned, which resulted in the `TSDs` of the shared
registry not being aligned either. This lead to some failures
like: https://reviews.llvm.org/D103119#2822008

This changes how the `MockAllocator` is allocated, same as
Vitaly did in the combined tests, properly aligning it, which
results in the `TSDs` being aligned as well.

Add a `DCHECK` in the shared registry to check that it is.

Differential Revision: https://reviews.llvm.org/D104402
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h
The file was modifiedcompiler-rt/lib/scudo/standalone/quarantine.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/tsd_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd.h
Commit c375ec86132984bc3915323fbe3f8c71f4d5503f by pklausler
[flang] Use a "double-double" accumulator in SUM

Use a "double-double" accumulator, a/k/a Kahan summation,
in the SUM intrinsic in the runtime for real & complex.
This seems to be the best-recommended technique for reducing
error, as opposed to the initial implementation of SUM's
distinct accumulators for positive and negative items.

Differential Revision: https://reviews.llvm.org/D104338
The file was modifiedflang/runtime/sum.cpp
Commit f9aba9a5afe09788eceb9879aa5c3ad345e0f1e9 by Adrian Prantl
Move the definition of LLVM_SUPPORT_XCODE_SIGNPOSTS into llvm-config.h

since it is now used by a public header file (Signposts.h).
This fixes the standalone LLDB build.
The file was modifiedllvm/include/llvm/Config/llvm-config.h.cmake
The file was modifiedllvm/include/llvm/Support/Signposts.h
The file was modifiedllvm/include/llvm/Config/config.h.cmake
The file was modifiedllvm/lib/Support/Signposts.cpp
The file was modifiedlldb/include/lldb/Utility/Timer.h
Commit 053dbb939d4a4be5cc7e156441ecedef599a4a6f by joachim
Use `-cfg-func-name` value as filter for `-view-cfg`, etc.

Currently the value is only used when calling `F->viewCFG()` which is missing out on its potential and usefulness.
So I added the check to the printer passes as well.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D102011
The file was modifiedllvm/docs/Passes.rst
The file was modifiedllvm/lib/Analysis/CFGPrinter.cpp
The file was addedllvm/test/Other/cfg-printer-filter.ll
Commit fdf33771feeb23ecab25b61d37f5ad575a641a10 by pklausler
[flang] Implement runtime for IALL & IANY

We had IPARITY (xor-reduction) but I missed IALL (and)
and IANY (or).

Differential Revision: https://reviews.llvm.org/D104339
The file was modifiedflang/runtime/reduction.cpp
The file was modifiedflang/unittests/RuntimeGTest/Reduction.cpp
The file was modifiedflang/runtime/reduction.h
Commit a127dffc49e5031b7780b3c747e8970a6f2ce0ee by thakis
[gn build] (manually) port f9aba9a5afe
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
Commit 7cfb7a67c57dfb40518a0873137a21b0a8def503 by i
[mlir] Make Type::print and Type::dump const
The file was modifiedmlir/include/mlir/IR/Types.h
The file was modifiedmlir/lib/IR/AsmPrinter.cpp
Commit 07990571812df2a702daa2d7cbcd7c3f4e09cdda by powerman1st
[RISCV][test] Add new tests of SH*ADD in the zba extension

These tests will show the following optimization by future patches.

Rx + Ry * 6  => (SH1ADD (SH2ADD Rx, Ry), Ry)
Rx + Ry * 10 => (SH1ADD (SH3ADD Rx, Ry), Ry)
Rx + Ry * 12 => (SH2ADD (SH3ADD Rx, Ry), Ry)

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D104210
The file was modifiedllvm/test/CodeGen/RISCV/rv32zba.ll
The file was modifiedllvm/test/CodeGen/RISCV/rv64zba.ll
Commit fc4f457fcc531871e86ecaaffc46ef98249b8e6a by pklausler
[flang] Fix ARM/POWER test failure (folding20.f90)

Recent code for folding MINVAL() didn't allow for architectures
whose C/C++ char type is unsigned, so the value of the maximum
Fortran character was incorrect.  This was caught by the
folding20.f90 test.  The fix is to avoid numeric_limits<> and
use hard values for max signed integers of various character kinds.

Pushing into llvm-project/main to restore ARM/POWER buildbots.
The file was modifiedflang/lib/Evaluate/fold-character.cpp
Commit c8a3f561ebfd6a5fd6c3efb65944760c7a1a446f by joker.eph
Decouple registring passes from specifying argument/description

This patch changes the (not recommended) static registration API from:

static PassRegistration<MyPass> reg("my-pass", "My Pass Description.");

to:

static PassRegistration<MyPass> reg;

And the explicit registration from:

  void registerPass("my-pass", "My Pass Description.",
                    [] { return createMyPass(); });

To:

  void registerPass([] { return createMyPass(); });

It is expected that Pass implementations overrides the getArgument() method
instead. This will ensure that pipeline description can be printed and parsed
back.

Differential Revision: https://reviews.llvm.org/D104421
The file was modifiedmlir/test/python/pass_manager.py
The file was modifiedmlir/docs/PassManagement.md
The file was modifiedmlir/include/mlir/Pass/Pass.h
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
The file was modifiedmlir/tools/mlir-tblgen/PassGen.cpp
The file was modifiedmlir/include/mlir/Pass/PassRegistry.h
The file was modifiedmlir/test/Transforms/print-op-graph.mlir
The file was modifiedmlir/include/mlir/Transforms/Passes.td
Commit b5e22e6d4207cf939618492d365293fe6035075d by joker.eph
Migrate MLIR test passes to the new registration API

Make sure they all define getArgument()/getDescription().

Depends On D104421

Differential Revision: https://reviews.llvm.org/D104426
The file was modifiedmlir/test/lib/Dialect/StandardOps/TestDecomposeCallGraphTypes.cpp
The file was modifiedmlir/test/lib/Analysis/TestNumberOfExecutions.cpp
The file was modifiedmlir/test/lib/Dialect/Tosa/TosaTestPasses.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp
The file was modifiedmlir/test/lib/Dialect/GPU/TestGpuMemoryPromotion.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgDistribution.cpp
The file was modifiedmlir/test/lib/IR/TestInterfaces.cpp
The file was modifiedmlir/test/lib/Transforms/TestConstantFold.cpp
The file was modifiedmlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp
The file was modifiedmlir/test/lib/Transforms/TestLoopFusion.cpp
The file was modifiedmlir/lib/Dialect/GPU/Transforms/SerializeToHsaco.cpp
The file was modifiedmlir/test/lib/Conversion/StandardToLLVM/TestConvertCallOp.cpp
The file was modifiedmlir/test/lib/Pass/TestDynamicPipeline.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgElementwiseFusion.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp
The file was modifiedmlir/test/lib/IR/TestSideEffects.cpp
The file was modifiedmlir/test/lib/IR/TestSlicing.cpp
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestEntryPointAbi.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgHoisting.cpp
The file was modifiedmlir/test/lib/Rewrite/TestPDLByteCode.cpp
The file was modifiedmlir/test/lib/Analysis/TestMemRefDependenceCheck.cpp
The file was modifiedmlir/test/lib/Dialect/DLTI/TestDataLayoutQuery.cpp
The file was modifiedmlir/lib/Dialect/GPU/Transforms/SerializeToCubin.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
The file was modifiedmlir/test/lib/IR/TestMatchers.cpp
The file was modifiedmlir/test/lib/Pass/TestPassManager.cpp
The file was modifiedmlir/test/lib/IR/TestFunc.cpp
The file was modifiedmlir/test/lib/Reducer/MLIRTestReducer.cpp
The file was modifiedmlir/test/lib/Analysis/TestAliasAnalysis.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineLoopParametricTiling.cpp
The file was modifiedmlir/test/lib/Dialect/Math/TestExpandTanh.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestConvVectorization.cpp
The file was modifiedmlir/test/lib/Transforms/TestLoopParametricTiling.cpp
The file was modifiedmlir/test/lib/Analysis/TestCallGraph.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp
The file was modifiedmlir/test/lib/IR/TestSymbolUses.cpp
The file was modifiedmlir/test/lib/Dialect/SCF/TestSCFUtils.cpp
The file was modifiedmlir/test/lib/Transforms/TestLoopMapping.cpp
The file was modifiedmlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineLoopUnswitching.cpp
The file was modifiedmlir/test/lib/Dialect/StandardOps/TestComposeSubView.cpp
The file was modifiedmlir/test/lib/Analysis/TestMemRefStrideCalculation.cpp
The file was modifiedmlir/test/lib/Dialect/GPU/TestGpuParallelLoopMapping.cpp
The file was modifiedmlir/test/lib/IR/TestPrintNesting.cpp
The file was modifiedmlir/test/lib/Transforms/TestLoopUnrolling.cpp
The file was modifiedmlir/test/lib/Transforms/TestInlining.cpp
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestAvailability.cpp
The file was modifiedmlir/test/lib/IR/TestPrintDefUse.cpp
The file was modifiedmlir/test/lib/Dialect/GPU/TestConvertGPUKernelToHsaco.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp
The file was modifiedmlir/test/lib/Dialect/GPU/TestConvertGPUKernelToCubin.cpp
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestGLSLCanonicalization.cpp
The file was modifiedmlir/test/lib/IR/TestOpaqueLoc.cpp
The file was modifiedmlir/test/lib/IR/TestDominance.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestLoopPermutation.cpp
The file was modifiedmlir/test/lib/Dialect/GPU/TestGpuRewrite.cpp
The file was modifiedmlir/test/lib/IR/TestTypes.cpp
The file was modifiedmlir/test/lib/IR/TestVisitors.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestTraits.cpp
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp
The file was modifiedmlir/test/lib/Analysis/TestMemRefBoundCheck.cpp
The file was modifiedmlir/test/lib/Analysis/TestLiveness.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/test/lib/Dialect/Math/TestPolynomialApproximation.cpp
Commit 12c90e2e25dfd1d38250055efc21acb42d158912 by mizvekov
[clang] NRVO: Improvements and handling of more cases.

This expands NRVO propagation for more cases:

Parse analysis improvement:
* Lambdas and Blocks with dependent return type can have their variables
  marked as NRVO Candidates.

Variable instantiation improvements:
* Fixes crash when instantiating NRVO variables in Blocks.
* Functions, Lambdas, and Blocks which have auto return type have their
  variables' NRVO status propagated. For Blocks with non-auto return type,
  as a limitation, this propagation does not consider the actual return
  type.

This also implements exclusion of VarDecls which are references to
dependent types.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: Quuxplusone

Differential Revision: https://reviews.llvm.org/D99696
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was addedclang/test/SemaObjCXX/block-capture.mm
The file was modifiedclang/lib/Sema/SemaCoroutine.cpp
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/CodeGen/nrvo-tracking.cpp
Commit 0a07343e34fc84052e6cc54e55654412b0ed01f4 by Stanislav.Mekhanoshin
[AMDGPU] Fixed constexpr expansion to handle multiple uses

Recently added convertConstantExprsToInstructions() does not handle
a case when a same ConstantExpr used multiple times in the same
instruction. A first use is replaced and the rest of the uses in the
instruction are replaced as well with the replaceUsesOfWith(). Then
function attempts to replace a constant already destroyed.

So far this interface is only used by the AMDGPU BE.

Differential Revision: https://reviews.llvm.org/D104425
The file was modifiedllvm/test/CodeGen/AMDGPU/lower-kernel-lds-constexpr.ll
The file was modifiedllvm/lib/IR/ReplaceConstant.cpp
Commit b88eb855b53184161ad1ea0eea1962100941cf0b by mizvekov
[clang] use correct builtin type for defaulted comparison analyzer

Fixes PR50591.

When analyzing classes with members which have user-defined conversion
operators to builtin types, the defaulted comparison analyzer was
picking the member type instead of the type for the builtin operator
which was selected as the best match.

This could either result in wrong comparison category being selected,
or a crash when runtime checks are enabled.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D103760
The file was modifiedclang/test/CXX/class/class.compare/class.spaceship/p2.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
Commit a6e8ed77762e2c973dbc60d6436d64a25f9f1bee by joker.eph
Improve error message on pass registration failures to include the faulty pass name
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
Commit fcecfcb92c77b470d45885db5ef077f9c3166bc3 by riddleriver
[mlir-lsp-server][Docs] Tweak the documentation for the visual studio code extension

This revision updates the feature set, and cleans up the contributing section a little.
The file was modifiedmlir/docs/Tools/MLIRLSP.md
Commit 562bfe1274a17698c445ee3d7bb4a7911d74f657 by pklausler
[flang] Complain about more cases of calls to insufficiently defined procedures

When a function is called in a specification expression, it must be
sufficiently defined, and cannot be a recursive call (10.1.11(5)).
The best fix for this is to change the contract for the procedure
characterization infrastructure to catch and report such errors,
and to guarantee that it does emit errors on failed characterizations.
Some call sites were adjusted to avoid cascades.

Differential Revision: https://reviews.llvm.org/D104330
The file was modifiedflang/include/flang/Evaluate/characteristics.h
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/resolve102.f90
The file was modifiedflang/lib/Evaluate/characteristics.cpp
The file was modifiedflang/lib/Semantics/pointer-assignment.cpp
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/lib/Semantics/check-declarations.cpp
Commit 42e2a90684196d6ffadf785e98ea5de0876b4a3e by Adrian Prantl
Relax language comparison when matching up C++ forward decls with definitions

when dealing with -gmodules debug info.

This fixes the bot failures on Darwin.

A recent clang change (presumably https://reviews.llvm.org/D104291)
introduced a bug where .pcm files would identify themselves as
DW_LANG_C_plus_plus, but the .o that references them would identify as
DW_LANG_C_plus_plus_14. While that bug needs to be fixed, too, it
shows that the current strict comparison also isn't meaningful.

rdar://79423225
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Commit d3c895a870d324d1fdfc177104785d551e5993f7 by riddleriver
[mlir-lsp-server] Add an explicit blurb on where to send code contributions.

When the vscode extension is published, it may be unclear how to contribute improvements to the extension. This revision makes it clear that contributions should follow the traditional LLVM guidelines.
The file was modifiedmlir/docs/Tools/MLIRLSP.md
Commit 854ef875b929da544d285436b00df74ee77323b1 by riddleriver
[mlir-vscode] Add a link to mlir.llvm.org at the top of the vscode extension doc
The file was modifiedmlir/docs/Tools/MLIRLSP.md
Commit 07481b37961f5b9a670c924367d2ead2e3c32b86 by kda
Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack.

Code was originally added for Myriad D46626 which was removed
with D104279.

related to: https://github.com/google/sanitizers/issues/1394

Reviewed By: vitalybuka, morehouse

Differential Revision: https://reviews.llvm.org/D104419
The file was modifiedcompiler-rt/lib/asan/asan_thread.cpp
Commit 5a55205bb31f2cbc7573656da61cb9eb923bc8cc by riddleriver
[mlir] Fixed dynamic operand storage on big-endian machines.

Many tests fails by D101969 (https://reviews.llvm.org/D101969)
on big-endian machines. This patch changes bit order of
TrailingOperandStorage in big-endian machines. This patch
works on System Z (Triple = "s390x-ibm-linux", CPU = "z14").

Signed-off-by: Haruki Imai <imaihal@jp.ibm.com>

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104225
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
Commit 01cb9c5fc52bf7978fe8e1b1dba98b0e1d304402 by th3charlie
[lld][MachO] Sort symbols in parallel in -map

source: https://bugs.llvm.org/show_bug.cgi?id=50689

When writing a map file, sort symbols in parallel using parallelSort.
Use address name to break ties if two symbols have the same address.

Reviewed By: thakis, int3

Differential Revision: https://reviews.llvm.org/D104346
The file was modifiedlld/MachO/MapFile.cpp
Commit 6a071e535fa43db038ea1a9329ebdeede3db31f9 by joker.eph
Improve error reporting on pass registration collision (NFC)

Differential Revision: https://reviews.llvm.org/D104430
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
Commit 838490de7ede2a144094fa0f98cd91d8851d7e3d by Lang Hames
[ORC] Switch from uint8_t to char buffers for TargetProcessControl::runWrapper.

This matches WrapperFunctionResult's char buffer, cutting down on the number of
pointer casts needed.
The file was modifiedllvm/lib/ExecutionEngine/Orc/TargetProcessControl.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/TargetProcess/OrcRPCTPCServer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/TargetProcessControl.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Shared/Serialization.h
Commit 3ed3e438a75d9cf756f6004b60dd5b3feec96b0b by ravishankarm
[mlir] Move `memref.dim` canonicalization using `InferShapedTypeOpInterface` to a separate pass.

Based on dicussion in
[this](https://llvm.discourse.group/t/remove-canonicalizer-for-memref-dim-via-shapedtypeopinterface/3641)
thread the pattern to resolve the `memref.dim` of a value that is a
result of an operation that implements the
`InferShapedTypeOpInterface` is moved to a separate pass instead of
running it as a canonicalization pass. This allows shape resolution to
happen when explicitly required, instead of automatically through a
canonicalization.

Differential Revision: https://reviews.llvm.org/D104321
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir
The file was addedmlir/test/Interfaces/InferShapedTypeOpInterface/resolve-shaped-type-result-dims.mlir
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/include/mlir/Dialect/MemRef/Transforms/Passes.td
The file was addedmlir/test/Dialect/Linalg/resolve-shaped-type-result-dims.mlir
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/include/mlir/Dialect/MemRef/Transforms/Passes.h
The file was modifiedmlir/test/Transforms/test-canonicalize.mlir
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was modifiedmlir/test/Dialect/Linalg/fusion-sequence.mlir
The file was modifiedmlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir
The file was addedmlir/lib/Dialect/MemRef/Transforms/ResolveShapedTypeResultDims.cpp
Commit 6f0e74cd583ba6fbb897d3ab16a9b75e91484275 by kristof.beyls
Avoid unnecessary AArch64 DSB in __clear_cache in some situations.

The dsb after instruction cache invalidation only needs to be executed
if any instruction cache invalidation did happen.
Without this change, if the CTR_EL0.DIC bit indicates that instruction
cache invalidation is not needed, __clear_cache would execute two dsb
instructions in a row; with the second one being unnecessary.

Differential Revision: https://reviews.llvm.org/D104371
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c