[all-commits] [llvm/llvm-project] 940ef9: [RISCV] Remove hasSideEffects=1 for saturating/fau...

Fangrui Song via All-commits all-commits at lists.llvm.org
Tue Apr 30 12:01:40 PDT 2024


  Branch: refs/heads/users/MaskRay/spr/elf-add-compression-level
  Home:   https://github.com/llvm/llvm-project
  Commit: 940ef9687f5f19ce02b7fa5d2eb6225f458fbdd9
      https://github.com/llvm/llvm-project/commit/940ef9687f5f19ce02b7fa5d2eb6225f458fbdd9
  Author: Pengcheng Wang <wangpengcheng.pp at bytedance.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/test/CodeGen/RISCV/regalloc-last-chance-recoloring-failure.ll
    M llvm/test/CodeGen/RISCV/rvv/commutable.ll
    M llvm/test/CodeGen/RISCV/rvv/copyprop.mir
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll

  Log Message:
  -----------
  [RISCV] Remove hasSideEffects=1 for saturating/fault-only-first instructions

Marking them as `hasSideEffects=1` stops some optimizations.

According to `Target.td`:

> // Does the instruction have side effects that are not captured by any
> // operands of the instruction or other flags?
> bit hasSideEffects = ?;

It seems we don't need to set `hasSideEffects` for vleNff since we have
modelled `vl` as an output operand.

As for saturating instructions, I think that explicit Def/Use list
is kind of side effects captured by any operands of the instruction,
so we don't need to set `hasSideEffects` either. And I have just
investigated AArch64's implementation, they don't set this flag and
don't add `Def` list.

These changes make optimizations like `performCombineVMergeAndVOps`
and MachineCSE possible for these instructions.

As a consequence, `copyprop.mir` can't test what we want to test in
https://reviews.llvm.org/D155140, so we replace `vssra.vi` with a
VCIX instruction (it has side effects).

Reviewers: jacquesguan, topperc, preames, asb, lukel97

Reviewed By: topperc, lukel97

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


  Commit: 6b961e2abfffd8b5a508b5958849b13b0feafa50
      https://github.com/llvm/llvm-project/commit/6b961e2abfffd8b5a508b5958849b13b0feafa50
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    M clang/test/Modules/pr67893.cppm
    R clang/test/Modules/pr75057.cppm
    M clang/test/Modules/search-partitions.cpp

  Log Message:
  -----------
  Revert "[C++20] [Modules] Don't skip pragma diagnostic mappings"
and "[NFC] [C++20] [Modules] Use new class CXX20ModulesGenerator to
generate module file for C++20 modules instead of PCHGenerator"

This reverts commit fb21343473e33e9a886b42d2fe95d1cec1cd0030.
and commit 18268ac0f48d93c2bcddb69732761971669c09ab.

