[CIR] Implement bind temporary lvalue (#202755)
This change implements the handling to emit a CXXBindTemporaryExpr
l-value. This is a very direct port from the classic codegen
implementation, leveraging existing functions in CIR.
[CIR] Force emission of static local enclosing functions (#201941)
When getOrCreateStaticVarDecl is called, we need to call
`getAddressOfGlobal` to trigger the emission of the enclosing function.
In most cases this has already happened, but there are cases where the
enclosing function would not otherwise have been emitted. See
https://bugs.llvm.org/show_bug.cgi?id=18020 for details.
It appears that this was mistakenly seen as OpenMP-specific behavior
because of an OpenMP RAII guard that surrounds it in classic codegen,
but that actually is there to skip the behavior when generating OpenMP
device code.
We also needed to insert the static local decl into CIRGenModule's map
by calling `setStaticLocalDeclAddress`. To avoid a duplicate emission.
Assisted-by: Cursor / claude-opus-4.8
Always render security_group ACG for FC targets
When an FC target's middleware initiator setting resolves to no WWPNs,
the mako previously dropped the GROUP security_group block entirely.
pyscstadmin's diff then has to issue del_group against the running
kernel, which SCST rejects with -EBUSY while FC sessions remain
attached. The result is /etc/scst.conf and the running configuration
silently diverging until a stop/start of the iscsi service.
Default the rendered initiator set to {'*'} when no WWPN restriction
is configured so the ACG is always present. Initiator updates then
become in-place INITIATOR add/remove operations rather than del_group;
SCST applies those cleanly.
[OFFLOAD][L0] Add control for Copy Offload Hint (#203203)
In some cases setting ZE_COMMAND_QUEUE_FLAG_COPY_OFFLOAD_HINT reduces
performance. Here we introduce
LIBOFFLOAD_LEVEL_ZERO_USE_COPY_OFFLOAD_HINT env var to allow users to
control the hint (which continues to be on by default).
[MC][X86] Set SHF_X86_64_LARGE on mergeable constant sections for large code-model (#190903)
Under -mcmodel=large on x86-64, constant pool entries were placed into
`.rodata.cst{4,8,16,32}` without the `SHF_X86_64_LARGE` flag. Meanwhile,
named global constants correctly received .lrodata with the large flag
via getSectionPrefixForGlobal().
Fix initELFMCObjectFileInfo() to use .lrodata.cst* section names with
SHF_X86_64_LARGE when the Large parameter is true and the target is
x86-64.
[llvm-exegesis] Skip benchmark entries with unknown opcodes in analysis mode (#201162)
Fixes #144403
`llvm-exegesis -mode=analysis` currently aborts the whole run if any
entry references an unknown opcode (e.g. an old sample whose instruction
was since renamed). A single bitrotted entry discards the results for
every valid one:
```
uops-test.yaml:5:7: error: No opcode with name 'VADDPDYrrr'
llvm-exegesis: 'uops-test.yaml': invalid argument
```
This adds an opt-in `SkipInvalidEntries` parameter to
`Benchmark::readYamls`. When set, the `YamlContext` records recoverable
per-entry deserialization errors (e.g. an unknown opcode or register)
instead of returning them from `ScalarTraits::input` to the YAML parser,
which would otherwise poison the stream and stop parsing. `readYamls`
[26 lines not shown]
Revert "[Flang][OpenMP][Sema] Add OpenMP warning when mapping local descriptors to device on enter without a corresponding exit" (#203324)
Reverts llvm/llvm-project#201060
Warning is actually reporting an error causing compilation to fail:
error: Semantic errors in OpenMPTargetStream.F90
Above error from Babelstream. Can be seen with either of the following
reproducers:
aomp/test/smoke-fort/milestone-3-babel-copy
aomp/test/smoke-fort-dev/milestone-3-babel
[libc] Implement CPU_ALLOC and CPU_FREE (#202349)
Like the other macros, this commit uses an internal (__-prefixed)
entrypoint.
I added an internal typedef for the mask type to make bit set
calculations slightly safer. I also removed the comment about supporting
larger cpu counts, as increasing the struct size is not necessary to do
that -- that's what these macros are for. Increasing it would be
necessary to support operations on the fixed-size cpu sets, but that
cannot be done lightly due to ABI stability.
I added a test that checks allocations for both small and large cpu set
sizes.
Assisted by Gemini.
NAS-141321 / 27.0.0-BETA.1 / Suspend VMs on snapshot by default (by creatorcary) (#19109)
## Summary
Change the default value of the per-VM `suspend_on_snapshot` setting
from `false` to `true`, so that newly created VMs — and existing ones
that never explicitly set it — are quiesced while a periodic snapshot of
their disk dataset is taken. This produces crash-consistent disk images
instead of snapshotting a running VM's storage live.
This restores the effective behavior that existed before #19053. Prior
to that PR, `vm.suspend_vms` suspended every running VM on its dataset's
snapshot regardless of the per-VM `suspend_on_snapshot` value — so in
practice running VMs were *always* suspended. #19053 fixed the flag so
it is actually honored. But because the field defaulted to `false`,
honoring it meant most VMs would no longer be suspended on snapshot — a
regression from the long-standing behavior. Flipping the default to
`true` keeps suspend-on-snapshot as the out-of-the-box behavior while
still letting users opt out per VM.
[12 lines not shown]
[lldb][Windows] Relax dependent-modules-nodupe-windows OS-DLL ordering (#203305)
The post-run "target modules list" output orders the OS DLLs (ntdll,
kernel32, ...) by load address, which differs between the in-process
debugger and the lldb-server-on-Windows path. The exact order is not
what this test cares about. The goal is to verify that preloaded
dependent modules are not duplicated once the inferior actually loads
the DLL.
This patch replaces `CHECK-NEXT/CHECK` lines with `CHECK-DAG`, keeping
the trailing `CHECK-NOT` to enforce no duplicate `shlib.dll` entry.
rdar://179367320
[LoopInterchange] Reject if outer loop reduction has extra user (#203241)
As demonstrated by the case reported in #203104, there are cases where
interchanging the loops is unsafe because the outer loop reduction is
used within the inner loop by something other than the PHI node that
receives the value. Such cases should be rejected during the legality
check phase.
This patch adds a check to ensure that the outer loop reduction is only
used by the inner loop reduction PHI node. This check might be too
conservative and could cause missed optimizations, but at the moment I
can't find such a case.
Fixes #203104.
Provide a separate executable file for syslogd parent.
syslogd(8) forks and execs its parent process to keep privileged
parts separated. This parent process can be easily implemented as
a separate program. It gets its own main() and minimal debug logging
functions. The splitted parent process image is smaller, especially
without additional libs.
Use additional directories to build both parts. The rcctl script
has to be adopted, as the parent process has a different name.
OK deraadt@
[DirectX] Generate shader source info part in llc (#202761)
This change modifies DXContainerGlobals pass and DXILMetadataAnalysis to
generate source info (SRCI) part in DXContainer, using information from
`dx.source.contents` and `dx.source.args` metadata nodes.
This part is typically generated for debug shader builds.
---------
Co-authored-by: Vladislav Dzhidzhoev <vdzhidzhoev at accesssoftek.com>
[llvm] Fix most remaining LLVM_ABI annotations (#203267)
This updates most LLVM_ABI annotations in the public LLVM headers to
match expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.
These changes were done by a script fixing annotations on LLVM public
headers and manually checked.
This effort is tracked in #109483.
bob: Update to 0.99.7.
* Bump dependencies to include illumos patches, `cargo install bob` now
works again on illumos.
* Significant performance improvements throughout, especially for full
pkgsrc builds: scanning, dependency resolution, build startup,
`bob status`, and report generation are all faster and use less memory.
* New `bob list builds` command (with `bob ls` as a shorthand), replacing
`bob diff -l`, showing a summary of each build in the history database
with package counts and durations.
* New `bob prune` command to remove build sessions from the history
database, selected by range, by age, or by keeping only the most recent.
* Improve consistency across all output commands with regard to arguments,
column selection, sorting, and table, CSV, or JSON output.
[27 lines not shown]