-
Notifications
You must be signed in to change notification settings - Fork 15
From .cpp to Data Flow Graph (DFG)
yyan7223 edited this page Jul 18, 2023
·
2 revisions
for (i = 0; i < NTAPS; ++i) {
output[j] += input[i] * coefficient[i];
}
*** current basic block: %6 = phi float [ %4, %3 ], [ %13, %5 ]
****** succ bb: ret void
****** succ bb: %6 = phi float [ %4, %3 ], [ %13, %5 ]
%6 = phi float [ %4, %3 ], [ %13, %5 ]
%7 = phi i64 [ 0, %3 ], [ %14, %5 ]
%8 = getelementptr inbounds float, float* %0, i64 %7
%9 = load float, float* %8, align 4, !tbaa !2
%10 = getelementptr inbounds float, float* %2, i64 %7
%11 = load float, float* %10, align 4, !tbaa !2
%12 = fmul float %9, %11
%13 = fadd float %6, %12
store float %13, float* %1, align 4, !tbaa !2
%14 = add nuw nsw i64 %7, 1
%15 = icmp eq i64 %14, 32
br i1 %15, label %16, label %5, !llvm.loop !6
ctrl to: %6 = phi float [ %4, %3 ], [ %13, %5 ]; front: %6 = phi float [ %4, %3 ], [ %13, %5 ]; //
check inst: %6 = phi float [ %4, %3 ], [ %13, %5 ]
!!!!!!! construct ctrl flow: br i1 %15, label %16, label %5, !llvm.loop !6-> %6 = phi float [ %4, %3 ], [ %13, %5 ]
ctrl to: %7 = phi i64 [ 0, %3 ], [ %14, %5 ];
check inst: %7 = phi i64 [ 0, %3 ], [ %14, %5 ]
!!!!!!! construct ctrl flow: br i1 %15, label %16, label %5, !llvm.loop !6-> %7 = phi i64 [ 0, %3 ], [ %14, %5 ]