1. [Analyzer] Use note tags to track container begin and and changes (details)
  2. [AST] Build recovery expressions for nonexistent member exprs. (details)
  3. [MLIR] Add parallel loop collapsing. (details)
  4. [Analyzer] Only add container note tags to the operations of the affected container (details)
  5. [clangd] Simplify "preferred" vs "definition" logic a bit in XRefs AST code. (details)
  6. [AST] Print a<b<c>> without extra spaces in C++11 or later. (details)
  7. [MLIR] Delete extra declaration of createAffineDataCopyGenerationPass. (details)
  8. [ARM] Sink splats to vector float instructions (details)
  9. Do export symbols when LLVM_EXPORT_SYMBOLS_FOR_PLUGINS is on. (details)
  10. [PATCH] [ARM] ARMv8.6-a command-line + BFloat16 Asm Support (details)
Commit a3f4d17a1a53c4144a5bb7c14620a5d2790f36ea by adam.balogh
[Analyzer] Use note tags to track container begin and and changes

Container operations such as `push_back()`, `pop_front()`
etc. increment and decrement the abstract begin and end
symbols of containers. This patch introduces note tags
to `ContainerModeling` to track these changes. This helps
the user to better identify the source of errors related
to containers and iterators.

Differential Revision:
The file was modifiedclang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
The file was modifiedclang/test/Analysis/iterator-range.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
The file was modifiedclang/test/Analysis/container-modeling.cpp
Commit a9ab11d40830cc01c3a6ff97633140e8bd1e431e by hokein.wu
[AST] Build recovery expressions for nonexistent member exprs.

Summary: Previously, we dropped the AST node for nonexistent member exprs.

Reviewers: sammccall

Subscribers: cfe-commits

Tags: #clang

Differential Revision:
The file was modifiedclang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
The file was modifiedclang/test/SemaCXX/constructor-initializer.cpp
The file was modifiedclang/lib/Parse/ParseExpr.cpp
The file was modifiedclang/test/AST/ast-dump-recovery.cpp
Commit 27c201aa1d972c10bfc38ff5b4abaf78ab3d2ad2 by tpopp
[MLIR] Add parallel loop collapsing.

This allows conversion of a ParallelLoop from N induction variables to
some nuber of induction variables less than N.

The first intended use of this is for the GPUDialect to convert
ParallelLoops to iterate over 3 dimensions so they can be launched as
GPU Kernels.

To implement this:
- Normalize each iteration space of the ParallelLoop
- Use the same induction variable in a new ParallelLoop for multiple
  original iterations.
- Split the new induction variable back into the original set of values
  inside the body of the ParallelLoop.

Subscribers: mgorny, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, llvm-commits

Tags: #llvm

Differential Revision:
The file was modifiedmlir/include/mlir/Transforms/Passes.h
The file was modifiedmlir/lib/Transforms/Utils/LoopUtils.cpp
The file was addedmlir/test/Transforms/parallel-loop-collapsing.mlir
The file was modifiedmlir/include/mlir/Transforms/LoopUtils.h
The file was modifiedmlir/include/mlir/InitAllPasses.h
The file was modifiedmlir/lib/Transforms/CMakeLists.txt
The file was addedmlir/lib/Transforms/ParallelLoopCollapsing.cpp
The file was addedmlir/test/Transforms/single-parallel-loop-collapsing.mlir
Commit 1a27d63a8891076ad9176f1a70f372003bc55c2f by adam.balogh
[Analyzer] Only add container note tags to the operations of the affected container

If an error happens which is related to a container the Container
Modeling checker adds note tags to all the container operations along
the bug path. This may be disturbing if there are other containers
beside the one which is affected by the bug. This patch restricts the
note tags to only the affected container and adjust the debug checkers
to be able to test this change.

Differential Revision:
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DebugContainerModeling.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
The file was modifiedclang/test/Analysis/container-modeling.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp
Commit 6324912592a1ff8d672e55e02ca63f769decb154 by sam.mccall
[clangd] Simplify "preferred" vs "definition" logic a bit in XRefs AST code.

Now Preferred is always the canonical (first) decl, Definition is always the def
if available.

In practice the index was already forcing this behaviour anyway, so there's no
change. (Unless you weren't using this index, in which case this patch makes
textDocument/declaration and toggling work as expected).

Reviewers: kadircet

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision:
The file was modifiedclang-tools-extra/clangd/unittests/XRefsTests.cpp
The file was modifiedclang-tools-extra/clangd/XRefs.cpp
Commit 159a9f7e76307734bcdcae3357640e42e0733194 by sam.mccall
[AST] Print a<b<c>> without extra spaces in C++11 or later.

Summary: It's not 1998 anymore.

Reviewers: kadircet

Subscribers: jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

Differential Revision:
The file was modifiedclang-tools-extra/clangd/unittests/HoverTests.cpp
The file was modifiedclang/test/Modules/ExtDebugInfo.cpp
The file was modifiedclang/test/OpenMP/for_simd_private_messages.cpp
The file was modifiedclang/test/OpenMP/taskloop_simd_private_messages.cpp
The file was modifiedclang/test/OpenMP/parallel_sections_private_messages.cpp
The file was modifiedclang/test/OpenMP/single_private_messages.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_private_messages.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_simd_private_messages.cpp
The file was modifiedclang/test/OpenMP/sections_private_messages.cpp
The file was modifiedclang/test/CXX/expr/expr.prim/expr.prim.req/type-requirement.cpp
The file was modifiedclang/test/OpenMP/master_taskloop_private_messages.cpp
The file was modifiedclang/test/OpenMP/target_parallel_for_simd_private_messages.cpp
The file was modifiedclang/test/OpenMP/for_private_messages.cpp
The file was modifiedclang/unittests/AST/DeclPrinterTest.cpp
The file was modifiedclang/test/OpenMP/target_private_messages.cpp
The file was modifiedclang/test/OpenMP/taskloop_private_messages.cpp
The file was modifiedclang/test/OpenMP/parallel_master_private_messages.cpp
The file was modifiedclang/test/CodeGenCXX/debug-info-template-explicit-specialization.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_private_messages.cpp
The file was modifiedclang/test/OpenMP/parallel_for_simd_private_messages.cpp
The file was modifiedclang/test/OpenMP/target_simd_private_messages.cpp
The file was modifiedclang/lib/AST/TypePrinter.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/modernize-use-using.cpp
The file was modifiedclang/test/Misc/diag-aka-types.cpp
The file was modifiedclang/test/OpenMP/simd_private_messages.cpp
The file was modifiedclang/test/OpenMP/target_firstprivate_messages.cpp
The file was modifiedclang/test/OpenMP/parallel_for_private_messages.cpp
The file was modifiedclang/test/OpenMP/distribute_parallel_for_simd_private_messages.cpp
The file was modifiedclang/test/OpenMP/parallel_master_taskloop_private_messages.cpp
The file was modifiedclang/test/OpenMP/distribute_simd_private_messages.cpp
The file was modifiedclang/test/SemaTemplate/instantiate-member-expr.cpp
The file was modifiedclang/test/OpenMP/master_taskloop_simd_private_messages.cpp
The file was modifiedclang/include/clang/AST/PrettyPrinter.h
The file was modifiedclang/test/Modules/ModuleDebugInfo.cpp
The file was modifiedclang/test/CXX/temp/temp.arg/temp.arg.template/p3-0x.cpp
Commit 7af74ee89a01bbba230bbf18bb1cb455b5f056b0 by tpopp
[MLIR] Delete extra declaration of createAffineDataCopyGenerationPass.

This was caused by a bad rebase for
The file was modifiedmlir/include/mlir/Transforms/Passes.h
Commit 37b9cc8f29e993ba9894402dd87f9c4be83cb8f6 by
[ARM] Sink splats to vector float instructions

Some MVE floating point instructions have gpr register variants that take
the scalar gpr value and splat them to all lanes. In order to accept
them in loops, the shuffle_vector and insert need to be sunk down into
the loop, next to the instruction so that ISel can see the whole

This does that sinking for FAdd, FSub, FMul and FCmp. The patterns for
mul are slightly more constrained as there are no fms variants taking
register arguments.

Differential Revision:
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float16regloops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float32regloops.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-threshold.ll
Commit 6a946993d519a395e45e0af4a730c521b94e7dfb by simon.tatham
Do export symbols when LLVM_EXPORT_SYMBOLS_FOR_PLUGINS is on.

In D76527, we stopped exporting symbols from clang, opt and llc unless
the `LLVM_ENABLE_PLUGINS` cmake variable is true (which causes clang's
own plugin collection to be built).

