[lldb] Support objc_runtime_name annotations in DWARF (#233648)
An Objective-C class with a custom objc_runtime_name exports its
class, metaclass, and ivar offset symbols under the runtime name.
LLDB reconstructs the interface from DWARF with only the source name,
so expressions that reference such a class fail to find these
symbols.
This patch reads the DW_TAG_LLVM_annotation that clang now emits for
the runtime name and attaches an ObjCRuntimeNameAttr to the
reconstructed ObjCInterfaceDecl.
rdar://190472538
Assisted-by: Claude
Attributor: Add only new attributes when manifesting
manifestAttrs collected the attributes to add in an AttrBuilder, then
copied the position's attribute set into another AttrBuilder to merge
them in. Collect them in an array and merge them into the set in one
pass. This requires the attributes passed to manifestAttrs to be sorted
like an attribute set, which all callers already do. The only one
passing more than one attribute is AMDGPUAttributor, whose implicit
argument attributes are sorted.
Instructions spent in amdgpu-attributor:
rocPRIM test_device_scan, gfx942: 770.2M -> 710.8M (-7.7%)
Blender Cycles HIP kernel, gfx1100: 380.0M -> 379.5M (-0.1%)
rocPRIM 16 tests, full LTO, closed world: 3019.8M -> 2855.9M (-5.4%)
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
IR: Add attributes from an array to an attribute set
Add AttributeSet::addAttributes and AttributeList::addAttributesAtIndex
overloads taking an array of attributes sorted like an attribute set,
with distinct kinds. They merge the attributes into the set in one pass,
without first copying the set into an AttrBuilder and adding each
attribute to it.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[clang][DebugInfo] Record objc_runtime_name of ObjC interfaces (#233647)
An Objective-C class with a custom objc_runtime_name exports its class,
metaclass, and ivar offset symbols under the runtime name, but the debug
info only records the source name.
This causes problems in LLDB's expression evaluator since it will use
the name recorded in the debug info for any ObjC metadata symbols.
This patch uses DW_TAG_LLVM_annotation to record the runtime name in the
interface.
rdar://187396633
Assisted-by: Claude
[LLVM][docs] Unquote todo blocks in AMDGPU processor table
Four todo blocks in the processor table were wrapped in a blockquote left
over from the reST conversion.
LLM-aided
Merge main and amdgpu-md-rename into amdgpu-md-rewrite
Resolve the AMDGPUUsage.md conflict by translating the two upstream
AMDGPUUsage.rst edits (#232985, #233528) into the reviewed Markdown.
LLM-aided
Merge main into amdgpu-md-rename
Resolve the AMDGPUUsage.rst conflict by applying the two upstream edits
(#232985, #233528) to the renamed AMDGPUUsage.md.
LLM-aided
[clang][CIR] Build llvm-strings for check-clang
With CIR enabled, check-clang discovers the bytecode tests. They invoke
llvm-strings, but only check-clang-cir declares it as a dependency. Add it
to the common Clang test dependencies for non-standalone CIR builds so a
fresh check-clang build has the tool.
[flang][debuginfo] Emit DW_AT_type for DW_TAG_string_type DIEs [3/3] (#231960)
Use the new DIStringType type field to emit the DW_AT_type attribute on
DW_TAG_string_type DIEs generated by Flang's debug type generator,
enabling debuggers to identify the character type of Fortran strings.
Fixes #95440
[libc][cmake] Unify unit and hermetic test rules into add_libc_test (#233512)
- Consolidate _add_libc_unittest and add_libc_hermetic into mode-aware
add_libc_test and create_libc_test rules using llvm_libc_parse_arguments
and forward_arguments (#232089), keeping add_libc_unittest,
add_libc_hermetic, and add_fp_unittest as thin forwarding wrappers.
- Replace separate libc-unit-tests and libc-hermetic-tests with unified
libc-tests and libc-tests-build targets.
- Introduce add_libc_testsuite to create both <suite> and <suite>-build
targets wired into libc-tests and libc-tests-build.
- Move add_fp_unittest into LLVMLibCTestRules.cmake via the FP_TEST
option and rename MPFR/MPC helper libraries to follow standard libc
target naming (libc.utils.MPCommon, libc.utils.MPFRWrapper,
libc.utils.MPCWrapper).
- Streamline _add_libc_test_runner: replace $<TARGET_FILE:...> with
configure-time binary paths, fast-path .params generation, and define
test runner targets directly via add_custom_target(... COMMAND ...
JOB_POOL ...) instead of intermediate .cmd stamp rules.
- Update docs and GPU benchmarks to use the unified test targets and
[2 lines not shown]
[libc++] Disable automatic module scanning on ARM CI builders (#232947)
The ARM Buildkite toolchains do not expose clang-scan-deps to CMake.
When CMP0155 enables automatic scanning for libc++abi C++23 sources,
these standalone runtimes builds fail with the scanner set to NOTFOUND.
Pass CMAKE_CXX_SCAN_FOR_MODULES=OFF in the eight ARM job invocations,
including the no-exceptions variants, until their toolchains provide a
matching scanner. Keep the other CI configurations on their defaults.
See the issue tracking upgrading the bots:
https://github.com/llvm/llvm-project/issues/232946
Assisted-by: Codex
www/{nginx,nginx-devel,freenginx}: 3rd-party modules management
Build the auth_ldap module from its own source port, and add the
cert_expiry, ip_anon, stream limit_req and syslog5424 modules.
Sponsored by: Netzkommune GmbH
www/nginx-module-syslog5424: Add New Port
The syslog5424 module sends an access line in the format RFC 5424 asks for:
version, RFC 3339 timestamp, hostname, app name, process id, message id and
structured data.
Sponsored by: Netzkommune GmbH
www/nginx-module-stream-limit-req: Add New Port
The stream limit_req module rate limits incoming connections in the stream
subsystem. limit_req_zone and limit_req are spelled and counted as in the
http module, so a rate written down once reads the same for TCP, UDP and
HTTP.
Sponsored by: Netzkommune GmbH
www/nginx-module-auth-ldap: Add New Port
The auth_ldap module authenticates HTTP basic credentials against an LDAP
directory. An ldap_server block describes one directory, require rules say
who is let in, and every worker keeps a pool of connections to it.
Sponsored by: Netzkommune GmbH
www/nginx-module-ip-anon: Add New Port
The ip_anon module masks the host part of the client address.
$remote_addr_anon and $binary_remote_addr_anon carry the result, for a log
or a limit key that is not meant to name anybody.
Sponsored by: Netzkommune GmbH
www/nginx-module-cert-expiry: Add New Port
The cert_expiry module reads every file an ssl_certificate names, when the
configuration is read and again on a timer, and reports how long the
certificate still has. $ssl_expiry_days carries the days left into a log
format.
Sponsored by: Netzkommune GmbH
[clang][Modules] Disable module map subdirectory search by default (#234233)
cbd5ba20d1fa stopped searching the immediate subdirectories of header
search paths for module maps on Darwin using SDKs: macOS 15+, iOS 18+,
tvOS 18+, watchOS 11+, and visionOS 2+.
Now, disable it by default everywhere.
`-fmodulemap-allow-subdirectory-search` is kept as an opt-in for the
previous behavior.
[OpenACC] Handle device_type(*) properly for OpenACC routine bind (#234373)
Add `getEffectiveBindName` to `acc.routine` to select the applicable
bind for a target device. Use it in `ACCImplicitRoutine`,
`ACCRoutineLowering`, `ACCRoutineToGPUFunc`,
`ACCMaterializeRoutineBindTargets`, and `ACCBindRoutine`.
Assisted-by: Codex
Merge tag 'timers-vdso-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull VDSO updates from Thomas Gleixner:
"Updates for the VDSO subsystem:
- Ensure that the CLOCK_AUX base calculations are properly scaled
against the base timekeeper. The update function failed to take the
fractional nanosecond part into account, which results in a
rounding error.
- Cleanup and consolidate the vsyscall headers to get rid of
pointless copies all over the architectures.
- Replace a runtime conditional in the time getter function for
namespaced clocks by simple pointer arithmetic which speeds up the
read function"
* tag 'timers-vdso-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
vdso/vsyscall: Keep the CLOCK_AUX base scaled
[18 lines not shown]
Merge tag 'timers-nohz-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull NOHZ updates from Thomas Gleixner:
"Updates for the tick/NOHZ machinery:
- Add the BLOCK_SOFTIRQ to the hotplug safe local softirq pending
mask to prevent false positive error messages. A BLOCK_SOFTIRQ can
be pending when a CPU goes offline as the subsequent cleanup will
take care of the outstanding completions.
- Remove a few redundant invocations of local_irq_save/restore() and
timekeeping_max_deferment() to speed up the NOHZ idle transitions"
* tag 'timers-nohz-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
tick/nohz: Avoid unused timekeeping_max_deferment() calls
tick/nohz: Remove redundant local_irq_save()/restore()
tick/nohz: Add BLOCK_SOFTIRQ to the hotplug safe mask
[CIR][NFC] Avoid unused value for vtable address point (#234326)
We had been creating an unused value to emit a constant attribute for
vtable address points in ConstantRecordBuilder. We recently discovered
that the temporary operation wrapped by this value was being leaked. A
quick fix was added to delete the operation. This change applies the
more thorough fix of just creating the attribute directly without
creating a temporary value.
Assisted-by: Cursor / claude-opus-5.5