[MLIR][OpenMP] Set a debug location for __kmpc_target_init/deinit calls (#217407)
The __kmpc_target_init and __kmpc_target_deinit calls are emitted by
createOutlinedFunction, which resets the current debug location to empty
first because the location it inherits is scoped to the parent function
and would be in the wrong scope inside the newly created kernel. The
subprogram for the outlined function is only attached later, by the body
callback, so neither call ends up with a location.
That matters once a device runtime built with debug info is linked in:
the two runtime functions then have definitions with their own
DISubprogram, which makes these inlinable calls inside a function that
has debug info, and the verifier requires those to carry a !dbg. The
device link of a target region compiled with -g fails with
inlinable function call in a function with debug info must have a !dbg
location
convertOmpTarget already has the location these calls need. It saves
[30 lines not shown]
sys/conf/options: Add WITNESS_LOCK_CHILDCOUNT
Make the witness LOCK_CHILDCOUNT a configurable kernel option.
On machines with a very high core count the default value is too
low, leading to witness exhaustion after boot.
Relnotes: yes
Reviewed by: kib, ziaee
Signed-off-by: Kajetan Puchalski <kajetan.puchalski at arm.com>
Closes: https://github.com/freebsd/freebsd-src/pull/2398
sysutils/mkjail: Update to 0.2.1
This is the first pkgbase compatible release.
It also works on legacy jails.
See new entries in mkjail.conf.sample
You might want to add PKGBASE="yes" to your config
[X86] Use 8-bit immediates for 128-byte stack adjustments and LEA splits (#219866)
ADD and SUB of +128 need a 32-bit immediate, but the equivalent
operation with -128 fits the sign-extended 8-bit form, three bytes
shorter. ISel has long done this through X86InstrCompiler.td patterns
(extended to flag-producing adds in c0e01d29a467), but two post-ISel
paths still emit the long form:
* X86FrameLowering::BuildStackAdjustment emits sub rsp, 128 and add rsp,
128 for 128-byte adjustments. Flip them to add rsp, -128 and sub rsp,
-128. EFLAGS is dead whenever this branch is taken, since the code
already prefers a flag-clobbering ADD/SUB over LEA on that basis.
Windows CFI targets keep the canonical spelling because the Win64
unwinder recognizes an epilogue by disassembling forward for add rsp,
imm.
* X86FixupLEAs::processInstrForSlow3OpLEA splits a slow three-operand
LEA into a two-operand LEA plus an ADD of the displacement, guarded on
EFLAGS being provably dead; emit SUB of -128 when that displacement is
[5 lines not shown]