[DataLayout] Add null pointer value infrastructure
Add support for specifying the null pointer bit representation per address space
in DataLayout via new pointer spec flags:
- 'z': null pointer is all-zeros
- 'o': null pointer is all-ones
When neither flag is present, the address space inherits the default set by the
new 'N<null-value>' top-level specifier ('Nz' or 'No'). If that is also absent,
the null pointer value is zero.
No target DataLayout strings are updated in this change. This is pure
infrastructure for a future ConstantPointerNull semantic change to support
targets with non-zero null pointers (e.g. AMDGPU).
[flang][OpenMP] Remove deferredNonVariables_ from OmpStructureChecker… (#195100)
…, NFC
It was created to defer error messages about invalid argument types
until the end of the analysis of the construct. That is not necessary
since diagnostic messages are emitted in the order corresponding to
their location in the source, not the order they were generated.
[llubi] Vector manipulation intrinsics cleanup (#195004)
This PR fixes llvm.vector.insert and llvm.vector.extract by adding a
missing UB case and handle scalable vectors correctly.
See also #194345.
[DAG] expandVecReduce - widen sub-legal vectors to not prematurely scalarize later reduction levels (#194672)
When repeatedly splitting the pow2 vector source, we currently begin to
scalarize as soon as the split ops drop below the legal vector op type.
This patch attempts to widen the source vectors back to legal op types
to avoid excess scalarization / additional vector element extractions.
Fixes #194655
[libc][docs] Add nl_types.h POSIX header documentation (#122006) (#194373)
Add nl_types.h implementation-status docs to llvm-libc.
Depends on PR #194367. That change fixes docgen lookup for underscored
headers, without it, the macros of nl_types.h implementation status is
not reported accurately.
[ProfileData] Use FORCE_ON for LLVM_ENABLE_OPENCSD (#194973)
Use FORCE_ON instead of ON to only report the error but proceed when the
dependency is not found.
[flang][openmp] Fix incorrect reduction for array section in OpenMP DO SIMD (#192394)
for "!omp do parallel simd reduction" ensuring that reduction for array
section is done properly by :
1) per-SIMD-lane reduction results are combined into the wsloop's
thread-local copies.
2) wsloop thread-local copies are combined across threads by the wsloop
reduction.
Issue is in [192077](https://github.com/llvm/llvm-project/issues/192077)
---------
Co-authored-by: Sunil Kuravinakop <kuravina at pe31.hpc.amslabs.hpecorp.net>
[DataLayout] Add null pointer value infrastructure
Add support for specifying the null pointer bit representation per address space
in DataLayout via new pointer spec flags:
- 'z': null pointer is all-zeros
- 'o': null pointer is all-ones
When neither flag is present, the address space inherits the default set by the
new 'N<null-value>' top-level specifier ('Nz' or 'No'). If that is also absent,
the null pointer value is zero.
No target DataLayout strings are updated in this change. This is pure
infrastructure for a future ConstantPointerNull semantic change to support
targets with non-zero null pointers (e.g. AMDGPU).
[libc] Stop passing `--version` to compiler when detecting target (#176680)
This reverts c267501c155f9, and also adds a `-c` flag.
Both gcc and clang print the `Target:` line that we're trying to find
just find with just `-v`.
When passing `--version`, gcc passes `--version` to the system linker,
and when using gcc on macOS, the system linker does not understand
`--version`. Since `--version` does not seem to be necessary, drop it.
Also, passing `-c` lets gcc not print linker details, so add that too,
as a belt-and-suspenders fix.
---
Makes `cmake` succeed for me on my mac with
`/Applications/CMake.app/Contents/bin/cmake ../llvm-project/llvm -G
Ninja -DLLVM_ENABLE_PROJECTS="libc" -DCMAKE_BUILD_TYPE=Release
-DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12` (with gcc-12 from
homebrew).
snd_uaudio: Support Roland UA-33
Apply the appropriate quirk. Also, introduce a new uaudio_vendor_audio
table, similar to uaudio_vendor_midi, which includes non-standard USB
audio devices. The Roland UA-33 needs this, bceause it comes with
bInterfaceClass = 0xff (vendor-specific), so snd_uaudio(4) doesn't
detect it.
PR: 294814
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Reviewed by: emaste
Pull Request: https://ron-dev.freebsd.org/FreeBSD/src/pulls/24