style.mdoc: Remove synopsis formatting advice
Remove incorrect advice. The first rule was no spaces padding pipes
when showing alternates. Almost universally we not do this, and third
party manuals do not either. The second was using Cm to mark up symbols.
This advice is in conflict with mdoc(7), and the extended documentation
on mdoc linked below, which is also linked at the bottom of mdoc(7).
Conflicting information in our docs is a natural result of documentation
proliferation. The most important thing we can do to reduce technical
debt in the documentation is reduce the amount of doc overlap. Excessive
technical debt and conflicting rules is a barrier to new contributors.
This type of work requires thorough expertise, is not glamorous at all,
and to add insult to injury, is socially unsafe. To get new contributors
to the docs project, we must deduplicate documentation.
We have the mdoc manual, examples/mdoc, style.mdoc, and the fdp chapter
on manual pages. With this many, they will inevitably come to contain
conflicting information, and people will learn not to read them or work
[5 lines not shown]
terraform-provider-*: Remove likely not needed UNLIMIT_RESOURCES
This was cargo-culted from net/terraform-provider-aws and probably not
needed.
net/terraform-provider-aws3 is the only Go package that has that.
Keep it for terraform-provider-aws3 for avoiding possible regressions.
(We should investigate though and G/C there too if no longer relevant.)
ValueTracking: Teach computeKnownFPClass to look at bitcast + integer max
The returned class will still be one of the bitpatterns.
This pattern is used in rocm device libraries in assorted functions, e.g.,
https://github.com/ROCm/llvm-project/blob/amd-staging/amd/device-libs/ocml/src/rlen3F.cl#L20
I believe it is blocking the eliminationg of finite checks in some of the more
complex functions.
[mlir][emitc] Fix crash in form-expressions when identity cast is folded (#183894)
When the --form-expressions pass runs applyPatternsGreedily, the greedy
rewriter calls CastOpInterface::foldTrait on ops inside ExpressionOp
bodies. For an identity cast (e.g. `emitc.cast i32 to i32`), this fold
succeeds and replaces the op's result with its operand (a block
argument), leaving the ExpressionOp body in the form `{ yield %arg }`.
Subsequently, if the cast expression's result had its use count reduced
to one (e.g. because a dead non-EmitC use was eliminated),
FoldExpressionOp would select this expression as a candidate to fold
into an outer expression. It then calls usedExpression.getRootOp(),
which returns nullptr because the body yields a block argument rather
than an op result. The subsequent mapper.lookup(nullptr) crashes with an
assertion.
Fix by adding a FoldTrivialExpressionOp canonicalization pattern that
handles ExpressionOps whose body yields a block argument directly: such
an expression is a passthrough and can be replaced by the corresponding
[3 lines not shown]
style.mdoc: Li macro is undeprecated for some time
Previously, the mdoc linter warned against using Li as it was deprecated
upstream. However, upstream undeprecated it since last year. As usual
when it comes to style, the best thing to do is to follow the existing
style of the page. We have many manuals which prefer double quotes.
MFC after: 3 days
Citation: https://cvsweb.bsd.lv/mandoc/mdoc.7?rev=1.297
Differential Revision: https://reviews.freebsd.org/D55297
[DAG] visitCLMUL - fold (clmul x, c_pow2) -> (shl x, log2(c_pow2)) (#184049)
Implements the missing basic folds for `ISD::CLMUL` in `visitCLMUL`:
- `(clmul x, 1)` → `x`
- `(clmul x, c_pow2)` → `(shl x, log2(c_pow2))`
These were previously only folded during scalar expansion
(`expandCLMUL`), so targets with native CLMUL support (e.g. X86 pclmul,
RISCV Zbc) never had the opportunity to simplify these cases.
Fixes #181831
[mlir][x86] Move AMX dialect into X86 dialect (#183717)
Unifies the two dialects that define x86 operations into a single one.
The AMX dialect is moved into X86 in line with other x86 extensions.
Following the dialect renaming, X86 dialect is now a suitable home for
wider range of operations targeting specific hardware features. Moving
AMX definitions to X86 dialect creates a single, centralized hub for
defining all x86 intrinsic-like operations. The new grouping aims to
eliminate the need for new dialects as new hardware extensions become
available.
The two dialects are simply merged together. X86 dialect refactoring
will be addressed separately.
List of changes:
- operations: 'amx.tile_*' => 'x86.amx.tile_*'
- types: '!amx.tile' => '!x86.amx.tile'
- namespace: 'mlir::amx' => 'mlir::x86::amx'
[4 lines not shown]
[lldb] Fix wchar addition tests in DIL (#184082)
This patch fixes tests on systems where `wchar`'s underlying type is
`unsigned long`, or `long` and `int` types have the same width, so
`unsigned int` gets promoted to `unsigned long` during binary addition.
These tests check that `wchar` types get promoted to regular integer
types at all.
terraform-provider-aws3: Add SUPERSEDES
It is intended to replace net/terraform-provider-aws and also coexists
with other terraform-provider-aws* in order to have multiple versions of
aws provider installed at the same time.
[AArch64] Vectorise llvm.pow using vector intrinsic for ArmPL library (#183319)
When vectorising loops containing calls to the llvm.pow intrinsic we
currently end up with direct calls to the vector math library equivalent
of llvm.pow. This causes problems later on because we then miss out on
optimisations in the backend for things like
pow(x, 0.25)
pow(x, 0.75)
etc.
There are a few different ways of trying to solve this, but I think the
cleanest way is to leave the call in the intrinsic form and then teach
the backend how to lower the FPOW DAG node to the vector math library
function. This is similar to what we already do for llvm.sincos/FSINCOS
today.
I've done this by removing the entries in Analysis/VecFuncs.def that map
the intrinsic to the vector math functions, whilst also teaching the
cost model that the vector intrinsic form of llvm.pow is cheap in the
presence of the library.