But another reasonable build configuration is to ask clang to export
its symbols for out-of-tree plugins to use, without building the
in-tree ones. That is, you might set `LLVM_EXPORT_SYMBOLS_FOR_PLUGINS`
without also setting `LLVM_ENABLE_PLUGINS` (at least if you're using
MSVC, where you need to ask explicitly for the symbols to be

In that situation, the symbols should still be exported, but after
D76527, they weren't being.

Reviewers: efriedma, john.brawn

Reviewed By: efriedma, john.brawn

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision:
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit 71ae267d1f4117473eb00d9fd3391733b843ca3c by ties.stuij
[PATCH] [ARM] ARMv8.6-a command-line + BFloat16 Asm Support

This patch introduces command-line support for the Armv8.6-a architecture and assembly support for BFloat16. Details can be found

in addition to the GCC patch for the 8..6-a CLI:

In detail this patch

- march options for armv8.6-a
- BFloat16 assembly

This is part of a patch series, starting with command-line and Bfloat16
assembly support. The subsequent patches will upstream intrinsics
support for BFloat16, followed by Matrix Multiplication and the
remaining Virtualization features of the armv8.6-a architecture.

Based on work by:
- labrinea
- MarkMurrayARM
- Luke Cheeseman
- Javed Asbar
- Mikhail Maltsev
- Luke Geeson

Reviewers: SjoerdMeijer, craig.topper, rjmccall, jfb, LukeGeeson

Reviewed By: SjoerdMeijer

Subscribers: stuij, kristof.beyls, hiraditya, dexonsmith, danielkiss, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision:
The file was modifiedclang/test/Driver/arm-cortex-cpus.c
The file was modifiedllvm/lib/Target/AArch64/
The file was modifiedllvm/lib/Support/Triple.cpp
The file was modifiedllvm/lib/Target/AArch64/
The file was modifiedllvm/lib/Target/ARM/
The file was addedllvm/test/MC/ARM/bfloat16-a32-errors.s
The file was addedllvm/test/MC/ARM/bfloat16-t32-errors.s
The file was addedllvm/test/MC/Disassembler/ARM/bfloat16-t32_errors.txt
The file was modifiedllvm/include/llvm/Support/ARMTargetParser.h
The file was modifiedllvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was addedllvm/test/MC/Disassembler/ARM/bfloat16-a32_1.txt
The file was modifiedllvm/include/llvm/Support/ARMTargetParser.def
The file was modifiedllvm/lib/Target/ARM/
The file was modifiedclang/lib/Basic/Targets/ARM.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64Subtarget.h
The file was modifiedclang/test/Preprocessor/arm-target-features.c
The file was modifiedllvm/lib/Target/AArch64/
The file was addedllvm/test/MC/AArch64/SVE/bfmmla.s
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h
The file was modifiedclang/lib/Basic/Targets/AArch64.h
The file was modifiedllvm/lib/Target/ARM/
The file was addedllvm/test/MC/AArch64/SVE/bfmlal-diagnostics.s
The file was modifiedllvm/unittests/Support/TargetParserTest.cpp
The file was addedllvm/test/MC/ARM/bfloat16-t32.s
The file was modifiedclang/test/Driver/aarch64-cpus.c
The file was addedllvm/test/MC/AArch64/SVE/bfcvtnt-diagnostics.s
The file was modifiedllvm/include/llvm/Support/AArch64TargetParser.h
The file was addedllvm/test/MC/AArch64/SVE/bfmmla-diagnostics.s
The file was addedllvm/test/MC/AArch64/SVE/bfcvt-diagnostics.s
The file was addedllvm/test/MC/AArch64/SVE/bfdot-diagnostics.s
The file was addedllvm/test/MC/Disassembler/ARM/bfloat16-a32_2.txt
The file was addedllvm/test/MC/AArch64/armv8.6a-bf16.s
The file was modifiedllvm/lib/Support/AArch64TargetParser.cpp
The file was modifiedllvm/include/llvm/ADT/Triple.h
The file was modifiedllvm/lib/Target/ARM/
The file was modifiedllvm/lib/Target/AArch64/
The file was modifiedclang/lib/Basic/Targets/AArch64.cpp
The file was modifiedllvm/include/llvm/Support/AArch64TargetParser.def
The file was addedllvm/test/MC/Disassembler/ARM/bfloat16-t32.txt
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
The file was addedllvm/test/MC/AArch64/SVE/bfcvtnt.s
The file was addedllvm/test/MC/AArch64/SVE/bfcvt.s
The file was modifiedllvm/lib/Support/ARMTargetParser.cpp
The file was addedllvm/test/MC/AArch64/SVE/bfmlal.s
The file was addedllvm/test/MC/ARM/bfloat16-a32-errors2.s
The file was modifiedllvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was modifiedllvm/lib/Target/AArch64/
The file was addedllvm/test/MC/AArch64/SVE/bfdot.s
The file was addedllvm/test/MC/ARM/bfloat16-a32.s
The file was addedllvm/test/MC/Disassembler/AArch64/armv8.6a-bf16.txt