textproc/cmark-gfm: New port
cmark-gfm is an extended version of the C reference implementation of
CommonMark, a rationalized version of Markdown syntax with a spec. This
repository adds GitHub Flavored Markdown extensions to the upstream
implementation, as defined in the spec.
This port is required by graphics/mupdf to handle ebooks properly.
PR: 298338
[OpenMP] Make all syntactic properties explicit (#222375)
For clauses, modifiers, and modifier sets/groups, make sure that either
the syntactic proprty or its inverse is explicitily listed, with the
missing properties added according to the following table.
```
| Modifier
Inverse | Clause Modifier group
Property property | defaults defaults defaults
----------+------------+------------+------------+-----------
required optional | optional optional optional
unique repeatable | repeatable unique unique
exclusive compatible | compatible compatible compatible
ultimate free | free free free
```
[OpenMP] Rename ClauseSet to Clauses and DirectiveSet to Directives, NFC (#222440)
The ClauseSet name was an alias of an EnumSet of clause ids. However, it
collides with a "clause set" concept in OpenMP, which is a set of
clauses,
but with properties and additional information. To resolve the naming
conflict, rename ClauseSet to Clauses.
Although there is no "directive set" in OpenMP, rename DirectiveSet in
an analogous way for uniformity.
x11/xbitmaps, x11-fonts/font-*: Remove NO_ARCH=yes
Remove NO_ARCH=yes, as it is included in xorg-cat.mk.
x11-fonts/font-alias is excluded because NOFONT=yes is specified.
PR: 298400
Approved by: x11 (arrowd)
Approved by: fluffy (mentor)
[AArch64][SVE] Optimize logical ops with convert.to.svbool (#160408)
When both operands of a logical operation (and/or/xor) are
convert.to.svbool
from the same narrower type, unwrap to that type, simplify using
simplifyBinOp,
and rewrap the result. This eliminates redundant instructions in cases
like:
svand_z(svptrue_b8(), svpnext_b16(prev, pg), svptrue_b16());
Fixes https://github.com/llvm/llvm-project/issues/160279.
---------
Co-authored-by: Paul Walker <paul.walker at arm.com>
[AArch64][Driver] Fix behaviour of +nofeat modifier on -mcpu
Honour explicit +no<feature> modifiers for features implied by a CPU's
base architecture, both in -mcpu and target("cpu=...") attributes.
For example, -mcpu=neoverse-v2+nosb now disables SB instead of silently
ignoring the modifier.
Fixes #192186.
Speed up common template argument checks
Avoid setting up pack and constraint machinery for ordinary unconstrained
template argument lists. Reuse canonical type work, keep common converted
argument lists inline, and skip default-substitution comparisons when the
parameter has no default.
CTMark O0 (3 samples, CPU 6): 29.439800 s -> 29.315900 s (-0.421%).
Impact on significant TUs in MLIR build time:
- `mlir/lib/RegisterAllDialects.cpp`: 0.7009% fewer retired
instructions.
- `mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp`: 0.6378% fewer retired
instructions.
Assisted-by: Codex
[mlir][linalg] Add `insert_slice` vectorization tests for leading/trailing dropped dims (#221966)
Follow-up to #219192, addressing review feedback after merge.
This PR _simply_ add tests for vectorizing rank-reducing
`tensor.insert_slice` where the dropped unit dim is:
1. leading, e.g., `dest = 1x8x4, source = ?x4`,
2. trailing, e.g., `dest = 8x4x1, source = ?x4`, and
3. both (leading + trailing), e.g., `dest = 1x8x4x1, source = ?x4`.
It complements the test introduced in #219192.
Signed-off-by: Federico Bruzzone <federico.bruzzone.i at gmail.com>
[mlir][SCF] Split the dialect declaration (NFC) (#222802)
Introduce a self-contained dialect declaration and use it in nine
configured consumers that do not need the generated operation umbrella.
Across three controlled -j16 rebuilds of the affected TUs, median
instructions fell from 162.029B to 150.032B (-7.404%) and median wall
time fell from 8.82s to 8.73s (-1.020%).
Assisted-by: Codex
[clang][OpenMP] Don't drop debug location when handing off to OMPIRBuilder. (#219548)
All the clang callsites that hand a `LocationDescription` to the
`OpenMPIRBuilder` pass `CGF.Builder`. That selects
`LocationDescription(const IRBuilderBase &)`, which carries both the
insertion point and the current debug location.
The 2 call sites fixed in this PR used `CGF.Builder.saveIP()` which
passes only an insertion point, selecting `LocationDescription(const
InsertPointTy &)`, which leaves `DL` empty. As a result, the IR the
builder emitted on clang's behalf came out without `!dbg`.
Fixed by passing `CGF.Builder`, as the other callsites do.
---------
Co-authored-by: Cursor <cursoragent at cursor.com>
[BOLT] Gadget scanner: prevent false positives due to jump tables
As part of PAuth hardening, AArch64 LLVM backend can use a special
BR_JumpTable pseudo (enabled by -faarch64-jump-table-hardening
Clang option) which is expanded in the AsmPrinter into a contiguous
sequence without unsafe instructions in the middle.
This commit adds another target-specific callback to MCPlusBuilder
to make it possible to inhibit false positives for known-safe jump
table dispatch sequences. Without special handling, the branch
instruction is likely to be reported as a non-protected call (as its
destination is not produced by an auth instruction, PC-relative address
materialization, etc.) and possibly as a tail call being performed with
unsafe link register (as the detection whether the branch instruction
is a tail call is an heuristic).
For now, only the specific instruction sequence used by the AArch64
LLVM backend is matched.
[mlir][SCF] Split the dialect declaration (NFC)
Introduce a self-contained dialect declaration and use it in nine configured
consumers that do not need the generated operation umbrella.
Across three controlled -j16 rebuilds of the affected TUs, median instructions
fell from 162.029B to 150.032B (-7.404%) and median wall time fell from 8.82s
to 8.73s (-1.020%).
Assisted-by: Codex
[KnownFPClass] Move `fadd`/`fsub` tests to `nofpclass-fadd-fsub.ll` (#221872)
- Moved the lit tests for `fadd`/`fsub` to their own dedicated file.
- Updated the lit tests for `fadd`/`fsub` from version 2 to version 6.
- `fadd_p0_ftz_daz #3` was actually testing `positivezero|positivezero`,
so I fixed the name of the test to be `fadd_p0_ftpz_dapz #3`. Then added
a separate `fadd_p0_ftz_daz #0` test.
- `nofpclass-fadd-fsub.ll` uses attributes 1-9 except for 6, so I added
`fadd_p0_dynamic_dynamic #6` so I wouldn't have to change the attributes
for other tests (i.e. changing `test #7 --> test #6`, `test #8 --> test
#7`, etc)
The only tests for `fadd` that remain in `nofpclass.ll` are not related
to testing `KnownFPClass::fadd`.
I have split the PR into 3 commits to make it easier to review (4
commits due to the `undef` false positive).
After this PR lands I plan to open this PR
https://github.com/llvm/llvm-project/pull/221876