[MLIR][SCFToOpenMP] Fix crash when lowering vector reductions (#173978)
This patch fixes a crash in the SCF to OpenMP conversion pass when
encountering scf.parallel with vector reductions.
- Extracts scalar element types for bitwidth calculations.
- Uses DenseElementsAttr for vector splat initializers.
- Bypasses llvm.atomicrmw for vector types (not supported in LLVM IR).
Fixes #173860
---------
Co-authored-by: Aniket Singh <amiket.singh.3200.00 at gmail.com>
[mlir] Compose expand of collapse to cast (#172864)
In some cases `y = expand(collapse(x))` cannot be folded into x, since x
and y have different types.
In that case, we check if the two types are cast compatible.
If they are, it means the two types have compatible shape and layout and
y can be folded into cast(x).
This causes a change in memref::CastOp::areCastCompatible, where now a
dim of size 1 may have different strides.
[SeparateConstOffsetFromGEP] Allow truncation of offset
It's okay if the offset calculation overflows and we have to
truncate.
However, this should really be doing all the offset calculations on
correctly-sized APInts. For the case where the overflow occurs
on 64-bit indices, this would trigger signed integer overflow UB.
Fixes issue reported at:
https://github.com/llvm/llvm-project/pull/171456#issuecomment-3741522625
interfaces: decouple 'track6' mode magic in radvd/dhcpv6 #9155
The code always took the shortcut to "track6-interface" but since
we want a new mode without a side effect and keep the attributes
for common code cases the same switch this to explicit mode check.
[libc++] Remove empty container benchmarks that are meaningless from the associative containers (#175180)
We generally try to benchmark the empty container case in the
associcative containers, since there are some case where we previously
ran calculations for significant amounts of time, even though they were
really not needed. However, there are some benchmarks where trying to
run with an empty container doesn't make sense (e.g. when benchmarking
collisions). We've worked around this a bit in the benchmarks by not
actually benchmarking the empty case. This patch removes these
meaningless benchmarks instead to speed up running the benchmarks.
interfaces: introduce idassoc6 mode
We're adding a bit of technical debt here for the simple reason
to decouple the track6 mode from automatic radvd and dhcpv6 runs.
Specifically avoid the "dhcpd6track6allowoverride" flag in this
mode but keep the data the same otherwise for interoperability.
[llvm][release] Reveal download links based on uploaded assets (#167688)
For the 21.x release, download links were supposed to be revealed once
all the release builds had completed successfully. In reality, MacOS
never had a successful build so I had to hand edit the release messages.
This PR fixes this by focusing instead on what is in the release assets
after the release build step has finished (in whatever state that might
be).
1. Links are now built from a format string, with the linked files being
format arguments for that string. This is a balance between ease of
editing the format, and having the file names for use later (I tried
regex-ing file names out of the final links, which can work but is error
prone and will be hard to debug in production).
Here's an example line:
```
<!-- LINUX_X86 * [Linux x86_64](https://github.com/llvm/llvm-project/releases/download/llvmorg-vX.Y.Z-1/LLVM-vX.Y.Z-1-Linux-X64.tar.xz) ([signature](https://github.com/llvm/llvm-project/releases/download/llvmorg-vX.Y.Z-1/LLVM-vX.Y.Z-1-Linux-X64.tar.xz.jsonl)) -->
```
[24 lines not shown]
[LoongArch][Driver] Allow `-gsplit-dwarf` and `-mrelax` to be used together
Benefit from https://github.com/llvm/llvm-project/pull/166597 and
https://github.com/llvm/llvm-project/pull/164813, DWARF fission is
now compatible with linker relaxation.
Similar to RISC-V, this commit allows `-gsplit-dwarf` and `-mrelax`
to be used together.
A new test `relax_dwo_ranges.ll` same as RISC-V is also added.
[SEH] Ensure unreachable blocks are placed in EHScopeMembership (#175550)
The tests function has an unreachable block bb.2 leading to an
unreachable infinite loop bb.3. As BlockFolding removes the unreachable
bb.2, bb.3 is left only referencing itself. This block is then not
marked as unreachable and so left out of EHScopeMembership, leading to
an assert that FallThroughEHScope != EHScopeMembership.end(). This patch
makes sure that blocks not otherwise collected are added to
EHScopeMembership in the same way as unreachable blocks.
[lldb] Make sure that the "TypeSystemClang::GetBuiltinTypeByName" method returns the correct value also for "_BitInt(...)" types. (#165857)
When trying to get the `SBType` object corresponding to the
`_BitInt(...)` type name, we have noticed that the
`SBTarget::FindFirstType` metod returns `nil`. This branch proposes:
- some test that demonstrate that the problem exists
- a possible fix
---------
Co-authored-by: Matej Košík <matej.kosik at codasip.com>
Co-authored-by: Michael Buch <michaelbuch12 at gmail.com>