[ADT] Qualify AddressRange in AddressRangesBase::find. NFC (#237144)
With `-fdelayed-template-parsing` (the default for clang targeting the
MSVC ABI), `find` is parsed at the end of the TU, where `llvm-profgen`
makes `llvm::sampleprof::AddressRange` visible in `namespace llvm`.
Qualify with `llvm::` to avoid the ambiguity.
```
AddressRanges.h:101:42: error: reference to 'AddressRange' is ambiguous
note: candidate found by name lookup is 'llvm::AddressRange'
note: candidate found by name lookup is 'llvm::sampleprof::AddressRange'
```
[SPARC] Keep the GOT memory operand on TLS initial-exec loads (#237512)
The initial-exec TP offset load (SPISD::TLS_LD) was a plain node, so
TLS_LD[X]rr had no memory operand and was not known to be an invariant
load. MachineLICM, MachineCSE and rematerialization then left one GOT
load per use, including inside loops.
Build it as a memory node with a GOT MachinePointerInfo, as was done for
the GOTDATA_OP load in 5cf27304eccf.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
signify: check last block size for gzip
The gzip header contains a blocksize extended header. This patch adds the
parsing of an extra lastblocksize header. As the name indicates, this marks
the end of the recorded SHA512/256 blocks and allows checking the size of
the signed data. Once its presence is enforced, this will prevent length
extension attacks. While no such attack for SHA512/256 is known or even
expected to exist, having a tighter form is desirable anyway.
This header not yet emitted and the parser treats it as optional to allow
transitioning. In follow up steps the lastblock will be emitted on signing
and then its presence will be required.
looked over by op
from espie
[DirectX] expandIsFPClass - silence MSVC promoted shift warning (#237237)
Use APInt::getSignMask to create -0.0 bitmask instead of raw uint32_t
shift that is then implicitly promoted to uint64_t in the
ConstantInt::get call.
Silences MSVC "result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)" warning.
[libc][stdlib] Avoid scanning values during environment lookup (#228633)
Constructing a string_view for each environment entry scans the entire
value to determine its length, even when the name does not match. This
makes lookups unnecessarily expensive for long values such as PATH.
Filter entries by their first character, then compare the remaining name
up to a mismatch or null terminator. Require a following '=' to match
the complete key, preserving support for empty names in putenv.
Closes #196016
resterm: Update to 1.17.2
Clipboard over SSH (OSC 52)
osc52_limit
Broken settings file no longer overwritten
Mock server, recorder and OAuth stop right away
[clang-repl] Pass the target features to the device TargetMachine (#235754)
IncrementalCUDADeviceParser creates the NVPTX TargetMachine with an
empty feature string. The +ptxNN feature that the driver derives from
the CUDA version is dropped, causing the backend to emit the minimum PTX
version for the target SM instead. A kernel using a newer instruction
then fails to load with cudaErrorInvalidPtx, for example shfl.sync below
sm_70.
Join TargetOptions::Features into the feature string, as done in
EmitAssemblyHelper::CreateTargetMachine.
Add a unittest that passes --cuda-feature=+ptx80 to the device
compilation and checks the .version of the embedded PTX.
[IR] Put validateInstrOrdering behind ABI_BREAKING_CHECKS (#235885)
A release LLVM library will provide no definition for
validateInstrOrdering, but the inline definition is guarded behing
NDEBUG -- so a LLVM consumer including the headers without NDEBUG won't
have a definition of the function (and is thereby prevented from calling
invalidateOrders()).
Move the inline function behind LLVM_ENABLE_ABI_BREAKING_CHECKS instead.