Guest User

Untitled

a guest
Jan 20th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.08 KB | None | 0 0
  1. ; ModuleID = 'test5.ll'
  2. target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  3. target triple = "x86_64-pc-linux-gnu"
  4.  
  5. @.str = private unnamed_addr constant [32 x i8] c"Final sum %i, Final value = %i\0A\00", align 1
  6.  
  7. ; Function Attrs: nounwind uwtable
  8. define i32 @main() #0 {
  9. call void @update(i32 100, i32 200, i32 150)
  10. call void @update(i32 100, i32 200, i32 100)
  11. call void @update(i32 200, i32 100, i32 150)
  12. call void @update(i32 200, i32 100, i32 100)
  13. %1 = add nsw i32 100, 200
  14. %2 = add nsw i32 100, 200
  15. %3 = call i32 @getBias()
  16. %4 = call i32 @computeFinalValue(i32 %2, i32 %3)
  17. %5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str, i32 0, i32 0), i32 %1, i32 %4)
  18. %6 = add nsw i32 100, 200
  19. %7 = call i32 @getBias()
  20. %8 = call i32 @computeFinalValue(i32 %6, i32 %7)
  21. ret i32 %8
  22. }
  23.  
  24. ; Function Attrs: nounwind uwtable
  25. define internal void @update(i32 %a, i32 %b, i32 %threshold) #0 {
  26. %1 = icmp sgt i32 %a, %threshold
  27. br i1 %1, label %2, label %4
  28.  
  29. ; <label>:2 ; preds = %0
  30. %3 = add nsw i32 %a, %b
  31. br label %5
  32.  
  33. ; <label>:4 ; preds = %0
  34. br label %5
  35.  
  36. ; <label>:5 ; preds = %4, %2
  37. ret void
  38. }
  39.  
  40. declare i32 @printf(i8*, ...) #1
  41.  
  42. ; Function Attrs: nounwind uwtable
  43. define internal i32 @computeFinalValue(i32 %value, i32 %bias) #0 {
  44. %1 = sdiv i32 %value, 5
  45. %2 = sub nsw i32 100, %1
  46. %3 = mul nsw i32 %2, 10
  47. %4 = icmp sgt i32 %3, 100
  48. br i1 %4, label %5, label %7
  49.  
  50. ; <label>:5 ; preds = %0
  51. %6 = sub nsw i32 %3, 100
  52. br label %9
  53.  
  54. ; <label>:7 ; preds = %0
  55. %8 = add nsw i32 %3, 100
  56. br label %9
  57.  
  58. ; <label>:9 ; preds = %7, %5
  59. %c.0 = phi i32 [ %6, %5 ], [ %8, %7 ]
  60. %10 = icmp sgt i32 %2, %c.0
  61. br i1 %10, label %11, label %14
  62.  
  63. ; <label>:11 ; preds = %9
  64. %12 = add nsw i32 %2, %c.0
  65. %13 = sdiv i32 %12, 2
  66. call void @update(i32 %2, i32 %c.0, i32 %13)
  67. br label %17
  68.  
  69. ; <label>:14 ; preds = %9
  70. %15 = add nsw i32 %2, %c.0
  71. %16 = sdiv i32 %15, 2
  72. call void @update(i32 %c.0, i32 %2, i32 %16)
  73. br label %17
  74.  
  75. ; <label>:17 ; preds = %14, %11
  76. %18 = add nsw i32 %value, %bias
  77. ret i32 %18
  78. }
  79.  
  80. ; Function Attrs: nounwind uwtable
  81. define internal i32 @getBias() #0 {
  82. %1 = add nsw i32 0, 1
  83. %2 = add nsw i32 0, 1
  84. %3 = add nsw i32 0, 1
  85. %4 = add nsw i32 %1, 1
  86. %5 = add nsw i32 %2, 1
  87. %6 = add nsw i32 %3, 1
  88. %7 = add nsw i32 %4, 1
  89. %8 = add nsw i32 %5, 1
  90. %9 = add nsw i32 %6, 1
  91. %10 = add nsw i32 %7, 1
  92. %11 = add nsw i32 %8, 1
  93. %12 = add nsw i32 %9, 1
  94. %13 = add nsw i32 %10, 1
  95. %14 = add nsw i32 %11, 1
  96. %15 = add nsw i32 %12, 1
  97. %16 = add nsw i32 %13, 1
  98. %17 = add nsw i32 %14, 1
  99. %18 = add nsw i32 %15, 1
  100. %19 = add nsw i32 %16, 1
  101. %20 = add nsw i32 %17, 1
  102. %21 = add nsw i32 %18, 1
  103. %22 = add nsw i32 %19, 1
  104. %23 = add nsw i32 %20, 1
  105. %24 = add nsw i32 %21, 1
  106. %25 = add nsw i32 %22, 1
  107. %26 = add nsw i32 %23, 1
  108. %27 = add nsw i32 %24, 1
  109. %28 = add nsw i32 %25, 1
  110. %29 = add nsw i32 %26, 1
  111. %30 = add nsw i32 %27, 1
  112. %31 = add nsw i32 %28, 1
  113. %32 = add nsw i32 %29, 1
  114. %33 = add nsw i32 %30, 1
  115. %34 = add nsw i32 %31, 1
  116. %35 = add nsw i32 %32, 1
  117. %36 = add nsw i32 %33, 1
  118. %37 = add nsw i32 %34, 1
  119. %38 = add nsw i32 %35, 1
  120. %39 = add nsw i32 %36, 1
  121. %40 = add nsw i32 %37, 1
  122. %41 = add nsw i32 %38, 1
  123. %42 = add nsw i32 %39, 1
  124. %43 = add nsw i32 %40, 1
  125. %44 = add nsw i32 %41, 1
  126. %45 = add nsw i32 %42, 1
  127. %46 = add nsw i32 %43, 1
  128. %47 = add nsw i32 %44, 1
  129. %48 = add nsw i32 %45, 1
  130. %49 = add nsw i32 %46, 1
  131. %50 = add nsw i32 %47, 1
  132. %51 = add nsw i32 %48, 1
  133. %52 = add nsw i32 %49, 1
  134. %53 = add nsw i32 %50, 1
  135. %54 = add nsw i32 %51, 1
  136. %55 = add nsw i32 %52, 1
  137. %56 = add nsw i32 %53, 1
  138. %57 = add nsw i32 %54, 1
  139. %58 = add nsw i32 %55, 1
  140. %59 = add nsw i32 %56, 1
  141. %60 = add nsw i32 %57, 1
  142. %61 = add nsw i32 %58, 1
  143. %62 = add nsw i32 %59, 1
  144. %63 = add nsw i32 %60, 1
  145. %64 = add nsw i32 %61, 1
  146. %65 = add nsw i32 %62, 1
  147. %66 = add nsw i32 %63, 1
  148. %67 = add nsw i32 %64, 1
  149. %68 = add nsw i32 %65, 1
  150. %69 = add nsw i32 %66, 1
  151. %70 = add nsw i32 %67, 1
  152. %71 = add nsw i32 %68, 1
  153. %72 = add nsw i32 %69, 1
  154. %73 = add nsw i32 %70, 1
  155. %74 = add nsw i32 %71, 1
  156. %75 = add nsw i32 %72, 1
  157. %76 = add nsw i32 %73, 1
  158. %77 = add nsw i32 %74, 1
  159. %78 = add nsw i32 %75, 1
  160. %79 = add nsw i32 %76, 1
  161. %80 = add nsw i32 %77, 1
  162. %81 = add nsw i32 %78, 1
  163. %82 = add nsw i32 %79, 1
  164. %83 = add nsw i32 %80, 1
  165. %84 = add nsw i32 %81, 1
  166. %85 = add nsw i32 %82, 1
  167. %86 = add nsw i32 %83, 1
  168. %87 = add nsw i32 %84, 1
  169. %88 = add nsw i32 %85, 1
  170. %89 = add nsw i32 %86, 1
  171. %90 = add nsw i32 %87, 1
  172. %91 = add nsw i32 %88, 1
  173. %92 = add nsw i32 %89, 1
  174. %93 = add nsw i32 %90, 1
  175. %94 = add nsw i32 %91, 1
  176. %95 = add nsw i32 %92, 1
  177. %96 = add nsw i32 %93, 1
  178. %97 = add nsw i32 %94, 1
  179. %98 = add nsw i32 %95, 1
  180. %99 = add nsw i32 %96, 1
  181. %100 = add nsw i32 %97, %98
  182. %101 = add nsw i32 %100, %99
  183. %102 = add nsw i32 %101, 1
  184. ret i32 %102
  185. }
  186.  
  187. 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" }
  188. 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" }
  189.  
  190. !llvm.ident = !{!0}
  191.  
  192. !0 = !{!"clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)"}
Advertisement
Add Comment
Please, Sign In to add comment