InstCombine: Handle multiple use fneg(fabs(x)) in SimplifyDemandedFPClass
This ends up being smarter than the single use case, so these should
be merged at some point.
[SPIRV] Improve vector legalization and type deduction (#175067)
This patch adds support for scalarizing vector loads in the legalizer
and
implements legalization for the spv_const_composite intrinsic. It also
refactors stack temporary creation for vector operations to ensure
correct
SPIR-V types are assigned. Additionally, type deduction in the
PostLegalizer is improved to handle GEP and Load instructions.
Fixes https://github.com/llvm/llvm-project/issues/170534
[openmp] Add support for arm64ec to libomp
This patch adds arm64ec support to libomp.
Note that this support isn't entirely usable on Windows hosts as libomp
requires LLVM_PER_TARGET_RUNTIME_DIR=On for to work correctly when
multiple runtimes are built, which is unsupported on Windows. A
following patch will add arm64x support to the build to rectify this.
[lldb-dap] Move targetId and debuggerId into a session property (#175930)
This makes it clear the fields required for attaching to an existing
debug session.
It also makes it easier to check mutually exclusive fields required to
attach.
[flang][NFC] fix typo in mlirTypeToIntrinsicFortran (#175762)
Fix pretty printing of complex function types in the error messages when
no runtime function is found to implement some intrinsic in lowering.
[X86][GISEL] Enable Combines for constants and undef (#175711)
This patch supports combines for constants and undef. Primary motive is
to fold muls and remove undef chains from final outputs.
[CFIInstrInserter] Add `dump` method to `CSRSavedLocation`. (#176054)
This is to reduce the diff for the future commit where we plan to use
this for reporting errors.
[Serialization] Remove bail-out logic in TemplateArgumentHasher
While it is correct to assign a single fixed hash to all template
arguments, it can reduce the effectiveness of lazy loading and is
not actually needed: we are allowed to ignore parts that cannot be
handled because they will be analogously ignored by all hashings.
Reviewed as part of https://github.com/llvm/llvm-project/pull/133057
[SLP]Do not throttle nodes with split parents, if any of scalars is used in more than one split nodes
If the the node to throttle is a vector node, which is used in split
node, and at least one scalar of such a node is used in many split
nodes, such vector node should be throttled. otherise there might be
wrong def-use chain, which crashes the compiler.
Fixes #175967
InstCombine: Fold known-qnan results to a literal nan
Previously we only considered fcNan to fold to qnan for canonicalizing
results, ignoring the simpler case where we know the nan is already
quiet.
[X86] combine-pclmul.ll - add demanded elts test coverage (#176132)
Based off the equivalent instcombine test coverage - but we can now create X86ISD::PCLMULQDQ nodes in the DAG as well
[BOLT] Gadget scanner: implement finer-grained --scanners option
Add separate options to enable each of the available gadget detectors.
Furthermore, add two meta-options enabling all PtrAuth scanners and all
available scanners of any type (which is only PtrAuth for now, though).
This commit renames `pacret` option to `ptrauth-pac-ret` and `pauth` to
`ptrauth-all`.
[AMDGPU] Update gfx1250 memory model for global acquire/release (#175865)
Inserts required waits around GLOBAL_INV/GLOBAL_WBINV for
agent scope and above.
[libomp] OpenMP 6.0: Add device trait parser
OpenMP 6.0 introduced a device trait specification language for the
environment variables OMP_AVAILABLE_DEVICES (4.3.7) and
OMP_DEFAULT_DEVICE (4.3.8).
This commit defines a grammar for that language and implements a parser
for a large part of this grammar.
It also already does the parsing of OMP_DEFAULT_DEVICE, but in a
backward compatible manner, not yet exposing the new capabilities to the
user (this will come in a follow-up commit).
[libomp] Add kmp_vector (ADT 2/2)
See rationale in the commit adding kmp_str_ref.
This commit introduces kmp_vector, a class intended primarily for small
vectors. It currently only includes methods I need at the moment, but
it's easily extensible.