[mlir][memref] Fix runtime verification of expand_shape (#206125)
The original runtime verification only multiplied static output
dimensions per reassociation group and checked `srcDim % staticProduct`
== 0, which failed to catch invalid dynamic dimension values.
The new verification uses getMixedOutputShape() to get all output
dimensions (static and dynamic), computes their product, and asserts
`product == srcDim`. Fixes #205981.
Assisted-by: MiMo-V2.5-Pro
[MC][NFC] Make FeatureKV/SubtargetKV pointers private (#206178)
This is preliminary work for changing the representation of
FeatureKV/SubTypeKV to need less relocations. As a first step, avoid all
direct references to these pointers.
[mlir][math] Add VectorDialect dependency to MathToAPFloatConversion (#206212)
Explicitly load VectorDialect as a dependent dialect in
MathToAPFloatConversionPass to avoid unregistered dialect errors when
generating vector ops. Fixes #206093.
[X86][NFC] Use compact enum in TargetParser (#206088)
ProcessorDefs and FeatureInfoDefs store strings together with constant
data. Use the compact enum tables to avoid dynamic relocations for the
strings.
[libc++] Fix shared_ptr rebinding allocators to incomplete types (#206145)
https://github.com/llvm/llvm-project/pull/200401 caused various ways to
create a `shared_ptr` control block to reject any allocators which
required a complete type. This patch allows allocators to again require
a complete type.
[mlir][linalg] Restrict linalg.contract results (#205988)
I tightened linalg.contract so buffer-style uses cannot produce memref
results. This keeps the op consistent with destination-style semantics
and turns the bad input into a verifier error instead of letting later
rewrites crash.
Fixes #205708
[lldb][driver] Fix ELF interposition of HostInfoBase symbols causing segfault (#204710)
Commit 67e571d (#179306) added lldbHost and lldbUtility to
`LLDB_DRIVER_LINK_LIBS` A side-effect is that HostInfoBase.cpp, which
contains the file-static `g_fields` pointer, is now compiled into both
the lldb binary and liblldb.so, giving each its own independent
`g_fields`.
On ELF platforms this creates an interposition hazard. When
`LLDB_ENABLE_DYNAMIC_SCRIPTINTERPRETERS` is set, AddLLDB.cmake switches
all LLDB libraries to `CXX_VISIBILITY_PRESET=default` so that the
version script can re-export private symbols needed by dynamically
loaded plugins. The Python plugin calls `HostInfo::GetShlibDir()`
directly, so extract-dynamic-script-interpreter-exports.py adds
`HostInfoBase::GetShlibDir` to liblldb.so's exports (global: in the
version script). `HostInfoBase::Initialize()` is not called by the
plugin and stays local:.
At runtime the dynamic linker resolves liblldb.so's PLT entry for
[22 lines not shown]
[Transforms] Remove redundant --check-prefix flags (#206211)
--check-prefix=CHECK is completely redundant, so remove it.
Change was generated by Gemini, I manually reviewed the entire diff.
Revert "[lit] Migrate lit to ProcessPoolExecutor (#202681)" (#206138)
This reverts the commit 1e2d1bbc12f6.
ProcessPoolExecutor.shutdown(wait=True) hangs on macOS 14 with Python 3.9: join_executor_internals() calls call_queue.join_thread() before p.join(), but macOS requires the inverse order. The feeder thread cannot drain until worker processes are joined, so join_thread() blocks forever. This is fixed upstream in CPython >= 3.12 but affects all earlier versions on macOS. Reverting to unblock the aarch64-darwin buildbot while a proper fix is worked out.
The original changes and context can be found in https://github.com/llvm/llvm-project/pull/202681
[llubi] Poison object contents in `llvm.lifetime.end` (#206036)
Make `@llvm.lifetime.end` poison the object content. This removes the
need of special-casing for dead objects in `ExecutorBase::load()`, etc.
See also [#204932
(comment)](https://github.com/llvm/llvm-project/pull/204932#discussion_r3465364425).
[WebAssembly] Fix nondeterminism by using MapVector for pointer-keyed maps [NFC] (#205184)
Several DenseMaps in the WebAssembly backend keyed by pointers were
being
iterated over, potentially leading to nondeterministic codegen
(differing
try/delegate nesting, virtual register allocation, or PHI node
insertion)
due to nondeterministsic pointer values.
This patch replaces these DenseMaps with MapVectors to guarantee
deterministic iteration order:
- UnwindDestToTryRanges in WebAssemblyCFGStackify.cpp
- EHPadToUnwindDest in WebAssemblyCFGStackify.cpp
- EHPadToRethrows in WebAssemblyLateEHPrepare.cpp
- UnwindDestToNewPreds in WebAssemblyLowerEmscriptenEHSjLj.cpp
Fixes: #204883
Co-authored-by: Ammar Askar <aaskar at google.com>
Assisted-by: Antigravity