[mlir][ArithToLLVM] Do not lower sitofp to unsupported float types (#230975)
The LLVM type converter maps float types with no LLVM equivalent (for
example
f8E4M3FN, f8E5M2 and f8E8M0FNU) to an integer of the same width. Unlike
`UIToFPOpLowering`, `FPToSIOpLowering` and `FPToUIOpLowering`,
`SIToFPOpLowering` did not set `FailOnUnsupportedFP`. As a result, it
produced an invalid op that the verifier rejects:
'llvm.sitofp' op result #0 must be floating point LLVM type or LLVM
dialect-compatible vector of floating point LLVM type, but got 'i8'
Reproducer (`mlir-opt --convert-arith-to-llvm`, or `--convert-to-llvm`):
%0 = arith.sitofp %arg0 : i32 to f8E4M3FN
Set `FailOnUnsupportedFP` so that the op stays unconverted, as the other
int/float conversions already do. Users can emulate the op first with
`arith-emulate-unsupported-floats`.
[5 lines not shown]
macppc: add MKREPRO support to mkhybrid and fix bugs
1) Fix overlapping strcpy which triggers fortify checks on some hosts
2) Add -timestamp option
2) Don't leak stack garbage into the generated image
[CodeGen] Source-qualify hashes of module-local globals for GFM and outliner (#219938)
Global function merging and outliner compare hashes across modules. Some
globals are hashed by name, so two modules that each define a same-named
global with local linkage produce identical operand hashes although they
denote different storage. The hash collision caused both GFM and GFO to
make quite a few non-beneficial optimization decisions.
Add a `SourceQualifyLocalGlobals` option to IR `StructuralHash` and MIR
`stableHashValue`. When set, the name-based hash of a global with local
linkage is combined with the source file name of its module. The module
identifier itself is not suitable: the linker may name the module after
an unstable temporary LTO object file, which would make the supposedly
stable hash vary from run to run and between the generate and use
rounds. Content-based hashes are unchanged, so equivalent literals still
merge across modules.
The option defaults to off, so other users of `stableHashValue` and
`StructuralHash` keep their hashes.
py-async-lru: updated to 2.4.0
2.4.0
Added a key parameter for custom cache key computation.
Fixed a NameError when decorating a function whose annotations refer to names
defined later, on Python 3.14.
On Python 3.14, cached functions expose __annotate__ instead of
__annotations__, as functools.lru_cache wrappers do; read their annotations
with annotationlib.get_annotations().
[clang-tidy] Fix false positive in performance-no-automatic-move for captured variables (#231359)
performance-no-automatic-move matched any `return x` where `x` is a
const local
variable, without checking whether `x` is actually local to the function
doing
the return. Inside a lambda, a captured variable still points at the
enclosing
function's VarDecl, so `[&x] { return x; }` was diagnosed. But captured
variables
are never implicitly moved from (Sema bails on
refersToEnclosingVariableOrCapture()
before it looks at constness), so dropping the const still gives a copy.
Now we skip DeclRefExprs that refer to a capture, same as
UseStdMoveCheck. A const
local declared inside the lambda body is still diagnosed.
AI Usage: an AI assistant was used while working on this fix, and I went
[2 lines not shown]
[mlir][x86] Fix AMX loop carried accumulation (#231170)
Fixes the AMX contraction lowering of reduction loops whose accumulators
are carried in by an enclosing loop.
The values accumulated by the enclosing loop were dropped and replaced
with the initial accumulator, which produced wrong results.
Assisted-by: Claude
[clang][Serialization] Make directory dependencies absolute when read (#231319)
Directory dependencies under a module's base directory are stored
relative to it, and the reader's base directory isn't always absolute:
with relocation checks enabled it is taken from where header search
found the module, which is relative through a relative search path, and
with -fmodule-file-home-is-cwd there is none. These directories were
then read back relative, so `directory-deps` reported them relative and
they never matched the absolute paths a build system reports as
invalidated.
Canonicalize them when reading the same way they are when recorded.
Assisted-by: Claude Code: opus-5.5