[CIR] Implement handling for destroying delete (#193607)
This adds CIR handling for destroying delete calls. The basic support
for deleting objects via virtual and non-virtual delete calls was
already in place. All that was needed was to add the function to emit
these calls when a destroying operator delete was encountered in
`emitCXXDeleteExpr` and to add the code to add the destroying delete tag
parameter when it is needed.
Note, classic codegen elides the destroying delete tag parameter for the
new test case because it represents an empty class. That will be handled
as part of ABI lowering in CIR, but it is not yet implemented.
Assisted-by: Cursor / claude-4.7-opus-high
[CIR] Handle negative offsets in pointer constants (#193624)
When a negative offset was used as an index into a global array as part
of a global pointer initialization, CIR was hitting an unreachable
marker while trying to construct a GlobalView attribute to describe the
pointer initialization. Although this sort of negative offset is UB,
Clang allows it, so we want to produce the same results via CIR.
Assisted-by: Cursor / claude-4.7-opus-high
[NFC][AMDGPU] Remove `amdgpu-link-time-lds` module flag
We could just use `AMDGPUTargetMachine::EnableObjectLinking` to control. Don't
really need that. This is from a previous design where we wanted to let
different components to decide whether we want to use object linking
independently, but that would not really work.
[lldb-server] Implement support for MultiBreakpoint packet
This is fairly straightforward, thanks to the helper functions created
in the previous commit.
https://github.com/llvm/llvm-project/pull/192910
security/strongswan: Enable ML plugin by default to allow Post-Quantum Key Exchange Methods
Currently ML-DSA (used for Digital Signatures) is a draft in strongswan
(ETA Version 6.1.0 or later). So CNSA 2.0 cannot be fully supported yet.
https://linux-ipsec.org/slides/2025/steffen-pqc-auth-for-ikev2.pdf
But most firewalls (Palo Alto / Fortigate) already support ML-KEM Key
Exchange in addition to standard proposals.
E.g. aes128gcm16-ecp256-ke1_mlkem512.
More details:
https://docs.strongswan.org/docs/latest/config/proposals.html
PR: 294305
Approved by: strongswan at Nanoteq.com (maintainer, timeout 2 weeks)
Sponsored by: UNIS Labs
(cherry picked from commit fb347f77757066e2bc0989fd66c8f02c9bf862d9)
ZTS: snapshot_018_pos.ksh add extra margin
The date(1) command and snapshot timestamps use different clock
sources which can result in a small discrepancy. This can cause
the test the incorrectly fail. To avoid this, add a brief delay
to the test case to allow for minor skew.
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18450
ZTS: mmp_on_uberblocks.ksh simplify
The last portion of mmp_on_uberblocks.ksh was intended to verify that
the sequence number was incremented. However, it failed to account for
the case where a txg sync would occur resulting in the sequence number
being correctly reset.
Rather than add additional code to detect this that check has been
removed. The mmp update frequency is still verified via the kstat
which is a more reliably mechanism to detect the writes. There are
several other mmp tests which verify the uberblock changes are reflected
on disk so there's no significant loss of test coverage.
Finally, the test case has been simplified to use the within_percent
function for readability.
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18452
[libcxx] XFAIL some tests for LLVM libc
Mark the tests that are currently failing on LLVM libc with the new
CMake cache as XFAIL so that we can get CI stood up as soon as possible.
Reviewers: ldionne, jtstogel, philnik777
Pull Request: https://github.com/llvm/llvm-project/pull/193644
[libcxx][Github] Build container images in separate jobs (#193346)
With some recent refactorings, these builds are almost entirely
independent (minus some caching of pulled base images). Put them into
separate jobs so we can take advantage of paralleism during the builds
to get the total wall-time down.
This wouldn't have as big of an advantage if we were using the just
built base image, but should still be wall-time advantagous even if we
go back to doing that when relevant.
[libcxx] Add Testing Configuration for LLVM libc
This patch adds a CMake cache, and the testing configs to build libc++
and run the tests against LLVM libc.
Reviewers: ldionne, philnik777, jtstogel
Pull Request: https://github.com/llvm/llvm-project/pull/165120
Re-apply "[AMDGPU][Scheduler] Use MIR-level rematerializer in rematerialization stage (#189491)" (#192443)
This fixes compilation errors in EXPENSIVE_CHECKS introduced by
[be62f27](https://github.com/llvm/llvm-project/commit/be62f270fd01e8c526f1e37df74ff1061e360dab).
This is solved by moving the EXPENSIVE_CHECKS block at its original
caller's site so that the data it reads is available.
Original PR description below.
---
This makes the scheduler's rematerialization stage use the
target-independent rematerializer. Previosuly duplicate logic is
deleted, and restrictions are put in place in the stage so that the same
cosntraints as before apply on rematerializable registers (as the
rematerializer is able to expose many more rematerialization
opportunities than what the stage can track at the moment). Consequently
it is not expected that this change improves performance overall, but it
is a first step toward being able to use the rematerializer's more
[17 lines not shown]
[flang][OpenMP] Add parallel loop to loop directive parser set (#193621)
Add `OMPD_parallel_loop` to `GetLoopDirectives()` in the Flang OpenMP
parser so that the valid OpenMP 5.0 combined construct
`!$omp parallel loop` is recognized as a loop construct.
Previously, the parser failed to match `parallel loop` as a loop
directive. It then fell through to matching `parallel` as a block
construct, leaving `loop` as an unexpected token, producing:
```
error: expected OpenMP construct
!$omp parallel loop
^
```
The directive was already fully defined in OMP.td and handled in the
semantics directive sets, lowering, and MLIR `GenericLoopConversion`
passes. Only the parser set was missing the entry.
[5 lines not shown]
[flang][cuda] Flatten memref descriptors in GPU kernel argument packing (#193651)
createKernelArgArray in CUFGPUToLLVMConversion packed one pointer per
operand, treating a memref argument as a single value. But gpu-to-nvvm
expands each memref into 3 + 2*rank scalar parameters, so the host-side
kernelParams did not match the device kernel signature and
cudaLaunchKernel failed with cudaErrorInvalidValue.
Host-side packing now unpacks each memref descriptor into its scalar
fields (allocatedPtr, alignedPtr, offset, sizes..., strides...),
matching the NVVM ABI. Non-memref operands pass through unchanged.