[ARM] Remove llvm/test/MC/COFF/ARM/lit.local.cfg. NFC (#202342)
Given there are no files in this folder (since
ff1d084aa2f07927f3c63c93f3286822abe9d1ac) the unused lit.local.cfg can
be
removed.
[libc] Add remaining SO_ constants (#202278)
There are two complications here:
- These options have different values on some architectures. These
aren't architectures we're likely to support soon, but I've left a
#error so that it lights up in a porting attempt.
- The time-related options have two flavours, depending on the
sizeof(time_t). Since we now support only 64-bit time_t, and only
kernels newer than 5.10, we can unconditionally use the new versions
(released in 5.1). I added a test for one of the time options to verify
that it works.
[Runtimes] Drop 'flang' from runtimes configure dependency (#198205)
Summary:
This PR cuts `flang` out of the core runtimes configure dependency. We
will need the runtimes infrastructure to handle `flang` module
generation, but this dependency poisons the entire dependency stack.
`flang` and `mlir` are by far the heavily parts of the LLVM stack and
for distribution we want to only build it when absolutely necessary,
which as of now is only to install flang module files.
The approach here is to simply remove the `flang` target from the core
dependency tree, but intead configure it for the top-level `module`
targets which are part of `all`. To make this work we need to pass
COMPILER_WORKS and set up a dummy location so that configuration passes.
it's a little backdoor, but this is an extremely important quality of
life improvement for LLVM distribution support.
[AMDGPU] Drop docs for invalid load-release and store-acquire operations
The LangRef says "release and acq_rel orderings are not valid on load
instructions" [for loads](https://llvm.org/docs/LangRef.html#load-instruction)
and "acquire and acq_rel orderings aren't valid on store instructions"
[for stores](https://llvm.org/docs/LangRef.html#store-instruction).
Providing them in textual IR is diagnosed with an error.
Therefore, we should not define semantics for these invalid constructs.
Part of LCOMPILER-2273.
Revert "[IR] Reject unhandled assume bundles and seperate them from normal attributes" (#202336)
Reverts llvm/llvm-project#197007
This causes an assertion failure.
[clang] Implement C2y stdc_memreverse8 and stdc_memreverse8u{8,16,32,64} builtins (#197358)
Implements the C2y <stdbit.h> memory reversal functions stdc_memreverse8
and stdc_memreverse8u{8,16,32,64}. The typed variants lower to
llvm.bswap and support constexpr evaluation.
[clang][Sema]fix crash of invalid friend declaration with storage-class specifier (#190597)
Fix an assertion failure in Sema::ActOnFriendTypeDecl when parsing an
invalid friend type declaration that incorrectly includes a
storage-class specifier (e.g., 'static', 'extern', 'register').
Root cause:
If the type specifier is marked as invalid, DeclSpec::Finish returns
early. However, even when the type specifier is invalid, some other
checks can still be performed instead of skipping everything.
This change allows necessary checks to proceed, preventing the
assertion in ActOnFriendTypeDecl and enabling proper error diagnostics.
Fixes: https://github.com/llvm/llvm-project/issues/186569
Co-authored-by: victorl <liuvicsen at gmail.com>
[z/OS] Mark 19 tests UNSUPPORTED on z/OS due to an issue in printf. (#196391)
Those tests fail on z/OS because printf interprets octal escape
sequences as EBCDIC characters and converts them to ASCII, producing
incorrect values in the output.
[IR] Reject unhandled assume bundles and seperate them from normal attributes (#197007)
This patch introduces the concepts of bundle attributes and updates the
code base to use them in most places where assume bundles are handled.
The notable exception is the knowledge retention API, since it tries to
be generic for attributes. However, the `--assume-preserve-all` flag is
removed, since all attributes not listed in the bundle attributes are
rejected by the verifier now. This shouldn't be a huge problem, since
any attributes not listed there were completely unused.
New functions with the naming scheme `getAssume<AttrName>Info` are also
added for attributes which are used without having to enable
experimental features.
[ArgPromotion] Pass context instruction to dereferenceability check (#202305)
This is necessary for argument promotion to work under deref-at-point
semantics. For the primary case, specify the context instruction as the
first instruction in the function, which should effectively disable the
check for frees.
[InstCombine] Ignore frees when inferring inbounds (#202304)
From LangRef:
> Note that the object does not have to be live anymore; being
> in-bounds of a deallocated object is sufficient.
[DirectX] Add more CodeGen tests (#201714)
These tests were left out of the initial PRs that added the covered
functionality because the llc printed output was not yet in the right
form. It is now, so add the tests.
AMDGPU/UniformityAnalysis: MIR Uniformity analysis for INLINEASM (#201874)
If any of the defs are divergent, need to report instruction as
NeverUniform so that isUniformReg can calculate uniformity for each def.
[AArch64] Add -global-isel runlines to ZCZ tests(NFC) (#200797)
ZCZ lowering relies on ISel (for FPR - pseudo instruction pattern
matching, for GPR - canonical form pattern matching). This patch adds a
representative -global-isel runlines to catch possible regressions,
though these are not very likely because both selectors should share the
patterns.
[LLDB][NFC] Move logging from GDBRemoteCommunication::CheckForPacket into a helper function (#201526)
This was a lot of the code in the middle of core logic.
[AMDGPU] Cache results in a bitvector for VOPDPairingMutation (#201837)
With this change the code no longer checks `(I, J)` pair when it is
known that `(_, J)` is not a valid VOPD instruction. The saving is
achieved by precomputing `(_, Y)` into a bitvector, that is also used by
`(_, I)` check, so the `(_, J)` check is "free".
---------
Co-authored-by: Antonio Carpio <antonio.carpio at amd.com>
[flang][hlfir] Extend InlineHLFIRCopy to inline copy_out with copy-back
Rename `InlineHLFIRCopyIn` to `InlineHLFIRCopy` and extend it to inline
the paired `hlfir.copy_out` operation. The copy_out is inlined at its
original location, after the call, ensuring proper ordering of copy-back
and deallocation.
Only inlines when no copy-back is required (intent(in)); intent(inout/out)
pairs are left untransformed.
Based on https://github.com/llvm/llvm-project/pull/179096.
Co-Authored-By: Kazuaki Matsumura <kmatsumura at nvidia.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply at anthropic.com>
[NFC][lldb] move m_stop_info and m_stop_description up a class (#201858)
Now that Windows also clears stale thread info on resume
(https://github.com/llvm/llvm-project/pull/201595), `m_stop_description`
and `m_stop_info` can be moved into `NativeThreadProtocol`.
rdar://178725507