Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ModuleID = 'test5.ll'
- 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 = add nsw i32 100, 200
- %2 = add nsw i32 100, 200
- %3 = call i32 @getBias()
- %4 = call i32 @computeFinalValue(i32 %2, i32 %3)
- %5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i32 0, i32 0), i32 %1, i32 %4)
- %6 = add nsw i32 100, 200
- %7 = call i32 @getBias()
- %8 = call i32 @computeFinalValue(i32 %6, i32 %7)
- ret i32 %8
- }
- ; 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 {
- %1 = add nsw i32 0, 1
- %2 = add nsw i32 0, 1
- %3 = add nsw i32 0, 1
- %4 = add nsw i32 %1, 1
- %5 = add nsw i32 %2, 1
- %6 = add nsw i32 %3, 1
- %7 = add nsw i32 %4, 1
- %8 = add nsw i32 %5, 1
- %9 = add nsw i32 %6, 1
- %10 = add nsw i32 %7, 1
- %11 = add nsw i32 %8, 1
- %12 = add nsw i32 %9, 1
- %13 = add nsw i32 %10, 1
- %14 = add nsw i32 %11, 1
- %15 = add nsw i32 %12, 1
- %16 = add nsw i32 %13, 1
- %17 = add nsw i32 %14, 1
- %18 = add nsw i32 %15, 1
- %19 = add nsw i32 %16, 1
- %20 = add nsw i32 %17, 1
- %21 = add nsw i32 %18, 1
- %22 = add nsw i32 %19, 1
- %23 = add nsw i32 %20, 1
- %24 = add nsw i32 %21, 1
- %25 = add nsw i32 %22, 1
- %26 = add nsw i32 %23, 1
- %27 = add nsw i32 %24, 1
- %28 = add nsw i32 %25, 1
- %29 = add nsw i32 %26, 1
- %30 = add nsw i32 %27, 1
- %31 = add nsw i32 %28, 1
- %32 = add nsw i32 %29, 1
- %33 = add nsw i32 %30, 1
- %34 = add nsw i32 %31, 1
- %35 = add nsw i32 %32, 1
- %36 = add nsw i32 %33, 1
- %37 = add nsw i32 %34, 1
- %38 = add nsw i32 %35, 1
- %39 = add nsw i32 %36, 1
- %40 = add nsw i32 %37, 1
- %41 = add nsw i32 %38, 1
- %42 = add nsw i32 %39, 1
- %43 = add nsw i32 %40, 1
- %44 = add nsw i32 %41, 1
- %45 = add nsw i32 %42, 1
- %46 = add nsw i32 %43, 1
- %47 = add nsw i32 %44, 1
- %48 = add nsw i32 %45, 1
- %49 = add nsw i32 %46, 1
- %50 = add nsw i32 %47, 1
- %51 = add nsw i32 %48, 1
- %52 = add nsw i32 %49, 1
- %53 = add nsw i32 %50, 1
- %54 = add nsw i32 %51, 1
- %55 = add nsw i32 %52, 1
- %56 = add nsw i32 %53, 1
- %57 = add nsw i32 %54, 1
- %58 = add nsw i32 %55, 1
- %59 = add nsw i32 %56, 1
- %60 = add nsw i32 %57, 1
- %61 = add nsw i32 %58, 1
- %62 = add nsw i32 %59, 1
- %63 = add nsw i32 %60, 1
- %64 = add nsw i32 %61, 1
- %65 = add nsw i32 %62, 1
- %66 = add nsw i32 %63, 1
- %67 = add nsw i32 %64, 1
- %68 = add nsw i32 %65, 1
- %69 = add nsw i32 %66, 1
- %70 = add nsw i32 %67, 1
- %71 = add nsw i32 %68, 1
- %72 = add nsw i32 %69, 1
- %73 = add nsw i32 %70, 1
- %74 = add nsw i32 %71, 1
- %75 = add nsw i32 %72, 1
- %76 = add nsw i32 %73, 1
- %77 = add nsw i32 %74, 1
- %78 = add nsw i32 %75, 1
- %79 = add nsw i32 %76, 1
- %80 = add nsw i32 %77, 1
- %81 = add nsw i32 %78, 1
- %82 = add nsw i32 %79, 1
- %83 = add nsw i32 %80, 1
- %84 = add nsw i32 %81, 1
- %85 = add nsw i32 %82, 1
- %86 = add nsw i32 %83, 1
- %87 = add nsw i32 %84, 1
- %88 = add nsw i32 %85, 1
- %89 = add nsw i32 %86, 1
- %90 = add nsw i32 %87, 1
- %91 = add nsw i32 %88, 1
- %92 = add nsw i32 %89, 1
- %93 = add nsw i32 %90, 1
- %94 = add nsw i32 %91, 1
- %95 = add nsw i32 %92, 1
- %96 = add nsw i32 %93, 1
- %97 = add nsw i32 %94, 1
- %98 = add nsw i32 %95, 1
- %99 = add nsw i32 %96, 1
- %100 = add nsw i32 %97, %98
- %101 = add nsw i32 %100, %99
- %102 = add nsw i32 %101, 1
- ret i32 %102
- }
- 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)"}
Advertisement
Add Comment
Please, Sign In to add comment