[LLVM] Fix signature for `gc.get.pointer.base` intrinsic (#206991)
`experimental.gc.get.pointer.base` intrinsic requires that the return
and argument type are the same pointer types. Currently this is checked
explicitly in Verifier.cpp. Instead, change the type signature of
`.gc.get.pointer.base` to use `LLVMMatchType` to enforce this
restriction.
[Flang-RT] Change alignment for allocatable and pointer arrays to 64 … (#206525)
…bytes
in https://github.com/llvm/llvm-project/pull/194969 the default array
alignment was changed to 64bytes for Fortran globals. In this PR the
malloc wrapper in the flang runtime is modified to accept an alignment
argument (0 default) and for cases above 16 byte (std::max_align_t) uses
`aligned_alloc` instead of malloc.
The issue of alignment was discussed in this RFC:
https://discourse.llvm.org/t/rfc-alignment-of-global-arrays/90397/13
Assisted-by: Opus 4.6
[clang-tidy] Add AllowVirtualAndOverride to modernize-use-override (#206111)
Add an `AllowVirtualAndOverride` option to `modernize-use-override` so
codebases can keep virtual on methods that are also marked override.
AI Usage: Test cases assisted by Codex.
Closes https://github.com/llvm/llvm-project/issues/202030
[lldb][Windows][CI] refine timeouts (#206942)
Add/refine timeouts on each step of the lldb on Windows CI script. This
should help avoid runaway builds which timeout after 24h.
[CIR][OpenMP] Prevent HoistAllocas pass from hoisting above OpenMP regions (#206168)
This patch modifies the HoistAllocas pass to prevent it from hoisting
allocas outside OpenMP regions, since this may break isolated from above
requirements and affect privatization semantics.
Assisted-by: Cursor / claude-4.8-opus-medium
[lldb] Recover mangled symbol names from DWARF on WebAssembly (#206832)
The Wasm "name" section stores only demangled names, so the symbols
ObjectFileWasm builds from it have no mangled name. Without one, the
symbol table indexes neither the mangled name nor the C++ base and
method name variants derived from it, so looking up a symbol by mangled
name fails and breakpoints set by a template or operator name find no
locations.
Override SymbolFileWasm::AddSymbols to copy each function's mangled name
from its DWARF DW_AT_linkage_name onto the matching symbol, matched by
file address. This is confined to the Wasm symbol file, so other targets
are unaffected.
[lldb-dap] Add a new lldb-dap test infrastructure (#203978)
Introduce a new test infrastructure under lldbsuite/test/tools/lldb_dap
that replaces the dict-based dap_server. Initially the new and legacy
version will live side by side.
Once all tests are ported, the legacy version will be removed. The new
infrastructure has four files:
- dap_types.py: DAP protocol messages as frozen dataclasses, plus
serializer/deserializer functions to and from JSON.
- utils.py: Helper classes for launching and managing lldb-dap process
and its connection.
- session.py: DAP session layer. Owns the per-session state.
- session_helpers.py: Higher-level helpers for writing tests.
Using dataclasses for protocol types lets us catch unexpected or missing
fields at deserialization time instead of at use-site.
Adds a new environment flag, LLDBDAP_RUN_AS_SERVER, that runs the test
suite against lldb-dap in server mode for test cases with
[10 lines not shown]
[SCEV] Cancel common addend/multiplier in SimplifyICmpOperands (#205014)
Simplify:
```
(K + A) pred (K + B) -> A pred B
(C * A) pred (C * B) -> A pred B
```
when no-wrap flags allow it: NSW for signed predicates, NUW for
unsigned. Also requires C > 0 for signed in the multiplication case.
For equality comparisons, `(K + A) eq/ne (K + B)` simplifies to `A eq/ne
B` without requiring any no-wrap flags.
Alive2 proofs: https://alive2.llvm.org/ce/z/KmyqsD
[libc++] Assume that <wchar.h> in llvm-libc has const-overloads. (#206805)
See discussion in https://github.com/llvm/llvm-project/pull/201236 -
we're close to enabling wide characters in libc++ when it's built on top
of llvm-libc.
llvm-libc headers use `const wchar_t*` return type for selected wchar
functions, so we need to configure libc++ to assume that const-overloads
for these functions are available in this case, and the implementations
in libc++ wrapper around `<wchar.h>` are not needed.
opnsense/suricata: catch ENOBUFS for divert #272
Eventually it may be better to find the error numbers
that would warrant a full exit instead of making exceptions
for all of them.
[X86] Fold FP UNORD/ORD compare against known-non-NaN to self-compare (#206943)
Replace a known-non-NaN operand of an UNORD/ORD FP compare with the
other operand, so we emit `cmpp a, a` instead of materializing the
constant with `vxorpd`. Matches GCC.
Added combine-fcmp-uno-self.ll which covers the folding and a negative
case.
Fixes #202756
[mlir][ABI] Fix scalable vector mapping in ABITypeMapper (#206617)
mapVectorType in ABITypeMapper incorrectly used ElementCount::getFixed
for all vector types, including scalable ones (e.g. vector<[4]xf32>).
This results in scalable vectors being mapped as fixed-size vectors,
which produces incorrect ABI lowering for SVE and RISC-V V targets.