[TargetLowering][RISCV] Prefer (S/U)MUL_LOHI over MULH(S/U) in expandMULO. (#188870)
The RISC-V P extension adds WMUL and WMULU instruction that produce
a full 64-bit product in 2 GPRs. The base ISA already had MULH and
MULHU.
[Clang] fix bad codegen from constexpr structured bindings (#186594)
Resolves: https://github.com/llvm/llvm-project/issues/164150
C++26 allows for constexpr packs in structured bindings. This is a new
feature (the code doesn't compile on lower the -std=c++26) and so was
previously unhandled in clang.
This makes clang aware of packs and handle them as one constant unit
instead of materializing them as separate mutable reference temporaries
allowing llvm to optimize them.
This turns the example code from the issue into this as you would expect
without compiling for zen 5 (the good codegen described).
```asm
movq %rdi, %rax
movups (%rsi), %xmm0
movups %xmm0, (%rdi)
[3 lines not shown]
[DebugInfo] Lower DW_OP_LLVM_implicit_pointer to DWARF (#186763)
This patch adds backend support by intercepting
`DW_OP_LLVM_implicit_pointer` during variable DIE emission in
DwarfCompileUnit. For each implicit pointer variable, an artificial
`DW_TAG_variable` DIE is created to describe the dereferenced value's
location, and the pointer variable's location is emitted as
`DW_OP_implicit_pointer` referencing that artificial DIE.
Constant integer entries are de-duplicated so that multiple pointer
variables referencing the same constant value share a single artificial
DIE.
Emits `DW_OP_implicit_pointer` for DWARF 5 and
`DW_OP_GNU_implicit_pointer` for DWARF 4.
Here is the RFC with the design
https://discourse.llvm.org/t/rfc-implementing-dw-op-implicit-pointer-support-in-llvm/90217
[2 lines not shown]
acpidmar(4): Recognize reserved 4-byte IVHD device entry
Otherwise parsing of folling entries is aborted.
While there, fix a debug printf.
ok kettenis@
[libclang/python] Renaming `get_version` into `get_clang_version` (#188515)
Rename `get_version` to `get_clang_version` to match the `libclang.so`
name[1], and be clear we doesn't return some `cindex.py` internal
versioning but the `libclang.so` one.
[1] This match was some current API are doing for example
`conf.lib.clang_getArraySize` is mapped to `get_array_size`.
[debuginfo-tests] Update line numbers in llgdb-tests/nrvo-string.cpp (#188901)
Update the line numbers in llgdb-tests/nrvo-string.cpp for #188780 which
shifts the file by 6 lines.
[ORC] Move DylibManager ownership out of ExecutorProcessControl. (#188711)
This removes an unnecessary coupling between ExecutorProcessControl and
DylibManager, allowing clients to select DylibManager implementations
independently.
To simplify the transition, the
ExecutorProcessControl::createDefaultJITDylib method will return an
instance of whatever DylibManager the ExecutorProcessControl
implementation had been using previously.
handbook/virtualization: Fix freebsd-update syntax
Split freebsd-update fetch and install into two subcommands. If running
an EoL FreeBSD, running the two in one command can fail to perform the
install. This matches what was done elsewhere in the tree.
PR: 293517
Reported by: Graham Perrin
Signed-off-by: Kit Dallege <xaum.io at gmail.com>
Closes: https://github.com/freebsd/freebsd-doc/pull/632
[ClangLinkerWrapper] Fix `-v` for newer CMake passing it directly (#188883)
Summary:
Normally `-v` is version for tools, but it's also verbose for the
linker. CMake tries to identify the linker by passing `-Wl,-v` which
goes to the linker wrapper instead. Make this only print version on
`--version` and forward the other one to the linker so it appears
transparent to the host ABI. A bit of a hack, but it should work.
unison-snapshot: Update to 2.53.8.52
Advance along upstream master.
The significant change is dropping the old wire procotol used in 2.48
through 2.51. Interop with 2.52.0 and later should remain unchanged.
(This is perhaps an alpha for 2.53.9, but upstream has not said that :-)
[AArch64] Update preserved analyses for AArch64PostCoalescer (#188875)
Preserving all analyses likely is a wrong assertion since we do not know
what other analyses might exist that we've updated.
Updated to preserve CFG, LiveIntervalsAnalysis and SlotIndexAnalysis
(which is transitively preserved from LiveIntervalsAnalysis)
x86: move the NUM_ISA_IRQS symbol from atpic.c into x86/isa/icu.h
This is not the best location, but works for now.
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D56003
[Clang][NFC] Pre-commit tests for #185408
The tests demonstrate how incorrect LLVM IR is generated without diagnostics,
when an OpenCL or HIP scope number is passed to an AMDGPU intrinsic. #185408
lays the groundwork for properly diagnosing this situation by internally
using a separate enum type to represent each set of scope numbers.
net/gnu-radius: Fix the build
The build was failing for two reasons:
1. When devel/readline was installed (e.g. as a dependency of
editors/emacs), its newer interface caused:
readline.c:147:51: error: expected expression
147 | rl_attempted_completion_function = (CPPFunction *) completion_fp;
| ^
readline.c:147:38: error: use of undeclared identifier 'CPPFunction'
147 | rl_attempted_completion_function = (CPPFunction *) completion_fp;
| ^
Patch radius's lib/readline.c to use the modern rl_completion_func_t
type.
2. The elisp files were not being installed, causing a staging error.
Fix this by installing the elisp in a post-install-EMACS-on target.
[2 lines not shown]
genmatch.cc: bring across several enhancements from mainline GCC.
in my testing this reduces the size of the emitted "gimple-match.cc"
by about 35%, reduces the code section sise about 15%, and reduces
the compile time about 30%. (this file is the largest single compile
for all of GCC.)
this makes it capable of compiling on vax and sparc again, it seems,
where both were already capable for GCC 14 (which in addition to this
set, splits the emitted file into 10 sub parts for compiling both
separately and in parallel.)
(this is part 1, part 2 will be about mergig the split of the output
into multiple files, but may be abandoned as this portion helps
enough.)
tested on amd64, vax, sparc as only target, powerpc, with some arm64,
arm, and m68k to come -- may be also very useful for m68k target.
[29 lines not shown]