[PATCH] D130466: [LICM] - Add option to allow data races
Shubham Narlawar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 12 05:59:30 PDT 2022
gsocshubham added a comment.
Now for `arm-linux` when compiled with `-Ofast` -
int u, v;
void f(int a[restrict], int b[restrict], int n) {
for (int i = 0; i < n; ++i) {
if (a[i]) {
++u;
break;
}
++u;
if (b[i])
++v;
}
}
we get -
target triple = "armv4t-unknown-linux"
@u = dso_local local_unnamed_addr global i32 0, align 4
@v = dso_local local_unnamed_addr global i32 0, align 4
; Function Attrs: nofree norecurse nosync nounwind
define dso_local arm_aapcscc void @f(ptr noalias nocapture noundef readonly %0, ptr noalias nocapture noundef readonly %1, i32 noundef %2) local_unnamed_addr #0 {
%4 = load i32, ptr @u, align 4, !tbaa !5
%5 = load i32, ptr @v, align 4, !tbaa !5
%6 = icmp sgt i32 %2, 0
br i1 %6, label %7, label %27
7: ; preds = %3
%8 = add i32 %4, %2
br label %9
9: ; preds = %7, %18
%10 = phi i32 [ %25, %18 ], [ 0, %7 ]
%11 = phi i32 [ %19, %18 ], [ %4, %7 ]
%12 = phi i32 [ %24, %18 ], [ %5, %7 ]
%13 = getelementptr inbounds i32, ptr %0, i32 %10
%14 = load i32, ptr %13, align 4, !tbaa !5
%15 = icmp eq i32 %14, 0
br i1 %15, label %18, label %16
16: ; preds = %9
store i32 %12, ptr @v, align 4, !tbaa !5
%17 = add nsw i32 %11, 1
store i32 %17, ptr @u, align 4, !tbaa !5
br label %30
18: ; preds = %9
%19 = add nsw i32 %11, 1
%20 = getelementptr inbounds i32, ptr %1, i32 %10
%21 = load i32, ptr %20, align 4, !tbaa !5
%22 = icmp ne i32 %21, 0
%23 = zext i1 %22 to i32
%24 = add nsw i32 %12, %23
%25 = add nuw nsw i32 %10, 1
%26 = icmp eq i32 %25, %2
br i1 %26, label %27, label %9, !llvm.loop !9
27: ; preds = %18, %3
%28 = phi i32 [ %5, %3 ], [ %24, %18 ]
%29 = phi i32 [ %4, %3 ], [ %8, %18 ]
store i32 %29, ptr @u, align 4, !tbaa !5
store i32 %28, ptr @v, align 4, !tbaa !5
br label %30
30: ; preds = %27, %16
ret void
}
Note that - store to u, v both got sinked out of loop.
store i32 %29, ptr @u, align 4, !tbaa !5
store i32 %28, ptr @v, align 4, !tbaa !5
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D130466/new/
https://reviews.llvm.org/D130466
More information about the llvm-commits
mailing list