Firewall: NAT: Source NAT: fix port alias and well known port usage in target_port (#10793)
* Firewall: NAT: Source NAT: fix port alias usage in target_port
* Add use statements for BooleanField and ProtocolField
[PowerPC][Clang] fix IEEE f128 complex div/mul use IBM f128 libcalls on powerpc (#218151)
fixes https://github.com/llvm/llvm-project/issues/216820
Previously the IBM f128 libcall was used also for IEEE f128 complex
mul/div.
[clang][bytecode] Add `StringPointer` (#216736)
This is a new pointer type that points to a string literal. We do not
allocate any memory for it but we _can_ read from it.
A `StringPointer` only consists of a `StringLiteral` (or rather a
"Base", which can also be a `PredefinedExpr`), and an ID which is only
increased on `GetStringPtr` ops. This way we can know whether two
literals have been created via the same evaluation. This is needed for
the "overlapping string literals" diagnostics, particularly in the loop
case:
```c++
constexpr bool different_in_loop(bool b = false) {
if (b) return false;
const char *p[2] = {};
for (const char *&r : p)
r = "hello";
[4 lines not shown]
www/phpgroupware: Deprecate, upstream is dead
The GNU Project has decommissioned the package (Savannah reports
"Development Status: 9 - Decommissioned"), the last release on
SourceForge dates back to 2010, git.savannah.gnu.org no longer carries
the repository, and no active fork exists. The phpgroupware.org domain
has lapsed and now redirects to an unrelated site, so point WWW at the
Savannah project page instead.
arm64: Fix the indentation of ID_AA64ISAR2_EL1
Some ID_AA64ISAR2_EL1 fields values are incorrectly indented. Values
have an extra space before the macro to make scanning for them easier.
Add this extra space to the two fields that were missing it.
Sponsored by: Arm Ltd
arm64: Use decimal values for op and CR macros
Using hex here breaks the instruction generated by MRS_REG_ALT_NAME.
Switch to a decimal value.
Sponsored by: Arm Ltd
[AArch64][GISel] Allow import of DAG FCVT/CVTF patterns using fixedpoint immediate (#215812)
Currently, fp_to_int(fmul) patterns only work for DAG, this is due to
the use of fixedpoint immediate type which GISel could not import.
Add GlobalISel matchers for fixed-point immediates, allowing these
patterns to be imported and used during instruction selection.
I originally added these to allow fp_to_int(fmul) fold DAG patterns from
this [PR](https://github.com/llvm/llvm-project/pull/210987) to import,
but this also enables fdiv(int_to_fmul) folds to work in GISel
[AArch64] Reject non-scalable types in named Z-register constraints (#217551)
LLVM currently handles typed named Z-register constraints
inconsistently. Depending on the operand type and whether SVE is
available, compilation may succeed, crash, or trigger an assertion.
Reject typed Z-register operands when SVE or streaming SVE is
unavailable, and reject non-scalable operand types. Preserve the
existing behavior for untyped Z-register clobbers.
Fixes #169027
[AArch64][Atomics] Add test file for testing <1xTy> store atomics (#216028)
Currently, there exists no testing for <1xTy> store atomic.
These used to throw a widening legalization error but was fixed due to
this [PR](https://github.com/llvm/llvm-project/pull/197618)
Add these tests for AArch64 to ensure regression does not occur.
Note: Currently <1xi64> has a instruction selection issue and this is
why it has not been added.
A future patch will fix this case.
[AArch64][SelectionDAG] Optimise ADDLV reductions inserted into zero vector (#215814)
{U/S}ADDLV instruction inserts result into lane 0 and clear unused lanes
to zero, so we can just return the result as a vector without extra
insert into a zeroed vector.
Add patterns that recognize the redundant zero vector insert and remove
it.
Add middleware support for LIO ALUA HA
Wire up the middleware side of LIO ALUA high-availability: load
lio_ha.ko with per-node addresses on service start, manage ALUA
state across failover events, clean up STANDBY configfs on pool
export, and add pre-flight validation that targets have static
initiator ACLs before ALUA can be enabled.
For each target, create a portal-less phantom TPG carrying the peer
node's controller group so that a single RTPG response from any
connected port lists both ALUA groups. Write tpgt_N/rtpi explicitly
before enable so that relative target port IDs in RTPG match the
tag formula (portal.tag on Node A, portal.tag + 32000 on Node B)
rather than being auto-assigned sequentially by the kernel.
ALUA group states are driven by role and ha_state:
MASTER + synced local=OPTIMIZED remote=NONOPTIMIZED
MASTER + connected local=OPTIMIZED remote=TRANSITIONING
[4 lines not shown]
[AMDGPU] Reject SDWA forms the subtarget cannot encode (#218592)
isConvertibleToSDWA only checked the base opcode, so it could still fold
into an SDWA form the target cannot encode and crash later
[mlir] Build llvm.mlir.constant attributes from the result type
Many conversion patterns created `llvm.mlir.constant` with a value attribute
whose type does not match the result type. The most common case was pairing an
`index`-typed attribute with the converted index type:
llvm.mlir.constant(1 : index) : i64
but there were also plain width and signedness mismatches, e.g. NVGPU's
`makeI64Const` built `i64` constants from `i32` attributes, and the NVVM
`fdiv` expansion used `ui32` attributes on `i32` values.
Translation to LLVM IR ignores the attribute type and uses the result type, so
the emitted IR was correct, but the attribute type is meaningless in this state
and anything that reads it back sees the wrong type. Derive the attribute from
the result type in every case; where the result is the converted index type the
existing `createIndexAttrConstant` helper does this already, so use it. In
`ArithToLLVM`, retype the value attribute when the type converter maps `index`
to a different integer type, and fail the match rather than reinterpret a
[5 lines not shown]
[flang][CodeGen] Fix element type of folded insert_on_range initializers (#218587)
`GlobalOpConversion` folds a full-range `fir.insert_on_range` into a
dense constant. When the inserted value comes from a `fir.convert`, the
fold reached through the conversion and built the dense attribute from
the type of the *source* constant. For a `logical(4)` array initialized
to `.true.` this produced
```
llvm.mlir.constant(dense<true> : vector<32768xi1>) : !llvm.array<32768 x i32>
```
where the attribute element type `i1` disagrees with the result element
type `i32`. Translation to LLVM IR ignores the attribute type and uses
the result type, so the emitted global is still correct today, but the
IR is malformed and any consumer that trusts the attribute type sees the
wrong element width.
Build the dense attribute from the converted element type instead. A
[9 lines not shown]
[flang][CodeGen] Use a signless attribute for the addendum flag masks (#218606)
The descriptor addendum flag masks were built as `ui8` attributes but
attached to `i8` constants:
```
llvm.mlir.constant(254 : ui8) : i8
```
The LLVM dialect only models signless integers, so the attribute type
and the result type disagree. Use the signless `i8` type for the
attribute as well; the bit patterns are unchanged, only their printed
form is (`254 : ui8` becomes `-2 : i8`).
Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
[analyzer] Return null from makeNode on PosteriorlyOverconstrained (#218472)
Previously node creation methods like `ExprEngine::makeNode` had two
ways to signal failure: they returned `nullptr` when they would have
reached an already existing node (through a second path) and created a
sink node (returning it) when the state was `PosteriorlyOverconstrained`
(i.e. self-contradictory, not corresponding to a real possibility).
Both kinds of failures need to be handled in the same way (return
early), so this commit ensures that `makeNode` returns `nullptr` after
creating a node with `PosteriorlyOverconstrained` state. (It still
creates the nodes with the `PosteriorlyOverconstrained` state to ensure
that those infeasible execution paths end in sinks.)
For motivation and further plans see the discussion at:
https://discourse.llvm.org/t/simplifying-failure-modes-in-explodednode-creation/91542/5
As node creation could already return `nullptr` when "caching out"
[11 lines not shown]
[clang][bytecode] No primitive types need their ctor function called (#218666)
Both Pointer and MemberPointer are fine with being all-zero initialized.
I've left the code for this in the file for now though, in case I need
it later.
[CIR] Regenerate CHECK lines for seventeen callconv opt-out tests (#218293)
After #214742 (empty class) and #215117 (`_Complex` and other float
formats), seventeen tests carried `-fno-clangir-call-conv-lowering` even
though the pass refuses nothing in them. They compile clean with the
flag gone. Their CHECK lines still described the un-lowered signature,
so they failed on the coercion rather than on a missing feature.
Update the expectations and drop the opt-out.
Assisted by: Cursor / claude-opus-5