clang: Fix warnings with multiple offload arch args (#189329)
Fix regression after ab885fdf5f67726ef564c34087e813f2ca861f5c.
Apparently driver tests do not enforce there are no warnings.
Oddly, I need to use -Werror for the specific error. If I use
just -Werror, I get an error that the -Werror is unused.
[VPlan] Handle regions with live-outs and scalar VF when replicating. (#186252)
Extend intial unrolling of replicate regions
(https://github.com/llvm/llvm-project/pull/170212) to support live-outs,
if the VF is scalar.
This allows adding the logic needed to explicitly unroll, and replacing
VPPredPhiInsts with regular scalar VPPhi, without yet having to worry
about packing values into vector phis. This will be done in a follow-up
change, which means all replicate regions will be fully dissolved.
PR: https://github.com/llvm/llvm-project/pull/186252
[InstCombine] Fold cmp of select-of-constants via truth table (#186591)
This patch adds a generic InstCombine fold for:
cmp pred (select C1, TV1, FV1), (select C2, TV2, FV2)
when all select arms are constants and the comparison can be
constant-folded for all four combinations of C1/C2. The fold computes a
4-entry truth table and synthesizes a boolean expression using
createLogicFromTable.
This generalizes patterns like:
fcmp une (select C1, -1.0, 1.0), (select C2, -1.0, 1.0) -> xor C1, C2
The transform bails out for mixed vector results like:
<i1 true, i1 false>
alive2: https://alive2.llvm.org/ce/z/JQ_Poy
Fixes #186558
[SPIR-V] Emit OpLoopMerge for non-shader targets without SPV_INTEL_unstructured_loop_controls extension (#187519)
`OpLoopMerge` emission was not supported due to the fact that spirv
structurizer is not being run for non-shader targets.
After enabling support for `SPV_INTEL_unstructured_loop_controls` in
https://github.com/llvm/llvm-project/pull/178799 is started to preserve
some information about unstructured control flow. This PR is intended to
enable support for `OpLoopMerge` without extension.
Note: changes in `llvm/test/CodeGen/SPIRV/pointers/phi-chain-types.ll`
and `llvm/test/CodeGen/SPIRV/llvm-intrinsics/memset.ll` are due to the
fact that loop layout has changed after `loop-simplify` pass enabling
afl++: pass proc in MAKE_FLAGS, to avoid running sub-makes with "-j" (which
uses all cores).
there is also an issue with this port picking up ports llvm if present,
if someone wants to take a look..
Don't build "haptic" support code to avoid missing symbol on sparc64
That code uses ioctls that we don't implement and end up as unresolved
symbols in the shared library on sparc64 where base-gcc and ld.bfd are
used. ok tb@ thfr@ (maintainer)
While here, also disable warnings about documentation comments, which
clutter build logs (from tb@).
fonts/adobe-fonts/source-han-sans: import (version 2.005)
Source Han Sans is Adobe's Pan-CJK sans-serif typeface family,
developed with Google for Simplified Chinese, Traditional Chinese,
Japanese, and Korean text.
OK: bentley@
fonts/adobe-fonts/source-han-mono: import (version 1.002)
Source Han Mono is Adobe's Pan-CJK monospaced typeface family, based on
Source Han Sans and Source Code Pro. It supports Simplified Chinese,
Traditional Chinese, Japanese, and Korean text in a unified monospace
design.
OK: bentley@
[AArch64][llvm] Separate TLBI-only feature gating from TLBIP aliases
Refactor the TLBI system operand definitions so that TLBI and TLBIP
records are emitted through separate helper multiclasses, whilst keeping
the table layout readable.
The feature-scoped wrappers now apply FeatureTLB_RMI, FeatureRME, and
FeatureTLBIW only to TLBI records (it was previously incorrectly also
applied to TLBIP instructions), while TLBIP aliases remain gated only
by FeatureD128, including their nXS forms.
Update testcases accordingly.