sysutils/Makefile: remove duplicate p5-reslog SUBDIR entry
The last merge from freebsd/main added p5-reslog a second time, which made
poudriere fail while gathering ports metadata.
[lldb] Refactor PrepareToExecuteJITExpression (#224888)
Refactor the body of PrepareToExecuteJITExpression into two methods:
AllocateInterpreterStackFrame and AllocateAndMaterializeStruct.
This change is purely mechanical, but improves readability and sets up a
future refactor: AllocateAndMaterializeStruct is generic expression
setup and should remain where it is, but AllocateInterpreterStackFrame
is only needed on the interpreter path and can be sunk into that path in
a future commit.
---------
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
[ORC] Mangle Call CI names as C (#225227)
Flip the Call descriptors (call_main, call_void_void, call_int32_void,
call_int32_int32) from Verbatim to C, so their names carry the target's
C mangling. Served by the in-tree OrcRTBootstrap; controller and
executor mangle the same specs and nothing else defines these names.
[clang][test] Fix module cache path in module-redecl1.cpp (#225241)
Fixes commit aa6b03ed5a9ffe5ba6f0d945fac9961884b5c6ed
Use `-fmodules-cache-path=%t` instead of `Inputs/` which fails in
read-only test sandboxes due to permission errors when writing compiled
module files. Also clean `%t` before execution and remove redundant
`-cc1`, matching the RUN lines in
test/Modules/redecl-add-after-load.cpp.
[TargetLowering][COFF] Only check shouldAssumeDSOLocal on GlobalVariable in lowerRelativeReference (#225160)
In #220674, a check was added to lowerRelativeReference requiring that
LHS be dso_local to prevent image-relative relocations for dllimport
variables. However, this check was applied unconditionally to all
GlobalObjects, including functions.
On Windows COFF, dllimport functions are valid targets for
image-relative relocations because the linker provides import thunks in
the local image. In particular, MSVC C++ exception handling metadata
(ThrowInfo and CatchableType) references imported copy constructors and
destructors via image-relative offsets when throwing exception types
across DLL boundaries. Rejecting them caused compilation failures in
downstream projects like PyTorch with:
"error: symbol '__ImageBase' can not be undefined in a subtraction
expression"
Restrict the shouldAssumeDSOLocal check to GlobalVariables only.
[CIR][NFC] Route target facts in LoweringPrepare through LowerModule (#225236)
LowerModule already rebuilds a full clang::TargetInfo
from the module's cir.triple and exposes getTarget()
and getCXXABIKind(). The changes are a pure routing
change: no new attribute and no CIRGen change,
since every routed fact is derivable from the triple,
that is already included in the module.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
[lldb] Make ScriptedPythonInterface::Dispatch return llvm::Expected<T> (#224988)
Until now, `Dispatch` returned the extracted value and reported failure
through a `Status &` out-parameter, which leaves the two outcomes
indistinguishable at the value level: a Python method that returns
`None` and one that raises both hand back a default-constructed `T`.
Only `error` told them apart, and because the signature advertises the
value, call sites reached for the value and dropped the error.
Three real instances of that:
- `ScriptedHookPythonInterface::HandleStop` returned `true` whenever the
object was null, discarding the backtrace of a raising `handle_stop`
(fixed separately).
- `GetStatusFromMethod` discarded `Dispatch<Status>`'s return value, so
the `SBError` returned by `ScriptedProcess.launch/attach/resume` and the
three `ScriptedPlatform` entry points was ignored entirely: a `launch()`
returning `SBError("no such file")` reported success.
- `GetThreadPlanMetadataForStepType` string-matched the exception text
[28 lines not shown]
[AMDGPU][InstCombine] Fold zero dot operands to accumulator
Fold AMDGPU dot intrinsics when either operand is zero.
`dot(a, 0) = 0` and `dot(0, b) = 0`, so replace the intrinsic with its accumulator.
This avoids unrelated clamp and add/sub reassociation cases.
[AMDGPU][InstCombine] Canonicalize dot constant operands
Move constant dot product source operands to the right hand side
and add tests for signed and unsigned dot intrinsics.
[AMDGPU][InstCombine] Fold constant add/sub into the dot accumulator
`amdgcn.{s,u}dot{2,4,8}(a, b, C) +/- K -> dot(a, b, C +/- K)` when both the
accumulator C and K are constants. The new constant is computed with
wrapping APInt arithmetic to match the non-clamping accumulate.
Only applies when clamp is false (the saturating accumulate does not
reassociate) and the dot has a single use. K - dot is left alone since it
would need the dot product negated.
[HLSL] Add `InterlockedMax` function and resource methods (#222160)
This PR adds the `InterlockedMax` standalone function and resource
methods.
It mimics the implementation of the `InterlockedMin` function and
resource
methods.
Like `min`, `max` is signedness aware. A signed operand lowers to
`atomicrmw max` and an unsigned operand lowers to `atomicrmw umax`. This
matches DXC, which selects between the `IMax` and `UMax` atomic binary
operations.
The PR also adds the 64-bit `InterlockedMax64` methods, which DXIL gates
on
shader model 6.6.
Fixes: https://github.com/llvm/llvm-project/issues/99124
Assisted by: Github Copilot
[Offloading] Add support for compressed OffloadBinary types
Summary:
Offload binaries are used to store many heterogenous architectures into
a singel offloading blob. These lists can get very large so this PR adds
the option to compress them with the LLVM provided compression
libraries.
The implementation is quite simple, we simply compress all the buffers
after the header into a single compressed blob, then re-construct the
header. Extracting is the reverse.
The biggest change is that the offload binary now **owns** the memory,
whereas before we simply took a reference to it. This is necessary
because the decompression must create new memory compared to what the
user provided. This adds an extra copy internally, but it also
simplifies the V2 additions.
This does not wire up any clang/HIP support, just providing the
functionality.
[Support] Infer compression format from zlib and zstd headers
Summary:
Identify compressed streams from their bitstream headers so callers can
decompress without naming the format. Recognize every valid RFC 1950
zlib header and the zstd frame magic, and reuse that for
getReasonIfUnsupported and decompress. Collapse the AST reader onto the
new helpers.
[AMDGPU] Add MemoryPipeline scheduling to Coexec sched (#192325)
This adds two pieces to the new scheduler:
Stalls between ds_load and fence
tryAsyncPipe
For both of these pieces we are making some assumptions about the
pipelining of memory instructions in the incoming IR. Namely, that the
long latency memory operations are pipelined and the shorter latency
memory operations (e.g. ds_loads) aren't. Moreover, this assumes that
any user added waitcnts appear directly before fences. These assumptions
are compensating for the fact that we don't have any analysis of the
pipeline available during scheduling.
Stalls between ds_load and fence
The main concept here is that when legalizing the fences we will insert
wait_dscnts for any outstanding ds_load instructions. By teaching the
scheduler about the stall between these instructions, we can hide
latency between ds_load -> wait_dscnt. A common idiom is:
[22 lines not shown]
Use struct tls12_record for TLSv1.2 writes.
Seal records into a struct tls12_record and use this to write records
to the wire. This simplifies things considerably and means that we no
longer use s->s3->wbuf or s->s3->wrec for non-DTLS in the legacy stack.
ok joshua@ tb@
Add match syntax rule test
The matching-rules chnage from case-insensitive to case-sensitive depends
on the case, which is strange.
To continue working in this area, here are some tests of the
default "behavior":
- test default glob(7) cookie name/key matching is case-insensitive
- test default glob(7) cookie value matching is case-insensitive
- test default glob(7) header name matching is case-insensitive
- test default glob(7) url lookup is case-insensitive
- test default glob(7) header value matching is case-sensitive
- test default glob(7) path matching is case-sensitive
- test default glob(7) query name/value matching is case-sensitive
- test that an omitted rule value defaults to "*" and matches any value
both with a plain glob(7) and patterns(7)
[2 lines not shown]