[MC][TableGen] Make MCRegisterClasses relocation-free (#206753)
MCRegisterClasses currently store pointers to the register list and the
bit set. Store these three types together in one data structure and use
relative offsets to avoid these relocations and move the large
MCRegisterClasses array from .data.rel.ro into .data. This reduces the
amount of data that needs to be relocated by 86 KB.
This has two side effects: first, MCRegisterClass is not copyable and
the few uses that did copy were changed. Second, the MCRegisterClasses
array is no longer easily accessible as a global (well, it *technically*
is, but that requires the type of the entire storage struct, which I
don't want to expose). Therefore, these accesses need to go through a
function; which shouldn't be too costly and be inlined in an LTO build.
[orc-rt] CallableTraitsHelper - record operator()'s noexcept-specifier (#206891)
Adds a `bool IsNoexcept` template parameter to CallableTraitsHelper's
impl-class template argument (after the existing IsConst from
4bab60f2c63). It records the noexcept-specification on the callable's
function type.
Specializations are added for noexcept-qualified forms. Existing
specializations propagate `IsNoexcept = false`. CallableArgInfoImpl
exposes the captured bool as `static constexpr bool is_noexcept`.
Existing pass-through adapters (ErrorHandlerTraitsImplAdapter,
ErrorWrapImplAdapter, WFHandlerTraitsImplAdapter) are updated to accept
and discard the additional argument.
[X86] Insert WAIT before fnstenv/fnsave and skip meta-instructions (#204108)
fnstenv/fnsave (FSTENVm/FSAVEm) are non-waiting, so they don't
synchronize a pending FP exception; the WAIT pass shouldn't skip the
WAIT before them.
Also skip meta-instructions when finding the next op so WAIT placement
doesn't depend on -g.
Added a new X87ControlKind enum class to classify x87 control
instructions in the pass, replacing the existing ad-hoc switches.
Found via @jlebar's X86 LLVM bug-hunt / FuzzX effort:
https://github.com/SemiAnalysisAI/FuzzX/blob/master/x86/bugs/047-x87-insertwait-too-eager-skip
cc @jlebar
[flang][OpenMP] Lower target in_reduction for host fallback
Enable host-fallback lowering for target in_reduction in Flang and MLIR OpenMP translation.
Model target in_reduction through the matching map entry, force address-preserving implicit mapping for Flang in_reduction list items, and emit the host-side task-reduction lookup with __kmpc_task_reduction_get_th_data. The runtime entry point takes and returns a generic, default-address-space pointer, so normalize a non-default-address-space captured pointer to the generic address space before the call and cast the returned private pointer back to the map block argument's address space, mirroring the in_reduction handling on omp.taskloop. Unsupported device/offload-entry and richer reduction forms remain diagnosed.
Add Flang lowering, MLIR verifier/translation, and LLVM IR tests for the supported host-fallback path, including a non-default-address-space case, and the remaining unsupported cases.
[TargetParser][AArch64][NFC] Use StringTable (#206698)
Store strings in a StringTable instead of referencing them via pointers.
This permits some data structures to be stored in .rodata instead of
.data.rel.ro, as they no longer require relocations. In particular this
affects the 16 kiB AArch64::Extensions.
[orc-rt] CallableTraitsHelper - record call operator's const-qualifier (#206889)
Adds a leading `bool IsConst` template parameter to
CallableTraitsHelper's impl-class template argument to record the
const-qualifier on the callable's function type.
Existing specializations are updated to report their const qualifiers,
and a new specialization handles `RetT(ArgTs...) const`.
CallableArgInfo is updated to expose the captured bool as `static
constexpr bool is_const`.
Existing impls that do not consume the new parameter are adapted via
pass-through wrappers (ErrorHandlerTraitsImplAdapter,
ErrorWrapImplAdapter, WFHandlerTraitsImplAdapter) that discard the
leading bool.
Revert "[flang][openacc] Skip implicit global declare constructor in managed mode" (#206884)
Reverts llvm/llvm-project#206610 as this might not be the right approach
[flang][OpenMP] Lower target in_reduction for host fallback
Enable host-fallback lowering for target in_reduction in Flang and MLIR OpenMP translation.
Model target in_reduction through the matching map entry, force address-preserving implicit mapping for Flang in_reduction list items, and emit the host-side task-reduction lookup with __kmpc_task_reduction_get_th_data. The runtime entry point takes and returns a generic, default-address-space pointer, so normalize a non-default-address-space captured pointer to the generic address space before the call and cast the returned private pointer back to the map block argument's address space, mirroring the in_reduction handling on omp.taskloop. Unsupported device/offload-entry and richer reduction forms remain diagnosed.
Add Flang lowering, MLIR verifier/translation, and LLVM IR tests for the supported host-fallback path, including a non-default-address-space case, and the remaining unsupported cases.
[llvm-debuginfo-analyzer] Add support for LLVM IR format. (#202120)
llvm-debuginfo-analyzer is a command line tool that processes debug
info contained in a binary file and produces a debug information
format agnostic “Logical View”, which is a high-level semantic
representation of the debug info, independent of the low-level format.
Add support for the LLVM IR format and be able to generate logical
views. Both textual representation (.ll) and bitcode (.bc) formats
are supported.
This relands https://github.com/llvm/llvm-project/pull/135440,
which was:
reverted in: https://github.com/llvm/llvm-project/pull/199890
relanded in: https://github.com/llvm/llvm-project/pull/200603
reverted in: https://github.com/llvm/llvm-project/pull/201019
It includes the fixes for the buildbots problems.
[orc-rt] Simplify CallableTraitsHelper specialization inheritance NFC. (#206869)
Make CallableTraitsHelper specializations inherit directly from ImplT.
This is a no-op, but will simplify upcoming patches that will capture
more information about the callable type.
[RISCV] Disable combineVectorSizedSetCCEquality when fixed length vectors are disabled. (#206829)
With VLEN=32 we don't support fixed vectors even if vector instructions are
enabled.
Fixes #206788
unbound: Install a default configuration.
This way, setting unbound=YES is enough to get a working local
recursive resolver listening on 127.0.0.1:53 and [::1]:53.
PR misc/60339: unbound=YES in rc.conf should be enough to get a
recursive resolver
Additionally, this includes the workaround for:
PR bin/60325: unbound emits warning: so-sndbuf 4194304 was not
granted
Merge tag 'probes-fixes-v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull probes fixes from Masami Hiramatsu:
"fprobe fixes and spelling typos:
- Fix NULL pointer dereference in fprobe_fgraph_entry(). Prevent
general protection faults by checking shadow-stack reservation
bounds. Skip mid-flight registered fprobes that were not counted
during sizing.
eprobe: fix string pointer extraction
- Correct the casting of string pointers read from the ringbuffer to
prevent truncation of base event pointer variables when
dereferencing FILTER_PTR_STRING fields.
tracing/probes: clean up argument parsing and BTF helper logic
- Make the $ prefix mandatory for comm access: Require the $ prefix
[28 lines not shown]
xmlto: apply two shell-related tweaks
First, make shell code used in the "-o" option parsing more portable.
"type -p" hasn't been supported by NetBSD's sh since 8.0 (and also
isn't universally supported elsewhere by other shells). This addresses
PR pkg/60388 from Andrew Cagney. (Really here we're suppressing a
warning rather than a failure, one that happens to show up in build
logs.)
(We could substitute "command -v" instead (recommended over bare "type"
by a NetBSD shell guru), but since both the existing upstream code and
a bunch of our patches are already using "type" in many places, I kept
it consistent here.)
Next, Makefile r. 1.32 removed bash as a runtime dependency, but didn't
account for REPLACE_BASH still being defined, which results in a broken
(though effectively harmless) substitution to "#!". (Here perhaps the
pkgsrc replacement mechanism could be improved so it generates an error
when the replacement path is empty.) This is only relevant for the test
target.
[AMDGPU] Apply target flag specifier when lowering MO_ExternalSymbol operands (#202389)
The MO_ExternalSymbol case in AMDGPUMCInstLower dropped the operand
target flags emitting the wrong relocation type