[PATCH] D101017: [NewPM] Make GlobalsAA available earlier in the pipeline
Arthur Eubanks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 23 10:48:25 PDT 2021
aeubanks added a comment.
ah the issue is LoopIdiomRecognize can't recognize the following as a memcpy:
@__const.f.c = private unnamed_addr constant [20 x double] [double 1.051000e-01, double 1.570000e-02, double 1.850000e-02, double 0x3F823A29C779A6B5, double 2.190000e-02, double 1.410000e-02, double 9.700000e-03, double 7.580000e-02, double 1.680000e-02, double 1.188000e-01, double 1.635000e-01, double 1.120000e-02, double 3.330000e-02, double 7.770000e-02, double 2.600000e-02, double 5.680000e-02, double 5.230000e-02, double 2.230000e-02, double 3.240000e-02, double 1.195000e-01], align 16
; Function Attrs: nofree norecurse nosync nounwind uwtable writeonly
define dso_local void @f(double* nocapture %a) local_unnamed_addr #0 {
entry:
br label %for.body
for.cond.cleanup: ; preds = %for.body
ret void
for.body: ; preds = %entry, %for.body
%indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next, %for.body ]
%arrayidx = getelementptr inbounds [20 x double], [20 x double]* @__const.f.c, i64 0, i64 %indvars.iv
%0 = load double, double* %arrayidx, align 8, !tbaa !4
%arrayidx2 = getelementptr inbounds double, double* %a, i64 %indvars.iv
store double %0, double* %arrayidx2, align 8, !tbaa !4
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
%exitcond = icmp ne i64 %indvars.iv.next, 20
br i1 %exitcond, label %for.body, label %for.cond.cleanup, !llvm.loop !8
}
because it thinks the store may affect the load, even though the load is from a constant global.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D101017/new/
https://reviews.llvm.org/D101017
More information about the llvm-commits
mailing list