[GVN] Preserve scoped-alias metadata on coerced loads (#206417)
When forwarding a wider load to a narrower load at an offset, GVN drops
the wider load's metadata. !noalias and !alias.scope are independent of
the load type and offset, and the wider load is not moved and still
accesses the same memory, so they remain valid and are now kept instead
of dropped.
[NVGPU] Fix crash on ui64 memory space attributes (#204580) (#204676)
Replaced getInt() with getValue() to fix crash on ui64 memory space
attributes.
---------
Co-authored-by: Naazni Yahya <naazniyahya at Naaznis-MacBook-Air.local>
[Debugify] Add finer control over origin stacktrace collection (#206128)
As part of an attempt to streamline DebugLoc coverage/origin tracking
using debugify, this patch adds a command-line flag that is used to
explicitly enable origin-tracking, instead of being always-enabled if
built with the feature. This flag also allows us to specify a list of
passes to enable origin-tracking for, instead of having it enabled
across all passes.
Disabling origin-tracking still incurs the cost of storing a SmallVector
with small size=0 (i.e. 3*sizeof(void*)) in each DebugLoc, but avoids
the tremendous cost of collecting stacktraces at every empty DebugLoc
construction - which occurs very frequently even in builds without
missing coverage.
The motivation for adding this flag is that it allows a Clang built with
origin-tracking enabled to still be used in coverage-tracking mode with
a relatively low cost; since origin-tracking only adds details to the
errors that coverage-tracking detects, this allows a workflow where we
[5 lines not shown]
Update UnicodeNameToCodepointGenerator.cpp to refer to Unicode 18 (#206315)
#198255 updated our generated Unicode tables to Unicode 18, but didn't
update any of the string literals or comments that still refer to
Unicode 15.
[clang][CodeGen][Coro] Fix missing EHCleanup for eagerly returned GRO (#206392)
When the GRO is returned eagerly, its value is emitted directly to the
return-value slot. However, we failed to emit EHCleanup for it, leading
to resource leaks if an exception was thrown inside the ramp function.
#202279 fixed this for the period before `initial-await-resume-called`
is set to `true`. This patch extends that fix to cover the entire ramp
function.
Close #199627
[AMDGPU][SIMemoryLegalizer] Consider scratch operations as NV=1 if GAS is disabled
- Clarify that `thread-private` MMO flag is still useful.
- If GAS is not enabled (which is the default as of last patch), consider an op as `NV=1` if it's a `scratch_` opcode, or if the MMO is in the private AS.
- Add tests for the new cases.
- Update AMDGPUUsage GFX12.5 memory model
[AMDGPU] Make globally-addressable-scratch opt-in
This feature is meant to be opt-in for more advanced users, not default-enabled.
It may reduce performance otherwise as we can't assume private AS is thread-local
when it is enabled.
- Add `HasGloballyAddressableScratchSupport` feature to check if a target's scratch
addressing is changed due to support for globally addressable scratch.
- Use `EnableGloballyAddressableScratch` to check whether the user opted into
globally addressable scratch. This affects whether to lower scratch atomics as flat,
and in the future will affect whether NV=1 can be set on scratch accesses.
[LifetimeSafety] Add separate diagnostic groups for constructor annotation suggestions (#206254)
Reason:
* Better selective enablement.
* In experience, constructor annotations are the most useful and
improves detection by manifolds.
Convert SNMP plugin to the typesafe pattern
## Context
Migrate the `snmp` plugin to the typesafe pattern: a lean `SystemServiceService[SNMPEntry]` delegating to an `SNMPServicePart`, with Pydantic API models, `check_annotations=True`, and `config`/`do_update` returning typed models instead of dicts.
## Solution
- Split the single `snmp.py` into a `snmp/` package: a lean `__init__.py` (service class + port delegate) and `config.py` (the service part holding the SQLAlchemy model, the model-based `do_update`, the v3 user lifecycle, and the defaults helper). `get_snmp_users` stays a `@private` method because the integration tests invoke it over the wire; the unused `_is_snmp_running` was dropped.
- Decouple the legacy `@single_argument_args` model into `SNMPEntry` / `SNMPUpdate` / `SNMPUpdateArgs` / `SNMPUpdateResult` in `api/v27_0_0`. The `v3_password` / `v3_privpassphrase` secrets are read via `get_secret_value()` and persisted with the `expose_secrets` dump context.
- `snmp.config` now returns a model in-process, so the `snmpd.conf.mako` renderer is switched from dict subscripting to attribute access.
- Register the service in `main.py`'s `ServiceContainer`, add the plugin to `mypy.yml`, and fully type-annotate the `utils_snmp_user` helpers so the now-checked plugin passes mypy.
[lldb][test] Skip TestBreakpointConditions.py on Windows on Arm (#206433)
Has been failing a lot lately on the buildbot, see #206141.
Which part fails seems to vary so I'm disabling all of it.
fix ineffective max file size check when loading blobs/keys from
files and add another one on a patch that was not covered by the
existing ones. From Tess Gauthier via bz3969 and bz3970
[lldb] Ignore notification packets (#204788)
The gdb-protocol spec says
> Recipients should silently ignore corrupted notifications and
notifications they do not understand.
This changes `WaitForPacketNoLock` so that it ignores all notifications
(I'm not sure about corrupted ones).
An example of a notification that causes issues without this change is
that OpenOCD sends `%ookeepalive:00` notifications during memory
accesses.
Fixes #197944