[libc++][NFC] Avoid checking that string::iterator is a contiguous iterator (#178636)
`__is_continuation` is only used in contexts where we already know that
the argument is a contiguous iterator. However, due to the context in
which it is used, we check it as soon as the header is included. The
`contiguous_iterator` check is quite expensive (~12ms on my system), so
avoiding it reduces compile times for quite a few headers, including
`<vector>`.
[Clang] speed up -Wassign-enum via enumerator caching (#176560)
Fixes #176454
---
This patch addresses a performance issue in `-Wassign-enum` where
enumerator values were repeatedly rebuilt and sorted for each assignment
check, leading to excessive compile-time overhead for large enums.
The following charts demonstrate the benchmark results before and after
caching enumerator values
Before
<img width="640" height="480" alt="before_enum_assign"
src="https://github.com/user-attachments/assets/cbc9de29-32cd-452e-84e9-383dcf334bac"
/>
[3 lines not shown]
clang: add test for C2y n3605 (#178479)
Add a test for N3605: Generic replacement (v. 2 of quasi-literals)
The paper clarifies existing behavior of _Generic selection and
parenthesis. This PR adds tests along the same lines and mark the
feature as supported.
clang: improve lit testing docs (#178244)
The LLVM Integrated Tester now generates an "easy to use" script to run
clang tests. It is no longer needed to pass all of the commandline
arguments to it. This PR simplifies the documentation a little by
removing the unneeded commandline arguments and adding a link to the lit
man page.
[AMDGPU] Add test for amdgcn.if/else per-output uniformity (NFC)
Add a test to document the current behavior of uniformity analysis for
amdgcn.if and amdgcn.else intrinsics. Currently both outputs are marked
divergent regardless of input uniformity.
IR: Add stub LLVMCreateDenormalFPEnvAttribute to C API
This is a staging commit for #174293 to avoid an intermediate
break of the mesa build when committed. Implement just enough
of the API in terms of the old attributes to avoid breaking
the mesa use. #174293 will then implement the full API in terms
of the new attribute.
[EntryExitInstrumenter] Mark CFG as preserved (#178875)
This pass does not change the CFG, so mark all CFG analyses as
preserved, instead of DT in particular. This matches what the NewPM
implementation does.
(This currently has no direct benefit as nearby passes end up
invalidating things anyway.)
[MLIR][GPU] Update serializeToObject to use SerializedObject wrapper and include ISA compiler logs (#176697)
This PR makes the compilation log from ISA compiler available to users
by returning it as part of the `gpu::ObjectAttr` properties, following
the existing pattern like `LLVMIRToISATimeInMs`.
Currently, the compiler log (which contains useful information such as
spill statistics when --verbose is passed) is only accessible in debug
builds via `LLVM_DEBUG`. However, there are good reasons to make this
information available in release builds as well:
1. Both `ptxas` and `libnvptxcompiler` are publicly available
tools/libraries distributed with the CUDA Toolkit. The `--verbose` flag
and its output are documented public features, not internal debug
information.
2. The verbose output provides valuable insights for users.
A new `SerializedObject` class is used to carry the metadata alongside
the binary when returning from `serializeObject`.