It looks like there are some problems about linking the compiler


  Commit: 2524146b256002bfc70b38008425291f5b3dd08c
      https://github.com/llvm/llvm-project/commit/2524146b256002bfc70b38008425291f5b3dd08c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-29 (Mon, 29 Apr 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vector-i8-index-cornercase.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/vreductions-int-vp.ll

  Log Message:
  -----------
  [RISCV] Add DAG combine for (vmv_s_x_vl (undef) (vmv_x_s X). (#90524)

We can use the original vector as long as the type of X matches the
result type of the vmv_s_x_vl.


  Commit: 4a84d8e4c28d873eacfce53f9fd902d67a08a859
      https://github.com/llvm/llvm-project/commit/4a84d8e4c28d873eacfce53f9fd902d67a08a859
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h
    M llvm/test/MC/LoongArch/Macros/macros-la-bad.s
    M llvm/test/MC/LoongArch/Macros/macros-la.s
    M llvm/test/MC/LoongArch/Misc/tls-symbols.s
    M llvm/test/MC/LoongArch/Relocations/relocations.s

  Log Message:
  -----------
  [LoongArch] Support parsing la.tls.desc pseudo instruction

Simultaneously implemented parsing support for the `%desc_*` modifiers.

Reviewers: SixWeining, heiher, xen0n

Reviewed By: xen0n, SixWeining

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


  Commit: ec527b21bb4196355184aa95ef31aa561b8e8b7b
      https://github.com/llvm/llvm-project/commit/ec527b21bb4196355184aa95ef31aa561b8e8b7b
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    A clang/test/Modules/pr75057.cppm

  Log Message:
  -----------
  [C++20] [Modules] Don't skip pragma diagnostic mappings

Close https://github.com/llvm/llvm-project/issues/75057

Previously, I thought the diagnostic mappings is not meaningful with
modules incorrectly. And this problem get revealed by another change
recently. So this patch tried to rever the previous "optimization"
partially.


  Commit: f4843acd839f4f8687815560b69fa96ed3cbf8cf
      https://github.com/llvm/llvm-project/commit/f4843acd839f4f8687815560b69fa96ed3cbf8cf
  Author: Christian Sigg <chsigg at users.noreply.github.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel

  Log Message:
  -----------
  [lldb][bazel] Fix BUILD after 975eca0e6a3459e59e96b0df33ea0cfbd157c597. (#90564)


  Commit: ce12b12d0d786773b60adead18e994d6e4a0e228
      https://github.com/llvm/llvm-project/commit/ce12b12d0d786773b60adead18e994d6e4a0e228
  Author: Kareem Ergawy <kareem.ergawy at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir

  Log Message:
  -----------
  [mlir][OpenMP] Extend `omp.private` with a `dealloc` region (#90456)

Extends `omp.private` with a new region: `dealloc` where deallocation
logic for Fortran deallocatables will be outlined (this will happen in
later PRs).


  Commit: 09f160c6298255f520b379b88161fbd1c365b308
      https://github.com/llvm/llvm-project/commit/09f160c6298255f520b379b88161fbd1c365b308
  Author: Balázs Kéri <balazs.keri at ericsson.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/docs/analyzer/checkers.rst
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/test/Analysis/analyzer-config.c
    M clang/test/Analysis/analyzer-enabled-checkers.c
    M clang/test/Analysis/std-c-library-functions-arg-enabled-checkers.c
    M clang/test/Analysis/std-c-library-functions-arg-weakdeps.c
    M clang/test/Analysis/std-c-library-functions-vs-stream-checker.c
    M clang/test/Analysis/stream-errno-note.c
    M clang/test/Analysis/stream-errno.c
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-invalidate.c
    M clang/test/Analysis/stream-non-posix-function.c
    M clang/test/Analysis/stream-noopen.c
    M clang/test/Analysis/stream-note.c
    M clang/test/Analysis/stream-pedantic.c
    M clang/test/Analysis/stream-stdlibraryfunctionargs.c
    M clang/test/Analysis/stream.c
    M clang/test/Analysis/stream.cpp
    M clang/www/analyzer/alpha_checks.html
    M clang/www/analyzer/open_projects.html

  Log Message:
  -----------
  [clang][analyzer] Move StreamChecker out of the alpha package. (#89247)


  Commit: ff6c0cac7037e78688f589fd635c82e7c1cb42b0
      https://github.com/llvm/llvm-project/commit/ff6c0cac7037e78688f589fd635c82e7c1cb42b0
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M lldb/docs/resources/lldbgdbremote.md

  Log Message:
  -----------
  [lldb][Docs] Remove more subtitles from packets doc (#90443)

This removes various subtitles or converts them to bold text so that the
table of contents is less cluttered.

This includes "Example", "Notes", "Priority To Implement" and
"Response".


  Commit: eb148aecb3603c2ba6ecbdaebd3b8a87f44349bc
      https://github.com/llvm/llvm-project/commit/eb148aecb3603c2ba6ecbdaebd3b8a87f44349bc
  Author: wanglei <wanglei at loongson.cn>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    A clang/test/CodeGen/LoongArch/tls-dialect.c
    M clang/test/Driver/tls-dialect.c
    M llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h
    M llvm/test/CodeGen/LoongArch/tls-models.ll

  Log Message:
  -----------
  [LoongArch][Codegen] Add support for TLSDESC

The implementation only enables when the `-enable-tlsdesc` option is
passed and the TLS model is `dynamic`.

LoongArch's GCC has the same option(-mtls-dialet=) as RISC-V.

Reviewers: heiher, MaskRay, SixWeining

Reviewed By: SixWeining, MaskRay

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


  Commit: 91a8cb781dbc981356207e0c3608d92ed6d26042
      https://github.com/llvm/llvm-project/commit/91a8cb781dbc981356207e0c3608d92ed6d26042
  Author: Abid Qadeer <haqadeer at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/lib/Optimizer/Transforms/CMakeLists.txt
    A flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp
    A flang/lib/Optimizer/Transforms/DebugTypeGenerator.h
    A flang/test/Transforms/debug-fn-info.f90
    M flang/test/Transforms/debug-line-table-inc-file.fir

  Log Message:
  -----------
  Reapply "[flang] Improve debug info for functions." with regression fixed. (#90484)

The original PR #90083 had to be reverted in PR #90444 as it caused one
of the gfortran tests to fail. The issue was using `isIntOrIndex` for
checking for integer type. It allowed index type which later caused
assertion when calling `getIntOrFloatBitWidth`. I have now replaced it
with `isInteger` which should fix this regression.


  Commit: 09e7d86b99c6e6d4f4a3296647d1b7d803c5bac5
      https://github.com/llvm/llvm-project/commit/09e7d86b99c6e6d4f4a3296647d1b7d803c5bac5
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/unittests/Transforms/Utils/LocalTest.cpp

  Log Message:
  -----------
  [RemoveDIs] Fix findDbgValues to return dbg_assign records too (#90471)

In the debug intrinsic class heirachy, a dbg.assign is a (inherits from)
dbg.value, so `findDbgValues` returns dbg.values and dbg.assigns (by
design). That hierarchy doesn't exist for DbgRecords - fix findDbgValues
to return dbg_assign records as well as dbg_values and add unittest.


  Commit: 853344d3ae8bb655b2d15175880bd3f65ab66434
      https://github.com/llvm/llvm-project/commit/853344d3ae8bb655b2d15175880bd3f65ab66434
  Author: Kristof Beyls <kristof.beyls at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/docs/GettingInvolved.rst

  Log Message:
  -----------
  [docs] Document which online sync-ups are no longer happening (#89361)

Some of the online sync-ups on our Getting Involved page seem to no
longer be happening. Document them as no longer happening, so that
people don't get confused when dialing in to one of these.


  Commit: 6c3110464bac3600685af9650269b0b2b8669d34
      https://github.com/llvm/llvm-project/commit/6c3110464bac3600685af9650269b0b2b8669d34
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/SourceLocation.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/include/clang/Serialization/ModuleFile.h
    M clang/include/clang/Serialization/SourceLocationEncoding.h
    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/lib/Serialization/ModuleFile.cpp
    A clang/test/Modules/no-transitive-source-location-change.cppm
    M clang/test/Modules/pr61067.cppm
    M clang/unittests/Serialization/SourceLocationEncodingTest.cpp

  Log Message:
  -----------
  [Modules] No transitive source location change (#86912)

This is part of "no transitive change" patch series, "no transitive
source location change". I talked this with @Bigcheese in the tokyo's
WG21 meeting.

The idea comes from @jyknight posted on LLVM discourse. That for:

```
// A.cppm
export module A;
...

// B.cppm
export module B;
import A;
...

//--- C.cppm
export module C;
import C;
```

Almost every time A.cppm changes, we need to recompile `B`. Due to we
think the source location is significant to the semantics. But it may be
good if we can avoid recompiling `C` if the change from `A` wouldn't
change the BMI of B.

# Motivation Example

This patch only cares source locations. So let's focus on source
location's example. We can see the full example from the attached test.

```
//--- A.cppm
export module A;
export template <class T>
struct C {
    T func() {
        return T(43);
    }
};
export int funcA() {
    return 43;
}

//--- A.v1.cppm
export module A;

export template <class T>
struct C {
    T func() {
        return T(43);
    }
};
export int funcA() {
    return 43;
}

//--- B.cppm
export module B;
import A;

export int funcB() {
    return funcA();
}

//--- C.cppm
export module C;
import A;
export void testD() {
    C<int> c;
    c.func();
}
```

Here the only difference between `A.cppm` and `A.v1.cppm` is that
`A.v1.cppm` has an additional blank line. Then the test shows that two
BMI of `B.cppm`, one specified `-fmodule-file=A=A.pcm` and the other
specified `-fmodule-file=A=A.v1.pcm`, should have the bit-wise same
contents.

However, it is a different story for C, since C instantiates templates
from A, and the instantiation records the source information from module
A, which is different from `A` and `A.v1`, so it is expected that the
BMI `C.pcm` and `C.v1.pcm` can and should differ.

# Internal perspective of status quo

To fully understand the patch, we need to understand how we encodes
source locations and how we serialize and deserialize them.

For source locations, we encoded them as:

```
|
|
| _____ base offset of an imported module
|
|
|
|_____ base offset of another imported module
|
|
|
|
| ___ 0
```

As the diagram shows, we encode the local (unloaded) source location
from 0 to higher bits. And we allocate the space for source locations
from the loaded modules from high bits to 0. Then the source locations
from the loaded modules will be mapped to our source location space
according to the allocated offset.

For example, for,

```
// a.cppm
export module a;
...

// b.cppm
export module b;
import a;
...
```

Assuming the offset of a source location (let's name the location as
`S`) in a.cppm is 45 and we will record the value `45` into the BMI
`a.pcm`. Then in b.cppm, when we import a, the source manager will
allocate a space for module 'a' (according to the recorded number of
source locations) as the base offset of module 'a' in the current source
location spaces. Let's assume the allocated base offset as 90 in this
example. Then when we want to get the location in the current source
location space for `S`, we can get it simply by adding `45` to `90` to
`135`. Finally we can get the source location for `S` in module B as
`135`.

And when we want to write module `b`, we would also write the source
location of `S` as `135` directly in the BMI. And to clarify the
location `S` comes from module `a`, we also need to record the base
offset of module `a`, 90 in the BMI of `b`.

Then the problem comes. Since the base offset of module 'a' is computed
by the number source locations in module 'a'. In module 'b', the
recorded base offset of module 'a' will change every time the number of
source locations in module 'a' increase or decrease. In other words, the
contents of BMI of B will change every time the number of locations in
module 'a' changes. This is pretty sensitive. Almost every change will
change the number of locations. So this is the problem this patch want
to solve.

Let's continue with the existing design to understand what's going on.
Another interesting case is:

```
// c.cppm
export module c;
import whatever;
import a;
import b;
...
```

In `c.cppm`, when we import `a`, we still need to allocate a base
location offset for it, let's say the value becomes to `200` somehow.
Then when we reach the location `S` recorded in module `b`, we need to
translate it into the current source location space. The solution is
quite simple, we can get it by `135 + (200 - 90) = 245`. In another
word, the offset of a source location in current module can be computed
as `Recorded Offset + Base Offset of the its module file - Recorded Base
Offset`.

Then we're almost done about how we handle the offset of source
locations in serializers.

# The high level design of current patch

>From the abstract level, what we want to do is to remove the hardcoded
base offset of imported modules and remain the ability to calculate the
source location in a new module unit. To achieve this, we need to be
able to find the module file owning a source location from the encoding
of the source location.

So in this patch, for each source location, we will store the local
offset of the location and the module file index. For the above example,
in `b.pcm`, the source location of `S` will be recorded as `135`
directly. And in the new design, the source location of `S` will be
recorded as `<1, 45>`. Here `1` stands for the module file index of `a`
in module `b`. And `45` means the offset of `S` to the base offset of
module `a`.

So the trade-off here is that, to make the BMI more independent, we need
to record more abstract information. And I feel it is worthy. The
recompilation problem of modules is really annoying and there are still
people complaining this. But if we can make this (including stopping
other changes transitively), I think this may be a killer feature for
modules. And from @Bigcheese , this should be helpful for clang explicit
modules too.

And the benchmarking side, I tested this patch against
https://github.com/alibaba/async_simple/tree/CXX20Modules. No
significant change on compilation time. The size of .pcm files becomes
to 204M from 200M. I think the trade-off is pretty fair.

# Some low level details

I didn't use another slot to record the module file index. I tried to
use the higher 32 bits of the existing source location encodings to
store that information. This design may be safe. Since we use `unsigned`
to store source locations but we use uint64_t in serialization. And
generally `unsigned` is 32 bit width in most platforms. So it might not
be a safe problem. Since all the bits we used to store the module file
index is not used before. So the new encodings may be:

```
   |-----------------------|-----------------------|
   |           A           |         B         | C |

  * A: 32 bit. The index of the module file in the module manager + 1. The +1
          here is necessary since we wish 0 stands for the current module file.
  * B: 31 bit. The offset of the source location to the module file containing it.
  * C: The macro bit. We rotate it to the lowest bit so that we can save some 
          space in case the index of the module file is 0.
```

(The B and C is the existing raw encoding for source locations)

Another reason to reuse the same slot of the source location is to
reduce the impact of the patch. Since there are a lot of places assuming
we can store and get a source location from a slot. And if I tried to
add another slot, a lot of codes breaks. I don't feel it is worhty.

Another impact of this decision is that, the existing small
optimizations for encoding source location may be invalided. The key of
the optimization is that we can turn large values into small values then
we can use VBR6 format to reduce the size. But if we decided to put the
module file index into the higher bits, then maybe it simply doesn't
work. An example may be the `SourceLocationSequence` optimization.

This will only affect the size of on-disk .pcm files. I don't expect
this impact the speed and memory use of compilations. And seeing my
small experiments above, I feel this trade off is worthy.

# Correctness

The mental model for handling source location offsets is not so complex
and I believe we can solve it by adding module file index to each stored
source location.

For the practical side, since the source location is pretty sensitive,
and the patch can pass all the in-tree tests and a small scale projects,
I feel it should be correct.

# Future Plans

I'll continue to work on no transitive decl change and no transitive
identifier change (if matters) to achieve the goal to stop the
propagation of unnecessary changes. But all of this depends on this
patch. Since, clearly, the source locations are the most sensitive
thing.

---

The release nots and documentation will be added seperately.


  Commit: 2464c1c153285bbabf1df4a61f1975903ffbe70e
      https://github.com/llvm/llvm-project/commit/2464c1c153285bbabf1df4a61f1975903ffbe70e
  Author: Johannes de Fine Licht <johannes at musicmedia.dk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/include/mlir/IR/OperationSupport.h

  Log Message:
  -----------
  [MLIR] Sprinkle extra asserts in OperationSupport.h (#90465)

Should hopefully help shave some minutes off developer debugging time in
the future.


  Commit: 92ca6fcb87a1b8b0cef3b0a8c960b4d7d0fc12a0
      https://github.com/llvm/llvm-project/commit/92ca6fcb87a1b8b0cef3b0a8c960b4d7d0fc12a0
  Author: Johannes de Fine Licht <johannes at musicmedia.dk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/test/Dialect/LLVMIR/constant-folding.mlir

  Log Message:
  -----------
  [MLIR][LLVM] Have LLVM::AddressOfOp implement ConstantLike (#90481)

For all means and purposes llvm.mlir.addressof acts like a constant, and
should be treated as such by passes. In particular, the operation should
be propagated rather than passed whenever possible.


  Commit: c9d92d215e6bfe14997bb79e6d6a050d1b449843
      https://github.com/llvm/llvm-project/commit/c9d92d215e6bfe14997bb79e6d6a050d1b449843
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    A mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir

  Log Message:
  -----------
  [mlir][test] Add TD example for peel+vectorize (depthwise conv) (#90200)

Adds an example that combines loop peeling and scalable vectorisation of
`linalg.depthwise_conv_2d_nhwc_hwc`. This is similar to
transform-op-peel-and-vectorize.mlir and is meant to demonstrate how to
avoid masking when vectorising using scalable vectors.


  Commit: 74e65eec48ee87c34e06a09ad25a1029506dd60d
      https://github.com/llvm/llvm-project/commit/74e65eec48ee87c34e06a09ad25a1029506dd60d
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.h
    M clang/test/AST/Interp/opencl.cl

  Log Message:
  -----------
  [clang][Interp] Handle Shifts in OpenCL correctly

We need to adjust the RHS to account for the LHS bitwidth.


  Commit: 29dda26c65fc50066792f558e95f9603a7d7effc
      https://github.com/llvm/llvm-project/commit/29dda26c65fc50066792f558e95f9603a7d7effc
  Author: Danial Klimkin <dklimkin at google.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M lldb/source/Host/posix/PipePosix.cpp

  Log Message:
  -----------
  Fix lock guads in PipePosix.cpp (#90572)

Guard object destroyed immediately after creation without naming.


  Commit: eaee8aa0afe111f9291d54ecef97a3640a0f6ce0
      https://github.com/llvm/llvm-project/commit/eaee8aa0afe111f9291d54ecef97a3640a0f6ce0
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplate.cpp
    A clang/test/SemaCXX/identical-type-primary-partial-specialization.cpp

  Log Message:
  -----------
  [Clang][Sema] fix a bug on template partial specialization (#89862)

attempt to fix
https://github.com/llvm/llvm-project/issues/68885#issuecomment-1764201896
Deduction of NTTP whose type is `decltype(auto)` would create an
implicit cast expression to dependent type and makes the type of primary
template definition (`InjectedClassNameSpecialization`) and its partial
specialization different. Prevent emitting cast expression to make clang
knows their types are identical by removing `CTAK == CTAK_Deduced` when
the type is `decltype(auto)`.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: a413c563bdcaac08f7c325c7d69e19f924435e59
      https://github.com/llvm/llvm-project/commit/a413c563bdcaac08f7c325c7d69e19f924435e59
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    A clang/test/SemaCXX/PR68885.cpp

  Log Message:
  -----------
  [Clang][Sema] Fix a bug on template partial specialization with issue on deduction of nontype template parameter (#90376)

Fix https://github.com/llvm/llvm-project/issues/68885
When build expression from a deduced argument whose kind is
`Declaration` and `NTTPType`(which declared as `decltype(auto)`) is
deduced as a reference type, `BuildExpressionFromDeclTemplateArgument`
just create a `DeclRef`. This is incorrect while we get type from the
expression since we can't get the original reference type from
`DeclRef`. Creating a `SubstNonTypeTemplateParmExpr` expression and make
the deduction correct. `Replacement` expression of
`SubstNonTypeTemplateParmExpr` just helps the deduction and may not be
same with the original expression.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: 64248d7dee09fef4900058ba98a67feb68eb617c
      https://github.com/llvm/llvm-project/commit/64248d7dee09fef4900058ba98a67feb68eb617c
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M lldb/include/lldb/Symbol/CompilerType.h
    M lldb/include/lldb/Symbol/Type.h
    M lldb/include/lldb/Symbol/TypeSystem.h
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
    M lldb/source/Symbol/CompilerType.cpp
    M lldb/source/Symbol/Type.cpp
    M lldb/source/Symbol/TypeSystem.cpp
    M lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp

  Log Message:
  -----------
  [PAC][lldb][Dwarf] Support `__ptrauth`-qualified types in user expressions (#84387)

Depends on #84384 and #90329

This adds support for `DW_TAG_LLVM_ptrauth_type` entries corresponding
to explicitly signed types (e.g. free function pointers) in lldb user
expressions. Applies PR https://github.com/apple/llvm-project/pull/8239
from Apple's downstream and also adds tests and related code.

---------

Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>


  Commit: f78949a07e33017a798c410a102c95455685a9b1
      https://github.com/llvm/llvm-project/commit/f78949a07e33017a798c410a102c95455685a9b1
  Author: Orlando Cazalet-Hyams <orlando.hyams at sony.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [NFC][Clang] Add FIXME comment to the workaround for issue #89774


  Commit: 7ac1fb01e9b70d09e6c4f39414bcd7c93787ef91
      https://github.com/llvm/llvm-project/commit/7ac1fb01e9b70d09e6c4f39414bcd7c93787ef91
  Author: Christian Sigg <chsigg at users.noreply.github.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/include/llvm/ADT/TypeSwitch.h
    M mlir/include/mlir/IR/Attributes.h
    M mlir/include/mlir/IR/Location.h
    M mlir/include/mlir/IR/Types.h
    M mlir/include/mlir/Tools/PDLL/AST/Types.h

  Log Message:
  -----------
  [mlir] Mark `isa/dyn_cast/cast/...` member functions deprecated. (#90413)

This also removes the member overload in TypeSwitch.

All other users have been removed in
fac349a169976f822fb27f03e623fa0d28aec1f3 and
bd9fdce69b4c4cdb572e715c5f453aaf9b77b83a.


  Commit: b2b463bd8f6b21f040b80c4493682cf74f8dced5
      https://github.com/llvm/llvm-project/commit/b2b463bd8f6b21f040b80c4493682cf74f8dced5
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Serialization/ASTWriter.cpp
    A clang/test/Modules/force-transitive-changes.cppm
    M clang/test/Modules/no-transitive-source-location-change.cppm

  Log Message:
  -----------
  [C++20] [Modules] Add signature to the BMI recording export imported
modules

After https://github.com/llvm/llvm-project/pull/86912,
for the following example,

```
export module A;
export import B;
```

The generated BMI of `A` won't change if the source location in `A`
changes. Further, we plan avoid more such changes.

However, it is slightly problematic since `export import` should
propagate all the changes.

So this patch adds a signature to the BMI of C++20 modules so that we
can propagate the changes correctly.


  Commit: fce0916969218fdb4b89ad0b3e18599204d4138d
      https://github.com/llvm/llvm-project/commit/fce0916969218fdb4b89ad0b3e18599204d4138d
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    M clang/test/Modules/pr67893.cppm
    M clang/test/Modules/search-partitions.cpp

  Log Message:
  -----------
  [NFC] [C++20] [Modules] Use new class CXX20ModulesGenerator to genera… (#90570)

…te module file for C++20 modules instead of PCHGenerator

Previously we're re-using PCHGenerator to generate the module file for
C++20 modules. But this is slighty more or less odd. This patch tries to
use a new class 'CXX20ModulesGenerator' to generate the module file for
C++20 modules.


  Commit: 21f8cedc4aa542f628035cd5dafd2d2529eb4397
      https://github.com/llvm/llvm-project/commit/21f8cedc4aa542f628035cd5dafd2d2529eb4397
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/test/Transforms/debug-fn-info.f90

  Log Message:
  -----------
  [flang] Fix debug-fn-info.f90 test

91a8cb781dbc981356207e0c3608d92ed6d26042 was originally written
before 8d5386669ed63548daf1bee415596582d6d78d7d landed. The latter
changed how main is emitted which changed the numbering of the
suprograms in the test output.

To fix this I've added a check for the new _QQmain and renumbered
the existing checks.


  Commit: 10aab63c9cb49d3ddfbe2cf8992de433efeef6f1
      https://github.com/llvm/llvm-project/commit/10aab63c9cb49d3ddfbe2cf8992de433efeef6f1
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/test/Modules/no-transitive-source-location-change.cppm

  Log Message:
  -----------
  [NFC] [tests] Don't try to remove and create the same directory

In the test of
clang/test/Modules/no-transitive-source-location-change.cppm, there were
reports about invalid directory names in windows. The reason may be that
we may remove and create the same directory. This patch tries to avoid
such patterns for that.


  Commit: f73e87f53f5d8a86c29251dedc9dbd264179203a
      https://github.com/llvm/llvm-project/commit/f73e87f53f5d8a86c29251dedc9dbd264179203a
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/DeclSpec.cpp
    M clang/test/Parser/altivec.c
    M clang/test/Parser/cxx-altivec.cpp
    M clang/test/Sema/zvector.c
    M clang/test/Sema/zvector2.c

  Log Message:
  -----------
  [Clang][Sema] Do not accept "vector _Complex" for AltiVec/ZVector (#90467)

The AltiVec (POWER) and ZVector (IBM Z) language extensions do not
support using the "vector" keyword when the element type is a complex
type, but current code does not verify this.

Add a Sema check and diagnostic for this case.

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


  Commit: 62dea99a7d7df9daedbb86133f3d46699cd2728d
      https://github.com/llvm/llvm-project/commit/62dea99a7d7df9daedbb86133f3d46699cd2728d
  Author: David Stuttard <david.stuttard at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.msaa.load.ll

  Log Message:
  -----------
  [AMDGPU] Fix gfx12 waitcnt type for image_msaa_load (#90201)

image_msaa_load is actually encoded as a VSAMPLE instruction and
requires the appropriate waitcnt variant.


  Commit: fb2d3056618e3d03ba9a695627c7b002458e59f0
      https://github.com/llvm/llvm-project/commit/fb2d3056618e3d03ba9a695627c7b002458e59f0
  Author: Danial Klimkin <dklimkin at google.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/test/CodeGenCoroutines/coro-elide-thinlto.cpp

  Log Message:
  -----------
  Fix output in coro-elide-thinlto.cpp (#90579)

Current dir can be read-only. Use a temp path instead.


  Commit: f10685f3e606e9e50906d9bf4e302a4281664152
      https://github.com/llvm/llvm-project/commit/f10685f3e606e9e50906d9bf4e302a4281664152
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [X86] lowerAtomicArith - use DAG::getNegative() helper. NFC.


  Commit: 0061616770c15b334c4ad1703a1a2502b6cd4485
      https://github.com/llvm/llvm-project/commit/0061616770c15b334c4ad1703a1a2502b6cd4485
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [X86] combinePredicateReduction - use DAG::getNegative() helper. NFC.


  Commit: 3fca9d71447b7d3536e912d73ffd56a351e10bce
      https://github.com/llvm/llvm-project/commit/3fca9d71447b7d3536e912d73ffd56a351e10bce
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [X86] combineMul - use DAG::getNegative() helper. NFC.


  Commit: 066dc1e05b8c5feca1f3957a10edc492705a5db2
      https://github.com/llvm/llvm-project/commit/066dc1e05b8c5feca1f3957a10edc492705a5db2
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [X86] combineMulToPMADDWD/combineMulToPMULDQ/reduceVMULWidth - pull out repeated SDLoc(). NFC.


  Commit: 2cb97c7e29029dc552c66b3ddf6030d826538d47
      https://github.com/llvm/llvm-project/commit/2cb97c7e29029dc552c66b3ddf6030d826538d47
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [X86] Add TODO for getTargetConstantFromBasePtr to support non-zero offsets.

As noted on #66991 - we sometimes share vector constant pool entries, referencing subvectors within them via pointer offsets


  Commit: 34c89eff64cce7debb8e2d5a0d1c4d896a23e432
      https://github.com/llvm/llvm-project/commit/34c89eff64cce7debb8e2d5a0d1c4d896a23e432
  Author: Monad <yanwqmonad at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
    M llvm/test/Transforms/InstCombine/trunc.ll

  Log Message:
  -----------
  [InstCombine] Fold `trunc nuw/nsw (x xor y) to i1` to `x != y` (#90408)

Fold:
``` llvm
define i1 @src(i8 %x, i8 %y) {
  %xor = xor i8 %x, %y
  %r = trunc nuw/nsw i8 %xor to i1
  ret i1 %r
}

define i1 @tgt(i8 %x, i8 %y) {
  %r = icmp ne i8 %x, %y
  ret i1 %r
}
```

Proof: https://alive2.llvm.org/ce/z/dcuHmn


  Commit: 66e1d2c96a194f572be5b373705f493b1a4dc811
      https://github.com/llvm/llvm-project/commit/66e1d2c96a194f572be5b373705f493b1a4dc811
  Author: Paul Walker <paul.walker at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/SVEInstrFormats.td

  Log Message:
  -----------
  [NFC][LLVM][SVE] Simplify isel for BSL and NBSL. (#90233)


  Commit: 7faf34307ea974886a10d8d06352a67cdeaf1c23
      https://github.com/llvm/llvm-project/commit/7faf34307ea974886a10d8d06352a67cdeaf1c23
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [RISCV] Remove -riscv-insert-vsetvl-strict-asserts flag (#90171)

This flag has been enabled by default for almost two years now since
1f06398e96d4508d22f42b760f70eb5d4e7b1dc9, and at this stage we probably
shouldn't be falling back to the fixups.

This removes the flag so we always perform the assertion, as well as
making sure that CurInfo is always valid on exit: We shouldn't leave
emitVSETVLIs with an uninitialized VSETVLIInfo.


  Commit: 2f9462e9e4f2b2b493673c39d4ad665175eb0b59
      https://github.com/llvm/llvm-project/commit/2f9462e9e4f2b2b493673c39d4ad665175eb0b59
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/Opcodes.td
    M clang/test/AST/Interp/opencl.cl

  Log Message:
  -----------
  [clang][Interp] Fix initializing vectors from a list of other vectors


  Commit: af5d41e0caf22536fbfb6e65aa10eff78118c822
      https://github.com/llvm/llvm-project/commit/af5d41e0caf22536fbfb6e65aa10eff78118c822
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/CodeGenCXX/mangle-ms-vector-types.cpp

  Log Message:
  -----------
  [clang][Interp] Support CXXScalarValueInitExprs of vector type


  Commit: 6fab3f2a2b04048aaa7d76d067f6cd4704bb4002
      https://github.com/llvm/llvm-project/commit/6fab3f2a2b04048aaa7d76d067f6cd4704bb4002
  Author: yronglin <yronglin777 at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [NFC][Clang] Update P2718R0 implementation status to partial supported (#90577)

Once https://github.com/llvm/llvm-project/issues/85613 fixed, we can
mark this feature fully supported.

Signed-off-by: yronglin <yronglin777 at gmail.com>


  Commit: f3ac55fab8c30e71987120f76da70b5b6e9075f7
      https://github.com/llvm/llvm-project/commit/f3ac55fab8c30e71987120f76da70b5b6e9075f7
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/test/tools/lto/discard-value-names.ll

  Log Message:
  -----------
  [LTO] Reset DiscardValueNames in optimize(). (#78705)

libLTO parses options late, so at the moment the option is ignored. To
fix that, re-set it in optimize(), as at this point the options have been
parsed. When LTOCodeGenerator's constructor executes, the options
haven't been parsed by the linker to libLTO yet.

Note that we keep the value name of `%add = add..` because when the
module is imported, DiscardValueNames is still set to false (the default
when building with assertions).

I tried to improve this in libLTO, but I am not sure if there's a
suitable callback when all options have been set.

PR: https://github.com/llvm/llvm-project/pull/78705


  Commit: bb95f5df732d9188b27c7cd34814ead8b2c4d4ce
      https://github.com/llvm/llvm-project/commit/bb95f5df732d9188b27c7cd34814ead8b2c4d4ce
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeStmtGen.cpp
    M clang/test/AST/Interp/cxx23.cpp

  Log Message:
  -----------
  [clang][Interp] Visit LabelStmt sub statements


  Commit: 5cd074fa57c2a22312f479a9529c0eac10013043
      https://github.com/llvm/llvm-project/commit/5cd074fa57c2a22312f479a9529c0eac10013043
  Author: Maya Amrami <62667278+amrami at users.noreply.github.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/test/Dialect/MemRef/resolve-dim-ops.mlir

  Log Message:
  -----------
  [mlir] Add ReifyRankedShapedTypeOpInterface to tosa::TransposeOp (#88890)


  Commit: 82219e547bf42102a913fc6d5e3e81c3c888e5d6
      https://github.com/llvm/llvm-project/commit/82219e547bf42102a913fc6d5e3e81c3c888e5d6
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/test/Analysis/LoopAccessAnalysis/different-strides-safe-dep-due-to-backedge-taken-count.ll

  Log Message:
  -----------
  [LAA] Pass maximum stride to isSafeDependenceDistance. (#90036)

As discussed in https://github.com/llvm/llvm-project/pull/88039, support
different strides with isSafeDependenceDistance by passing the maximum
of both strides.

isSafeDependenceDistance tries to prove that
    |Dist| > BackedgeTakenCount * Step
holds. Chosing the maximum stride computes the maximum range accesed by
the loop for all strides.

PR: https://github.com/llvm/llvm-project/pull/90036


  Commit: 5e03c0af4745b97f93c06b43e0f2a02abc881292
      https://github.com/llvm/llvm-project/commit/5e03c0af4745b97f93c06b43e0f2a02abc881292
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/RISCV/rvv/pr90559.ll

  Log Message:
  -----------
  [DAGCombiner] Fix mayAlias not accounting for scalable MMOs with offsets (#90573)

In #70452 DAGCombiner::mayAlias was taught to handle scalable sizes, but
when it checks via AA->isNoAlias it didn't take into account the case
where the size is scalable but there was an offset too.

For the fixed length case the offset was just accounted for by adding to
the LocationSize, but for the scalable case there doesn't seem to be a
way to represent both a scalable and fixed part in it. So this patch
works around it by bailing if there is an offset.

Fixes #90559


  Commit: 61b2a0e3336aaa0132bbed06dc185aca4ff5d2db
      https://github.com/llvm/llvm-project/commit/61b2a0e3336aaa0132bbed06dc185aca4ff5d2db
  Author: Tomas Matheson <Tomas.Matheson at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/ARM/ARMFeatures.td
    M llvm/utils/TableGen/ARMTargetDefEmitter.cpp

  Log Message:
  -----------
  [AArch64][TargetParser] autogen ArchExtKind enum (#90314)

Thanks to ExtensionSet::toLLVMFeatureList, all values of ArchExtKind
should correspond to a particular -target-feature. The valid values of
-target-feature are in turn defined by SubtargetFeature defs.

Therefore we can generate ArchExtKind from the tablegen data. This is
done by adding an Extension class which derives from SubtargetFeature.

Because the Has* FieldNames do not always correspond to the AEK_
names ("extensions", as defined in TargetParser), and AEK_ names do
not always correspond to -march strings, some additional enum entries
have been added to remap the names. I have renamed these to make the
naming consistent, but split them into a separate PR to keep the diff
reasonable (#90320)


  Commit: 1c17252cf049e318695b94a7e8a1c7343452e8bf
      https://github.com/llvm/llvm-project/commit/1c17252cf049e318695b94a7e8a1c7343452e8bf
  Author: Maxim Moskalets <89240935+maxmosk at users.noreply.github.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/Tooling/CommonOptionsParser.h

  Log Message:
  -----------
  [NFC] Update comment in CommonOptionsParser to match documentation (#90441)

See https://clang.llvm.org/docs/LibTooling.html


  Commit: e50a857fb16bcfe7cfc99bf87db620bc82d1cff5
      https://github.com/llvm/llvm-project/commit/e50a857fb16bcfe7cfc99bf87db620bc82d1cff5
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/test/Misc/target-invalid-cpu-note.c
    M clang/test/Preprocessor/aarch64-target-features.c
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h
    M llvm/lib/Target/AArch64/AArch64Processors.td
    M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
    M llvm/lib/TargetParser/Host.cpp
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [AArch64] Add support for Cortex-R82AE and improve Cortex-R82 (#90440)


  Commit: adabdc12f995b0af74c866201899e738796d0d5e
      https://github.com/llvm/llvm-project/commit/adabdc12f995b0af74c866201899e738796d0d5e
  Author: Jan Voung <jvoung at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/ModuleSummaryIndex.h
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/test/Assembler/thinlto-summary.ll
    M llvm/test/Bitcode/summary_version.ll
    M llvm/test/Bitcode/thinlto-alias.ll
    M llvm/test/Bitcode/thinlto-func-summary-vtableref-pgo.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-partial-sample-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph.ll
    M llvm/test/Bitcode/thinlto-function-summary-originalnames.ll
    M llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
    M llvm/test/ThinLTO/X86/distributed_indexes.ll
    M llvm/test/tools/llvm-lto/thinlto.ll

  Log Message:
  -----------
  Use an abbrev to reduce size of VALUE_GUID records in ThinLTO summaries (#90497)

GUID often have content in the higher bits of a 64-bit entry so using
the unabbrev encoding is inefficient (lots of VBR control bits).
Instead, use an abbrev with two 32-bit fixed width chunks.
The abbrev also helps encode the "count" in one place instead of
in every record.

Reduces size of distributed backend summary files by 8.7% in one
example app.

Co-authored-by: Jan Voung <jvoung at google.com>


  Commit: e4c0f4a2ecaf0f9d0a80f57a028bb7bdbe74a7e3
      https://github.com/llvm/llvm-project/commit/e4c0f4a2ecaf0f9d0a80f57a028bb7bdbe74a7e3
  Author: Congcong Cai <congcongcai0907 at 163.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp

  Log Message:
  -----------
  [NFC] fix typo in clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp (#90606)


  Commit: 7ae32bf7581e03d92c78346a72ea20798520b978
      https://github.com/llvm/llvm-project/commit/7ae32bf7581e03d92c78346a72ea20798520b978
  Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/decorators.py

  Log Message:
  -----------
  [lldb] Fixed SyntaxWarning invalid escape sequence '\s' in decorators.py (#90607)


  Commit: 35e6bae62c8effa364ded79cc3b0bb988ea88998
      https://github.com/llvm/llvm-project/commit/35e6bae62c8effa364ded79cc3b0bb988ea88998
  Author: Tomas Matheson <tomas.matheson at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/ARM/ARMFeatures.td
    M llvm/utils/TableGen/ARMTargetDefEmitter.cpp

  Log Message:
  -----------
  Revert "[AArch64][TargetParser] autogen ArchExtKind enum (#90314)"

This reverts commit 61b2a0e3336aaa0132bbed06dc185aca4ff5d2db.

Reason: AArch64TargetParserDef.inc not found while building clang


  Commit: b60a2b931d68b9e119d6e2e6e17126937a646ff9
      https://github.com/llvm/llvm-project/commit/b60a2b931d68b9e119d6e2e6e17126937a646ff9
  Author: Nico Weber <thakis at chromium.org>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    A llvm/utils/gn/secondary/lldb/include/lldb/API/BUILD.gn
    M llvm/utils/gn/secondary/lldb/source/API/BUILD.gn
    M llvm/utils/gn/secondary/lldb/utils/TableGen/BUILD.gn

  Log Message:
  -----------
  [gn] port 975eca0e6a3 (-gen-lldb-sbapi-dwarf-enum)


  Commit: 2aabfc811670beb843074c765c056fff4a7b443b
      https://github.com/llvm/llvm-project/commit/2aabfc811670beb843074c765c056fff4a7b443b
  Author: Jan Voung <jvoung at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/include/llvm/IR/ModuleSummaryIndex.h
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/test/Assembler/thinlto-summary.ll
    M llvm/test/Bitcode/summary_version.ll
    M llvm/test/Bitcode/thinlto-alias.ll
    M llvm/test/Bitcode/thinlto-func-summary-vtableref-pgo.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-partial-sample-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-pgo.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph-sample-profile-summary.ll
    M llvm/test/Bitcode/thinlto-function-summary-callgraph.ll
    M llvm/test/Bitcode/thinlto-function-summary-originalnames.ll
    M llvm/test/Bitcode/thinlto-function-summary-paramaccess.ll
    M llvm/test/ThinLTO/X86/distributed_indexes.ll
    M llvm/test/tools/llvm-lto/thinlto.ll

  Log Message:
  -----------
  Revert "Use an abbrev to reduce size of VALUE_GUID records in ThinLTO summaries" (#90610)

Reverts llvm/llvm-project#90497
Broke some LLD tests.


  Commit: c106abfe9f3d3ed78a946009f7625088f28e9065
      https://github.com/llvm/llvm-project/commit/c106abfe9f3d3ed78a946009f7625088f28e9065
  Author: Dmitry Vasilyev <dvassiliev at accesssoftek.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbtest.py

  Log Message:
  -----------
  [lldb] Fixed SyntaxWarning invalid escape sequence '\l' in lldbtest.py (#90609)


  Commit: c12bc57e23f8c37380ac25e774a60a684fce7bd3
      https://github.com/llvm/llvm-project/commit/c12bc57e23f8c37380ac25e774a60a684fce7bd3
  Author: Eleanor Bonnici <eleanor.bonnici at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
    M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMPredicates.td
    M llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp
    M llvm/lib/Target/ARM/ARMRegisterInfo.td
    M llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
    A llvm/test/CodeGen/ARM/pacbti-indirect-tail-calls-function-flags.ll
    A llvm/test/CodeGen/ARM/pacbti-indirect-tail-calls-module-flags1.ll
    A llvm/test/CodeGen/ARM/pacbti-indirect-tail-calls-module-flags2.ll

  Log Message:
  -----------
  Do not use R12 for indirect tail calls with PACBTI (#82661)

When compiling for thumbv8.1m with +pacbti and making an indirect tail
call, the compiler was free to put the function pointer into R12.

This is incorrect because R12 is restored to contain authentication code
for the caller's return address.

This patch excludes R12 from the set of registers the compiler can put
the function pointer in.

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


  Commit: d333a0de6829616427182b26923b14d779ce1dbb
      https://github.com/llvm/llvm-project/commit/d333a0de6829616427182b26923b14d779ce1dbb
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/Basic/SourceLocation.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/include/clang/Serialization/ModuleFile.h
    M clang/include/clang/Serialization/SourceLocationEncoding.h
    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/lib/Serialization/ModuleFile.cpp
    R clang/test/Modules/no-transitive-source-location-change.cppm
    M clang/test/Modules/pr61067.cppm
    M clang/unittests/Serialization/SourceLocationEncodingTest.cpp

  Log Message:
  -----------
  Revert "[Modules] No transitive source location change (#86912)"

This reverts commit 6c3110464bac3600685af9650269b0b2b8669d34.

Required by the post commit comments: https://github.com/llvm/llvm-project/pull/86912


  Commit: 8d28e5861f8b117a547850ffbb9a332aa6e91459
      https://github.com/llvm/llvm-project/commit/8d28e5861f8b117a547850ffbb9a332aa6e91459
  Author: WANG Rui <wangrui at loongson.cn>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchSubtarget.h

  Log Message:
  -----------
  [LoongArch] Apply clang formatting to LoongArch target. NFC


  Commit: a7b968a57834a0e522505b56fab0ca4b979cb68f
      https://github.com/llvm/llvm-project/commit/a7b968a57834a0e522505b56fab0ca4b979cb68f
  Author: Alexandre Eichenberger <alexe at us.ibm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
    M mlir/test/Dialect/MemRef/normalize-memrefs-ops.mlir

  Log Message:
  -----------
  Adding memref normalization of affine.prefetch (#89675)

Added support for memref-normalization for prefetch.

Signed-off-by: Alexandre Eichenberger <alexe at us.ibm.com>


  Commit: ea81dafd52471db64ed31b4fabb11ee762528066
      https://github.com/llvm/llvm-project/commit/ea81dafd52471db64ed31b4fabb11ee762528066
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/MIR/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 6ea0c0a28343


  Commit: 622ec1f029b4ba0ac211a2da5abe593846a109f6
      https://github.com/llvm/llvm-project/commit/622ec1f029b4ba0ac211a2da5abe593846a109f6
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/unittests/BinaryFormat/BUILD.gn

  Log Message:
  -----------
  [gn build] Port a5cc95147ed5


  Commit: 6c32a1fdf712e58a324fc0f6e3dfc83ed7d56b1e
      https://github.com/llvm/llvm-project/commit/6c32a1fdf712e58a324fc0f6e3dfc83ed7d56b1e
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrFP.td
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.h
    M llvm/lib/Target/SystemZ/SystemZInstrVector.td
    M llvm/lib/Target/SystemZ/SystemZOperators.td
    M llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
    M llvm/test/CodeGen/SystemZ/anyregcc.ll
    A llvm/test/CodeGen/SystemZ/foldmem-peep.mir
    M llvm/test/CodeGen/SystemZ/fp-add-01.ll
    M llvm/test/CodeGen/SystemZ/fp-add-02.ll
    M llvm/test/CodeGen/SystemZ/fp-mul-01.ll
    M llvm/test/CodeGen/SystemZ/fp-mul-03.ll
    M llvm/test/CodeGen/SystemZ/fp-sub-01.ll
    M llvm/test/CodeGen/SystemZ/fp-sub-02.ll
    A llvm/test/CodeGen/SystemZ/machine-combiner-reassoc-fp.ll
    M llvm/test/CodeGen/SystemZ/stackmap.ll

  Log Message:
  -----------
  [SystemZ] Enable MachineCombiner for FP reassociation (#83546)

Enable MachineCombining for FP add, sub and mul.

In order for this to work, the default instruction selection of reg/mem opcodes is disabled for ISD nodes that carry the flags that allow reassociation. The reg/mem folding is instead done after MachineCombiner by PeepholeOptimizer. SystemZInstrInfo optimizeLoadInstr() and foldMemoryOperandImpl() ("LoadMI version") have been implemented for this purpose also by this patch.


  Commit: 1b942ae3843ca943a249288612e69df0b2fc188b
      https://github.com/llvm/llvm-project/commit/1b942ae3843ca943a249288612e69df0b2fc188b
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/TargetParser/RISCVISAInfo.cpp

  Log Message:
  -----------
  [RISCV] Use consume_front to parse rv32/rv64 in RISCVISAInfo::parse*ArchString. NFC (#90562)

This replaces some starts_with calls wth consume_front. This allows us
to remove a later assumption that prefix was 4 characters. We would
eventually need to fix this anyway if we ever support rv128.

Noticed while reviewing the RISCVISAInfo code for other reasons.


  Commit: f815d1f71f644a6cfd2c22bf7898a1034be235ad
      https://github.com/llvm/llvm-project/commit/f815d1f71f644a6cfd2c22bf7898a1034be235ad
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/lib/Lower/Bridge.cpp
    M flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf

  Log Message:
  -----------
  [flang][cuda] Fix iv store in cuf kernel (#90551)

Store of the current induction value to the user IV was not placed
correctly in the body of the cuf kernel.

@ImanHosseini


  Commit: a9c73f66ce96421ba1e8952950d6df74e9043589
      https://github.com/llvm/llvm-project/commit/a9c73f66ce96421ba1e8952950d6df74e9043589
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/test/Fir/cuf.mlir

  Log Message:
  -----------
  [flang][cuda] Add fir.cuda_alloc/fir.cuda_free operations (#90525)

This patch introduces fir.cuda_alloc/fir.cuda_free. These operations
will be used instead of fir.alloca for local CUDA device, managed and
unified variables.


  Commit: 114a59d4d3743257d7cfdf94a7124060f04cc0db
      https://github.com/llvm/llvm-project/commit/114a59d4d3743257d7cfdf94a7124060f04cc0db
  Author: Matt Arsenault <Matthew.Arsenault at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineLICM.cpp

  Log Message:
  -----------
  MachineLICM: Remove unnecessary isReg checks

COPY operands are always registers.


  Commit: cc6113da826e82f19762eb813e6d932fcef09593
      https://github.com/llvm/llvm-project/commit/cc6113da826e82f19762eb813e6d932fcef09593
  Author: erichkeane <ekeane at nvidia.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/OpenACCClause.h
    M clang/lib/AST/OpenACCClause.cpp
    M clang/lib/AST/StmtPrinter.cpp
    A clang/test/AST/ast-print-openacc-compute-construct.cpp

  Log Message:
  -----------
  [OpenACC] Fix ast-print for OpenACC Clauses

Previously we weren't printing expressions correctly, so this patch adds
a test to ensure we do, and fixes how expressions are printed.


  Commit: 721c31e3bd37c00bff96e14e784e8d28e9a2b8ba
      https://github.com/llvm/llvm-project/commit/721c31e3bd37c00bff96e14e784e8d28e9a2b8ba
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M bolt/lib/Passes/ValidateMemRefs.cpp
    R bolt/test/X86/jt-symbol-disambiguation-4.s

  Log Message:
  -----------
  Revert "[BOLT] Avoid reference updates for non-JT symbol operands (#88838)"

This reverts commit 9d5411ffba0d94b60050cc873773935addca9533.

Breaks aarch64 buildbot:
https://lab.llvm.org/buildbot/#/builders/221/builds/22130


  Commit: d97f25b948554717a163b28dae3cf982a03434ca
      https://github.com/llvm/llvm-project/commit/d97f25b948554717a163b28dae3cf982a03434ca
  Author: Scott Egerton <9487234+ScottEgerton at users.noreply.github.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInsertSingleUseVDST.cpp
    M llvm/test/CodeGen/AMDGPU/insert-singleuse-vdst.mir

  Log Message:
  -----------
  [AMPGPU] Emit s_singleuse_vdst instructions when a register is used multiple times in the same instruction. (#89601)

Previously, multiple uses of a register within the same instruction were
being counted as multiple uses. This has been corrected to
only count as a single use as per the specification allowing for
more optimisation candidates.


  Commit: 5ada3289b107742929f2605aa4b2e3e903d4a690
      https://github.com/llvm/llvm-project/commit/5ada3289b107742929f2605aa4b2e3e903d4a690
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    A flang/test/Lower/OpenMP/Todo/reduction-array-intrinsic.f90

  Log Message:
  -----------
  [flang][OpenMP] ensure we hit the TODO for intrinsic array reduction (#90593)

Before this patch we crashed lowering intrinsic array reductions.

I think this lost during a rebase. I've added a test to make sure it
doesn't break again.

Also fixed the TODO message to be more accurate.


  Commit: df513f86da13822ed4f99bebd2ac93e53b8b6e0d
      https://github.com/llvm/llvm-project/commit/df513f86da13822ed4f99bebd2ac93e53b8b6e0d
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Transforms/Passes.h
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/include/flang/Tools/CLOptions.inc
    M flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp
    M flang/test/Driver/bbc-mlir-pass-pipeline.f90
    M flang/test/Driver/mlir-debug-pass-pipeline.f90
    M flang/test/Driver/mlir-pass-pipeline.f90
    M flang/test/Fir/basic-program.fir

  Log Message:
  -----------
  [flang] Adapt PolymorphicOpConversion to run on all top level ops (#90597)

We might use polymorphic ops in top-level operations other than
functions some time in the future. We need to ensure that these
operations can be lowered.

See RFC:

https://discourse.llvm.org/t/rfc-add-an-interface-for-top-level-container-operations

Some of the changes are from moving declaration and definition of the
constructor function into tablegen (as requested in code review when
altering another pass).


  Commit: 539f626ecd0c5148228fb6d2eda6228b4f2b2fca
      https://github.com/llvm/llvm-project/commit/539f626ecd0c5148228fb6d2eda6228b4f2b2fca
  Author: Min-Yih Hsu <min.hsu at sifive.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/VPIntrinsics.def
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    A llvm/test/CodeGen/RISCV/rvv/vp-cttz-elts.ll

  Log Message:
  -----------
  [VP][RISCV] Add vp.cttz.elts intrinsic and its RISC-V codegen (#90502)

This intrinsic is the VP version of `experimental.cttz.elts`.


  Commit: 97069a86193a617a9e4cf742a29db6116b2bf449
      https://github.com/llvm/llvm-project/commit/97069a86193a617a9e4cf742a29db6116b2bf449
  Author: Gaurav Shukla <gaurav at nod-labs.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/Utils/Utils.h
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
    M mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
    M mlir/include/mlir/Dialect/Utils/StaticValueUtils.h
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Dialect/Arith/Utils/CMakeLists.txt
    M mlir/lib/Dialect/Arith/Utils/Utils.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ConvertConv2DToImg2Col.cpp
    M mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
    M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/SplitReduction.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Tensor/Transforms/PackAndUnpackPatterns.cpp
    M mlir/lib/Dialect/Utils/ReshapeOpsUtils.cpp
    M mlir/lib/Dialect/Utils/StaticValueUtils.cpp
    M mlir/test/Conversion/MemRefToLLVM/expand-then-convert-to-llvm.mlir
    M mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Conversion/TosaToTensor/tosa-to-tensor.mlir
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-bufferize-empty-tensor-elimination.mlir
    M mlir/test/Dialect/Linalg/bubble-up-extract-slice-op.mlir
    M mlir/test/Dialect/Linalg/collapse-dim.mlir
    M mlir/test/Dialect/Linalg/convert-conv2d-to-img2col.mlir
    M mlir/test/Dialect/Linalg/data-layout-propagation.mlir
    M mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
    M mlir/test/Dialect/Linalg/flatten-elementwise.mlir
    M mlir/test/Dialect/Linalg/fuse-with-reshape-by-collapsing.mlir
    M mlir/test/Dialect/Linalg/fusion-push-reshape.mlir
    M mlir/test/Dialect/Linalg/reshape_control_fusion.mlir
    M mlir/test/Dialect/Linalg/reshape_fusion.mlir
    M mlir/test/Dialect/Linalg/resolve-shaped-type-result-dims.mlir
    M mlir/test/Dialect/Linalg/transform-op-split-reduction.mlir
    M mlir/test/Dialect/Linalg/vectorization-with-patterns.mlir
    M mlir/test/Dialect/MemRef/canonicalize.mlir
    M mlir/test/Dialect/MemRef/expand-strided-metadata.mlir
    M mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
    M mlir/test/Dialect/MemRef/invalid.mlir
    M mlir/test/Dialect/MemRef/ops.mlir
    M mlir/test/Dialect/MemRef/runtime-verification.mlir
    M mlir/test/Dialect/SparseTensor/sparse_reshape.mlir
    M mlir/test/Dialect/Tensor/bufferize.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Tensor/fold-empty-op.mlir
    M mlir/test/Dialect/Tensor/fold-reassociative-reshapes.mlir
    M mlir/test/Dialect/Tensor/invalid.mlir
    M mlir/test/Dialect/Tensor/ops.mlir
    M mlir/test/Dialect/Tensor/simplify-pack-unpack.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [MLIR] Generalize expand_shape to take shape as explicit input (#90040)

This patch generalizes tensor.expand_shape and memref.expand_shape to
consume the output shape as a list of SSA values. This enables us to
implement generic reshape operations with dynamic shapes using
collapse_shape/expand_shape pairs.

The output_shape input to expand_shape follows the static/dynamic
representation that's also used in `tensor.extract_slice`.

Differential Revision: https://reviews.llvm.org/D140821

---------

Signed-off-by: Gaurav Shukla<gaurav.shukla at amd.com>
Signed-off-by: Gaurav Shukla <gaurav.shukla at amd.com>
Co-authored-by: Ramiro Leal-Cavazos <ramiroleal050 at gmail.com>


  Commit: e9305fcf1b4a901f9424388137cecff120a4b303
      https://github.com/llvm/llvm-project/commit/e9305fcf1b4a901f9424388137cecff120a4b303
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

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

  Log Message:
  -----------
  [X86] combineAnd/combineAddOrSub - use DAG::getNegative() helper. NFC.


  Commit: 38c68e0746dc4ee19480dd4c9ee572895eb07136
      https://github.com/llvm/llvm-project/commit/38c68e0746dc4ee19480dd4c9ee572895eb07136
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    A llvm/test/CodeGen/X86/cmp16.ll

  Log Message:
  -----------
  [X86] Add icmp i16 test coverage

Based off #90355 - add basic tests for cases when to extend i16 comparisons to i32


  Commit: 91c52b966a09e37a96ed87bcf5b422de7711bf50
      https://github.com/llvm/llvm-project/commit/91c52b966a09e37a96ed87bcf5b422de7711bf50
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  [DAG] Pull out repeated SDLoc() from SHL/SRL/SRA combines. NFC.

We were always calling SDLoc(N) at the top of each visitSHL/SRL/SRA for the FoldConstantArithmetic call, so just reuse this as much as possible.


  Commit: fbe8d2a22189233590b15dad62c881a60c74b201
      https://github.com/llvm/llvm-project/commit/fbe8d2a22189233590b15dad62c881a60c74b201
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/include/flang/Tools/CrossToolHelpers.h

  Log Message:
  -----------
  [flang][OpenMP] Implement getOpenMPVersionAttribute helper function, NFC (#90086)


  Commit: 554be97d7f7f462ab4b8af34f79bca71f4c98977
      https://github.com/llvm/llvm-project/commit/554be97d7f7f462ab4b8af34f79bca71f4c98977
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/Utils.cpp
    M flang/lib/Lower/OpenMP/Utils.h

  Log Message:
  -----------
  [flang][OpenMP] Implement getIterationVariableSymbol helper function,… (#90087)

… NFC


  Commit: 33ccd037fcd2b4346065ebcdcbb5d8c1887c2639
      https://github.com/llvm/llvm-project/commit/33ccd037fcd2b4346065ebcdcbb5d8c1887c2639
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/OpenMP.cpp

  Log Message:
  -----------
  [flang][OpenMP] Pass symTable to all genXYZ functions, NFC (#90090)

This will unify the interface a bit more.


  Commit: 4631e7bad6984beca9f790d01d7e07dd47d407bb
      https://github.com/llvm/llvm-project/commit/4631e7bad6984beca9f790d01d7e07dd47d407bb
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/unittests/Frontend/OpenMPCompositionTest.cpp

  Log Message:
  -----------
  [Frontend][OpenMP] Add unit tests for getLeafConstructsOrSelf, NFC (#90110)


  Commit: 267329d7e0e7dc6cb6d59b7d71290d5e5f5c6be2
      https://github.com/llvm/llvm-project/commit/267329d7e0e7dc6cb6d59b7d71290d5e5f5c6be2
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

  Log Message:
  -----------
  [LegalizeDAG] Simplify interface to PromoteReduction. NFC

Return an SDValue instead of pushing to the Results vector. Let
the caller do the push.


  Commit: 6ab49fcbb237779042bfb7f5210321fe75f8f432
      https://github.com/llvm/llvm-project/commit/6ab49fcbb237779042bfb7f5210321fe75f8f432
  Author: Min Hsu <min.hsu at sifive.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/lib/IR/IntrinsicInst.cpp
    M llvm/unittests/IR/VPIntrinsicTest.cpp

  Log Message:
  -----------
  [VP] Fix unit test failures caused by #90502

Forgot to add vp.cttz.elts into the unittest. Also, I didn't specify the
positions of overloaded type parameters.


  Commit: 4cd11c986f78e19f53b3f3c92143b7b7c1ce54b1
      https://github.com/llvm/llvm-project/commit/4cd11c986f78e19f53b3f3c92143b7b7c1ce54b1
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M lldb/utils/lldb-dotest/lldb-dotest.in

  Log Message:
  -----------
  Thread '--lldb-obj-root' through lldb-dotest for manual testing


  Commit: dbe376651a830fb502ff26d89119d1b89da599bc
      https://github.com/llvm/llvm-project/commit/dbe376651a830fb502ff26d89119d1b89da599bc
  Author: Peiming Liu <peiming at google.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.h
    A mlir/test/Integration/Dialect/SparseTensor/CPU/padded_sparse_conv_2d.mlir

  Log Message:
  -----------
  [mlir][sparse] handle padding on sparse levels. (#90527)


  Commit: 30badf96bbaa5ddfd8049442e573fd270a89ddc8
      https://github.com/llvm/llvm-project/commit/30badf96bbaa5ddfd8049442e573fd270a89ddc8
  Author: Matthias Gehre <matthias.gehre at amd.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M mlir/lib/Dialect/Arith/Transforms/ExpandOps.cpp
    M mlir/test/Dialect/Arith/expand-ops.mlir

  Log Message:
  -----------
  [MLIR][Arith] expand-ops: Support mini/maxi (#90575)

Expand `arith.minsi`, `arith.minui`, `arith.maxsi`, `arith.maxui` into
`arith.cmpi` and `arith.select`.

---------

Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>


  Commit: 600cae7d421e6e280c6513510bb11b4dc7b16b48
      https://github.com/llvm/llvm-project/commit/600cae7d421e6e280c6513510bb11b4dc7b16b48
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [LangRef] Try to clarify mustprogress wording. (#90510)

Ensure it's clear that:

- Infinite loops in non-mustprogress functions are well-defined, even if
they're called by mustprogress functions.
- Infinite recursion in mustprogress functions is not well-defined.

Looking at D86233, it's clear this was the intent, but the "transitive"
wording is ambiguous. Instead, just explicitly state that infinite loops
written in non-mustprogress functions count as progress.


  Commit: 7dd4ce484c8913ced124f2f62ac4c3eaafa9ef5f
      https://github.com/llvm/llvm-project/commit/7dd4ce484c8913ced124f2f62ac4c3eaafa9ef5f
  Author: lntue <35648136+lntue at users.noreply.github.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M libc/src/__support/fixed_point/sqrt.h
    M libc/test/src/stdfix/ISqrtTest.h
    M libc/test/src/stdfix/SqrtTest.h
    M libc/test/src/stdfix/uksqrtui_test.cpp

  Log Message:
  -----------
  [libc][stdfix] Fix overflow problem for fixed point sqrt when the inputs are close to max. (#90558)

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


  Commit: 9af7f4061b0a8c5540ec544dab82d3f1b9531549
      https://github.com/llvm/llvm-project/commit/9af7f4061b0a8c5540ec544dab82d3f1b9531549
  Author: Hristo Hristov <hghristov.rmm at gmail.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M libcxx/docs/Status/Cxx2c.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/test/std/numerics/complex.number/complex.tuple/get.pass.cpp

  Log Message:
  -----------
  [libc++][NFC] Fixes a status page note and a minor copy & paste error in a test (#90399)

- Adds a status page note for P3142R0
- Fixes a copy & paste error in tuple protocol for `complex`


  Commit: a754ce04893fd2981b265a040f838fed85f53199
      https://github.com/llvm/llvm-project/commit/a754ce04893fd2981b265a040f838fed85f53199
  Author: Eli Friedman <efriedma at quicinc.com>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  [LangRef] Fix build warning.


  Commit: f565b79f9fc278d37e884276212455920b51b47a
      https://github.com/llvm/llvm-project/commit/f565b79f9fc278d37e884276212455920b51b47a
  Author: Luke Lau <luke at igalia.com>
  Date:   2024-05-01 (Wed, 01 May 2024)

  Changed paths:
    M llvm/include/llvm/Support/TypeSize.h
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-concat.ll

  Log Message:
  -----------
  [RISCV] Handle fixed length vectors with exact VLEN in lowerINSERT_SUBVECTOR (#84107)

This is the insert_subvector equivalent to #79949, where we can avoid
sliding up by the full LMUL amount if we know the exact subregister the
subvector will be inserted into.

This mirrors the lowerEXTRACT_SUBVECTOR changes in that we handle this
in two parts:

- We handle fixed length subvector types by converting the subvector to
a scalable vector. But unlike EXTRACT_SUBVECTOR, we may also need to
convert the vector being inserted into too.

- Whenever we don't need a vslideup because either the subvector fits
exactly into a vector register group *or* the vector is undef, we need
to emit an insert_subreg ourselves because RISCVISelDAGToDAG::Select
doesn't correctly handle fixed length subvectors yet: see d7a28f7ad

A subvector exactly fits into a vector register group if its size is a
known multiple of the size of a vector register, and this adds a new
overload for TypeSize::isKnownMultipleOf for scalable to scalable
comparisons to help reason about this.

I've left RISCVISelDAGToDAG::Select untouched for now (minus relaxing an
invariant), so that the insert_subvector and extract_subvector code
paths are the same.

We should teach it to properly handle fixed length subvectors in a
follow-up patch, so that the "exact subregsiter" logic is handled in one
place instead of being spread across both RISCVISelDAGToDAG.cpp and
RISCVISelLowering.cpp.


  Commit: 90ed22410ac7efe53fab7d6241166390842db49f
      https://github.com/llvm/llvm-project/commit/90ed22410ac7efe53fab7d6241166390842db49f
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-04-30 (Tue, 30 Apr 2024)

  Changed paths:
    M bolt/lib/Passes/ValidateMemRefs.cpp
    R bolt/test/X86/jt-symbol-disambiguation-4.s
    M clang/docs/ReleaseNotes.rst
    M clang/docs/analyzer/checkers.rst
    M clang/include/clang/AST/OpenACCClause.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/include/clang/StaticAnalyzer/Checkers/Checkers.td
    M clang/include/clang/Tooling/CommonOptionsParser.h
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/ByteCodeStmtGen.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/Opcodes.td
    M clang/lib/AST/OpenACCClause.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Sema/DeclSpec.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    M clang/test/AST/Interp/cxx23.cpp
    M clang/test/AST/Interp/opencl.cl
    A clang/test/AST/ast-print-openacc-compute-construct.cpp
    M clang/test/Analysis/analyzer-config.c
    M clang/test/Analysis/analyzer-enabled-checkers.c
    M clang/test/Analysis/std-c-library-functions-arg-enabled-checkers.c
    M clang/test/Analysis/std-c-library-functions-arg-weakdeps.c
    M clang/test/Analysis/std-c-library-functions-vs-stream-checker.c
    M clang/test/Analysis/stream-errno-note.c
    M clang/test/Analysis/stream-errno.c
    M clang/test/Analysis/stream-error.c
    M clang/test/Analysis/stream-invalidate.c
    M clang/test/Analysis/stream-non-posix-function.c
    M clang/test/Analysis/stream-noopen.c
    M clang/test/Analysis/stream-note.c
    M clang/test/Analysis/stream-pedantic.c
    M clang/test/Analysis/stream-stdlibraryfunctionargs.c
    M clang/test/Analysis/stream.c
    M clang/test/Analysis/stream.cpp
    A clang/test/CodeGen/LoongArch/tls-dialect.c
    M clang/test/CodeGenCXX/mangle-ms-vector-types.cpp
    M clang/test/CodeGenCoroutines/coro-elide-thinlto.cpp
    M clang/test/Driver/tls-dialect.c
    M clang/test/Misc/target-invalid-cpu-note.c
    A clang/test/Modules/force-transitive-changes.cppm
    M clang/test/Modules/pr75057.cppm
    M clang/test/Parser/altivec.c
    M clang/test/Parser/cxx-altivec.cpp
    M clang/test/Preprocessor/aarch64-target-features.c
    M clang/test/Sema/zvector.c
    M clang/test/Sema/zvector2.c
    A clang/test/SemaCXX/PR68885.cpp
    A clang/test/SemaCXX/identical-type-primary-partial-specialization.cpp
    M clang/unittests/Analysis/ExprMutationAnalyzerTest.cpp
    M clang/www/analyzer/alpha_checks.html
    M clang/www/analyzer/open_projects.html
    M clang/www/cxx_status.html
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/include/flang/Optimizer/Transforms/Passes.h
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/include/flang/Tools/CLOptions.inc
    M flang/include/flang/Tools/CrossToolHelpers.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/OpenMP/OpenMP.cpp
    M flang/lib/Lower/OpenMP/ReductionProcessor.cpp
    M flang/lib/Lower/OpenMP/Utils.cpp
    M flang/lib/Lower/OpenMP/Utils.h
    M flang/lib/Optimizer/Transforms/AddDebugInfo.cpp
    M flang/lib/Optimizer/Transforms/CMakeLists.txt
    A flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp
    A flang/lib/Optimizer/Transforms/DebugTypeGenerator.h
    M flang/lib/Optimizer/Transforms/PolymorphicOpConversion.cpp
    M flang/test/Driver/bbc-mlir-pass-pipeline.f90
    M flang/test/Driver/mlir-debug-pass-pipeline.f90
    M flang/test/Driver/mlir-pass-pipeline.f90
    M flang/test/Fir/basic-program.fir
    M flang/test/Fir/cuf.mlir
    M flang/test/Lower/CUDA/cuda-kernel-loop-directive.cuf
    A flang/test/Lower/OpenMP/Todo/reduction-array-intrinsic.f90
    A flang/test/Transforms/debug-fn-info.f90
    M flang/test/Transforms/debug-line-table-inc-file.fir
    M libc/src/__support/fixed_point/sqrt.h
    M libc/test/src/stdfix/ISqrtTest.h
    M libc/test/src/stdfix/SqrtTest.h
    M libc/test/src/stdfix/uksqrtui_test.cpp
    M libcxx/docs/Status/Cxx2c.rst
    M libcxx/docs/Status/Cxx2cPapers.csv
    M libcxx/test/std/numerics/complex.number/complex.tuple/get.pass.cpp
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/Options.td
    M lld/ELF/OutputSections.cpp
    M lld/docs/ReleaseNotes.rst
    M lld/docs/ld.lld.1
    M lld/test/ELF/compress-sections.s
    M lld/test/ELF/compressed-debug-level.test
    M lldb/docs/resources/lldbgdbremote.md
    M lldb/include/lldb/Symbol/CompilerType.h
    M lldb/include/lldb/Symbol/Type.h
    M lldb/include/lldb/Symbol/TypeSystem.h
    M lldb/packages/Python/lldbsuite/test/decorators.py
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/source/Host/posix/PipePosix.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    M lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
    M lldb/source/Symbol/CompilerType.cpp
    M lldb/source/Symbol/Type.cpp
    M lldb/source/Symbol/TypeSystem.cpp
    M lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
    M lldb/utils/lldb-dotest/lldb-dotest.in
    M llvm/docs/GettingInvolved.rst
    M llvm/docs/LangRef.rst
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/ADT/TypeSwitch.h
    M llvm/include/llvm/CodeGen/TargetLowering.h
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/include/llvm/IR/VPIntrinsics.def
    M llvm/include/llvm/Support/TypeSize.h
    M llvm/include/llvm/TargetParser/AArch64TargetParser.h
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/CodeGen/MachineLICM.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/IR/IntrinsicInst.cpp
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64Processors.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/AArch64Subtarget.cpp
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    M llvm/lib/Target/AMDGPU/AMDGPUInsertSingleUseVDST.cpp
    M llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
    M llvm/lib/Target/ARM/ARMBaseInstrInfo.h
    M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMInstrInfo.td
    M llvm/lib/Target/ARM/ARMPredicates.td
    M llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp
    M llvm/lib/Target/ARM/ARMRegisterInfo.td
    M llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
    M llvm/lib/Target/LoongArch/AsmParser/LoongArchAsmParser.cpp
    M llvm/lib/Target/LoongArch/LoongArchExpandPseudoInsts.cpp
    M llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
    M llvm/lib/Target/LoongArch/LoongArchISelLowering.h
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.cpp
    M llvm/lib/Target/LoongArch/LoongArchInstrInfo.td
    M llvm/lib/Target/LoongArch/LoongArchMCInstLower.cpp
    M llvm/lib/Target/LoongArch/LoongArchSubtarget.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchBaseInfo.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchFixupKinds.h
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCCodeEmitter.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.cpp
    M llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchMCExpr.h
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVSubtarget.h
    M llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrFP.td
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZInstrInfo.h
    M llvm/lib/Target/SystemZ/SystemZInstrVector.td
    M llvm/lib/Target/SystemZ/SystemZOperators.td
    M llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/TargetParser/Host.cpp
    M llvm/lib/TargetParser/RISCVISAInfo.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
    M llvm/test/Analysis/LoopAccessAnalysis/different-strides-safe-dep-due-to-backedge-taken-count.ll
    M llvm/test/CodeGen/AMDGPU/insert-singleuse-vdst.mir
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.msaa.load.ll
    A llvm/test/CodeGen/ARM/pacbti-indirect-tail-calls-function-flags.ll
    A llvm/test/CodeGen/ARM/pacbti-indirect-tail-calls-module-flags1.ll
    A llvm/test/CodeGen/ARM/pacbti-indirect-tail-calls-module-flags2.ll
    M llvm/test/CodeGen/LoongArch/tls-models.ll
    M llvm/test/CodeGen/RISCV/regalloc-last-chance-recoloring-failure.ll
    M llvm/test/CodeGen/RISCV/rvv/commutable.ll
    M llvm/test/CodeGen/RISCV/rvv/copyprop.mir
    M llvm/test/CodeGen/RISCV/rvv/fixed-vector-i8-index-cornercase.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int-vp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-shuffle-concat.ll
    M llvm/test/CodeGen/RISCV/rvv/pr90559.ll
    M llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll
    A llvm/test/CodeGen/RISCV/rvv/vp-cttz-elts.ll
    M llvm/test/CodeGen/RISCV/rvv/vreductions-int-vp.ll
    M llvm/test/CodeGen/SystemZ/anyregcc.ll
    A llvm/test/CodeGen/SystemZ/foldmem-peep.mir
    M llvm/test/CodeGen/SystemZ/fp-add-01.ll
    M llvm/test/CodeGen/SystemZ/fp-add-02.ll
    M llvm/test/CodeGen/SystemZ/fp-mul-01.ll
    M llvm/test/CodeGen/SystemZ/fp-mul-03.ll
    M llvm/test/CodeGen/SystemZ/fp-sub-01.ll
    M llvm/test/CodeGen/SystemZ/fp-sub-02.ll
    A llvm/test/CodeGen/SystemZ/machine-combiner-reassoc-fp.ll
    M llvm/test/CodeGen/SystemZ/stackmap.ll
    A llvm/test/CodeGen/X86/cmp16.ll
    M llvm/test/MC/LoongArch/Macros/macros-la-bad.s
    M llvm/test/MC/LoongArch/Macros/macros-la.s
    M llvm/test/MC/LoongArch/Misc/tls-symbols.s
    M llvm/test/MC/LoongArch/Relocations/relocations.s
    M llvm/test/Transforms/InstCombine/trunc.ll
    M llvm/test/tools/lto/discard-value-names.ll
    M llvm/unittests/Frontend/OpenMPCompositionTest.cpp
    M llvm/unittests/IR/VPIntrinsicTest.cpp
    M llvm/unittests/TargetParser/TargetParserTest.cpp
    M llvm/unittests/Transforms/Utils/LocalTest.cpp
    A llvm/utils/gn/secondary/lldb/include/lldb/API/BUILD.gn
    M llvm/utils/gn/secondary/lldb/source/API/BUILD.gn
    M llvm/utils/gn/secondary/lldb/utils/TableGen/BUILD.gn
    M llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/BinaryFormat/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/MIR/BUILD.gn
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
    M mlir/include/mlir/Dialect/Arith/Utils/Utils.h
    M mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
    M mlir/include/mlir/Dialect/Utils/ReshapeOpsUtils.h
    M mlir/include/mlir/Dialect/Utils/StaticValueUtils.h
    M mlir/include/mlir/IR/Attributes.h
    M mlir/include/mlir/IR/Location.h
    M mlir/include/mlir/IR/OperationSupport.h
    M mlir/include/mlir/IR/Types.h
    M mlir/include/mlir/Tools/PDLL/AST/Types.h
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Dialect/Arith/Transforms/ExpandOps.cpp
    M mlir/lib/Dialect/Arith/Utils/CMakeLists.txt
    M mlir/lib/Dialect/Arith/Utils/Utils.cpp
    M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ConvertConv2DToImg2Col.cpp
    M mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp
    M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/SplitReduction.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorRewriting.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.h
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Tensor/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Tensor/Transforms/PackAndUnpackPatterns.cpp
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Utils/ReshapeOpsUtils.cpp
    M mlir/lib/Dialect/Utils/StaticValueUtils.cpp
    M mlir/test/Conversion/MemRefToLLVM/expand-then-convert-to-llvm.mlir
    M mlir/test/Conversion/MemRefToLLVM/memref-to-llvm.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Conversion/TosaToTensor/tosa-to-tensor.mlir
    M mlir/test/Dialect/Arith/expand-ops.mlir
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-bufferize-empty-tensor-elimination.mlir
    M mlir/test/Dialect/LLVMIR/constant-folding.mlir
    M mlir/test/Dialect/Linalg/bubble-up-extract-slice-op.mlir
    M mlir/test/Dialect/Linalg/collapse-dim.mlir
    M mlir/test/Dialect/Linalg/convert-conv2d-to-img2col.mlir
    M mlir/test/Dialect/Linalg/data-layout-propagation.mlir
    M mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
    M mlir/test/Dialect/Linalg/flatten-elementwise.mlir
    M mlir/test/Dialect/Linalg/fuse-with-reshape-by-collapsing.mlir
    M mlir/test/Dialect/Linalg/fusion-push-reshape.mlir
    M mlir/test/Dialect/Linalg/reshape_control_fusion.mlir
    M mlir/test/Dialect/Linalg/reshape_fusion.mlir
    M mlir/test/Dialect/Linalg/resolve-shaped-type-result-dims.mlir
    A mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize-conv.mlir
    M mlir/test/Dialect/Linalg/transform-op-split-reduction.mlir
    M mlir/test/Dialect/Linalg/vectorization-with-patterns.mlir
    M mlir/test/Dialect/MemRef/canonicalize.mlir
    M mlir/test/Dialect/MemRef/expand-strided-metadata.mlir
    M mlir/test/Dialect/MemRef/fold-memref-alias-ops.mlir
    M mlir/test/Dialect/MemRef/invalid.mlir
    M mlir/test/Dialect/MemRef/normalize-memrefs-ops.mlir
    M mlir/test/Dialect/MemRef/ops.mlir
    M mlir/test/Dialect/MemRef/resolve-dim-ops.mlir
    M mlir/test/Dialect/MemRef/runtime-verification.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    M mlir/test/Dialect/SparseTensor/sparse_reshape.mlir
    M mlir/test/Dialect/Tensor/bufferize.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Tensor/fold-empty-op.mlir
    M mlir/test/Dialect/Tensor/fold-reassociative-reshapes.mlir
    M mlir/test/Dialect/Tensor/invalid.mlir
    M mlir/test/Dialect/Tensor/ops.mlir
    M mlir/test/Dialect/Tensor/simplify-pack-unpack.mlir
    A mlir/test/Integration/Dialect/SparseTensor/CPU/padded_sparse_conv_2d.mlir
    M utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
    M utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
    M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  remove --compression-level. adjust --compress-sections instead

Created using spr 1.3.5-bogner


Compare: https://github.com/llvm/llvm-project/compare/ca98f5ae835c...90ed22410ac7

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