[all-commits] [llvm/llvm-project] 70f41a: [lldb] Add/change options in `statistics dump` to ...

Fangrui Song via All-commits all-commits at lists.llvm.org
Wed Jun 19 10:21:38 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/densemap-update-combinehashvalue
  Home:   https://github.com/llvm/llvm-project
  Commit: 70f41a8c305478cb16bcda9f9967af96ab1e3a20
      https://github.com/llvm/llvm-project/commit/70f41a8c305478cb16bcda9f9967af96ab1e3a20
  Author: royitaqi <royitaqi at users.noreply.github.com>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M lldb/include/lldb/API/SBStatisticsOptions.h
    M lldb/include/lldb/Interpreter/OptionArgParser.h
    M lldb/include/lldb/Target/Statistics.h
    M lldb/source/API/SBStatisticsOptions.cpp
    M lldb/source/Commands/CommandObjectStats.cpp
    M lldb/source/Commands/Options.td
    M lldb/source/Interpreter/OptionArgParser.cpp
    M lldb/source/Target/Statistics.cpp
    M lldb/test/API/commands/statistics/basic/TestStats.py
    M lldb/unittests/Interpreter/TestOptionArgParser.cpp

  Log Message:
  -----------
  [lldb] Add/change options in `statistics dump` to control what sections are dumped (#95075)

# Added/changed options

The following options are **added** to the `statistics dump` command:
* `--targets=bool`: Boolean. Dumps the `targets` section.
* `--modules=bool`: Boolean. Dumps the `modules` section.
When both options are given, the field `moduleIdentifiers` will be
dumped for each target in the `targets` section.

The following options are **changed**:
* `--transcript=bool`: Changed to a boolean. Dumps the `transcript`
section.

# Behavior of `statistics dump` with various options

The behavior is **backward compatible**:
- When no options are provided, `statistics dump` dumps all sections.
- When `--summary` is provided, only dumps the summary info.

**New** behavior:
- `--targets=bool`, `--modules=bool`, `--transcript=bool` overrides the
above "default".

For **example**:
- `statistics dump --modules=false` dumps summary + targets +
transcript. No modules.
- `statistics dump --summary --targets=true --transcript=true` dumps
summary + targets (in summary mode) + transcript.


# Added options into public API

In `SBStatisticsOptions`, add:
* `Set/GetIncludeTargets`
* `Set/GetIncludeModules`
* `Set/GetIncludeTranscript`

**Alternative considered**: Thought about adding
`Set/GetIncludeSections(string sections_spec)`, which receives a
comma-separated list of section names to be included ("targets",
"modules", "transcript"). The **benefit** of this approach is that the
API is more future-proof when it comes to possible adding/changing of
section names. **However**, I feel the section names are likely to
remain unchanged for a while - it's not like we plan to make big changes
to the output of `statistics dump` any time soon. The **downsides** of
this approach are: 1\ the readability of the API is worse (requires
reading doc to understand what string can be accepted), 2\ string input
are more prone to human error (e.g. typo "target" instead of expected
"targets").


# Tests

```
bin/llvm-lit -sv ../external/llvm-project/lldb/test/API/commands/statistics/basic/TestStats.py
```

```
./tools/lldb/unittests/Interpreter/InterpreterTests
```

New test cases have been added to verify:
* Different sections are dumped/not dumped when different
`StatisticsOptions` are given through command line (CLI or
`HandleCommand`; see `test_sections_existence_through_command`) or API
(see `test_sections_existence_through_api`).
* The order in which the options are given in command line does not
matter (see `test_order_of_options_do_not_matter`).

---------

Co-authored-by: Roy Shi <royshi at meta.com>


  Commit: ad599211a79dd7817f110241372075d82c0ae52a
      https://github.com/llvm/llvm-project/commit/ad599211a79dd7817f110241372075d82c0ae52a
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/AST/TypeProperties.td
    A clang/include/clang/Basic/AMDGPUTypes.def
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/NSAPI.cpp
    M clang/lib/AST/PrintfFormatString.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypeLoc.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDebugInfo.h
    M clang/lib/CodeGen/CodeGenTypes.cpp
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/Index/USRGeneration.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Serialization/ASTCommon.cpp
    M clang/lib/Serialization/ASTReader.cpp
    A clang/test/AST/ast-dump-amdgpu-types.c
    A clang/test/CodeGen/amdgpu-buffer-rsrc-type-debug-info.c
    A clang/test/CodeGenCXX/amdgpu-buffer-rsrc-typeinfo.cpp
    A clang/test/CodeGenOpenCL/amdgcn-buffer-rsrc-type.cl
    A clang/test/SemaCXX/amdgpu-buffer-rsrc.cpp
    A clang/test/SemaHIP/amdgpu-buffer-rsrc.hip
    A clang/test/SemaOpenCL/amdgpu-buffer-rsrc.cl
    A clang/test/SemaOpenMP/amdgpu-buffer-rsrc.cpp
    M clang/tools/libclang/CIndex.cpp

  Log Message:
  -----------
  [Clang][AMDGPU] Add a new builtin type for buffer rsrc (#94830)

This patch adds a new builtin type for AMDGPU's buffer rsrc data type,
which is effectively an AS 8 pointer. This is needed because we'd like
to expose certain intrinsics to users via builtins which take buffer
rsrc as argument.


  Commit: a5128542495d04e20db0828bceaae69c39e72c6d
      https://github.com/llvm/llvm-project/commit/a5128542495d04e20db0828bceaae69c39e72c6d
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
    M llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
    M llvm/test/Transforms/PGOProfile/counter_promo_with_bias.ll

  Log Message:
  -----------
  InstProfiling: Give the name to profc_bias. NFC. (#95587)


  Commit: 61571e9046fa6f12661e443123635053186794a1
      https://github.com/llvm/llvm-project/commit/61571e9046fa6f12661e443123635053186794a1
  Author: Owen Pan <owenpiano at gmail.com>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp

  Log Message:
  -----------
  [clang-format] Handle function try block with ctor-initializer (#95878)

Fixes #58987.
Fixes #95679.


  Commit: 0c0281130ed51fea06cf20a2db37c5bca257ad31
      https://github.com/llvm/llvm-project/commit/0c0281130ed51fea06cf20a2db37c5bca257ad31
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/apple.inc

  Log Message:
  -----------
  fixup! [compiler-rt][AArch64][FMV] Use the hw.optional.arm.caps fast path (#95275)

https://github.com/llvm/llvm-project/pull/95275#issuecomment-2177366693


  Commit: 728fb233b01330243a574c51ad524acffc3ffa2d
      https://github.com/llvm/llvm-project/commit/728fb233b01330243a574c51ad524acffc3ffa2d
  Author: Freddy Ye <freddy.ye at intel.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/test/MC/X86/apx/ccmp-att.s
    M llvm/test/MC/X86/apx/ccmp-intel.s

  Log Message:
  -----------
  [X86][MC] Support case insenstive for `dfv,sf,cf,of,zf` for CCMP/CTEST (#95910)


  Commit: 3c8f3b91d898cb3f76e1e430da98972cdf8a4a1c
      https://github.com/llvm/llvm-project/commit/3c8f3b91d898cb3f76e1e430da98972cdf8a4a1c
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2024-06-18 (Tue, 18 Jun 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/test/CodeGen/WebAssembly/exception-legacy.ll

  Log Message:
  -----------
  [WebAssembly] Treat 'rethrow' as terminator in custom isel (#95967)

`rethrow` instruction is a terminator, but when when its DAG is built in
`SelectionDAGBuilder` in a custom routine, it was NOT treated as such.

```ll
rethrow:                                          ; preds = %catch.start
  invoke void @llvm.wasm.rethrow() #1 [ "funclet"(token %1) ]
          to label %unreachable unwind label %ehcleanup

ehcleanup:                                        ; preds = %rethrow, %catch.dispatch
  %tmp = phi i32 [ 10, %catch.dispatch ], [ 20, %rethrow ]
  ...
```

In this bitcode, because of the `phi`, a `CONST_I32` will be created in
the `rethrow` BB. Without this patch, the DAG for the `rethrow` BB looks
like this:
```
  t0: ch,glue = EntryToken
      t3: ch = CopyToReg t0, Register:i32 %9, Constant:i32<20>
      t5: ch = llvm.wasm.rethrow t0, TargetConstant:i32<12161>
    t6: ch = TokenFactor t3, t5
  t8: ch = br t6, BasicBlock:ch<unreachable 0x562532e43c50>
```
Note that `CopyToReg` and `llvm.wasm.rethrow` don't have dependence so
either can come first in the selected code, which can result in the code
like
```mir
bb.3.rethrow:
  RETHROW 0, implicit-def dead $arguments
  %9:i32 = CONST_I32 20, implicit-def dead $arguments
  BR %bb.6, implicit-def dead $arguments
```

After this patch, `llvm.wasm.rethrow` is treated as a terminator, and
the DAG will look like
```
        t0: ch,glue = EntryToken
      t3: ch = CopyToReg t0, Register:i32 %9, Constant:i32<20>
    t5: ch = llvm.wasm.rethrow t3, TargetConstant:i32<12161>
  t7: ch = br t5, BasicBlock:ch<unreachable 0x5555e3d32c70>
```
Note that now `rethrow` takes a token from `CopyToReg`, so `rethrow` has
to come after `CopyToReg`. And the resulting code will be
```mir
bb.3.rethrow:
  %9:i32 = CONST_I32 20, implicit-def dead $arguments
  RETHROW 0, implicit-def dead $arguments
  BR %bb.6, implicit-def dead $arguments
```

I'm not very familiar with the internals of `getRoot` vs.
`getControlRoot`, but other terminator instructions seem to use the
latter, and using it for `rethrow` too worked.


  Commit: 1c9a81b2bd91e8cd9baf742fa66650eefbaf552c
      https://github.com/llvm/llvm-project/commit/1c9a81b2bd91e8cd9baf742fa66650eefbaf552c
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M cross-project-tests/debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.cpp
    M cross-project-tests/debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.gdb
    M llvm/utils/gdb-scripts/prettyprinters.py

  Log Message:
  -----------
  Fix gdb pretty printers for libSupport

Remove the testing for std::optional - it was originally for
llvm::Optional, but now that that doesn't exist and we use
std::optional, testing for that pretty printer should live, wherever the
pretty printer lives, not here in LLVM.

And the PointerIntPair pretty printer bit rotted due to changes in
PointerIntPair, 875391728c11339c8a6cd3338bcaa5ec0ffc2496.


  Commit: 67a8b8838d3d5024a94e50e0839a03902126bd11
      https://github.com/llvm/llvm-project/commit/67a8b8838d3d5024a94e50e0839a03902126bd11
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp

  Log Message:
  -----------
  lldb: Fixes for AMDGPU builtin added in ad599211a79dd7817f110241372075d82c0ae52a


  Commit: 99c43e3ce3142a93bbad4f9efeace254d9a8442c
      https://github.com/llvm/llvm-project/commit/99c43e3ce3142a93bbad4f9efeace254d9a8442c
  Author: Bimo <rui.xu at intel.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/cmake/modules/AddMLIRPython.cmake

  Log Message:
  -----------
  [MLIR][Python] fix mlir python cmake script (#95939)

Encountered a problem when linking multiple CAPI libs.
The `COMMON_CAPI_LINK_LIBS` should be multi_value_keywords here.


  Commit: 7ef2bd4e447280015803cff7fc91ec4dd09cd4b3
      https://github.com/llvm/llvm-project/commit/7ef2bd4e447280015803cff7fc91ec4dd09cd4b3
  Author: NAKAMURA Takumi <geek4civic at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/test/Profile/c-mcdc-class.cpp
    M clang/test/Profile/c-mcdc-logicalop-ternary.c
    M clang/test/Profile/c-mcdc-nested-ternary.c
    M clang/test/Profile/c-mcdc-not.c
    M clang/test/Profile/c-mcdc.c

  Log Message:
  -----------
  Relax MC/DC tests


  Commit: dadf960607bb429baebd3f523ce5b93260a154d2
      https://github.com/llvm/llvm-project/commit/dadf960607bb429baebd3f523ce5b93260a154d2
  Author: Michael Buch <michaelbuch12 at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
    M lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/TestObjCFromCppFramesWithoutDebugInfo.py
    A lldb/test/Shell/Expr/TestObjCInCXXContext.test

  Log Message:
  -----------
  [lldb][ObjC] Don't query objective-c runtime for decls in C++ contexts (#95963)


  Commit: cb20d4d2054e72a2564572a74f34ca01cb791cbf
      https://github.com/llvm/llvm-project/commit/cb20d4d2054e72a2564572a74f34ca01cb791cbf
  Author: Pierre van Houtryve <pierre.vanhoutryve at amd.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    R llvm/include/llvm/CodeGen/ParallelCG.h
    M llvm/lib/CodeGen/CMakeLists.txt
    R llvm/lib/CodeGen/ParallelCG.cpp
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn

  Log Message:
  -----------
  [NFC][CodeGen] Remove dead ParallelCG.h/.cpp API (#95770)

LTOBackend inlined it a while ago and now uses a static copy. This API
was unused.

We can always restore it at some point if it's needed, but right now
it's just bloat.


  Commit: 6c01011db089bae22630922e1ac30e5d49de3137
      https://github.com/llvm/llvm-project/commit/6c01011db089bae22630922e1ac30e5d49de3137
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/IR/Constants.cpp
    M llvm/test/CodeGen/AArch64/stack-tagging-initializer-merge.ll
    M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-constants.ll

  Log Message:
  -----------
  [IR] Mark shl constant expression as undesirable (#95940)

Mark shl constant expressions undesirable, so that they are no longer
automatically created by IRBuilder, constant folding, etc.

This is in preparation for removing them entirely.


  Commit: dd1d2b7cb083e870174d50627870c835d1e118e6
      https://github.com/llvm/llvm-project/commit/dd1d2b7cb083e870174d50627870c835d1e118e6
  Author: Hua Tian <akiratian at tencent.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/CodeGen/WindowScheduler.cpp
    A llvm/test/CodeGen/Hexagon/swp-ws-phi.mir

  Log Message:
  -----------
  [llvm][CodeGen] Fix failure in window scheduler caused by phi (#95900)

In certain cases, the register passed with the kernel MBB in phi are not
defined within the kernel MBB. This patch adds the corresponding handling.


  Commit: 891ec2af45c02718c65f539cb6dad1758f079e73
      https://github.com/llvm/llvm-project/commit/891ec2af45c02718c65f539cb6dad1758f079e73
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/test/Dialect/Vector/vector-transfer-permutation-lowering.mlir

  Log Message:
  -----------
  [mlir][vector] Add tests for xfer-permute-lowering (1/n)(nfc) (#95529)

Adds more tests to "vector-transfer-permutation-lowering.mlir",
specifically for the `TransferWritePermutationLowering` pattern - such
tests seem to be missing ATM.

The following edge cases are covered:
  * plain fixed-width (supported)
  * scalable vectors with mask (supported)
  * plain fixed-width, masked (not supported)

This is a part of a larger effort to make sure that all key cases for
patterns under `populateVectorTransferPermutationMapLoweringPatterns`
(*) are tested. I also want to make sure that tests use consistent
function and variable names.

(*) `transform.apply_patterns.vector.transfer_permutation_patterns` in
TD parlance)


  Commit: 8af86025af2456c70c84aec309cca9a069124671
      https://github.com/llvm/llvm-project/commit/8af86025af2456c70c84aec309cca9a069124671
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/include/clang/AST/ASTUnresolvedSet.h
    M clang/include/clang/AST/DeclID.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/Frontend/ASTUnit.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/utils/TableGen/ClangAttrEmitter.cpp

  Log Message:
  -----------
  [NFC] [Serialization] Unify how LocalDeclID can be created

Now we can create a LocalDeclID directly with an integer without
verifying. It may be hard to refactor if we want to change the way we
serialize DeclIDs (See https://github.com/llvm/llvm-project/pull/95897).
Also it is hard for us to debug if someday someone construct a
LocalDeclID with an incorrect value.

So in this patch, I tried to unify the way we can construct a
LocalDeclID in ASTReader, where we will construct the LocalDeclID from
the serialized data. Also, now we can verify the constructed LocalDeclID
sooner in the new interface.


  Commit: 519175c3f5d844bac0cf3173396dc41db2873e1d
      https://github.com/llvm/llvm-project/commit/519175c3f5d844bac0cf3173396dc41db2873e1d
  Author: Corentin Ferry <corentin.ferry at amd.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
    M mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir

  Log Message:
  -----------
  [mlir][emitc] Refactor ArithToEmitC: perform sign adaptation, type conversions / cast insertion in a single place (#95789)

Factor EmitC type signedness adaptation and cast operations in ArithToEmitC using adaptValueType and adaptIntegralTypeSignedness.


  Commit: 7fc975aa26f2e0ce6c80629209115ea58b245da5
      https://github.com/llvm/llvm-project/commit/7fc975aa26f2e0ce6c80629209115ea58b245da5
  Author: Fabio D'Urso <fdurso at google.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/combined.h
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  Reland "[scudo] Apply filling when realloc shrinks and re-grows a block in-place" (#95838)

Reland of #93212, which had been reverted in
commit bddd8eae17df6511aee789744ccdc158de817081.


  Commit: 9cbedd925cba9e8ef76c50caa6d6ab4b0cc79c8f
      https://github.com/llvm/llvm-project/commit/9cbedd925cba9e8ef76c50caa6d6ab4b0cc79c8f
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [LangRef] Relax semantics of writeonly / memory(write) (#95238)

Instead of making writes immediate undefined behavior, consider these
attributes in terms of their externally observable effects. We don't
care if a location is read within the function, as long as it has no
impact on observed behavior. In particular, allow:

 * Reading a location after writing it.
 * Reading a location before writing it (within the function) returns a
poison value.

The latter could be further relaxed to also allow things like "reading
the value and then writing it back", but I'm not sure how one would
specify that operationally (so that proof checkers can verify it).

While here, also explicitly mention the fact that reads and writes to
allocas and read from constant globals are `memory(none)`.

Fixes https://github.com/llvm/llvm-project/issues/95152.


  Commit: bacbf26b4cb64dbf77819ff5a2b0f4c26d111c66
      https://github.com/llvm/llvm-project/commit/bacbf26b4cb64dbf77819ff5a2b0f4c26d111c66
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/test/Fir/convert-to-llvm.fir

  Log Message:
  -----------
  [flang] allow assumed-rank box in fir.alloca (#95947)

The alloca can be maximized with the maximum number or ranks, which is
reasonable (15 currently as per the standard). Introducing a rank based
dynamic allocation would complexify alloca hoisting and stack size
analysis (this can be revisited if the standard changes to allow more
ranks).

No change is needed since this is already reflected in how the fir.box
type is translated to LLVM.


  Commit: c6ff2446a4650f23afc9faffb55020aa68cf678c
      https://github.com/llvm/llvm-project/commit/c6ff2446a4650f23afc9faffb55020aa68cf678c
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Dialect/Vector/canonicalize.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Dialect/Vector/ops.mlir

  Log Message:
  -----------
  [mlir][vector] Add `vector.from_elements` op (#95938)

This commit adds a new operation to the vector dialect:
`vector.from_elements`

The op constructs a new vector from a given list of scalar values. It is
similar to `tensor.from_elements`.
```mlir
%0 = vector.from_elements %a, %b, %c, %a, %a, %a : vector<2x3xf32>
```

Constructing a new vector from elements was tedious before this op
existed: a typical way was to define an `arith.constant ... :
vector<...>`, followed by a chain of `vector.insert`.

Folders/canonicalizations are added that can fold `vector.extract` ops
and convert the `vector.from_elements` op into a `vector.splat` op.

The LLVM lowering generates an `llvm.mlir.undef`, followed by a sequence
of scalar insertions in the form of `llvm.insertelement`. Only 0-D and
1-D vectors are currently supported in the LLVM lowering.


  Commit: c38b1fa32599cd84f60d09a0efdac62faa9c416e
      https://github.com/llvm/llvm-project/commit/c38b1fa32599cd84f60d09a0efdac62faa9c416e
  Author: Ivan Kulagin <ivan.i.kulagin at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Interfaces/LoopLikeInterface.td

  Log Message:
  -----------
  [mlir] Fix loop-like interface (#95817)

Using the `this` pointer inside interface methods is illegal because it
breaks concept-based interfaces.
 It is necessary to use `$_op` instead.

Co-authored-by: ikulagin <i.kulagin at ispras.ru>


  Commit: bdc7840c5758076e63719d45427c3c756c630ddd
      https://github.com/llvm/llvm-project/commit/bdc7840c5758076e63719d45427c3c756c630ddd
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86CompressEVEX.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h
    M llvm/utils/TableGen/X86InstrMappingEmitter.cpp
    R llvm/utils/TableGen/X86ManualCompressEVEXTables.def
    A llvm/utils/TableGen/X86ManualInstrMapping.def

  Log Message:
  -----------
  [X86][CodeGen] Share code between CompressEVEX pass and ND2NonND transform, NFCI


  Commit: a786919256a37e9a462582fe365eb4ea92b1a9f9
      https://github.com/llvm/llvm-project/commit/a786919256a37e9a462582fe365eb4ea92b1a9f9
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/test/Fir/convert-to-llvm.fir
    M flang/test/Fir/tbaa.fir

  Log Message:
  -----------
  [flang] allow assumed-rank box in fir.store (#95980)

Codegen is done with a memcpy using the rank from the "value" descriptor
like for the fir.load case.
Rational described in
https://github.com/llvm/llvm-project/blob/main/flang/docs/AssumedRank.md.


  Commit: 0dd43774a6bce935f34f9deaf89451cfab34c7ab
      https://github.com/llvm/llvm-project/commit/0dd43774a6bce935f34f9deaf89451cfab34c7ab
  Author: Tim Gymnich <tim at gymni.ch>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LICM.cpp
    A llvm/test/Transforms/LICM/licm-ci.ll

  Log Message:
  -----------
  [LICM] Fix dropped metadata (#95221)

LICM drops metadata for call instructions when cloning instructions.
This patch just adds the missing `copyMetadata`.

Fixes #91919.


  Commit: 0daeed645d22704250bc22aec121c467ffc72e22
      https://github.com/llvm/llvm-project/commit/0daeed645d22704250bc22aec121c467ffc72e22
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.h
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h

  Log Message:
  -----------
  [SPIR-V] Improve implementation of the duplicates tracker's storage (#95958)

This PR continues https://github.com/llvm/llvm-project/pull/94952,
managing FunctionType in the same way as a pointee types in
https://github.com/llvm/llvm-project/pull/94952 (that is working with
TypedPointers pointee types rather than with original llvm's untyped
pointers).

This PR also fully reworks the base type for the duplicates tracker's
storage to conform with and reuse DenseMapInfo. Previous implementation
didn't store enough info to differ between key values (see isEqual()
implemented as equality of derived from arguments hash values). This, in
turn, led to random crashes in very rare occasions when hash value of an
actual key matched hash values of empty and tombstone instances. In this
PR we use std::tuple instead of a tailor-made class hierarchy, both
reusing DenseMapInfo templates and getting rid of the crash condition.


  Commit: f7336b990ccaa3f342023526da8ca01df0345f9a
      https://github.com/llvm/llvm-project/commit/f7336b990ccaa3f342023526da8ca01df0345f9a
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.td
    A llvm/test/CodeGen/SPIRV/AtomicExchange.ll

  Log Message:
  -----------
  [SPIR-V] Add __spirv_ wrapper to the OpAtomicExchange instruction (#95961)

This PR adds __spirv_ wrapper to the OpAtomicExchange instruction. A new
test case is added for the change introduced.


  Commit: 4889add1870545daf18ea01858fd1a46bd0d7198
      https://github.com/llvm/llvm-project/commit/4889add1870545daf18ea01858fd1a46bd0d7198
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Replace (void) with [[maybe_unused]] for some variables unused (or only used in asserts). NFC.


  Commit: cfb4dce90ce66acbd094e443f422c4e5c413a9e8
      https://github.com/llvm/llvm-project/commit/cfb4dce90ce66acbd094e443f422c4e5c413a9e8
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] combineConstantPoolLoads - early-out if the load is not from a constant pool. NFC.

Don't embed inside the for-loop later on


  Commit: 116384a028f0e3801b9443e227e0840897202168
      https://github.com/llvm/llvm-project/commit/116384a028f0e3801b9443e227e0840897202168
  Author: Lucas Duarte Prates <lucas.prates at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64Features.td

  Log Message:
  -----------
  [NFC][AArch64] Organise extensions by archtecture version (#95898)

This updates the way the AArch64 architecture extensions are organised
in AArch64Features.td to improve readability and maintainability of the
file. Extensions are now grouped by the corresponding architecture
version in which they were
introduced.


  Commit: d72b57bbf7c3448077f82147e3ce1a72b2c86a34
      https://github.com/llvm/llvm-project/commit/d72b57bbf7c3448077f82147e3ce1a72b2c86a34
  Author: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/include/llvm/ADT/DenseMapInfo.h
    M llvm/unittests/ADT/DenseMapTest.cpp

  Log Message:
  -----------
  DenseMap: support enum class keys (#95972)

Implemented using std::underlying_type.


  Commit: 1a364b4eefa6b624958e853e827dac24de0b3278
      https://github.com/llvm/llvm-project/commit/1a364b4eefa6b624958e853e827dac24de0b3278
  Author: Anton Sidorenko <anton.sidorenko at syntacore.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVSchedSyntacoreSCR1.td
    M llvm/lib/Target/RISCV/RISCVSchedule.td

  Log Message:
  -----------
  [RISCV][NFC] Add UnsupportedSched<F|D|A> multiclasses (#95948)

These multiclasses will be used by new processors (e.g.
https://github.com/llvm/llvm-project/pull/95427)


  Commit: 4c8ce5d3012cc9f16ab8fee5ec444f6036cb099e
      https://github.com/llvm/llvm-project/commit/4c8ce5d3012cc9f16ab8fee5ec444f6036cb099e
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/opaque-ptr.ll

  Log Message:
  -----------
  [InstCombine] Preserve all flags in select of gep fold

Preserve the flag intersection.


  Commit: e7b4b437fbbf087ac4955ed5945c3e2f3dd2b702
      https://github.com/llvm/llvm-project/commit/e7b4b437fbbf087ac4955ed5945c3e2f3dd2b702
  Author: Kadir Cetinkaya <kadircet at google.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang-tools-extra/include-cleaner/lib/IncludeSpeller.cpp

  Log Message:
  -----------
  [include-cleaner] Use filename as requested, not resolved path

This was an unintended change in d5297b72aa32ad3a69563a1fcc61294282f0b379.
We don't want to resolve symlinks in filenames, as these might lead to
unexpected spellings, compared to requested filenames.


  Commit: 6467b49480cbf2aaa7cf22a0dab1d7b15fe54fd1
      https://github.com/llvm/llvm-project/commit/6467b49480cbf2aaa7cf22a0dab1d7b15fe54fd1
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/include/llvm/IR/GEPNoWrapFlags.h
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/test/Transforms/InstCombine/opaque-ptr.ll

  Log Message:
  -----------
  [InstCombine] Preserve all flags in phi of gep fold

Preserve the intersection of all flags. Add GEPNoWrapFlags::all()
to serve as the initialization value for the intersection.


  Commit: 9e6625d6a25bf5849d381fa8774adfd29ed823fb
      https://github.com/llvm/llvm-project/commit/9e6625d6a25bf5849d381fa8774adfd29ed823fb
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/select-gep.ll

  Log Message:
  -----------
  [InstCombine] Preserve all gep flags in another select of gep fold


  Commit: 44cff96bb2f5b6622f12d4330a4c20ba81ac2396
      https://github.com/llvm/llvm-project/commit/44cff96bb2f5b6622f12d4330a4c20ba81ac2396
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] computeKnownBitsForPMADDWD/PMADDUBSW - tidyup line overflow by moving extensions to the multiply stage. NFC.


  Commit: 6efba06123c96fe7d51cfbb0801407dd3d952839
      https://github.com/llvm/llvm-project/commit/6efba06123c96fe7d51cfbb0801407dd3d952839
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/test/Transforms/InstCombine/dependent-ivs.ll

  Log Message:
  -----------
  [InstCombine] Preserve all gep flags in dependent IV fold


  Commit: 807222245e437aa693d0c8f8210cfe79a02cddb1
      https://github.com/llvm/llvm-project/commit/807222245e437aa693d0c8f8210cfe79a02cddb1
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/getelementptr.ll

  Log Message:
  -----------
  [InstCombine] Preserve all gep flags in gep of select fold


  Commit: 2a1169088cd993bc123505ad8ff1b5fbb5ff6618
      https://github.com/llvm/llvm-project/commit/2a1169088cd993bc123505ad8ff1b5fbb5ff6618
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/sub.ll

  Log Message:
  -----------
  [InstCombine] Preserve all gep flags when emitting offset


  Commit: 5dde4951ae16283fffad40f84bc8ae4149766782
      https://github.com/llvm/llvm-project/commit/5dde4951ae16283fffad40f84bc8ae4149766782
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-div.ll
    A llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mul.ll
    A llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-gather-scatter.ll

  Log Message:
  -----------
  [AArch64] NFC: Precommit some tests for SME

This shows that when compiling for +sme only, the code-generator
doesn't consider streaming mode to determine whether to use
(compatible) SVE instructions.

A follow-up patch will fix these issues.


  Commit: 4d6b9921b3801709dca9245b5b4d7c17944a036f
      https://github.com/llvm/llvm-project/commit/4d6b9921b3801709dca9245b5b4d7c17944a036f
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/lib/Conversion/VectorToArmSME/VectorToArmSME.cpp
    M mlir/test/Conversion/VectorToArmSME/unsupported.mlir
    M mlir/test/Conversion/VectorToArmSME/vector-to-arm-sme.mlir

  Log Message:
  -----------
  [mlir][ArmSME] Fold MoveTileSliceToVector + TransferWrite to StoreTileSlice (#95907)


  Commit: d26808c4a694d5a5bc5f4360798151be432164ad
      https://github.com/llvm/llvm-project/commit/d26808c4a694d5a5bc5f4360798151be432164ad
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp

  Log Message:
  -----------
  [RISCV] Move RISCVInsertVSETVLI::coalesceVSETVLIs back to before insertReadVL (#96056)


  Commit: 6244d87f42775e8d49cf758eeb1909f2ce144e3c
      https://github.com/llvm/llvm-project/commit/6244d87f42775e8d49cf758eeb1909f2ce144e3c
  Author: Michael Kruse <llvm-project at meinersbur.de>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/cmake/modules/AddClang.cmake
    M clang/lib/Support/CMakeLists.txt
    M flang/cmake/modules/AddFlang.cmake
    M mlir/cmake/modules/AddMLIR.cmake
    M mlir/lib/Dialect/GPU/CMakeLists.txt
    M mlir/lib/Target/LLVM/CMakeLists.txt
    M mlir/tools/mlir-shlib/CMakeLists.txt

  Log Message:
  -----------
  Avoid object libraries in the VS IDE (#93519)

As discussed in #89743, when using the Visual Studio solution
generators, object library projects are displayed as a collection of
non-editable *.obj files. To look for the corresponding source files,
one has to browse (or search) to the library's obj.libname project. This
patch tries to avoid this as much as possible.

For Clang, there is already an exception for XCode. We handle MSVC_IDE
the same way.

For MLIR, this is more complicated. There are explicit references to the
obj.libname target that only work when there is an object library. This
patch cleans up the reasons for why an object library is needed:

1. The obj.libname is modified in the calling CMakeLists.txt. Note that
with use-only references, `add_library(<name> ALIAS <target>)` could
have been used.

2. An `libMLIR.so` (mlir-shlib) is also created. This works by adding
linking the object libraries' object files into the libMLIR.so (in
addition to the library's own .so/.a). XCode is handled using the
`-force_load` linker option instead. Windows is not supported. This
mechanism is different from LLVM's llvm-shlib that is created by linking
static libraries with `-Wl,--whole-archive` (and `-Wl,-all_load` on
MacOS).

3. The library might be added to an aggregate library. In-tree, the
seems to be only `libMLIR-C.so` and the standalone example. In XCode, it
uses the object library and `-force_load` mechanism as above. Again,
this is different from `libLLVM-C.so`.

4. Build an object library whenever it was before this patch, except
when generating a Visual Studio solution. This condition could be
removed, but I am trying to avoid build breakages of whatever
configurations others use.

This seems to never have worked with XCode because of the explicit
references to obj.libname (reason 1.). I don't have access to XCode, but
I tried to preserve the current working. IMHO there should be a common
mechanism to build aggregate libraries for all LLVM projects instead of
the 4 that we have now.

As far as I can see, this means for LLVM there are the following changes
on whether object libraries are created:

1. An object library is created even in XCode if FORCE_OBJECT_LIBRARY is
set. I do not know how XCode handles it, but I also know CMake will
abort otherwise.

2. An object library is created even for explicitly SHARED libraries for
building `libMLIR.so`. Again, mlir-shlib does not work otherwise.
`libMLIR.so` itself is created using SHARED so this patch is marking it
as EXCLUDE_FROM_LIBMLIR.

3. For the second condition, it is now sensitive to whether the
mlir-shlib is built at all (LLVM_BUILD_LLVM_DYLIB). However, an object
library is still built using the fourth condition unless using the MSVC
solution generator. That is, except with MSVC_IDE, when an object
library was built before, it will also be an object library now.


  Commit: 781133037387eefa4080aa31c73554cc0452e6e6
      https://github.com/llvm/llvm-project/commit/781133037387eefa4080aa31c73554cc0452e6e6
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
    M mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
    M mlir/test/Dialect/ArmSVE/invalid.mlir
    M mlir/test/Dialect/ArmSVE/legalize-for-llvm.mlir
    M mlir/test/Dialect/ArmSVE/roundtrip.mlir
    M mlir/test/Target/LLVMIR/arm-sve.mlir

  Log Message:
  -----------
  [mlir][ArmSVE] Add `arm_sve.psel` operation (#95764)

This adds a new operation for the SME/SVE2.1 psel instruction. This
allows selecting a predicate based on a bit within another predicate,
essentially allowing for 2-D predication. Informally, the semantics are:

```mlir
%pd = arm_sve.psel %p1, %p2[%index] : vector<[4]xi1>, vector<[8]xi1>
```

=>

```
if p2[index % num_elements(p2)] == 1:
  pd = p1 : type(p1)
else:
  pd = all-false : type(p1)
```


  Commit: 60984f5be90d3f0378d739792adbd4c5e3dcc0e2
      https://github.com/llvm/llvm-project/commit/60984f5be90d3f0378d739792adbd4c5e3dcc0e2
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/getelementptr.ll

  Log Message:
  -----------
  [InstCombine] Preserve all gep flags in gep of exact div fold


  Commit: 0d524bc45ddaa2bd94c28c8935e53153827f2374
      https://github.com/llvm/llvm-project/commit/0d524bc45ddaa2bd94c28c8935e53153827f2374
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/tools/llvm-mca/CodeRegion.h

  Log Message:
  -----------
  [llvm-mca] Use llvm::erase_if (NFC) (#96029)


  Commit: 93831c73ea51dcf4dc1832a4ea5616b819d36f31
      https://github.com/llvm/llvm-project/commit/93831c73ea51dcf4dc1832a4ea5616b819d36f31
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-store.ll
    R llvm/test/MC/AArch64/SME/streaming-mode-neon-bf16.s
    R llvm/test/MC/AArch64/SME/streaming-mode-neon.s

  Log Message:
  -----------
  [AArch64] Let patterns for NEON instructions check runtime mode. (#95560)

This helps identify any failures where the compiler might otherwise
silently emit instructions that are not valid for the given runtime mode.


  Commit: ca423a26e7bfc31a36c9ad790b0ae1bb9be18836
      https://github.com/llvm/llvm-project/commit/ca423a26e7bfc31a36c9ad790b0ae1bb9be18836
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-bitselect.ll

  Log Message:
  -----------
  [AArch64] Avoid using NEON BSL for streaming[-compatible] functions (#95803)


  Commit: 5574a5894fdb7f9a46a4fbe6c8970fd39890dc9b
      https://github.com/llvm/llvm-project/commit/5574a5894fdb7f9a46a4fbe6c8970fd39890dc9b
  Author: Sam McCall <sam.mccall at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang-tools-extra/include-cleaner/lib/Record.cpp
    M clang-tools-extra/include-cleaner/unittests/RecordTest.cpp

  Log Message:
  -----------
  [include-cleaner] don't consider the associated header unused (#67228)


Loosely, the "associated header" of `foo.cpp` is `foo.h`.
It should be included, many styles include it first.

So far we haven't special cased it in any way, and require this include
to be justified. e.g. if foo.cpp defines a function declared in foo.h,
then the #include is allowed to check these declarations match.

However this doesn't really align with what users want:
- people reasonably want to include the associated header for the
  side-effect of validating that it compiles.
  In the degenerate case, `lib.cpp`is just `#include "lib.h"` (see bug)
- That `void foo(){}` IWYU-uses `void foo();` is a bit artificial, and
  most users won't internalize this. Instead they'll stick with the
  simpler model "include the header that defines your API".
  In the rare cases where these give different answers[1], our current
  behavior is a puzzling special case from the user POV.
  It is more user-friendly to accept both models.
- even where this diagnostic is a true positive (defs don't match header
  decls) the diagnostic does not communicate this usefully.

Fixes https://github.com/llvm/llvm-project/issues/67140

[1] Example of an associated header that's not IWYU-used:
```
// http.h
inline URL buildHttpURL(string host, int port, string path) {
  return "http://" + host + ":" + port + "/" + path;
}
// http.cpp
class HTTPURLHandler : URLHandler { ... };
REGISTER_URL_HANDLER("http", HTTPURLHandler);
```


  Commit: c83d9e99b0663cf8e7e81bd552d42a0c4298ab2c
      https://github.com/llvm/llvm-project/commit/c83d9e99b0663cf8e7e81bd552d42a0c4298ab2c
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td

  Log Message:
  -----------
  [mlir][vector] Specify bounds of dynamic indices in vector.extract/insert (#95933)


  Commit: 4b0c078a13c614032236dacfa7331219d0c9ca23
      https://github.com/llvm/llvm-project/commit/4b0c078a13c614032236dacfa7331219d0c9ca23
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/test/Transforms/ConstantHoisting/RISCV/immediates.ll

  Log Message:
  -----------
  [RISCV][test] Pre-commit test case where ConstantHoisting fails to trigger

Our getIntImmCostInst is falling back to returning TCC_Free in this case
even though both immediates take two instructions to materialise.


  Commit: 84c60bb7d84cfcfa9056ef0b675c0deb4f4ab5e1
      https://github.com/llvm/llvm-project/commit/84c60bb7d84cfcfa9056ef0b675c0deb4f4ab5e1
  Author: Joe Nash <joseph.nash at amd.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td

  Log Message:
  -----------
  [AMDGPU] Add IsSingle to V_DIV_FMAS* for consistency. (#95983)

A _e64 suffix should not be printed since these instructions only have
one legal encoding length. The absence of the IsSingle flag is hidden by
how the string is printed, but fix it for consistency.
NFC


  Commit: e5b0c210cc4cdaae7075ad2d4aa1efe4eb4cb0c5
      https://github.com/llvm/llvm-project/commit/e5b0c210cc4cdaae7075ad2d4aa1efe4eb4cb0c5
  Author: Joe Nash <joseph.nash at amd.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td

  Log Message:
  -----------
  [AMDGPU] Add IsSingle to a few Interp instructions (#95984)

A _e64 suffix should not be printed since these instructions only have
one legal encoding length. The absence of the IsSingle flag is hidden by
how the string is printed. We could fix it for GFX10 as well, but we
shouldn't change the asm output to omit _e64 at this point.
NFC.


  Commit: 2c1ae801e1b66a09a15028ae4ba614e0911eec00
      https://github.com/llvm/llvm-project/commit/2c1ae801e1b66a09a15028ae4ba614e0911eec00
  Author: donald chen <chenxunyu1993 at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/ScheduleOrderedAssignments.cpp
    M flang/test/HLFIR/memory-effects.fir
    M mlir/examples/transform/Ch2/lib/MyExtension.cpp
    M mlir/examples/transform/Ch3/lib/MyExtension.cpp
    M mlir/examples/transform/Ch4/lib/MyExtension.cpp
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    M mlir/include/mlir/Dialect/Transform/Interfaces/MatchInterfaces.h
    M mlir/include/mlir/Dialect/Transform/Interfaces/TransformInterfaces.h
    M mlir/include/mlir/Interfaces/SideEffectInterfaces.h
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Affine/TransformOps/AffineTransformOps.cpp
    M mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
    M mlir/lib/Dialect/Bufferization/TransformOps/BufferizationTransformOps.cpp
    M mlir/lib/Dialect/Func/TransformOps/FuncTransformOps.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgMatchOps.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/MemRef/TransformOps/MemRefTransformOps.cpp
    M mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp
    M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/lib/Dialect/Transform/IRDLExtension/IRDLExtensionOps.cpp
    M mlir/lib/Dialect/Transform/Interfaces/TransformInterfaces.cpp
    M mlir/lib/Dialect/Transform/LoopExtension/LoopExtensionOps.cpp
    M mlir/lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Interfaces/SideEffectInterfaces.cpp
    M mlir/test/Dialect/Bufferization/side-effects.mlir
    M mlir/test/IR/test-side-effects.mlir
    M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp
    M mlir/test/lib/IR/TestSideEffects.cpp
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
    M mlir/test/mlir-tblgen/op-side-effects.td
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

  Log Message:
  -----------
  [mlir][side effect] refactor(*): Include more precise side effects (#94213)

This patch adds more precise side effects to the current ops with memory
effects, allowing us to determine which OpOperand/OpResult/BlockArgument
the
operation reads or writes, rather than just recording the reading and
writing
of values. This allows for convenient use of precise side effects to
achieve
analysis and optimization.

Related discussions:
https://discourse.llvm.org/t/rfc-add-operandindex-to-sideeffect-instance/79243


  Commit: 5b007582bb9142ccab47134e5d2de0dd451338af
      https://github.com/llvm/llvm-project/commit/5b007582bb9142ccab47134e5d2de0dd451338af
  Author: Matthias Springer <me at m-sp.org>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M mlir/include/mlir/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.h
    M mlir/lib/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.cpp
    M mlir/test/Conversion/FuncToLLVM/calling-convention.mlir
    R mlir/test/Conversion/ReconcileUnrealizedCasts/reconcile-unrealized-casts-failure.mlir
    M mlir/test/Conversion/ReconcileUnrealizedCasts/reconcile-unrealized-casts.mlir
    M mlir/test/Dialect/LLVM/lower-to-llvm-e2e-with-target-tag.mlir
    M mlir/test/Dialect/LLVM/lower-to-llvm-e2e-with-top-level-named-sequence.mlir

  Log Message:
  -----------
  [mlir][Conversion] Generalize and fix crash in `reconcile-unrealized-casts` (#95700)

This commit fixes a crash in `-reconcile-unrealized-casts` when cast ops
have multiple operands:
```
DialectConversion.cpp:1583: virtual void mlir::ConversionPatternRewriter::replaceOp(mlir::Operation *, mlir::ValueRange): Assertion `op->getNumResults() == newValues.size() && "incorrect # of replacement values"' failed.
```

This commit also generalizes the pass such that more ops are folded. In
particular (letters indicate types):
```
         A
       /   \
      B     C
      |
      A
```
Previously, such IR was not folded at all. The `A -> B -> A` type cast
cycle is now folded away. (The `A -> C` cast stays in place.)

This commit also turns the pass from a dialect conversion into a simple
IR walk. The pattern and its `populate` function are removed. The
pattern was a (non-conversion) rewrite pattern, but used in a dialect
conversion, which is generally not safe. In particular, the rewrite
pattern may traverse IR that was already scheduled for erasure by the
dialect conversion.

Note: Some test cases changed slightly (NFC) because the new pass
implementation no longer attempts to fold ops.

Note for LLVM integration: If your pipeline uses the removed `populate`
function, try to simply remove that function call. Chances are you may
not need it at all. If it is in fact needed, run the
`-reconcile-unrealized-casts` pass right after the pass that used to
populate the pattern.

---------

Co-authored-by: Maksim Levental <maksim.levental at gmail.com>
Co-authored-by: Markus Böck <markus.boeck02 at gmail.com>


  Commit: f4504083634ee73cfbb4593613a8f11487207ce6
      https://github.com/llvm/llvm-project/commit/f4504083634ee73cfbb4593613a8f11487207ce6
  Author: Gábor Spaits <gaborspaits1 at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-ilp32-ilp32f-ilp32d-common.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-lp64-lp64f-lp64d-common.ll

  Log Message:
  -----------
  [GISel][RISCV]Implement indirect parameter passing (#95429)

Some targets like RISC-V pass scalars wider than 2×XLEN bits by
reference, so those arguments are replaced in the argument list with an
address (See RISC-V ABIs Specification 1.0 section 2.1).

This commit implements this indirect parameter passing in GlobalISel.

---------

Co-authored-by: Gabor Spaits <Gabor.Spaits at hightec-rt.com>


  Commit: 3be7312f81ad244de9e7d4759931b460cbb77372
      https://github.com/llvm/llvm-project/commit/3be7312f81ad244de9e7d4759931b460cbb77372
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/X86/masked-store-cost.ll

  Log Message:
  -----------
  [LV] Add more masked store cost tests with different masks.

Add additional masked store tests which caused crashes with earlier
versions of https://github.com/llvm/llvm-project/pull/92555.


  Commit: edd2d7c5585316f20ab76fd7e52aa39691395ddc
      https://github.com/llvm/llvm-project/commit/edd2d7c5585316f20ab76fd7e52aa39691395ddc
  Author: Koakuma <koachan at protonmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/Sparc/SparcInstrAliases.td
    M llvm/test/CodeGen/SPARC/inlineasm.ll
    M llvm/test/MC/Disassembler/Sparc/sparc-v9.txt

  Log Message:
  -----------
  [NFC][SPARC] Fix typos and style mismatches

Fix style errors accidentally introduced in PRs #87259 and #94245.

Reviewers: rorth, jrtc27, brad0, s-barannikov

Reviewed By: s-barannikov

Pull Request: https://github.com/llvm/llvm-project/pull/96019


  Commit: 4a70981d21f8d9e9476032c239be1d346488a7dc
      https://github.com/llvm/llvm-project/commit/4a70981d21f8d9e9476032c239be1d346488a7dc
  Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst

  Log Message:
  -----------
  AMDGPU/gfx12: Minor documentation update (#96079)


  Commit: 021b9d0239f830244ebe0deb77cdca8fceeb6613
      https://github.com/llvm/llvm-project/commit/021b9d0239f830244ebe0deb77cdca8fceeb6613
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/lib/Sema/SemaOpenACC.cpp

  Log Message:
  -----------
  [Sema] Use llvm::erase_if (NFC) (#96068)

While I am at it, I'm constructing SmallVector directly from ArrayRef.


  Commit: e773f5307d59fb796a5fc59fe7830281f12731ce
      https://github.com/llvm/llvm-project/commit/e773f5307d59fb796a5fc59fe7830281f12731ce
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/AVR/AVRISelLowering.cpp

  Log Message:
  -----------
  [AVR] Let ArrayRef infer the array size (NFC) (#96076)


  Commit: 881dc132a21d645163ce00fe7b85499687ba8538
      https://github.com/llvm/llvm-project/commit/881dc132a21d645163ce00fe7b85499687ba8538
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M libcxx/utils/ci/Dockerfile

  Log Message:
  -----------
  [libc++] Install Python packaging to resolve LLDB data formatter issues (#95971)

This should fix the failures that started happening after #93712 landed.


  Commit: 01ba3fa37b22828abca81011b0cb2e4cbbb8cfda
      https://github.com/llvm/llvm-project/commit/01ba3fa37b22828abca81011b0cb2e4cbbb8cfda
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
    M clang/test/CodeGenOpenCL/builtins-r600.cl

  Log Message:
  -----------
  [Clang] Swap range and noundef metadata to attribute for intrinsics. (#94851)


  Commit: 1003f5b93e0ab0518e285b861573181942e41930
      https://github.com/llvm/llvm-project/commit/1003f5b93e0ab0518e285b861573181942e41930
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsAArch64.def
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_state_builtin.c

  Log Message:
  -----------
  [Clang][AArch64] Use 'uint64_t*' for _arm_get_sme_state builtin. (#95982)

Depending on the platform, the parameter for __arm_get_sme_state
requires a `unsigned long long*` instead of a `unsigned long*`.

>From ASTContext.cpp:

  case 'W':
    // This modifier represents int64 type.


  Commit: cb76896d6e45e2c9b7ef5e47b6ec37aeca43f7a8
      https://github.com/llvm/llvm-project/commit/cb76896d6e45e2c9b7ef5e47b6ec37aeca43f7a8
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/test/Transforms/LoopStrengthReduce/X86/postinc-iv-used-by-urem-and-udiv.ll
    M llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll

  Log Message:
  -----------
  [SCEVExpander] Recognize urem idiom during expansion (#96005)

If we have a urem expression, emitting it as a urem is significantly
better that letting the fully expansion kick in. We have the risk of a
udiv or mul which could have previously been shared, but loosing that
seems like a reasonable tradeoff for being able to round trip a urem w/o
modification.


  Commit: b2b1ee7a92aa51c5017edab40aec665278d63f16
      https://github.com/llvm/llvm-project/commit/b2b1ee7a92aa51c5017edab40aec665278d63f16
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-truncate-combine.ll

  Log Message:
  -----------
  [X86] Regenerate vector-truncate-combine.ll to check entire code sequence


  Commit: 2a57a08829e8079b59c95ad14f71a1417006c9b5
      https://github.com/llvm/llvm-project/commit/2a57a08829e8079b59c95ad14f71a1417006c9b5
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/p8altivec-shuffles-pred.ll

  Log Message:
  -----------
  [PowerPC] Regenerate p8altivec-shuffles-pred.ll with update_llc_test_checks script


  Commit: f7c96d5733915c4ea30dbd7852faffc9cef4aca9
      https://github.com/llvm/llvm-project/commit/f7c96d5733915c4ea30dbd7852faffc9cef4aca9
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/lib/AST/Interp/Record.cpp

  Log Message:
  -----------
  [Interp] Record::getBase - merge isRecordType/getAs<RecordType>() checks. NFC.

Noticed because static analyzer doesn't understand that isRecordType is just a wrapper to isa<> and was warning about a potential null dereference


  Commit: 04cd06906288dcb148de37d7c3e6c009c3e3b726
      https://github.com/llvm/llvm-project/commit/04cd06906288dcb148de37d7c3e6c009c3e3b726
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/ScalarEvolution/trip-count-unknown-stride.ll
    M llvm/test/Transforms/LoopRotate/pr56260.ll

  Log Message:
  -----------
  [SCEV] Use context sensitive reasoning in howFarToZero (#94525)

This change builds on 0a357ad which supported non-constant strides in
howFarToZero, but used only context insensitive reasoning.

This change does two things:
1) Directly use context sensitive queries to prove facts established
   before the loop.  Note that we technically only need facts known
   at the latch, but using facts known on entry is a conservative
   approximation which will cover most everything.
2) For the non-zero check, we can usually prove non-zero from the
   finite assumption implied by mustprogress.  This eliminates the
   need to do the context sensitive query in the common case.


  Commit: b9702bb12f19b7bdb7f4420f94ee603d29d1bf1b
      https://github.com/llvm/llvm-project/commit/b9702bb12f19b7bdb7f4420f94ee603d29d1bf1b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr47437.ll

  Log Message:
  -----------
  [LV] Consider insts feeding interleave group pointers free.

For interleave groups, we only generate a pointer for the start of the
interleave group (the instruction at the insert position). The other
addresses for other members are alreayd considered free, but so are
their operands, if they are only used in address computations for
other interleave group members.


  Commit: 34a2889e901d594fc3d8eaf03132e571dee923a5
      https://github.com/llvm/llvm-project/commit/34a2889e901d594fc3d8eaf03132e571dee923a5
  Author: Andreas Jonson <andjo403 at hotmail.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/test/Transforms/InstCombine/ARM/mve-v2i2v.ll

  Log Message:
  -----------
  [InstCombine] Swap out range metadata to range attribute for arm_mve_pred_v2i (#94847)


  Commit: 498757e710f39d536633436fe6b4081df73dd6b7
      https://github.com/llvm/llvm-project/commit/498757e710f39d536633436fe6b4081df73dd6b7
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Fix initializing union APValues

The InitElem op assumes an array.


  Commit: e0b66a4d6848dae2a03e4a17292b501c01baa009
      https://github.com/llvm/llvm-project/commit/e0b66a4d6848dae2a03e4a17292b501c01baa009
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Loosen an assertion


  Commit: 09f88da966c8117c3ee9780aaa4cbaa7f4f0da5c
      https://github.com/llvm/llvm-project/commit/09f88da966c8117c3ee9780aaa4cbaa7f4f0da5c
  Author: Kazu Hirata <kazu at google.com>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang/lib/CodeGen/CodeGenPGO.cpp

  Log Message:
  -----------
  [CodeGen] Remove extraneous ArrayRef (NFC) (#96085)

A C array can be implicitly cast to ArrayRef.


  Commit: 7d9260948f48ba2f3a9c4a3e4d5796cb91ea34f0
      https://github.com/llvm/llvm-project/commit/7d9260948f48ba2f3a9c4a3e4d5796cb91ea34f0
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/utils/gn/build/toolchain/target_flags.gni

  Log Message:
  -----------
  [gn/mac] Fix isysroot flag when building compiler-rt

If the GN arg `sysroot` was set to a root-relative path like e.g.
`"//sysroot"`, we weren't rebasing it correctly, leading to
warnings from clang about it ignoring a non-existent sysroot.

Similar to 6073f87d7f160.


  Commit: 70ec8419dd722abeddf09e11f01500ae62334394
      https://github.com/llvm/llvm-project/commit/70ec8419dd722abeddf09e11f01500ae62334394
  Author: PeterChou1 <peter.chou at mail.utoronto.ca>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/database_template.json
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Calculator.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Circle.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Rectangle.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Shape.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp
    A clang-tools-extra/test/clang-doc/basic-project.test

  Log Message:
  -----------
  [clang-doc] Add basic e2e test (#93928)

Adds e2e tests for clang-doc, which serves as useful test against
regression in the html output. It also serves as a helpful tool for code
review as we can see the diffs to clang-docs output

Closes https://github.com/llvm/llvm-project/issues/93925


  Commit: 58d7a6e0e6361871442df956bb88798ce602b09d
      https://github.com/llvm/llvm-project/commit/58d7a6e0e6361871442df956bb88798ce602b09d
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M llvm/lib/CodeGen/GlobalMerge.cpp
    M llvm/test/Transforms/GlobalMerge/basic.ll

  Log Message:
  -----------
  [GlobalMerge] Use MapVector to stabilize iteration order

DenseMap iteration order is not guaranteed to be deterministic.

Without the change,
llvm/test/Transforms/GlobalMerge/basic.ll could fail when
`combineHashValue` changes (#95970).


  Commit: 7cf9dfb668b51b6a8671ed108f8ac219689cc292
      https://github.com/llvm/llvm-project/commit/7cf9dfb668b51b6a8671ed108f8ac219689cc292
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-06-19 (Wed, 19 Jun 2024)

  Changed paths:
    M clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
    M clang-tools-extra/include-cleaner/lib/IncludeSpeller.cpp
    M clang-tools-extra/include-cleaner/lib/Record.cpp
    M clang-tools-extra/include-cleaner/unittests/RecordTest.cpp
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/database_template.json
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Calculator.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Circle.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Rectangle.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/include/Shape.h
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp
    A clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp
    A clang-tools-extra/test/clang-doc/basic-project.test
    M clang/cmake/modules/AddClang.cmake
    M clang/include/clang/AST/ASTContext.h
    M clang/include/clang/AST/ASTUnresolvedSet.h
    M clang/include/clang/AST/DeclID.h
    M clang/include/clang/AST/Type.h
    M clang/include/clang/AST/TypeProperties.td
    A clang/include/clang/Basic/AMDGPUTypes.def
    M clang/include/clang/Basic/BuiltinsAArch64.def
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/AST/ASTContext.cpp
    M clang/lib/AST/ASTImporter.cpp
    M clang/lib/AST/DeclBase.cpp
    M clang/lib/AST/DeclTemplate.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Record.cpp
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/lib/AST/MicrosoftMangle.cpp
    M clang/lib/AST/NSAPI.cpp
    M clang/lib/AST/PrintfFormatString.cpp
    M clang/lib/AST/Type.cpp
    M clang/lib/AST/TypeLoc.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDebugInfo.h
    M clang/lib/CodeGen/CodeGenPGO.cpp
    M clang/lib/CodeGen/CodeGenTypes.cpp
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/Format/UnwrappedLineParser.cpp
    M clang/lib/Frontend/ASTUnit.cpp
    M clang/lib/Index/USRGeneration.cpp
    M clang/lib/Sema/Sema.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaOpenACC.cpp
    M clang/lib/Serialization/ASTCommon.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderDecl.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Support/CMakeLists.txt
    A clang/test/AST/ast-dump-amdgpu-types.c
    A clang/test/CodeGen/aarch64-sme-intrinsics/acle_sme_state_builtin.c
    A clang/test/CodeGen/amdgpu-buffer-rsrc-type-debug-info.c
    A clang/test/CodeGenCXX/amdgpu-buffer-rsrc-typeinfo.cpp
    A clang/test/CodeGenOpenCL/amdgcn-buffer-rsrc-type.cl
    M clang/test/CodeGenOpenCL/builtins-amdgcn.cl
    M clang/test/CodeGenOpenCL/builtins-r600.cl
    M clang/test/Profile/c-mcdc-class.cpp
    M clang/test/Profile/c-mcdc-logicalop-ternary.c
    M clang/test/Profile/c-mcdc-nested-ternary.c
    M clang/test/Profile/c-mcdc-not.c
    M clang/test/Profile/c-mcdc.c
    A clang/test/SemaCXX/amdgpu-buffer-rsrc.cpp
    A clang/test/SemaHIP/amdgpu-buffer-rsrc.hip
    A clang/test/SemaOpenCL/amdgpu-buffer-rsrc.cl
    A clang/test/SemaOpenMP/amdgpu-buffer-rsrc.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/unittests/Format/TokenAnnotatorTest.cpp
    M clang/utils/TableGen/ClangAttrEmitter.cpp
    M compiler-rt/lib/builtins/cpu_model/aarch64/fmv/apple.inc
    M compiler-rt/lib/scudo/standalone/combined.h
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
    M cross-project-tests/debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.cpp
    M cross-project-tests/debuginfo-tests/llvm-prettyprinters/gdb/llvm-support.gdb
    M flang/cmake/modules/AddFlang.cmake
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp
    M flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
    M flang/lib/Optimizer/HLFIR/Transforms/ScheduleOrderedAssignments.cpp
    M flang/test/Fir/convert-to-llvm.fir
    M flang/test/Fir/tbaa.fir
    M flang/test/HLFIR/memory-effects.fir
    M libcxx/utils/ci/Dockerfile
    M lldb/include/lldb/API/SBStatisticsOptions.h
    M lldb/include/lldb/Interpreter/OptionArgParser.h
    M lldb/include/lldb/Target/Statistics.h
    M lldb/source/API/SBStatisticsOptions.cpp
    M lldb/source/Commands/CommandObjectStats.cpp
    M lldb/source/Commands/Options.td
    M lldb/source/Interpreter/OptionArgParser.cpp
    M lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/source/Target/Statistics.cpp
    M lldb/test/API/commands/statistics/basic/TestStats.py
    M lldb/test/API/lang/objcxx/objc-from-cpp-frames-without-debuginfo/TestObjCFromCppFramesWithoutDebugInfo.py
    A lldb/test/Shell/Expr/TestObjCInCXXContext.test
    M lldb/unittests/Interpreter/TestOptionArgParser.cpp
    M llvm/docs/AMDGPUUsage.rst
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/ADT/DenseMapInfo.h
    R llvm/include/llvm/CodeGen/ParallelCG.h
    M llvm/include/llvm/IR/GEPNoWrapFlags.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/CodeGen/CMakeLists.txt
    M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
    M llvm/lib/CodeGen/GlobalMerge.cpp
    R llvm/lib/CodeGen/ParallelCG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/WindowScheduler.cpp
    M llvm/lib/IR/Constants.cpp
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/AVR/AVRISelLowering.cpp
    M llvm/lib/Target/RISCV/GISel/RISCVCallLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    M llvm/lib/Target/RISCV/RISCVSchedSyntacoreSCR1.td
    M llvm/lib/Target/RISCV/RISCVSchedule.td
    M llvm/lib/Target/SPIRV/SPIRVBuiltins.td
    M llvm/lib/Target/SPIRV/SPIRVDuplicatesTracker.h
    M llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/lib/Target/Sparc/SparcInstrAliases.td
    M llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
    M llvm/lib/Target/X86/X86CompressEVEX.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86InstrInfo.h
    M llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
    M llvm/lib/Transforms/Scalar/LICM.cpp
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Analysis/ScalarEvolution/trip-count-unknown-stride.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-initializer-merge.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-bitselect.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-div.ll
    A llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mul.ll
    A llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-gather-scatter.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll
    M llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-store.ll
    M llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-constants.ll
    A llvm/test/CodeGen/Hexagon/swp-ws-phi.mir
    M llvm/test/CodeGen/PowerPC/p8altivec-shuffles-pred.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-ilp32-ilp32f-ilp32d-common.ll
    M llvm/test/CodeGen/RISCV/GlobalISel/irtranslator/calling-conv-lp64-lp64f-lp64d-common.ll
    M llvm/test/CodeGen/SPARC/inlineasm.ll
    A llvm/test/CodeGen/SPIRV/AtomicExchange.ll
    M llvm/test/CodeGen/WebAssembly/exception-legacy.ll
    M llvm/test/CodeGen/X86/vector-truncate-combine.ll
    M llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
    R llvm/test/MC/AArch64/SME/streaming-mode-neon-bf16.s
    R llvm/test/MC/AArch64/SME/streaming-mode-neon.s
    M llvm/test/MC/Disassembler/Sparc/sparc-v9.txt
    M llvm/test/MC/X86/apx/ccmp-att.s
    M llvm/test/MC/X86/apx/ccmp-intel.s
    M llvm/test/Transforms/ConstantHoisting/RISCV/immediates.ll
    M llvm/test/Transforms/GlobalMerge/basic.ll
    M llvm/test/Transforms/InstCombine/ARM/mve-v2i2v.ll
    M llvm/test/Transforms/InstCombine/dependent-ivs.ll
    M llvm/test/Transforms/InstCombine/getelementptr.ll
    M llvm/test/Transforms/InstCombine/opaque-ptr.ll
    M llvm/test/Transforms/InstCombine/select-gep.ll
    M llvm/test/Transforms/InstCombine/sub.ll
    A llvm/test/Transforms/LICM/licm-ci.ll
    M llvm/test/Transforms/LoopRotate/pr56260.ll
    M llvm/test/Transforms/LoopStrengthReduce/X86/postinc-iv-used-by-urem-and-udiv.ll
    M llvm/test/Transforms/LoopVectorize/X86/interleave-cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/masked-store-cost.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr47437.ll
    M llvm/test/Transforms/LoopVectorize/trip-count-expansion-may-introduce-ub.ll
    M llvm/test/Transforms/PGOProfile/counter_promo_with_bias.ll
    M llvm/tools/llvm-mca/CodeRegion.h
    M llvm/unittests/ADT/DenseMapTest.cpp
    M llvm/utils/TableGen/X86InstrMappingEmitter.cpp
    R llvm/utils/TableGen/X86ManualCompressEVEXTables.def
    A llvm/utils/TableGen/X86ManualInstrMapping.def
    M llvm/utils/gdb-scripts/prettyprinters.py
    M llvm/utils/gn/build/toolchain/target_flags.gni
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
    M mlir/cmake/modules/AddMLIR.cmake
    M mlir/cmake/modules/AddMLIRPython.cmake
    M mlir/examples/transform/Ch2/lib/MyExtension.cpp
    M mlir/examples/transform/Ch3/lib/MyExtension.cpp
    M mlir/examples/transform/Ch4/lib/MyExtension.cpp
    M mlir/include/mlir/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.h
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
    M mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    M mlir/include/mlir/Dialect/Transform/Interfaces/MatchInterfaces.h
    M mlir/include/mlir/Dialect/Transform/Interfaces/TransformInterfaces.h
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/Interfaces/LoopLikeInterface.td
    M mlir/include/mlir/Interfaces/SideEffectInterfaces.h
    M mlir/lib/Conversion/ArithToEmitC/ArithToEmitC.cpp
    M mlir/lib/Conversion/ReconcileUnrealizedCasts/ReconcileUnrealizedCasts.cpp
    M mlir/lib/Conversion/VectorToArmSME/VectorToArmSME.cpp
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Affine/TransformOps/AffineTransformOps.cpp
    M mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp
    M mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
    M mlir/lib/Dialect/Bufferization/TransformOps/BufferizationTransformOps.cpp
    M mlir/lib/Dialect/Func/TransformOps/FuncTransformOps.cpp
    M mlir/lib/Dialect/GPU/CMakeLists.txt
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgMatchOps.cpp
    M mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
    M mlir/lib/Dialect/MemRef/TransformOps/MemRefTransformOps.cpp
    M mlir/lib/Dialect/NVGPU/TransformOps/NVGPUTransformOps.cpp
    M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
    M mlir/lib/Dialect/Transform/IR/TransformOps.cpp
    M mlir/lib/Dialect/Transform/IRDLExtension/IRDLExtensionOps.cpp
    M mlir/lib/Dialect/Transform/Interfaces/TransformInterfaces.cpp
    M mlir/lib/Dialect/Transform/LoopExtension/LoopExtensionOps.cpp
    M mlir/lib/Dialect/Transform/PDLExtension/PDLExtensionOps.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Interfaces/SideEffectInterfaces.cpp
    M mlir/lib/Target/LLVM/CMakeLists.txt
    M mlir/test/Conversion/ArithToEmitC/arith-to-emitc.mlir
    M mlir/test/Conversion/FuncToLLVM/calling-convention.mlir
    R mlir/test/Conversion/ReconcileUnrealizedCasts/reconcile-unrealized-casts-failure.mlir
    M mlir/test/Conversion/ReconcileUnrealizedCasts/reconcile-unrealized-casts.mlir
    M mlir/test/Conversion/VectorToArmSME/unsupported.mlir
    M mlir/test/Conversion/VectorToArmSME/vector-to-arm-sme.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Dialect/ArmSVE/invalid.mlir
    M mlir/test/Dialect/ArmSVE/legalize-for-llvm.mlir
    M mlir/test/Dialect/ArmSVE/roundtrip.mlir
    M mlir/test/Dialect/Bufferization/side-effects.mlir
    M mlir/test/Dialect/LLVM/lower-to-llvm-e2e-with-target-tag.mlir
    M mlir/test/Dialect/LLVM/lower-to-llvm-e2e-with-top-level-named-sequence.mlir
    M mlir/test/Dialect/Vector/canonicalize.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Dialect/Vector/ops.mlir
    M mlir/test/Dialect/Vector/vector-transfer-permutation-lowering.mlir
    M mlir/test/IR/test-side-effects.mlir
    M mlir/test/Target/LLVMIR/arm-sve.mlir
    M mlir/test/lib/Dialect/Test/TestOpDefs.cpp
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp
    M mlir/test/lib/IR/TestSideEffects.cpp
    M mlir/test/lib/Interfaces/TilingInterface/TestTilingInterfaceTransformOps.cpp
    M mlir/test/mlir-tblgen/op-side-effects.td
    M mlir/tools/mlir-shlib/CMakeLists.txt
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp

  Log Message:
  -----------
  rebase

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/ac95ae7e0839...7cf9dfb668b5

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list