Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *** IR Dump After Remove unreachable blocks from the CFG ***
- define void @n2o_1C17c8e8___main___sum_2_RBdAnyd3f8RBdAnyf8i8(%Slice* noalias %d, %Slice.0* noalias %out, i64 %n) nounwind {
- entry:
- loop_test6.preheader.lr.ph: ; preds = %entry
- br label %loop_test6.preheader
- loop_test6.preheader: ; preds = %loop_exit9, %loop_test6.preheader.lr.ph
- loop_body7.lr.ph: ; preds = %loop_test6.preheader
- %v17 = load double** %gep16, align 8
- %v23 = load double** %gep22, align 8
- ; (1) *****************************
- %getitem.pre = load double* %v17, align 8
- %getitem53.pre = load double* %addr52, align 8
- %getitem90.pre = load double* %addr89, align 8
- br label %loop_body7
- loop_body7: ; preds = %loop_body7, %loop_body7.lr.ph
- %lsr.iv151 = phi double* [ %scevgep152, %loop_body7 ], [ %scevgep, %loop_body7.lr.ph ]
- %getitem90 = phi double [ %getitem90.pre, %loop_body7.lr.ph ], [ %add114, %loop_body7 ]
- %getitem53 = phi double [ %getitem53.pre, %loop_body7.lr.ph ], [ %add77, %loop_body7 ]
- %getitem = phi double [ %getitem.pre, %loop_body7.lr.ph ], [ %add40, %loop_body7 ]
- %getitem28 = load double* %addr27, align 8
- %getitem39 = load double* %scevgep154, align 8
- %mult = fmul double %getitem28, %getitem39
- %add40 = fadd double %getitem, %mult
- store double %add40, double* %v17, align 8
- %getitem64 = load double* %addr63, align 8
- %getitem75 = load double* %scevgep153, align 8
- %mult76 = fmul double %getitem64, %getitem75
- %add77 = fadd double %getitem53, %mult76
- store double %add77, double* %addr52, align 8
- %getitem101 = load double* %addr100, align 8
- %getitem112 = load double* %lsr.iv151, align 8
- %mult113 = fmul double %getitem101, %getitem112
- %add114 = fadd double %getitem90, %mult113
- ; (2) *****************************
- store double %add114, double* %addr89, align 8
- loop_exit9.loopexit: ; preds = %loop_body7
- br label %loop_exit9
- loop_exit9: ; preds = %loop_exit9.loopexit, %loop_test6.preheader
- loop_exit.loopexit: ; preds = %loop_exit9
- br label %loop_exit
- loop_exit: ; preds = %loop_exit.loopexit, %entry
- ret void
- }
- *** IR Dump After Optimize for code generation ***
- define void @n2o_1C17c8e8___main___sum_2_RBdAnyd3f8RBdAnyf8i8(%Slice* noalias %d, %Slice.0* noalias %out, i64 %n) nounwind {
- entry:
- loop_test6.preheader.lr.ph: ; preds = %entry
- br label %loop_test6.preheader
- loop_test6.preheader: ; preds = %loop_exit9, %loop_test6.preheader.lr.ph
- loop_body7.lr.ph: ; preds = %loop_test6.preheader
- %1 = bitcast %Slice* %d to double**
- %2 = bitcast %Slice.0* %out to double**
- %v17 = load double** %2, align 8
- %v23 = load double** %1, align 8
- %getitem.pre = load double* %v17, align 8
- %getitem53.pre = load double* %addr52, align 8
- %getitem90.pre = load double* %addr89, align 8
- br label %loop_body7
- loop_body7: ; preds = %loop_body7, %loop_body7.lr.ph
- %lsr.iv151 = phi double* [ %scevgep152, %loop_body7 ], [ %scevgep, %loop_body7.lr.ph ]
- %getitem90 = phi double [ %getitem90.pre, %loop_body7.lr.ph ], [ %add114, %loop_body7 ]
- %getitem53 = phi double [ %getitem53.pre, %loop_body7.lr.ph ], [ %add77, %loop_body7 ]
- %getitem = phi double [ %getitem.pre, %loop_body7.lr.ph ], [ %add40, %loop_body7 ]
- %getitem28 = load double* %sunkaddr159, align 8
- %getitem39 = load double* %scevgep154, align 8
- %mult = fmul double %getitem28, %getitem39
- %add40 = fadd double %getitem, %mult
- store double %add40, double* %v17, align 8
- %getitem64 = load double* %sunkaddr164, align 8
- %getitem75 = load double* %scevgep153, align 8
- %mult76 = fmul double %getitem64, %getitem75
- %add77 = fadd double %getitem53, %mult76
- store double %add77, double* %sunkaddr167, align 8
- %getitem101 = load double* %sunkaddr172, align 8
- %getitem112 = load double* %lsr.iv151, align 8
- %mult113 = fmul double %getitem101, %getitem112
- %add114 = fadd double %getitem90, %mult113
- ; (3) *****************************
- store double %add114, double* %sunkaddr175, align 8
- loop_exit9: ; preds = %loop_body7, %loop_test6.preheader
- loop_exit: ; preds = %loop_exit9, %entry
- ret void
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement