Advertisement
Guest User

Untitled

a guest
Nov 6th, 2022
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.63 KB | None | 0 0
  1. target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
  2. target triple = "x86_64-apple-macosx10.8.0"
  3. ; Begin asmlist al_begin
  4. ; Syms - Begin Staticsymtable
  5. ; Syms - End Staticsymtable
  6. ; [tt4.pp]
  7. ; [5] begin
  8. %"typ.PROGRAM.00000007" = type <{ i64, i64, ptr, ptr, ptr, ptr, ptr, ptr }>
  9. %"typ.PROGRAM.00000008" = type <{ i32, i8, i8, i8, i8, ptr }>
  10. %"typ.PROGRAM.00000009" = type <{ i64 }>
  11. %"typ.PROGRAM.0000000A" = type <{ i64 }>
  12. %"typ.PROGRAM.0000000B" = type <{ i64 }>
  13. %"typ.PROGRAM.$rttidef$_RTTI_$P$PROGRAM_$$_def00000005" = type <{ i8, [1 x i8], %"typ.PROGRAM.$rtti_dyn_array$" }>
  14. %"typ.PROGRAM.$rtti_dyn_array$" = type <{ ptr, %"typ.PROGRAM.$rtti_dyn_array_inner$" }>
  15. %"typ.PROGRAM.$rtti_dyn_array_inner$" = type <{ i64, ptr, i32, ptr, [8 x i8] }>
  16. %"typ.SYSTEM.FPC_Unwind_Exception" = type <{ i64, ptr, i64, i64, i64, i64, i64, i64 }>
  17. %"typ.SYSTEM.FPC_Unwind_Context" = type <{ }>
  18. ; End asmlist al_begin
  19. ; Begin asmlist al_procedures
  20. define void @"\01_main"(i32 %p.ARGC, ptr %p.ARGV, ptr %p.ARGP) nobuiltin null_pointer_is_valid strictfp !dbg !6 {
  21. %tmp.1 = alloca i32, align 8
  22. %tmp.2 = alloca ptr, align 8
  23. %tmp.3 = alloca ptr, align 8
  24. %reg.1_17 = bitcast ptr %tmp.1 to ptr
  25. call void (i64, ptr) @llvm.lifetime.start (i64 4, ptr %reg.1_17), !dbg !8
  26. call void (metadata, metadata, metadata) @llvm.dbg.addr (metadata ptr %tmp.1, metadata !9, metadata !3), !dbg !8
  27. ; Var ARGC located at %tmp.1
  28. %reg.1_22 = bitcast ptr %tmp.2 to ptr
  29. call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_22), !dbg !8
  30. call void (metadata, metadata, metadata) @llvm.dbg.addr (metadata ptr %tmp.2, metadata !11, metadata !3), !dbg !8
  31. ; Var ARGV located at %tmp.2
  32. %reg.1_27 = bitcast ptr %tmp.3 to ptr
  33. call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_27), !dbg !8
  34. call void (metadata, metadata, metadata) @llvm.dbg.addr (metadata ptr %tmp.3, metadata !13, metadata !3), !dbg !8
  35. ; Var ARGP located at %tmp.3
  36. %reg.1_31 = bitcast i32 %p.ARGC to i32
  37. store i32 %reg.1_31, ptr %tmp.1, align 8
  38. store ptr %p.ARGV, ptr %tmp.2, align 8
  39. store ptr %p.ARGP, ptr %tmp.3, align 8
  40. %reg.1_32 = load ptr, ptr %tmp.3, align 8
  41. %reg.1_33 = load ptr, ptr %tmp.2, align 8
  42. %reg.1_35 = bitcast ptr %tmp.1 to ptr
  43. %reg.1_34 = load i32, ptr %reg.1_35, align 8
  44. call void (i32, ptr, ptr) @"\01_FPC_SYSTEMMAIN" (i32 %reg.1_34, ptr %reg.1_33, ptr %reg.1_32), !dbg !8
  45. br label %Lj5
  46. Lj5:
  47. %reg.1_37 = bitcast ptr %tmp.1 to ptr
  48. call void (i64, ptr) @llvm.lifetime.end (i64 4, ptr %reg.1_37), !dbg !8
  49. %reg.1_39 = bitcast ptr %tmp.2 to ptr
  50. call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_39), !dbg !8
  51. %reg.1_41 = bitcast ptr %tmp.3 to ptr
  52. call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_41), !dbg !8
  53. ret void
  54. }
  55. define void @"\01_PASCALMAIN"() nobuiltin noreturn null_pointer_is_valid strictfp !dbg !14 {
  56. ; Temps allocated between rbp+0 and rbp+2
  57. ; [tt4.pp]
  58. ; [5] begin
  59. %tmp.1 = alloca [1 x i64], align 8, !dbg !15
  60. %tmp.2 = alloca [1 x i64], align 8, !dbg !15
  61. call void () @"\01fpc_initializeunits" (), !dbg !15
  62. ; [6] setlength(mydynarray,4);
  63. %reg.1_17 = bitcast ptr %tmp.1 to ptr, !dbg !16
  64. call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_17), !dbg !16
  65. %reg.1_18 = getelementptr [1 x i64], ptr %tmp.1, i32 0, i64 0, !dbg !16
  66. store i64 4, ptr %reg.1_18, align 8, !dbg !16
  67. %reg.1_19 = getelementptr [1 x i64], ptr %tmp.1, i32 0, i64 0, !dbg !16
  68. %reg.1_20 = bitcast ptr %reg.1_19 to ptr, !dbg !16
  69. %reg.1_21 = bitcast ptr %reg.1_20 to ptr, !dbg !16
  70. %reg.1_22 = bitcast ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005" to ptr, !dbg !16
  71. %reg.1_23 = bitcast ptr %reg.1_22 to ptr, !dbg !16
  72. %reg.1_24 = bitcast ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" to ptr, !dbg !16
  73. call void (ptr, ptr, i64, ptr) @"\01fpc_dynarray_setlength" (ptr %reg.1_24, ptr %reg.1_23, i64 1, ptr %reg.1_21), !dbg !16
  74. %reg.1_27 = bitcast ptr %tmp.1 to ptr, !dbg !16
  75. call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_27), !dbg !16
  76. ; [7] mydynarray[3]:=1;
  77. %reg.1_28 = load ptr, ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY", align 8, !dbg !17
  78. %reg.1_29 = getelementptr i32, ptr %reg.1_28, i64 3, !dbg !17
  79. store i32 1, ptr %reg.1_29, align 4, !dbg !18
  80. ; [8] mydynarray[1]:=2;
  81. %reg.1_30 = load ptr, ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY", align 8, !dbg !19
  82. %reg.1_31 = getelementptr i32, ptr %reg.1_30, i64 1, !dbg !19
  83. store i32 2, ptr %reg.1_31, align 4, !dbg !20
  84. ; [9] setlength(mydynarray,3);
  85. %reg.1_33 = bitcast ptr %tmp.2 to ptr, !dbg !21
  86. call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_33), !dbg !21
  87. %reg.1_34 = getelementptr [1 x i64], ptr %tmp.2, i32 0, i64 0, !dbg !21
  88. store i64 3, ptr %reg.1_34, align 8, !dbg !21
  89. %reg.1_35 = getelementptr [1 x i64], ptr %tmp.2, i32 0, i64 0, !dbg !21
  90. %reg.1_36 = bitcast ptr %reg.1_35 to ptr, !dbg !21
  91. %reg.1_37 = bitcast ptr %reg.1_36 to ptr, !dbg !21
  92. %reg.1_38 = bitcast ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005" to ptr, !dbg !21
  93. %reg.1_39 = bitcast ptr %reg.1_38 to ptr, !dbg !21
  94. %reg.1_40 = bitcast ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" to ptr, !dbg !21
  95. call void (ptr, ptr, i64, ptr) @"\01fpc_dynarray_setlength" (ptr %reg.1_40, ptr %reg.1_39, i64 1, ptr %reg.1_37), !dbg !21
  96. %reg.1_43 = bitcast ptr %tmp.2 to ptr, !dbg !21
  97. call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_43), !dbg !21
  98. ; [10] mydynarray[0]:=5;
  99. %reg.1_44 = load ptr, ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY", align 8, !dbg !22
  100. store i32 5, ptr %reg.1_44, align 8, !dbg !23
  101. ; [11] end.
  102. br label %Lj3, !dbg !24
  103. Lj3:
  104. call void () @"\01fpc_do_exit" (), !dbg !24
  105. ret void, !dbg !24
  106. }
  107. @"\01_INIT$_$P$PROGRAM" = alias void (), ptr @"\01__P$PROGRAM_$$_init_implicit$"
  108. define void @"\01__P$PROGRAM_$$_init_implicit$"() nobuiltin null_pointer_is_valid strictfp !dbg !25 {
  109. br label %Lj7
  110. Lj7:
  111. ret void
  112. }
  113. @"\01_FINALIZE$_$P$PROGRAM" = alias void (), ptr @"\01__P$PROGRAM_$$_finalize_implicit$"
  114. @"\01PASCALFINALIZE" = alias void (), ptr @"\01__P$PROGRAM_$$_finalize_implicit$"
  115. define void @"\01__P$PROGRAM_$$_finalize_implicit$"() nobuiltin null_pointer_is_valid strictfp personality ptr @"\01_SYSTEM_$$__FPC_PSABIEH_PERSONALITY_V0$hs2HxE9SEE3H" !dbg !26 {
  116. br label %Lj9
  117. Lj9:
  118. %reg.1_16 = bitcast ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" to ptr
  119. %reg.1_17 = bitcast ptr %reg.1_16 to ptr
  120. %reg.1_18 = bitcast ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005" to ptr
  121. %reg.1_19 = bitcast ptr %reg.1_18 to ptr
  122. call void (ptr, ptr) @"\01fpc_finalize" (ptr %reg.1_17, ptr %reg.1_19), !dbg !27
  123. ret void
  124. }
  125. declare void @llvm.lifetime.start(i64, ptr) null_pointer_is_valid strictfp
  126. declare void @llvm.dbg.addr(metadata, metadata, metadata) null_pointer_is_valid strictfp
  127. declare void @"\01_FPC_SYSTEMMAIN"(i32, ptr, ptr) nobuiltin null_pointer_is_valid strictfp
  128. declare void @llvm.lifetime.end(i64, ptr) null_pointer_is_valid strictfp
  129. declare void @"\01fpc_initializeunits"() nobuiltin null_pointer_is_valid strictfp
  130. declare void @"\01fpc_dynarray_setlength"(ptr nocapture dereferenceable_or_null(8), ptr, i64, ptr) nobuiltin null_pointer_is_valid strictfp
  131. declare void @"\01fpc_do_exit"() nobuiltin null_pointer_is_valid strictfp
  132. declare i32 @"\01_SYSTEM_$$__FPC_PSABIEH_PERSONALITY_V0$hs2HxE9SEE3H"(i32, i32, i64, ptr, ptr) nobuiltin null_pointer_is_valid strictfp
  133. declare void @"\01fpc_finalize"(ptr, ptr) nobuiltin null_pointer_is_valid strictfp
  134. ; End asmlist al_procedures
  135. ; Begin asmlist al_globals
  136. @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" = hidden global ptr zeroinitializer, align 8, !dbg !29
  137. @"\01INITFINAL" = global %"typ.PROGRAM.00000007" <{i64 3, i64 zeroinitializer, ptr @"\01_INIT$_$SYSTEM", ptr zeroinitializer, ptr zeroinitializer, ptr @"\01_FINALIZE$_$OBJPAS", ptr @"\01_INIT$_$P$PROGRAM", ptr @"\01_FINALIZE$_$P$PROGRAM" }>, align 8
  138. @"\01FPC_THREADVARTABLES" = global %"typ.PROGRAM.00000008" <{i32 1, i8 zeroinitializer, i8 zeroinitializer, i8 zeroinitializer, i8 zeroinitializer, ptr @"\01_THREADVARLIST_$SYSTEM$indirect" }>, align 8
  139. @"\01FPC_RESOURCESTRINGTABLES" = constant %"typ.PROGRAM.00000009" <{i64 zeroinitializer }>, align 8
  140. @"\01FPC_WIDEINITTABLES" = global %"typ.PROGRAM.0000000A" <{i64 zeroinitializer }>, align 8
  141. @"\01FPC_RESSTRINITTABLES" = global %"typ.PROGRAM.0000000B" <{i64 zeroinitializer }>, align 8
  142. @"\01__fpc_ident" = internal global [42 x i8] c"FPC 3.3.1 [2022/11/05] for x86_64 - Darwin", align 16
  143. @"\01__stklen" = global i64 262144, align 8
  144. @"\01__heapsize" = global i64 zeroinitializer, align 8
  145. @"\01__fpc_valgrind" = global i8 zeroinitializer, align 8
  146. @"\01FPC_RESLOCATION" = constant ptr zeroinitializer, align 8
  147. @llvm.compiler.used = appending global [1 x ptr] [ptr @"\01__fpc_ident"], section "llvm.metadata"
  148. @"\01_INIT$_$SYSTEM" = external global ptr, align 8
  149. @"\01_FINALIZE$_$OBJPAS" = external global ptr, align 8
  150. @"\01_THREADVARLIST_$SYSTEM$indirect" = external global ptr, align 8
  151. ; End asmlist al_globals
  152. ; Begin asmlist al_rotypedconsts
  153. !llvm.module.flags = !{!60, !61}
  154. !60 = !{i32 2, !"Debug Info Version", i32 3}
  155. !61 = !{i32 2, !"Dwarf Version", i32 2}
  156. ; End asmlist al_rotypedconsts
  157. ; Begin asmlist al_rtti
  158. @"\01_RTTI_$P$PROGRAM_$$_def00000005" = constant %"typ.PROGRAM.$rttidef$_RTTI_$P$PROGRAM_$$_def00000005" <{i8 21, [1 x i8] [i8 zeroinitializer], %"typ.PROGRAM.$rtti_dyn_array$" <{ptr zeroinitializer, %"typ.PROGRAM.$rtti_dyn_array_inner$" <{i64 4, ptr @"\01_RTTI_$SYSTEM_$$_LONGINT$indirect", i32 3, ptr zeroinitializer, [8 x i8] c"\07Program" }> }> }>, align 8
  159. @"\01_RTTI_$SYSTEM_$$_LONGINT$indirect" = external global ptr, align 8
  160. ; End asmlist al_rtti
  161. ; Begin asmlist al_indirectglobals
  162. @"\01_RTTI_$P$PROGRAM_$$_def00000005$indirect" = constant ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005", align 8
  163. ; End asmlist al_indirectglobals
  164. ; Begin asmlist al_dwarf_info
  165. !9 = !DILocalVariable(name: "ARGC", arg: 1, scope: !6, file: !7, line: 3, type: !10)
  166. !11 = !DILocalVariable(name: "ARGV", arg: 2, scope: !6, file: !7, line: 3, type: !12)
  167. !13 = !DILocalVariable(name: "ARGP", arg: 3, scope: !6, file: !7, line: 3, type: !12)
  168. ; Syms - Begin Staticsymtable
  169. ; Symbol SYSTEM
  170. ; Symbol FPINTRES
  171. ; Symbol OBJPAS
  172. ; Symbol PROGRAM
  173. ; Symbol main
  174. ; Symbol __FPC_IMPL_EXTERNAL_REDIRECT__FPC_SYSTEMMAIN
  175. ; Symbol PASCALMAIN
  176. ; Symbol MYDYNARRAY
  177. !28 = distinct !DIGlobalVariable(name: "MYDYNARRAY", scope: !5, file: !7, line: 4, type: !30, isDefinition: true, isLocal: true)
  178. !29 = !DIGlobalVariableExpression(var: !28, expr: !3)
  179. ; Symbol _P$PROGRAM_$$_init_implicit$
  180. ; Symbol _P$PROGRAM_$$_finalize_implicit$
  181. ; Symbol SYSINIT
  182. ; Symbol rttidef$_RTTI_$P$PROGRAM_$$_def00000005
  183. ; Symbol rtti_dyn_array$
  184. ; Symbol rtti_dyn_array_inner$
  185. ; Syms - End Staticsymtable
  186. !6 = distinct !DISubprogram(name: "main", scope: !7, file: !7, line: 3, spFlags: DISPFlagDefinition, unit: !5, type: !34)
  187. !35 = !{null, !10, !12, !12}
  188. !34 = !DISubroutineType(types: !35)
  189. !14 = distinct !DISubprogram(scopeLine: 5, name: "PASCALMAIN", scope: !7, file: !7, line: 3, spFlags: DISPFlagDefinition|DISPFlagMainSubprogram, unit: !5, type: !36)
  190. !37 = !{null}
  191. !36 = !DISubroutineType(types: !37)
  192. !25 = distinct !DISubprogram(name: "_P$PROGRAM_$$_init_implicit$", scope: !7, file: !7, line: 11, spFlags: DISPFlagDefinition, unit: !5, type: !38)
  193. !39 = !{null}
  194. !38 = !DISubroutineType(types: !39)
  195. !26 = distinct !DISubprogram(name: "_P$PROGRAM_$$_finalize_implicit$", scope: !7, file: !7, line: 11, spFlags: DISPFlagDefinition, unit: !5, type: !40)
  196. !41 = !{null}
  197. !40 = !DISubroutineType(types: !41)
  198. ; Defs - Begin unit SYSTEM has index 1
  199. !42 = !DIBasicType(size: 32, encoding: DW_ATE_signed)
  200. !10 = !DIDerivedType(tag: DW_TAG_typedef, name: "LONGINT", file: !43, line: 25, baseType: !42)
  201. ; Defs - End unit SYSTEM has index 1
  202. ; Defs - Begin unit FPINTRES has index 2
  203. ; Defs - End unit FPINTRES has index 2
  204. ; Defs - Begin unit OBJPAS has index 3
  205. ; Defs - End unit OBJPAS has index 3
  206. ; Defs - Begin unit SYSINIT has index 3
  207. ; Defs - End unit SYSINIT has index 3
  208. ; Defs - Begin Staticsymtable
  209. !44 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !45)
  210. !12 = !DIDerivedType(tag: DW_TAG_typedef, baseType: !44)
  211. !46 = !{!47}
  212. !48 = !DIExpression(DW_OP_push_object_address, DW_OP_deref, DW_OP_constu, 8, DW_OP_minus, DW_OP_deref)
  213. !47 = !DISubrange(upperBound: !48, lowerBound: 0)
  214. !50 = !DIExpression(DW_OP_push_object_address, DW_OP_deref)
  215. !49 = distinct !DICompositeType(tag: DW_TAG_array_type, baseType: !10, elements: !46, dataLocation: !50)
  216. !30 = !DIDerivedType(tag: DW_TAG_typedef, baseType: !49)
  217. !51 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "$RTTIDEF$_RTTI_$P$PROGRAM_$$_DEF00000005", file: !7, line: 0, size: 368, elements: !52)
  218. !52 = !{}
  219. !31 = !DIDerivedType(tag: DW_TAG_typedef, name: "rttidef$_RTTI_$P$PROGRAM_$$_def00000005", file: !7, line: 0, baseType: !51)
  220. !53 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "$RTTI_DYN_ARRAY$", file: !7, line: 0, size: 352, elements: !54)
  221. !54 = !{}
  222. !32 = !DIDerivedType(tag: DW_TAG_typedef, name: "rtti_dyn_array$", file: !7, line: 0, baseType: !53)
  223. !55 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "$RTTI_DYN_ARRAY_INNER$", file: !7, line: 0, size: 288, elements: !56)
  224. !56 = !{}
  225. !33 = !DIDerivedType(tag: DW_TAG_typedef, name: "rtti_dyn_array_inner$", file: !7, line: 0, baseType: !55)
  226. ; Defs - End Staticsymtable
  227. !57 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !58)
  228. !45 = !DIDerivedType(tag: DW_TAG_typedef, name: "char_pointer", file: !43, line: 25, baseType: !57)
  229. !59 = !DIBasicType(size: 8, encoding: DW_ATE_unsigned_char)
  230. !58 = !DIDerivedType(tag: DW_TAG_typedef, name: "CHAR", file: !43, line: 25, baseType: !59)
  231. !2 = !{!29}
  232. !3 = !DIExpression()
  233. !4 = !DIExpression(DW_OP_deref)
  234. !5 = distinct !DICompileUnit(language: DW_LANG_Pascal83, file: !7, producer: "Free Pascal Compiler 3.3.1", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: null, retainedTypes: null, globals: !2, nameTableKind: GNU)
  235. !llvm.dbg.cu = !{!5}
  236. ; End asmlist al_dwarf_info
  237. ; Begin asmlist al_dwarf_line
  238. !7 = !DIFile(filename: "tt4.pp", directory: "/ssdata/dev/fpcgit/test")
  239. !8 = !DILocation(line: 0, scope: !6)
  240. !15 = !DILocation(line: 5, column: 1, scope: !14)
  241. !16 = !DILocation(line: 6, column: 3, scope: !14)
  242. !17 = !DILocation(line: 7, column: 13, scope: !14)
  243. !18 = !DILocation(line: 7, column: 3, scope: !14)
  244. !19 = !DILocation(line: 8, column: 13, scope: !14)
  245. !20 = !DILocation(line: 8, column: 3, scope: !14)
  246. !21 = !DILocation(line: 9, column: 3, scope: !14)
  247. !22 = !DILocation(line: 10, column: 13, scope: !14)
  248. !23 = !DILocation(line: 10, column: 3, scope: !14)
  249. !24 = !DILocation(line: 11, column: 1, scope: !14)
  250. !27 = !DILocation(line: 0, scope: !26)
  251. !43 = !DIFile(filename: "system.pp", directory: "/ssdata/dev/fpcgit/test")
  252. ; End asmlist al_dwarf_line
  253.  
  254.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement