[PATCH] D73641: [LoopFusion] Move instructions from FC1.GuardBlock to FC0.GuardBlock and from FC0.ExitBlock to FC1.ExitBlock when proven safe.
Shixiong Xu via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 11 07:16:53 PST 2021
xusx595 added a comment.
It seems isSafeToMoveBefore() on basic blocks is quite limited. It doesn't handle cases like
for.body3.lr.ph: ; preds = %for.cond1.preheader
%mul4 = mul nsw i32 %j.0123, %N, !dbg !14
%add20 = add nsw i32 %mul4, %j.0123, !dbg !14
%arrayidx21 = getelementptr inbounds float, float* %A, i32 %add20, !dbg !14
%arrayidx21.promoted = load float, float* %arrayidx21, align 4, !dbg !15, !tbaa !16
It stops at '%arrayidx21 = getelementptr inbounds float, float* %A, i32 %add20, !dbg !14', which uses 'add20'.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D73641/new/
https://reviews.llvm.org/D73641
More information about the llvm-commits
mailing list