[lldb] Support building test inferiors without debug info (#197002)
Add first class support for building test inferiors without debug info,
instead of having to pass `-g0` in the Makefile or the build dictionary.
```
def test(self):
self.build(debug_info="none")
```
rdar://164923931
[AMDGPU] Validate forced lit() immediate
Right now it takes validation path of an inline constant if fits
even though it is forced to literal encoding.
[clang-sycl-linker] Migrate tests from Driver/ to Tooling/ and use LLVM IR input (#197566)
1. Replace the C++ source test that required compiling with %clangxx and
separate Input files with self-contained .ll tests using split-file.
2. Split the test into two files:
- clang-sycl-linker.ll: basic tool behavior (link, dev libs, AOT,
errors)
- clang-sycl-linker-split-mode.ll: device code split mode handling
Co-Authored-By: Claude
[clang] NFC: add asserts enforcing template parameters have valid positions
Some tests are violating these assertions, so they are commented out.
Most of these are alias CTAD tests, with a couple of lambda in concepts tests on
top of that.
For the test in `clang/test/SemaTemplate/concepts.cpp`, that was broken by #195995
and needs a partial revert at least.
[scudo] Add test for initFlags()
Add a test case to verify that initFlags() correctly reads the
SCUDO_ALLOCATION_RING_BUFFER_SIZE environment variable and updates the
corresponding flag. This increases line coverage for flags.cpp to 100%.
[clang-format] Handle more Verilog attributes (#196455)
before
```SystemVerilog
(* x = "x" *) foreach(x[x]) x = x;
```
after
```SystemVerilog
(* x = "x" *) foreach (x[x])
x = x;
```
The code for handling statements like the `foreach` preceded the part
for handling the attributes inside `(* *)`. So there was a problem with
some of the statements following attributes. The patch moves the part
for the statements down. The loop in the code was also unnecessary.
[compiler-rt][cmake] Fix check_cxx_compiler_flag calls (#197529)
check_cxx_compiler_flag, when passing multiple flags, we must separate
them using a SEMICOLON-separated list. Not spaces. These checks
succeed incorrectly sometimes because "-Werror -mcrc" has a different
return value than "-Werror" "-mcrc" on some systems.
This issue was verified with LLVM_ENABLE_PROJECTS=llvm;compiler-rt,
and I'm uncertain whether it exists in runtime CMake builds.
Nonetheless, it's still a bug.
See:
https://cmake.org/cmake/help/latest/module/CheckCXXCompilerFlag.html
This issue was identified downstream in ChromiumOS.
ChromiumOS Bug:
https://issuetracker.google.com/507177988
Improve the executable name detection in ELF core files. (#197341)
A previous commit switched us to use the value of the AT_EXECFN, which
is an entry in the aux vector, as the executable path. As it turns out,
if a symlink is used to launch a program, the symlink path will be in
the AT_EXECFN string in core file memory. The PRPSINFO also contains a
basename of the program, and it will also be the symlink basename. The
best source of information to figure out the executable name is from the
NT_FILE note. This always has the resolved path to the executable.
Now the executable name is found in a reliable way starting with finding
the NT_FILE entry for the main executable. This can reliably be done by
finding the NT_FILE entry whose address contains the AT_PHDR aux vector
value. This value is the address of the program headers for the main
executable. If there is no NT_FILE entry we can find, we fall back to
the AT_EXECFN entry from memory and then fallback to the basename in the
PRPSINFO. This patch also creates a placeholder as the main executable
when the executable can't be found to ensure users can see which
executable they will need to track down in order to load the core file.
[8 lines not shown]
[Instrumentor][NFC] Add docs and config-wizard script (#197066)
This commit adds initial documentation for the instrumentor to the
html/man pages and provides a script that helps new users to setup the
config and stubs file interactively.
The script and docs have been created with Claude (AI) but
proofread/tested and modified afterwards.
ZTS: zhack_metaslab_leak.ksh busy export
If the pool is active 'zpool export' will fail resulting in
a test failure. Swap log_must with log_must_busy so the export
is retried when reported as busy before failing the test.
Reviewed-by: Tony Hutter <hutter2 at llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Closes #18512
[AMDGPU] Validate forced lit() immediate
Right now it takes validation path of an inline constant if fits
even though it is forced to literal encoding.
[LSV] Handle or-disjoint as an add-like operation for vectorization. (#197243)
LoadStoreVectorizer can safely handle `or disjoint` instructions as
`add nuw nsw`, when they are used for offset computations. This patch
enables vectorization of such patterns.
Assisted-by: Claude Opus 4.6 <noreply at anthropic.com>
[Instrumentor] Add a property filter for static properties
The user can define static filters in the json to limit instrumentation
to opportunities that match the static expression, e.g., is_volatile==1.
The matcher logic is pretty basic for now. Integer comparisons, string
equalities and startswith are supported.
The commit was prepared with Claude (AI) and proofread/tested by me.
[AMDGPU] Fix forced lit64 encoding on lit() modifier (#197561)
We were forcing lit64 encoding on a 64-bit operand with lit()
modifier. This is not required, not compatible with SP3, and
in the pathalogical case creates invalid 4 dword encoding if
used with a VOP3* instruction.
That said if lit() is used the immediate is silently truncated
even before the encoding, so the encoder only sees 32-bits of
relevant data and 32-bits of zeroes anyway. That is a separate
issue, but we never had a true 64-bit constant really properly
encoded with lit() modifier, only with lit64().
[Instrumentor] Allow multiple config files with different filters (#196235)
To instrument different functions in different ways we allow to provide
multiple config files now. Each file will result in one instrumentation
run. Multiple files can be passed via command line option or listed in a
"summary" file that is passed via command line option (to keep the
command length managable).
[scudo] Add unit tests for optional config flags
This patch adds checks for all optional configuration flags defined in
allocator_config.def to allocator_config_test.cpp. This increases the
code coverage of allocator_config_wrapper.h by exercising the template
instantiations for these optional flags.