| Age | Commit message (Collapse) | Author | Files | Lines |
|
Co-authored-by: Fabian Mora <fmora.dev@gmail.com>
|
|
|
|
Signature (#167248)
Since https://github.com/llvm/llvm-project/pull/162441,
`buffer-results-to-out-params` transforms `private` functions only.
But, as mentioned in
https://github.com/llvm/llvm-project/pull/162441#issuecomment-3404195242,
this is a breaking change for pipelines handling C code. Our pipeline
@EfficientComputer is also affected by this breaking change.
Therefore, this PR adds an opt-in flag to allow `public` functions to be
transformed by `BufferResultsToOutParamsPass`.
|
|
codebase (#163686)
Closes #156156.
In a few cases, instead of just applying the fix-it and making
parameters const references to owning type, I refactored them to be
non-owning types.
|
|
Sink `and` mask to `cmp` use block if it is masking a single bit since
this will fold the `and/cmp/br` into a single `tstbit` instruction.
|
|
Implementation details:
* Recognize prefetch directive in the parser as `!dir$ prefetch ...`
* Unparse the prefetch directive
* Add required tests
Details on the prefetch directive:
`!dir$ prefetch designator[, designator]...`, where the designator list
can be a variable or an array reference. This directive is used to
insert a hint to the code generator to prefetch instructions for
memory references.
|
|
This is first patch for Zvfbfa codegen and I'm going to break it down to
several patches to make it easier to reivew.
The codegen supports both scalable vector and fixed length vector on
both
native operations and vp intrinsics.
|
|
After overriding `TargetTransformInfo::enableMemCmpExpansion` in this
commit, `MergeICmps` and `ExpandMemCmp` passes will be enabled on
LoongArch.
|
|
This reverts commit 10da6ab5362158c1f63e0c8eaa893c55b49dc3f4.
This also caused workflow failures.
1. https://github.com/llvm/llvm-project/actions/runs/19218607216
|
|
This enables much faster image unpack times. We benchmarked 20-30%
improvements when testing this initially. Use skopeo to copy the image
as it just works over the docker-archive/OCI container formats and does
not need to unpack the image to upload it.
|
|
This was reverted earlier due to me not realizing that the config format
also changed. This patch updates the config to match the new format and
bumps the version.
|
|
The `tosa.concat` verifier crashed when the output rank did not match
the input rank. This PR adds a proper check and error emission to
prevent the crash. Fixes #159742.
|
|
Test cases are similar as riscv.
|
|
Fixes #157405
|
|
Use VPInstructionWithType for casts in VPlan0, to enable additional
analysis/transforms on VPlan0, and more accurate modeling in VPlan0.
|
|
(#166945)
Currently sinking assumes in instcombine drops assumes if they would
prevent sinking. Removing dereferenceable assumptions earlier on can
inhibit vectorization of early-exit loops in practice.
Special-case deferenceable assumptions so that they block sinking. This
can be combined with a separate change to drop dereferencebale
assumptions after vectorization: https://clang.godbolt.org/z/jGqcx3sbs
PR: https://github.com/llvm/llvm-project/pull/166945
|
|
|
|
Add `RSeqRewriter` to detect code references from `__rseq_cs` section
and ignore function referenced from that section. Code references are
detected via relocations (static or dynamic).
Note that the abort handler is preceded by a 4-byte signature byte
sequence and we cannot relocate the handler without that the signature,
otherwise the application may crash. Thus we are ignoring the function,
i.e. making sure it's not separated from its signature.
|
|
|
|
#160199 broke buildbots `lldb-remote-linux-ubuntu` and
`lldb-remote-linux-win`.
This patch must make these buildbots green for now.
|
|
SandboxIR's SwitchInst CaseHandle was relying on LLVM IR's
SwitchInst::CaseHandleImpl template, which may call private functions of
SandboxIR's SwitchInst. This creates a dependency cycle which is against
the design principles of Sandbox IR.
The issue was exposed by:
https://github.com/llvm/llvm-project/pull/166842 Thanks to @aengelke for
raising the issue.
|
|
(#166537)
This code was assuming that the vectors were 128bit. Add handling for
64bit vectors. Some of the tests do not apply yet due to not matching
non-splat vectors.
Fixes #166400
|
|
This patch consolidates two implementations of meet using
"if constexpr", migrating away from the SFINAE-based approach.
|
|
Identified with readability-redundant-typename.
|
|
Identified with readability-misleading-indentation.
|
|
Identified with llvm-use-ranges.
|
|
extension (#166257)
This enables support for atomic RMW ops (add, sub, min and max to be
precise) with `bfloat16` operands, via the [SPV_INTEL_16bit_atomics
extension](https://github.com/intel/llvm/pull/20009). It's logically a
successor to #166031 (I should've used a stack), but I'm putting it up
for early review.
---------
Co-authored-by: Matt Arsenault <arsenm2@gmail.com>
|
|
Fix issue in readability-container-data-pointer when the container
expression is a dereference (e.g., `&(*p)[0]`). The previous fix-it
suggested `*p.data()`, which changes semantics because `.` binds tighter
than `*`. The fix now correctly suggests `(*p).data()`.
Closes [#164852](https://github.com/llvm/llvm-project/issues/164852)
---------
Co-authored-by: Baranov Victor <bar.victor.2002@gmail.com>
|
|
|
|
|
|
|
|
|
|
(#167220)
The explicit language specifications for Objective C/C++ don't seem necessary either so I've removed
them too.
I found these by using Clang frontend configuration files containing language-specific options for
both C and C++ (e.g. `-std=c2y` and `-std=c++26`).
Prior-art: 21041c9
|
|
|
|
(#166615)
Resolves https://github.com/llvm/llvm-project/issues/166057
---------
Co-authored-by: Phoebe Wang <phoebe.wang@intel.com>
|
|
A quick fix for the CI failure introduced by
https://github.com/llvm/llvm-project/pull/163967
|
|
This patch adds a Clang-compatible `--save-stats` option, to provide an
easy to use way to save LLVM statistics files when working with llc on
the backend.
Like on Clang, one can specify `--save-stats`, `--save-stats=cwd`, and
`--save-stats=obj` with the same semantics and JSON format.
The implementation uses 2 methods `MaybeEnableStats` and
`MaybeSaveStats` called before and after `compileModule` respectively
that externally own the statistics related logic, while `compileModule`
is now required to return the resolved output filename via an output
param.
Note: like on Clang, the pre-existing `--stats` option is not affected.
|
|
|
|
This reverts commit 4b6a597230020282fe94ee6f476a3aad45fbe9aa.
This broke premerge and maybe one PPC bot:
1. https://lab.llvm.org/staging/#/builders/192/builds/10157
2. https://lab.llvm.org/buildbot/#/builders/95/builds/19044
|
|
Identified with bugprone-unused-local-non-trivial-variable.
|
|
Identified with readability-container-contains.
|
|
EnableVPlanNativePath is declared in LoopVectorizationPlanner.h.
Identified with readability-redundant-declaration.
|
|
|
|
This reverts commit 206a1d2b5b0f7a6a7b8fdf06d067f37677bd13b1.
The issues that came up with the last landing have been fixed, so trying
this again to see if it sticks this time.
|
|
(#166898)
...according to Coding Guidelines: *`[[nodiscard]]` should be applied to
functions where discarding the return value is most likely a correctness
issue.*
# References
-
https://libcxx.llvm.org/CodingGuidelines.html#apply-nodiscard-where-relevant
-
https://github.com/llvm/llvm-project/pull/166524#issuecomment-3495567876
Co-authored-by: Hristo Hristov <zingam@outlook.com>
|
|
|
|
maskedBitSetCase takes StringRef, so we can "implicitly cast"
std::string to StringRef.
Identified with readability-redundant-string-cstr.
|
|
Identified with readability-duplicate-include.
|
|
P0513R0 is essentially a collective resolution paper of LWG2543,
LWG2791, LWG2809, and LWG2817.
Among these LWG issues, LWG2543 (conditionally enabled `hash`) and
LWG2817 (`hash<nullptr_t>`) affect pre-C++17 utilities. We generally
backport changes from LWG issues, so this patch backports the relevant
parts of P0513R0.
Although we provide `hash<unique_ptr>` as an extension in C++03 mode, as
C++03 mode isn't encouraged now, this patch leaves `hash<unique_ptr>`
unchanged in C++03 mode.
|
|
Addresses #93154 by ensuring the test RUN/FILECHECK prefixes across
`mlir/test/Conversion/FuncToLLVM/` and related files match their
expected outputs, and adds an `index-bitwidth=32` variant of
`expand-then-convert-to-llvm.mlir` that exercises
`@collapse_shape_dynamic_with_non_identity_layout` through the same
MemRef-to-LLVM pipeline so the 32-bit layout descriptors are verified.
|