Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ModuleID = 'opt_test5.bc'
- target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
- target triple = "x86_64-pc-linux-gnu"
- @.str = private unnamed_addr constant [32 x i8] c"Final sum %i, Final value = %i\0A\00", align 1
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- call void @update(i32 100, i32 200, i32 150)
- call void @update(i32 100, i32 200, i32 100)
- call void @update(i32 200, i32 100, i32 150)
- call void @update(i32 200, i32 100, i32 100)
- %1 = call i32 @getBias()
- %2 = call i32 @computeFinalValue(i32 300, i32 %1)
- %3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i32 0, i32 0), i32 300, i32 %2)
- %4 = call i32 @getBias()
- %5 = call i32 @computeFinalValue(i32 300, i32 %4)
- ret i32 %5
- }
- ; Function Attrs: nounwind uwtable
- define internal void @update(i32 %a, i32 %b, i32 %threshold) #0 {
- %1 = icmp sgt i32 %a, %threshold
- br i1 %1, label %2, label %4
- ; <label>:2 ; preds = %0
- %3 = add nsw i32 %a, %b
- br label %5
- ; <label>:4 ; preds = %0
- br label %5
- ; <label>:5 ; preds = %4, %2
- ret void
- }
- declare i32 @printf(i8*, ...) #1
- ; Function Attrs: nounwind uwtable
- define internal i32 @computeFinalValue(i32 %value, i32 %bias) #0 {
- %1 = sdiv i32 %value, 5
- %2 = sub nsw i32 100, %1
- %3 = mul nsw i32 %2, 10
- %4 = icmp sgt i32 %3, 100
- br i1 %4, label %5, label %7
- ; <label>:5 ; preds = %0
- %6 = sub nsw i32 %3, 100
- br label %9
- ; <label>:7 ; preds = %0
- %8 = add nsw i32 %3, 100
- br label %9
- ; <label>:9 ; preds = %7, %5
- %c.0 = phi i32 [ %6, %5 ], [ %8, %7 ]
- %10 = icmp sgt i32 %2, %c.0
- br i1 %10, label %11, label %14
- ; <label>:11 ; preds = %9
- %12 = add nsw i32 %2, %c.0
- %13 = sdiv i32 %12, 2
- call void @update(i32 %2, i32 %c.0, i32 %13)
- br label %17
- ; <label>:14 ; preds = %9
- %15 = add nsw i32 %2, %c.0
- %16 = sdiv i32 %15, 2
- call void @update(i32 %c.0, i32 %2, i32 %16)
- br label %17
- ; <label>:17 ; preds = %14, %11
- %18 = add nsw i32 %value, %bias
- ret i32 %18
- }
- ; Function Attrs: nounwind uwtable
- define internal i32 @getBias() #0 {
- ret i32 100
- }
- attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
- attributes #1 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
- !llvm.ident = !{!0}
- !0 = !{!"clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)"}
Add Comment
Please, Sign In to add comment