[lldb] Use the right MinGW name for the Python DLLs (#201325)
In MinGW mode, the Python DLLs have different names than they have in
MSVC mode; they are named `libpython<major>.<minor>.dll` (a "lib" prefix
and a dot between major and minor) and `libpython3.dll`.
This avoids a warning on startup after
142ad481b6254104a51da7d636ad9e3f30518a32 and total failures to start up
after 3eb13f8db39ed42827122489c830c414cb6660e3.
[clang-format][Objective-C] Fix assertion crash on stray '-'/'+' in @interfa… (#199104)
Before calling `parseObjCMethod()`, it now checks whether the next token
is a `(` or an identifier; if not, it simply skips ahead, thereby
preventing the assertion failure and subsequent crash.
Fixes #199075
[Docs] Project governance documentation (#197108)
This page largely covers the same information as proposal LP-0004 and
also includes information on current area team and project council
composition.
[LoopInterchange] Identify unsafe instructions for interchange (#201402)
In LoopInterchange, all instructions in the loops are traversed and
checked during the legality phase, and the pass bails out if it finds an
instruction that is unsafe to interchange. However, previously it only
handled call instructions and ignored all others, leaving several kinds
of instruction that should have been detected but were not.
This patch fixes the issue by restructuring the legality check, in
particular replacing instruction‑specific handling with calling general
Instruction APIs.
Fixes #200913.
Fix match_any dynamic user condition ranking
A dynamic condition in extension(match_any) can be false even when another static
trait already makes the variant applicable. Before this change, lowering still
ranked the condition as true in that situation, so `condition(score(N): flag)`
could make the variant win even when flag is false.
The previous change separated static applicability from guarded ranking for
dynamic conditions. This fix adds the match_any-specific handling:
```
if staticVMI does not match:
try conditionTrueVMI, because the runtime condition itself may satisfy match_any
if staticVMI already matches and this is match_any:
add guarded candidate: flag true, with user_condition_true and score
add unguarded candidate: flag false, with only static traits
otherwise:
[6 lines not shown]
[flang][OpenACC] Re-declare cached array sections with lower bounds only (#201223)
When acc.cache yields a box, rebind the symbol with a fir.shift (lower
bounds, no extents) instead of a fir.shape_shift, so the rebox preserves
the materialized descriptor's extents and strides. Add lowering tests.
Assisted by Claude
[lldb] Add PARTIAL_SOURCES_INTENDED to HostTests to fix build (#201361)
with LLDB_ENABLE_PYTHON=OFF
PythonRuntimeLoaderTest.cpp is only added to the target when Python is
enabled, which orphaned the source and broke configuration otherwise
culprit PR: https://github.com/llvm/llvm-project/pull/200524
[LoopInterchange] Add tests for instructions that aren't checked (NFC) (#201401)
This patch adds test cases that contain instructions which are currently
not handled properly in the legality check, leading to miscompilations.
Some of the test cases are taken from #200913, and others are cases that
trigger unsafe interchange for the same reason. I am not trying to cover
all possible instruction types here, since a follow-up patch will update
the legality check so that it can handle other instructions as well.
[flang][OpenACC] Add minus operator to reduction clause (#200909)
Adds '-' as a recognized reduction operator alongside '+'. The new
ReductionOperator::Operator::Minus is parsed from the '-' token,
accepted on integer/real/complex reduction variables, and lowered the
same as Plus (mlir::acc::ReductionOperator::AccAdd in OpenACC, and
fir::ReduceOperationEnum::Add in DO CONCURRENT). The unparser emits it
as '-'.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply at anthropic.com>
[OFFLOAD] Update L0 olMemFill unit tests known failures (#201323)
With the latest L0 changes most MemFill tests are passing. Only those
that rely on olLaunchHostFunction should be skipped.
[OFFLOAD][L0] Return symbol size in getGlobalMetadataFromDevice (#201352)
Return not just the address but also the size of the symbols in getGlobalMetadataFromDevice.
Fixes olGetSymbolInfoSizeGlobalTest.SuccessSize unitt test failure with L0 plugin.
[offload][lit] Disable three more tests on Intel GPU (#201381)
Buildbot is still unstable, these tests are causing kernel driver errors
so let's disable them.
Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
[lldb-server] Add breakpoint support to accelerator plugin protocol (#200584)
This is the 2nd PR of many related to
https://discourse.llvm.org/t/upstreaming-basic-support-for-accelerators/89827/6
Continuation to https://github.com/llvm/llvm-project/pull/198907
Extend the accelerator plugin infrastructure with breakpoint request and
hit handling, allowing plugins to set breakpoints in the native process
and respond when those breakpoints are hit.
This patch adds:
- Support for jAcceleratorPluginBreakpointHit packet handler in
GDBRemoteCommunicationServerLLGS that routes hits to the correct plugin
by name and returns the plugin's response
- Many related struct for defining request packet and response packet.
New structs: AcceleratorBreakpointByName,
AcceleratorBreakpointByAddress, AcceleratorBreakpointInfo, SymbolValue
,AcceleratorBreakpointHitArgs and AcceleratorBreakpointHitResponse
[5 lines not shown]
[LoopInterchange] Fix assertion failure when LCSSA PHI is used by non-PHI (#201059)
This patch fixes one of the assertion failures reported in #200819. The
root cause is that the assertion assumes all uses of LCSSA PHIs are PHI
nodes, which is not always true, so `cast<PHINode>(U)` can fail. In
fact, the user does not have to be a PHI, and the assertion should apply
the special check only when the user is a PHI node.
[AsmParser] Delete orphaned select/phi when rejecting fast-math-flags (#201409)
parseSelect/parsePHI create the instruction before the caller checks the
fast-math-flags. When FMF are rejected on a non-FP select/phi, the error
path leaked the instruction, which crashed on teardown with "Uses remain
when a value is destroyed!".
Fix by deleting the instruction before returning the error, as is
already done for `call`.
Fixes #185111.
[VectorCombine] Skip foldShuffleOfIntrinsics when operand types differ (#201241)
Example:
```llvm
define <4 x i32> @t(<2 x float> %a, <2 x double> %b) {
%fa = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f32(<2 x float> %a)
%fb = call <2 x i32> @llvm.fptosi.sat.v2i32.v2f64(<2 x double> %b)
%s = shufflevector <2 x i32> %fa, <2 x i32> %fb, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
ret <4 x i32> %s
}
```
In this code, `foldShuffleOfIntrinsics` folds `shuffle(intrinsic(x),
intrinsic(y))` into `intrinsic(shuffle(x, y))`, but only checks the
result type, not the operand types. Since `fptosi.sat` is overloaded on
its operand type, the two calls share an `<2 x i32>` result but have
different operands (`<2 x float>` vs `<2 x double>`), so the new
`shufflevector` gets mismatched operands and trips `isValidOperands`.
Fix: bail out when the intrinsics' shuffled operands have different
types.
[clang-tidy] Extend readability-container-size-empty to std::size() (#201231)
Fixes #198494
Extend the check to warn when the non-member `std::size()` free function
is used in a boolean context or compared to 0/1, and suggest using
.empty instead.