[AMDGPU] Avoid repeated parsing in generic classification test
Parse AMDGPU.td once and assert real feature classifications directly. Keep validation of real generic targets and use AMDGPUTargetDefGenericFeatures.td for validation diagnostics.
Addresses the timeout reported on #223179. Local test time drops from 79.59s to 11.28s; both classification and generic feature validation tests pass.
Change-Id: Ic93ed7843d48230cf61c196502b51d7900dc3329
[lldb] Add error logging to DIL (#224763)
This patch also adds a new `EvaluateTree` interface for the Interpreter,
since putting the logging into the existing `Evaluate` would output the
message every time it's called internally.
[BOLT] Don't report an ignored build-id mismatch as an error (#225219)
With `-ignore-build-id`, a build-id mismatch still printed
PERF2BOLT-ERROR: failed to match build-id from perf output. ...
Use -ignore-build-id option to override.
and then carried on normally. Fix the messaging to reduce noise in logs.
[mlir-c] Assert diagnostic severity in CAPI test
Print the diagnostic severity in the test handler and add CHECK lines
asserting Error/Warning/Remark, so the warning/remark tests no longer
pass vacuously. Also add the missing end-of-diagnostic CHECKs.
[AArch64][GISel][FastISel] Fix Windows "sret inreg". (#225190)
5dc8aeb26d2896c65cbea0d3b87f090241444bb6 added a special case to
SelectionDAG ISel for "sret inreg" parameters: they are copied to x0 on
return. There was a review comment suggesting that GISel and FastISel
also needed fixes, but through some mixup the followup never happened.
Fixes #225060
minimize_crash.test sometimes one-shots the minimization (fix flaky test)
After 223470 it is now possible for minimize_crash to one-shot the minimization
by applying the EraseBytes mutation 3 times (to go from size 8=>4=>2=>1).
```
| 35: SUMMARY: libFuzzer: deadly signal
| 36: MS: 3 EraseBytes-EraseBytes-EraseBytes-; base unit: 0000000000000000000000000000000000000000
| 37: 0x2a,
| 38: *
```
rdar://188078094
libbsdconf: parse from a bounded in-memory buffer
Copy the descriptor into a buffer of at most 64 MiB (raise it with
BSDCONF_MAX_BYTES) and tokenize with bsdconf_scan(), the walker
bsdconf_put() already uses. Input above the cap fails with EFBIG.
Bump libbsdconf to 1.2.0 and sysconf(8) to 2.0.
Suggested by: fuz
Reviewed by: fuz
Differential Revision: https://reviews.freebsd.org/D59751
[libcxx] Enable threads on LLVM-libc (#224436)
Now that LLVM-libc's use of atomics has been fixed in #224162, #224160,
and #224164 this PR removes the carveout for threads in libc++ when
building on LLVM-libc.
Assisted-by: Automated tooling, human reviewed
[lldb] Fix heap-use-after-free in scripted process memory reads (#225472)
The ASan bots hit a use-after-free unwinding the scripted process in
TestScriptedProcess:
```
READ of size 512
#1 DataExtractor::CopyByteOrderedData() DataExtractor.cpp:660
#2 ScriptedProcess::DoReadMemory() ScriptedProcess.cpp:282
#3 Process::ReadMemoryFromInferior() Process.cpp:2453
#4 MemoryCache::Read() Memory.cpp:323
```
AddressableBitsScriptedProcess.read_memory_at_address(), added in 851eb5a97ba6, filled its SBData with SetData(). That overload is non-owning: it builds a DataExtractor that aliases the caller's buffer. The buffer it was handed is a `bytes(size)` temporary, which Python frees as soon as the call returns, so DoReadMemory copies out of a dead allocation. The 512 is the default
target.memory-cache-line-size, not the register width the unwinder asked for.
Use SetDataWithOwnership() instead, as every other scripted process script already does.
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
[flang][OpenMP] Add -fopenmp-version flag to several tests (#224934)
The default OpenMP version in flang is 3.1. A number of tests use
features added in later versions. They currently pass because the
version validity is not enforced in many cases. Set the OpenMP version
explicitly to avoid failures when the checks become more strict.
[flang][OpenMP] Annotate some directive and clause names (#225210)
There are some directives that share the same spelling, but have
different functionality. The same is true for clauses. When getting the
upper-case name of such a directive or a clause, optionally (and by
default) add an annotation about the kind of the directive or clause.
For example, a standalone ORDERED directive will be displayed as
"ORDERED (standalone)". This was already done, for this directive, but
not in all cases.
[flang][cuda] Preserve allocator index when splitting host-accessible realloc assigns (#225537)
After #224195, shape-changing assignment to a pinned/managed/unified
allocatable inlined cuf.alloc/cuf.free but rebuilt the descriptor
without
allocator_idx. Implicit DEALLOCATE then used the default allocator and
called libc free() on CUDA storage.
Pass the CUDA allocator index through MutablePropertyWriter so fir.embox
keeps pinned=1, managed=3, and unified=4.
[X86] combineTargetShuffle - cleanup PSHUFD/LW/HW folds (#225477)
Handle all PSHUFD/LW/HW folds in the main switch statement - we
simplified the combineRedundantDWordShuffle folds ages ago, but never
merged the 2 switch statements back together.
The isNoopShuffleMask check should have already been taken care of by
combineShuffle.
[SystemZ][z/OS] Fix compile errors cused by sys::fs::file_t
Follow-up to #224859: some calls/prototypes are guarded on z/OS,
and also need to be updated. This change fixes various compile
errors.
[AMDGPU] Add SRAMECC on/off mode capability
Distinguish SRAMECC hardware support from selectable on/off modes, mirroring XNACK. Preserve selectable modes on existing targets and use the new capability for target-ID validation, defaults and printing, module flags, and disassembly.
Expose the generated frontend capability as read only and exclude it from serialized target features. Add parser, driver, frontend, and disassembler coverage and document module-flag behavior.
Change-Id: I9b212be27631106749fe54c3bd88a1c72a1fefc3
Validation: rebuilt Clang and LLVM tools; 30 AMDGPU TargetParser unit tests and 22 focused lit tests passed.
[SystemZ][z/OS] Fix compile errors cused by sys::fs::file_t
Follow-up to #224859: some calls/prototypes are guarded on z/OS,
and also need to be updated. This change fixes various compile
errors.