[MLIR][MLProgram] Fix crash in mlprogram-pipeline-globals on unresolvable callees (#189244)
The `MLProgramPipelineGlobals` pass crashed with a null pointer dereference
when a `CallOpInterface` operation referred to a callee symbol that could not
be resolved in the IR (e.g. an external function defined outside the module).
Instead conservatively bail out when a callee symbol cannot be resolved,
causing the pass to (preserving all loads/stores). This is consistent with
how Value-based callees are handled.
Fixes #109649
Assisted-by: Claude Code
[AArch64][ISel] Add lowering for fixed-width `cttz` intrinsic (#190988)
This patch enables NEON to generate more efficient `cttz` intrinsics by
utilising `rbit` and `ctlz` instructions when they are legal.
# Alive Proof
https://alive2.llvm.org/ce/z/qgrT_7
```
define <8 x i8> @src_v8i8(<8 x i8> %a) {
#0:
%r = cttz <8 x i8> %a, 1
ret <8 x i8> %r
}
=>
define <8 x i8> @tgt_v8i8(<8 x i8> %a) {
#0:
%rbit = bitreverse <8 x i8> %a
%clz = ctlz <8 x i8> %rbit, 0
ret <8 x i8> %clz
[18 lines not shown]
[win] Add a flag to control the Control Flow Guard mechanism on Windows (#176276)
Windows Control Flow Guard (CFG) has two different "mechanisms" or
"patterns":
* Dispatch: the caller calls into the CFG function, which both checks
the target callee and then calls it.
* Check: the caller calls the CFG function which only checks the target
callee and then must separately call the callee.
LLVM has followed MSVC's pattern for selecting the mechanism based on
the target architecture. These defaults in MSVC are based on tests for
performance: Dispatch produces a smaller code size, whereas Check is
more friendly to branch predictors.
It is possible, however, for a given workload, call pattern or target
CPU that someone may want to select a different mechanism to use for
their code.
This change adds a new Clang and CC1 flag to force a CFG mechanism:
[8 lines not shown]
update to timescaledb-2.26.2, from Mark Patruck, looks good to maintainer
(this is the version that was tested with the zabbix update that went in
a few days ago)
[AArch64][PAC] Rework the expansion of AUT/AUTPAC pseudos
Refactor `AArch64AsmPrinter::emitPtrauthAuthResign` to improve
readability and fix the conditions when `emitPtrauthDiscriminator` is
allowed to clobber AddrDisc.
* do not clobber `AUTAddrDisc` when computing `AUTDiscReg` on resigning
if `AUTAddrDisc == PACAddrDisc`, as it would prevent passing raw,
64-bit value as the new discriminator
* move the code computing `ShouldCheck` and `ShouldTrap` conditions to a
separate function
[Clang] Diagnose invalid non-dependent calls in dependent contexts. (#190965)
We were bailing out from checking calls expressions in a dependent
context, but if the expression itself was not dependent it's never
checked again.
Fixes #135694
[flang][FIRToMemRef] Fix lowering of complex array component slices (z%re, z%im) (#191846)
fir.slice with a path component (z%re, z%im) was silently dropped by
FIRToMemRef. Since memref.reinterpret_cast cannot change element type,
layout must come from the projected box descriptor via
fir.box_dims/fir.box_elesize rather than the triplets. Only
complex-array projections are handled here —
sizeof(complex<T>)/sizeof(T) = 2 is always exact for divsi. Derived-type
component projections bail out to downstream FIR-to-LLVM lowering where
strides can be non-integer.
[flang][NFC] Converted five tests from old lowering to new lowering (part 44) (#191926)
Tests converted from test/Lower/Intrinsics: verify.f90
Tests converted from test/Lower: io-char-array.f90,
io-implied-do-fixes.f90, io-item-list.f90, io-statement-1.f90
Run clang-format on TargetParser/Triple.{cpp,h} (#192064)
It already got inconsistent because new changes require complying with
clang-format on CI, while everything old is not complying with it.