[PATCH] D102269: [ARM] Expand predecessor search to multiple blocks when reverting WhileLoopStarts
Malhar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 13 06:07:28 PDT 2021
malharJ added inline comments.
================
Comment at: llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:269
+MachineInstr *MVETPAndVPTOptimisations::CheckForLRUseInPredecessors(
+ MachineBasicBlock *PreHeader, MachineInstr *LoopStart) {
+ SmallVector<MachineBasicBlock *> Worklist;
----------------
Since the function name has changed, this (and also in the function declaration) parameter name
could also be changed to "Predecessor" ?
================
Comment at: llvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp:281
- for (MachineInstr &MI : *PreHeader) {
- if (MI.isCall()) {
- // Create a t2DoLoopStart at the end of the preheader.
----------------
Uhm, just trying to understand the original logic ...
but why does a call (in the Preheader) result in reversion of t2WhileLoopStartLR to t2DoLoopStart ?
================
Comment at: llvm/test/CodeGen/Thumb2/LowOverheadLoops/wls-search-pred.mir:38-40
+ declare void @llvm.memcpy.p0i8.p0i8.i32(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i32, i1 immarg) #1
+ declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1 immarg) #2
+ declare void @llvm.memmove.p0i8.p0i8.i32(i8* nocapture writeonly, i8* nocapture readonly, i32, i1 immarg) #1
----------------
do we need llvm.memcpy and llvm.memmove declarations here ?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D102269/new/
https://reviews.llvm.org/D102269
More information about the llvm-commits
mailing list