[mlir][vector] Fix foldInsertUseChain to return getDest() (#239714)
Fixes a regression introduced in #238070, which changed `return
insertOp.getResult()` to `return insertOp.getDest()` in
`foldInsertUseChain`. `dest` is `InsertOp`'s destination vector rather
than its result.
Because of this change, folding `vector.insert` ops at the same position
replaced `insertOp` with its destination operand instead of signaling an
in-place fold, dropping the final insertion.
We also add a test to prevent this regression from happening again.
cc @banach-space
Merge tag 'devicetree-fixes-for-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree fixes from Rob Herring:
"All of these are patches that didn't get picked up for the merge
window. They all fix new warnings because the corresponding .dts
changes did get applied
- Add Altera Agilex5 DWC3 controller and Raspberry Pi RP1 PWM
controller bindings
- Make "peer-hub" property optional on cypress,hx3 USB hubs"
* tag 'devicetree-fixes-for-7.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
dt-bindings: usb: add Altera Agilex5 DWC3 controller
dt-bindings: pwm: Add Raspberry Pi RP1 PWM controller
dt-bindings: usb: cypress,hx3: make peer-hub property optional
Merge tag 'sound-7.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai:
"A collection of (unsurprisingly high amount of) small fixes since the
previous PR. Majority of changes are device-specific quirks and driver
fixes, along with a few ALSA core fixes and USB-audio driver
hardening.
ALSA Core:
- Fix page leak on WC DMA buffer allocation failure
- Prevent O_APPEND on OSS streams to avoid UAF
- A PCM regression fix for PulseAudio to allow hw_refine with mmap
- Serialize DSP image loading requests in hwdep
- Clear user-provided numid before adding a control
- Fix dropped data bytes in UMP to MIDI 1.0 System message conversion
HD-audio:
- Fix double-free on stream page allocation failure in core
- Stop capability walk cleanly on empty capability header
[52 lines not shown]
[Support] Pass tool options to parseCommandLineOptions
`RegisterMCToolOptions` adds `MCToolOptions` to the process-wide
registry. Once lld registers them, every later parse in the process
accepts `-crel`, including clang's `-mllvm`, which then ignores it.
Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options.
`LibraryOptionsContext` records the library that parsed each argument,
so `assign` replays without looking up the registry, which does not
contain tool options.
LLM-aided
MachineVerifier: Remove dead virtual register kill tracking
Kill flags on virtual registers are now rejected, so the per-block
tracking of killed virtual registers can never report anything
new. Physical register kills are handled separately.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
AArch64: Remove clearKillFlags calls (#239892)
Kill flags are no longer permitted on virtual registers, but these
contexts may also see physical registers. Those physical register
kills are either never set by the time this code runs or are on
reserved or constant registers where they carry no information.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
LibcallLoweringInfo: Use unique_ptr for map entries.
ModuleLibcallLoweringInfo stored each context's LibcallLoweringInfo by
value in a DenseMap, so returned references dangled once a later
insertion grew the map. Current users look the entry up again for each
function, but future changes will introduce long lived references.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
live ISO: hand launchd /dev/null stdio, not the console (#621)
The live ISO's /init wires stdout/stderr to /dev/console for its own
[init] progress and error lines, then execs launchd. launchd only opens
/dev/null for closed fds, so PID 1 and every job without StandardOutPath
or StandardErrorPath inherited the console, and their stderr reached the
screen on a normal boot.
Redirect stdio to /dev/null on the exec of launchd, matching a disk boot
where the kernel starts launchd with no fds open. /init's own output and
failure paths before that point still go to the console; the exec-failed
message now writes to /dev/console explicitly. Verbose boots keep
launchd's console logging, which launchd opens itself under -v.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
CodeGen: Stop using TargetLowering's libcall info in PreISelIntrinsicLowering (#239898)
The TargetLowering copy of RuntimeLibcallsInfo should be deleted and
only the analysis should be used.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[SPARC] Branch directly on the result of a constrained FP compare (#239385)
A branch on a constrained FP compare currently materializes the compare
result with a select of 1/0 and then branches on an integer compare of
that value against zero.
Branch on the FP condition codes directly when the compare's output
chain feeds only the branch, either directly or through a token factor
used only by the branch. The compare is glued to the branch, so this
is not done when another node is ordered after the compare, such as a
call.
Also look through the "and X, 1" that brcond expansion inserts when X
is already a SELECT_[IF]CC of 1 and 0, which lets the existing
LookThroughSetCC fold the soft-quad f128 compare as well.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Hexagon: Remove redundant clearKillFlags calls (#239894)
HexagonOptAddrMode recomputes kill flags with Liveness::resetKills
after any change, so its clears are redundant.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
AArch64: Remove clearKillFlags calls on virtual registers (#239782)
Kill flags are no longer permitted on virtual registers, so clearing
them is a no-op. Remove the calls where the register can only be
virtual.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
BPF, Lanai, ARC, M68k: Register null target streamer (#239823)
Since 44a08dc732c5, llc -filetype=null is a fatal error on targets
that do not register a null target streamer. These targets do not need
a target specific streamer for the null case, so register the base
MCTargetStreamer.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
live ISO: hand launchd /dev/null stdio, not the console
The live ISO's /init wires stdout/stderr to /dev/console for its own
[init] progress and error lines, then execs launchd. launchd only opens
/dev/null for closed fds, so PID 1 and every job without StandardOutPath
or StandardErrorPath inherited the console, and their stderr reached the
screen on a normal boot.
Redirect stdio to /dev/null on the exec of launchd, matching a disk boot
where the kernel starts launchd with no fds open. /init's own output and
failure paths before that point still go to the console; the exec-failed
message now writes to /dev/console explicitly. Verbose boots keep
launchd's console logging, which launchd opens itself under -v.
Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
poudriere-jail.8: Now there are pkgbase src packages so remove outdated line
(cherry picked from commit fd8e1fd46b7085268fc3c14dc4c4be6ea8697d0d)
Conflicts:
src/man/poudriere-jail.8
PR #1394
[Support] Pass tool options to parseCommandLineOptions
`RegisterMCToolOptions` adds `MCToolOptions` to the process-wide
registry. Once lld registers them, every later parse in the process
accepts `-crel`, including clang's `-mllvm`, which then ignores it.
Add a `parseCommandLineOptions` overload that takes the libraries a tool
opts in to. Replace `RegisterMCToolOptions` with `mc::getToolOptions`
and `codegen::getToolOptions`, which tools pass where they parse,
including lld's `-mllvm`, gold's `-plugin-opt`, and libLTO's debug
options. `RegisterCodeGenFlags` no longer registers the MC options.
`LibraryOptionsContext` records the library that parsed each argument,
so `assign` replays without looking up the registry, which does not
contain tool options.
LLM-aided
[MC] Declare the MCTargetOptions command line options in TableGen (#239920)
Move RegisterMCTargetOptionsFlags options into a private `MCToolOptions`
struct, different from MCCLOptions since `MCToolOptions` requires tool
opt-in. RegisterMCToolOptions, renamed from RegisterMCTargetOptionsFlags
(LLVMOption and clang driver use "flags" for boolean options), registers
the struct, so `clang -mllvm -crel` remains an error.
Remove the getters without outside readers. llc reads `MCRelaxAll`
instead of `getExplicitRelaxAll`, so `-mc-relax-all=false` no longer
warns with a non-object file type.
LLM-aided
Update p5-CGI to 5.02
Many updates for CVE, including some that are not backwards compatible,
however tests for modules that depend on this one all still passed.
https://metacpan.org/dist/CGI/changes
[ADT] Add LLVM_ATTRIBUTE_WARN_UNUSED to ADT classes (#239908)
This patch adds LLVM_ATTRIBUTE_WARN_UNUSED to various ADT classes so
that compilers can diagnose unused variables of these types even though
they have non-trivial constructors or destructors.
Remarks:
- Local testing confirms that unused direct-constructed variables of
each touched class trigger -Wunused-variable if and only if the
attribute is present.
- Derived classes such as SmallPriorityWorklist and SmallSetVector are
annotated explicitly because compilers do not inherit warn_unused from
base classes.
- Other ADT classes are left alone for now because adding the attribute
to them would trigger warnings in existing code.
[5 lines not shown]