[Analysis] Improve readability of `KnownBits::pext` and `KnownBits::pdep` (#205176)
- Change the parameter names to `Val` and `Mask` to emphasize their semantics.
- Use `clearBits` instead of bitwise AND for increased expressiveness.
- Rewrite explanatory comments.
[LifetimeSafety] Fix loop liveness leakage for conditional operator
Generate flow facts for conditional operators in their respective
predecessor blocks (branches) instead of the merge block, path-isolating
the flows and preventing liveness from leaking across loop backedges.
Also includes tests, formatting cleanups, and refactoring of the flow propagation.
TAG=agy
CONV=b4614911-a1e1-489f-a395-2f895c423788
[libc][math][c++23] Add expbf16 math function (#161919)
This PR adds expbf16 higher math function for BFloat16 type along with
the tests.
---------
Signed-off-by: Krishna Pandey <kpandey81930 at gmail.com>
[X86] Remove old horizontal-reduce-add/fadd tests (#206238)
These patterns are now handled in middle-end and tested for in
PhaseOrdering/X86
The vector.reduce.add/fadd patterns are tested in CodeGen/X86 in
vector-reduce-add.ll, vector-reduce-fadd.ll and
vector-reduce-fadd-fast.ll
[IR][NFC] Introduce Constant::containsMatchingVectorElement and corresponding matcher (#200502)
A common pattern when dealing with vectors is to iterate over each
element and check whether any element satisfies a condition. Introduce
`Constant::containsMatchingVectorElement` to generalize this behavior
along with a corresponding matcher `m_ContainsMatchingVectorElement`
which checks whether any elements match the given subpattern.
Remove function `llvm::maskContainsAllOneOrUndef` in favor of using this
generalization instead.
Co-authored-by: Ramkumar Ramachandra <r at artagnon.com>
Reapply "[MC][NFC] Make FeatureKV/SubtargetKV pointers private" (#206234) (#206237)
Fix C++20 build by adding an explicit constructor. This also permits
making the fields private.
This reapplies #206178.
This reverts commit e44103c5d9feaaf914fdf1a6859d0fe91269fe46.
[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.