Advertisement
Guest User

Untitled

a guest
Apr 24th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. ; MINI ENVIRONMENT
  2. declare i8* @malloc(i64)
  3. declare void @free(i8*)
  4. declare i32 @printf(i8*, ...)
  5. declare i32 @scanf(i8*, ...)
  6. @.println = private unnamed_addr constant [5 x i8] c"%ld\0A\00", align 1
  7. @.print = private unnamed_addr constant [5 x i8] c"%ld \00", align 1
  8. @.read = private unnamed_addr constant [4 x i8] c"%ld\00", align 1
  9. @.read_scratch = common global i64 0, align 8
  10.  
  11. ; PROGRAM STRUCTS
  12. %struct.A = type {i64, i64, i64, %struct.A*}
  13. %struct.B = type {%struct.A*}
  14.  
  15. ; PROGRAM GLOBALS
  16. @i = common global i64 0, align 8
  17. @j = common global i64 0, align 8
  18. @k = common global i64 0, align 8
  19. @b = common global %struct.B* null, align 8
  20. @bb = common global %struct.B* null, align 8
  21. @bbb = common global %struct.B* null, align 8
  22. @bob = common global i64 0, align 8
  23.  
  24. ; FUNCTION DEFINITIONS
  25. define %struct.A* @f(i64 %i, %struct.B* %j)
  26. {
  27. %.f = alloca i64
  28. %.k = alloca i64
  29. %.l = alloca i64
  30. L4:
  31. %u1 = load i64, i64* %.f
  32. ret i64 %u1
  33. }
  34. define %struct.A* @f(i64 %i, %struct.B* %j)
  35. {
  36. %.f = alloca i64
  37. %.k = alloca i64
  38. %.l = alloca i64
  39. L4:
  40. %u1 = load i64, i64* %.f
  41. ret i64 %u1
  42. }
  43. define i64 @main()
  44. {
  45. %.a = alloca i64
  46. %.b = alloca i64
  47. %.h = alloca i64
  48. %.i = alloca i64
  49. %.j = alloca i64
  50. %.k = alloca i64
  51. L15:
  52. br L14
  53. L14:
  54. br L13
  55. L13:
  56. %u2 = load i64, i64* %.k
  57. %u3 = icmp sgt i64 %u2, 0
  58. br i1 %u3, label L11, label L12
  59. L11:
  60. ret i64 0
  61. br L9
  62. L9:
  63. %u4 = add i64 1, 1
  64. store i64 %u4, i64* %.a
  65. br L7
  66. L7:
  67. ret i64 0
  68. L12:
  69. br L9
  70. L9:
  71. %u5 = add i64 1, 1
  72. store i64 %u5, i64* %.a
  73. br L7
  74. L7:
  75. ret i64 0
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement