This revision was automatically updated to reflect the committed changes.
Closed by commit rG36c76de6789c: [AArch64][SVE] Add a pass for SVE intrinsic
optimisations (authored by kmclaughlin).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76078/new/
efriedma accepted this revision.
efriedma added a comment.
This revision is now accepted and ready to land.
LGTM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76078/new/
https://reviews.llvm.org/D76078
___
cfe-commits mailing list
cfe-commi
kmclaughlin added a comment.
Ping :)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76078/new/
https://reviews.llvm.org/D76078
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit
kmclaughlin updated this revision to Diff 252575.
kmclaughlin marked an inline comment as done.
kmclaughlin added a comment.
Use SmallSetVector for the list of functions gathered by runOnModule to
preserve the order of iteration
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76078/new/
efriedma added inline comments.
Comment at: llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp:233
+ bool Changed = false;
+ for (auto *F : Functions) {
+DominatorTree *DT =
&getAnalysis(*F).getDomTree();
Iterating over a SmallPtrSet is non-deterministic.
In th
kmclaughlin updated this revision to Diff 252368.
kmclaughlin marked 3 inline comments as done.
kmclaughlin added a comment.
Use SmallPtrSet instead of SmallVector for storing functions found by
runOnModule
Add more comments to clarify the purpose of the pass and some of the negative
reinterpret
andwar added a comment.
Thanks for the updates @kmclaughlin ! Would you mind adding a comment to
clearly mark the negative tests? E.g. for `@reinterpret_reductions_1`? Maybe
also a comment `why` a particular case is not optimised? You've already done
that for some tests, but not all of them.
kmclaughlin added a comment.
Thanks for reviewing this, @efriedma & @andwar!
Comment at: llvm/lib/Target/AArch64/AArch64TargetMachine.cpp:441
+ // Expand any SVE vector library calls that we can't code generate directly.
+ bool ExpandToOptimize = (TM->getOptLevel() != CodeGen
kmclaughlin updated this revision to Diff 251643.
kmclaughlin marked 13 inline comments as done.
kmclaughlin added a comment.
- Changed this from a function pass to a module pass & now check if any of the
relevant SVE intrinsics are declared first before iterating over functions
- Added more chec
andwar added a comment.
> Have you considered adding an interface for the new PM?
Please ignore that comment ^^^. I incorrectly assumed that the backend has also
been ported to the new PM, but that's not the case. In particular, `llc` will
only use the legacy PM anyway:
https://github.com/llvm
andwar added a comment.
Cheers for working on this @kmclaughlin ! Have you considered adding an
interface for the new PM? You could check this for reference:
https://reviews.llvm.org/rGd6de5f12d485a85504bc99d384a85634574a27e2 (also
implements a FunctionPass).
Comment at: llv
efriedma added inline comments.
Comment at: llvm/lib/Target/AArch64/AArch64TargetMachine.cpp:441
+ // Expand any SVE vector library calls that we can't code generate directly.
+ bool ExpandToOptimize = (TM->getOptLevel() != CodeGenOpt::None);
+ if (EnableSVEIntrinsicOpts && TM
kmclaughlin created this revision.
kmclaughlin added reviewers: sdesmalen, andwar, efriedma, cameron.mcinally,
c-rhodes.
Herald added subscribers: danielkiss, psnobl, rkruppe, hiraditya,
kristof.beyls, tschuett, mgorny.
Herald added a reviewer: rengolin.
Herald added a project: LLVM.
Creates the
13 matches
Mail list logo