[lldb] Improve frame variable handling of recognizer arguments (#200084)
Fixes two bugs. The bug which prompted this change is that `frame
variable name` would
print all regcognizer arguments, even though only "name" was requested.
While making a test for the first bug, I found that `frame variable
recognizer_arg` will
both successfully print the variable, and also report a false positive
error:
```
error: <user expression>:1:1: use of undeclared identifier 'recognizer_arg'
1 | recognizer_arg
```
This change fixes both bugs, including when using `--regex`.
[CIR] Correctly emit the size expr of a VLA with a 'bool' size. (#200066)
This came up in a test suite, the frontend considers 'bool' to be
integral enough to use as a bounds, so bool makes it through to the VLA
codegen. This patch adds a new cast function that takes a bool or int
type and casts it to an int (as this is a pretty useful task, that I
believe I've seen before).
[lldb][Windows] Move `processthreadsapi.h` include (#200278)
`processthreadsapi.h` needs to be included after `windows.h`.
clang-format needs to be disabled here to avoid sorting the includes.
Fixes the test failure from
https://github.com/llvm/llvm-project/pull/199983#issuecomment-4567633271.
workflows/upload-release-artifact: Use require-release-manager action (#195374)
This removes the final use of RELEASE_TASKS_USER_TOKEN secret. It
required plumbing the secrets in thrugh several levels of workflow
calls, which is not ideal, but I don't see a better way to do this.
imgact_elf: read program headers if not contained in the first page
PR: 295629
Reviewed by: markj
Tested by: Alex S <iwtcex at gmail.com>
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D57294
image activators: pass the current thread
Reviewed by: markj
Tested by: Alex S <iwtcex at gmail.com>
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D57294
Import tmux-3.6b (previous was tmux3.6a)
CHANGES FROM 3.6a TO 3.6b
* Remove images from the correct list when they are removed while in the
alternate screen (reported by xlabai at tencent dot com).
[2/3][RegAlloc][LiveRegMatrix] Fix inconsistency when fold creates a CopyMI (#197776)
When TargetInstrInfo::foldMemoryOperand produces a side-effect CopyMI,
the copy destination vreg's LiveInterval is extended via addSegment. If
that vreg is already assigned in LiveRegMatrix, the matrix becomes
inconsistent because it still holds the old (smaller) interval.
Fix this in two places:
- InlineSpiller::foldMemoryOperand: unassign the vreg from the matrix
before addSegment, reassign after, so the matrix reflects the updated
interval.
- LiveRangeEdit::foldAsLoad: notify the delegate via
LRE_WillShrinkVirtReg before addSegment.
LIT test exercised by this patch (i.e. if I introduce consistency
verification as in https://github.com/llvm/llvm-project/pull/197778 but
not this patch, the following test fails):
[2 lines not shown]
[X86][TTI] Retrieve address space from intrinsic info. (#200265)
Instead of using the passed Ptr argument to get the type, to retrieve
the address space, directly retrieve it from MICA.
This fixes a crash when Ptr is nullptr, as after #200049.
Fixes https://github.com/llvm/llvm-project/issues/200199.
Merge tag 'acpi-7.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull ACPI support fixes from Rafael Wysocki:
"Fix three issues in the ACPI button driver: a possible crash due to a
button press after unloading the driver (introduced during the 6.15
development cycle), function keys breakage on Toshiba Tecra X40 due to
missing ACPI events (introduced during the 7.0 development cycle), and
a missing probe rollback path item that has not been added by mistake
during a recent update"
* tag 'acpi-7.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
ACPI: button: Add missing device class clearing on probe failures
ACPI: button: Enable wakeup GPEs for ACPI buttons at probe time
ACPI: button: Fix ACPI GPE handler leak during removal
[PowerPC] Fix MSan failure in LowerBUILD_VECTOR (#200260)
Initialize SplatBitSize to fix use-of-uninitialized-value error detected
by MemorySanitizer in ba7d42b.
[llvm] Fix LLVMOrcTargetProcess symbol export with MinGW/Cygwin shared libs (#174266)
When any symbol in a DLL carries dllexport, the MinGW/Cygwin linker
switches to exclusive-export mode and omits all other symbols from the
export table. LLVMOrcTargetProcess uses LLVM_ALWAYS_EXPORT (__declspec(
dllexport)) so its symbols can be found via GetProcAddress from a
statically linked executable, which triggers this behaviour.
Add --export-all-symbols to LLVMOrcTargetProcess for MinGW/Cygwin
BUILD_SHARED_LIBS builds to restore full symbol export.
vmd: Unbreak using images supplied with vmctl -b
My previous fix for reused filedescriptors broke using images
supplied with "vmctl -b": In that case, kernfd remained to be set
to -1, thus passing that filedescriptor to the child process failed.
To resolve this, dup vm->vm_kernel right before passing the descriptor
with proc_compose(). This fixes -b and the keeps original fix
working.
In the error path I rely on vm_stop()/vm_remove() closing vm->vm_kernel.
Therefore, remove the redundant close().
ok mlarkin@ deraadt@
[Instrumentor] Add cast instruction instrumentation support (#198224)
We now allow to have instrumentation opportunities for many instructions
(=opcodes) to bundle common classes together. Users can use filters on
the opcode, type-id, and size to statically select what they are
interested in.
Coded with Claude.
Merge tag 'pm-7.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fix from Rafael Wysocki:
"Fix a possible amd-pstate-ut cpufreq driver crash introduced by a
recent update (K Prateek Nayak)"
* tag 'pm-7.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
cpufreq/amd-pstate-ut: Disable dynamic_epp after the mode switch
[CIR] Omit nsw/nuw on integer vector binops (#199123)
CIRGen was attaching `nsw` to `cir.add` on `!cir.vector` integer types
because the signed-overflow path keys off `compType` (the element type,
still `!s32i`), while the verifier only allows `nsw`/`nuw` on scalar
`!cir.int` results. That mismatch showed up 144 times in the libcxx
CIR sweep on `std::experimental::simd` — `experimental/__simd/vec_ext.h`
increment/decrement (`__data + 1` / `__data - 1`).
Classic CodeGen never enters the signed-overflow block for vector
computation types; CIR now skips the scalar `nsw`/`nuw` path when the
MLIR operand is an integer vector, and uses `getAs<VectorType>()` for
`compType` so typedef-wrapped GCC vectors resolve the element type
correctly.
Regression test `vector-binop-overflow.cpp` checks scalar add still gets
`nsw` and vector add/sub/mul do not (CIR + LLVM + OGCG).
[VPlan] Predicate SCEVs in getSCEVExprForVPValue (NFC) (#199994)
Although the change could be functional in theory, it is very difficult
to find a test case.
[Instrumentor] Introduce BasePointerIO to communicate base pointer information (#197607)
Loads, stores, and later probably calls, can request a base pointer info
object from the user runtime. This object is queried right after the
base pointer of the operation is defined, and then passed to the
pre/post runtime calls of the loads and stores. This allows users to
inspect pointers early and once, but provide the analysis results to all
operations that might be executed in loops. A potential use case is to
lookup the size and start of the underlying object and then provide
those to the access runtime calls for in-bounds checking.