Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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"
- target triple = "x86_64-apple-macosx10.8.0"
- ; Begin asmlist al_begin
- ; Syms - Begin Staticsymtable
- ; Syms - End Staticsymtable
- ; [tt4.pp]
- ; [5] begin
- %"typ.PROGRAM.00000007" = type <{ i64, i64, ptr, ptr, ptr, ptr, ptr, ptr }>
- %"typ.PROGRAM.00000008" = type <{ i32, i8, i8, i8, i8, ptr }>
- %"typ.PROGRAM.00000009" = type <{ i64 }>
- %"typ.PROGRAM.0000000A" = type <{ i64 }>
- %"typ.PROGRAM.0000000B" = type <{ i64 }>
- %"typ.PROGRAM.$rttidef$_RTTI_$P$PROGRAM_$$_def00000005" = type <{ i8, [1 x i8], %"typ.PROGRAM.$rtti_dyn_array$" }>
- %"typ.PROGRAM.$rtti_dyn_array$" = type <{ ptr, %"typ.PROGRAM.$rtti_dyn_array_inner$" }>
- %"typ.PROGRAM.$rtti_dyn_array_inner$" = type <{ i64, ptr, i32, ptr, [8 x i8] }>
- %"typ.SYSTEM.FPC_Unwind_Exception" = type <{ i64, ptr, i64, i64, i64, i64, i64, i64 }>
- %"typ.SYSTEM.FPC_Unwind_Context" = type <{ }>
- ; End asmlist al_begin
- ; Begin asmlist al_procedures
- define void @"\01_main"(i32 %p.ARGC, ptr %p.ARGV, ptr %p.ARGP) nobuiltin null_pointer_is_valid strictfp !dbg !6 {
- %tmp.1 = alloca i32, align 8
- %tmp.2 = alloca ptr, align 8
- %tmp.3 = alloca ptr, align 8
- %reg.1_17 = bitcast ptr %tmp.1 to ptr
- call void (i64, ptr) @llvm.lifetime.start (i64 4, ptr %reg.1_17), !dbg !8
- call void (metadata, metadata, metadata) @llvm.dbg.addr (metadata ptr %tmp.1, metadata !9, metadata !3), !dbg !8
- ; Var ARGC located at %tmp.1
- %reg.1_22 = bitcast ptr %tmp.2 to ptr
- call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_22), !dbg !8
- call void (metadata, metadata, metadata) @llvm.dbg.addr (metadata ptr %tmp.2, metadata !11, metadata !3), !dbg !8
- ; Var ARGV located at %tmp.2
- %reg.1_27 = bitcast ptr %tmp.3 to ptr
- call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_27), !dbg !8
- call void (metadata, metadata, metadata) @llvm.dbg.addr (metadata ptr %tmp.3, metadata !13, metadata !3), !dbg !8
- ; Var ARGP located at %tmp.3
- %reg.1_31 = bitcast i32 %p.ARGC to i32
- store i32 %reg.1_31, ptr %tmp.1, align 8
- store ptr %p.ARGV, ptr %tmp.2, align 8
- store ptr %p.ARGP, ptr %tmp.3, align 8
- %reg.1_32 = load ptr, ptr %tmp.3, align 8
- %reg.1_33 = load ptr, ptr %tmp.2, align 8
- %reg.1_35 = bitcast ptr %tmp.1 to ptr
- %reg.1_34 = load i32, ptr %reg.1_35, align 8
- call void (i32, ptr, ptr) @"\01_FPC_SYSTEMMAIN" (i32 %reg.1_34, ptr %reg.1_33, ptr %reg.1_32), !dbg !8
- br label %Lj5
- Lj5:
- %reg.1_37 = bitcast ptr %tmp.1 to ptr
- call void (i64, ptr) @llvm.lifetime.end (i64 4, ptr %reg.1_37), !dbg !8
- %reg.1_39 = bitcast ptr %tmp.2 to ptr
- call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_39), !dbg !8
- %reg.1_41 = bitcast ptr %tmp.3 to ptr
- call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_41), !dbg !8
- ret void
- }
- define void @"\01_PASCALMAIN"() nobuiltin noreturn null_pointer_is_valid strictfp !dbg !14 {
- ; Temps allocated between rbp+0 and rbp+2
- ; [tt4.pp]
- ; [5] begin
- %tmp.1 = alloca [1 x i64], align 8, !dbg !15
- %tmp.2 = alloca [1 x i64], align 8, !dbg !15
- call void () @"\01fpc_initializeunits" (), !dbg !15
- ; [6] setlength(mydynarray,4);
- %reg.1_17 = bitcast ptr %tmp.1 to ptr, !dbg !16
- call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_17), !dbg !16
- %reg.1_18 = getelementptr [1 x i64], ptr %tmp.1, i32 0, i64 0, !dbg !16
- store i64 4, ptr %reg.1_18, align 8, !dbg !16
- %reg.1_19 = getelementptr [1 x i64], ptr %tmp.1, i32 0, i64 0, !dbg !16
- %reg.1_20 = bitcast ptr %reg.1_19 to ptr, !dbg !16
- %reg.1_21 = bitcast ptr %reg.1_20 to ptr, !dbg !16
- %reg.1_22 = bitcast ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005" to ptr, !dbg !16
- %reg.1_23 = bitcast ptr %reg.1_22 to ptr, !dbg !16
- %reg.1_24 = bitcast ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" to ptr, !dbg !16
- 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
- %reg.1_27 = bitcast ptr %tmp.1 to ptr, !dbg !16
- call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_27), !dbg !16
- ; [7] mydynarray[3]:=1;
- %reg.1_28 = load ptr, ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY", align 8, !dbg !17
- %reg.1_29 = getelementptr i32, ptr %reg.1_28, i64 3, !dbg !17
- store i32 1, ptr %reg.1_29, align 4, !dbg !18
- ; [8] mydynarray[1]:=2;
- %reg.1_30 = load ptr, ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY", align 8, !dbg !19
- %reg.1_31 = getelementptr i32, ptr %reg.1_30, i64 1, !dbg !19
- store i32 2, ptr %reg.1_31, align 4, !dbg !20
- ; [9] setlength(mydynarray,3);
- %reg.1_33 = bitcast ptr %tmp.2 to ptr, !dbg !21
- call void (i64, ptr) @llvm.lifetime.start (i64 8, ptr %reg.1_33), !dbg !21
- %reg.1_34 = getelementptr [1 x i64], ptr %tmp.2, i32 0, i64 0, !dbg !21
- store i64 3, ptr %reg.1_34, align 8, !dbg !21
- %reg.1_35 = getelementptr [1 x i64], ptr %tmp.2, i32 0, i64 0, !dbg !21
- %reg.1_36 = bitcast ptr %reg.1_35 to ptr, !dbg !21
- %reg.1_37 = bitcast ptr %reg.1_36 to ptr, !dbg !21
- %reg.1_38 = bitcast ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005" to ptr, !dbg !21
- %reg.1_39 = bitcast ptr %reg.1_38 to ptr, !dbg !21
- %reg.1_40 = bitcast ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" to ptr, !dbg !21
- 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
- %reg.1_43 = bitcast ptr %tmp.2 to ptr, !dbg !21
- call void (i64, ptr) @llvm.lifetime.end (i64 8, ptr %reg.1_43), !dbg !21
- ; [10] mydynarray[0]:=5;
- %reg.1_44 = load ptr, ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY", align 8, !dbg !22
- store i32 5, ptr %reg.1_44, align 8, !dbg !23
- ; [11] end.
- br label %Lj3, !dbg !24
- Lj3:
- call void () @"\01fpc_do_exit" (), !dbg !24
- ret void, !dbg !24
- }
- @"\01_INIT$_$P$PROGRAM" = alias void (), ptr @"\01__P$PROGRAM_$$_init_implicit$"
- define void @"\01__P$PROGRAM_$$_init_implicit$"() nobuiltin null_pointer_is_valid strictfp !dbg !25 {
- br label %Lj7
- Lj7:
- ret void
- }
- @"\01_FINALIZE$_$P$PROGRAM" = alias void (), ptr @"\01__P$PROGRAM_$$_finalize_implicit$"
- @"\01PASCALFINALIZE" = alias void (), ptr @"\01__P$PROGRAM_$$_finalize_implicit$"
- define void @"\01__P$PROGRAM_$$_finalize_implicit$"() nobuiltin null_pointer_is_valid strictfp personality ptr @"\01_SYSTEM_$$__FPC_PSABIEH_PERSONALITY_V0$hs2HxE9SEE3H" !dbg !26 {
- br label %Lj9
- Lj9:
- %reg.1_16 = bitcast ptr @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" to ptr
- %reg.1_17 = bitcast ptr %reg.1_16 to ptr
- %reg.1_18 = bitcast ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005" to ptr
- %reg.1_19 = bitcast ptr %reg.1_18 to ptr
- call void (ptr, ptr) @"\01fpc_finalize" (ptr %reg.1_17, ptr %reg.1_19), !dbg !27
- ret void
- }
- declare void @llvm.lifetime.start(i64, ptr) null_pointer_is_valid strictfp
- declare void @llvm.dbg.addr(metadata, metadata, metadata) null_pointer_is_valid strictfp
- declare void @"\01_FPC_SYSTEMMAIN"(i32, ptr, ptr) nobuiltin null_pointer_is_valid strictfp
- declare void @llvm.lifetime.end(i64, ptr) null_pointer_is_valid strictfp
- declare void @"\01fpc_initializeunits"() nobuiltin null_pointer_is_valid strictfp
- declare void @"\01fpc_dynarray_setlength"(ptr nocapture dereferenceable_or_null(8), ptr, i64, ptr) nobuiltin null_pointer_is_valid strictfp
- declare void @"\01fpc_do_exit"() nobuiltin null_pointer_is_valid strictfp
- declare i32 @"\01_SYSTEM_$$__FPC_PSABIEH_PERSONALITY_V0$hs2HxE9SEE3H"(i32, i32, i64, ptr, ptr) nobuiltin null_pointer_is_valid strictfp
- declare void @"\01fpc_finalize"(ptr, ptr) nobuiltin null_pointer_is_valid strictfp
- ; End asmlist al_procedures
- ; Begin asmlist al_globals
- @"\01_U_$P$PROGRAM_$$_MYDYNARRAY" = hidden global ptr zeroinitializer, align 8, !dbg !29
- @"\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
- @"\01FPC_THREADVARTABLES" = global %"typ.PROGRAM.00000008" <{i32 1, i8 zeroinitializer, i8 zeroinitializer, i8 zeroinitializer, i8 zeroinitializer, ptr @"\01_THREADVARLIST_$SYSTEM$indirect" }>, align 8
- @"\01FPC_RESOURCESTRINGTABLES" = constant %"typ.PROGRAM.00000009" <{i64 zeroinitializer }>, align 8
- @"\01FPC_WIDEINITTABLES" = global %"typ.PROGRAM.0000000A" <{i64 zeroinitializer }>, align 8
- @"\01FPC_RESSTRINITTABLES" = global %"typ.PROGRAM.0000000B" <{i64 zeroinitializer }>, align 8
- @"\01__fpc_ident" = internal global [42 x i8] c"FPC 3.3.1 [2022/11/05] for x86_64 - Darwin", align 16
- @"\01__stklen" = global i64 262144, align 8
- @"\01__heapsize" = global i64 zeroinitializer, align 8
- @"\01__fpc_valgrind" = global i8 zeroinitializer, align 8
- @"\01FPC_RESLOCATION" = constant ptr zeroinitializer, align 8
- @llvm.compiler.used = appending global [1 x ptr] [ptr @"\01__fpc_ident"], section "llvm.metadata"
- @"\01_INIT$_$SYSTEM" = external global ptr, align 8
- @"\01_FINALIZE$_$OBJPAS" = external global ptr, align 8
- @"\01_THREADVARLIST_$SYSTEM$indirect" = external global ptr, align 8
- ; End asmlist al_globals
- ; Begin asmlist al_rotypedconsts
- !llvm.module.flags = !{!60, !61}
- !60 = !{i32 2, !"Debug Info Version", i32 3}
- !61 = !{i32 2, !"Dwarf Version", i32 2}
- ; End asmlist al_rotypedconsts
- ; Begin asmlist al_rtti
- @"\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
- @"\01_RTTI_$SYSTEM_$$_LONGINT$indirect" = external global ptr, align 8
- ; End asmlist al_rtti
- ; Begin asmlist al_indirectglobals
- @"\01_RTTI_$P$PROGRAM_$$_def00000005$indirect" = constant ptr @"\01_RTTI_$P$PROGRAM_$$_def00000005", align 8
- ; End asmlist al_indirectglobals
- ; Begin asmlist al_dwarf_info
- !9 = !DILocalVariable(name: "ARGC", arg: 1, scope: !6, file: !7, line: 3, type: !10)
- !11 = !DILocalVariable(name: "ARGV", arg: 2, scope: !6, file: !7, line: 3, type: !12)
- !13 = !DILocalVariable(name: "ARGP", arg: 3, scope: !6, file: !7, line: 3, type: !12)
- ; Syms - Begin Staticsymtable
- ; Symbol SYSTEM
- ; Symbol FPINTRES
- ; Symbol OBJPAS
- ; Symbol PROGRAM
- ; Symbol main
- ; Symbol __FPC_IMPL_EXTERNAL_REDIRECT__FPC_SYSTEMMAIN
- ; Symbol PASCALMAIN
- ; Symbol MYDYNARRAY
- !28 = distinct !DIGlobalVariable(name: "MYDYNARRAY", scope: !5, file: !7, line: 4, type: !30, isDefinition: true, isLocal: true)
- !29 = !DIGlobalVariableExpression(var: !28, expr: !3)
- ; Symbol _P$PROGRAM_$$_init_implicit$
- ; Symbol _P$PROGRAM_$$_finalize_implicit$
- ; Symbol SYSINIT
- ; Symbol rttidef$_RTTI_$P$PROGRAM_$$_def00000005
- ; Symbol rtti_dyn_array$
- ; Symbol rtti_dyn_array_inner$
- ; Syms - End Staticsymtable
- !6 = distinct !DISubprogram(name: "main", scope: !7, file: !7, line: 3, spFlags: DISPFlagDefinition, unit: !5, type: !34)
- !35 = !{null, !10, !12, !12}
- !34 = !DISubroutineType(types: !35)
- !14 = distinct !DISubprogram(scopeLine: 5, name: "PASCALMAIN", scope: !7, file: !7, line: 3, spFlags: DISPFlagDefinition|DISPFlagMainSubprogram, unit: !5, type: !36)
- !37 = !{null}
- !36 = !DISubroutineType(types: !37)
- !25 = distinct !DISubprogram(name: "_P$PROGRAM_$$_init_implicit$", scope: !7, file: !7, line: 11, spFlags: DISPFlagDefinition, unit: !5, type: !38)
- !39 = !{null}
- !38 = !DISubroutineType(types: !39)
- !26 = distinct !DISubprogram(name: "_P$PROGRAM_$$_finalize_implicit$", scope: !7, file: !7, line: 11, spFlags: DISPFlagDefinition, unit: !5, type: !40)
- !41 = !{null}
- !40 = !DISubroutineType(types: !41)
- ; Defs - Begin unit SYSTEM has index 1
- !42 = !DIBasicType(size: 32, encoding: DW_ATE_signed)
- !10 = !DIDerivedType(tag: DW_TAG_typedef, name: "LONGINT", file: !43, line: 25, baseType: !42)
- ; Defs - End unit SYSTEM has index 1
- ; Defs - Begin unit FPINTRES has index 2
- ; Defs - End unit FPINTRES has index 2
- ; Defs - Begin unit OBJPAS has index 3
- ; Defs - End unit OBJPAS has index 3
- ; Defs - Begin unit SYSINIT has index 3
- ; Defs - End unit SYSINIT has index 3
- ; Defs - Begin Staticsymtable
- !44 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !45)
- !12 = !DIDerivedType(tag: DW_TAG_typedef, baseType: !44)
- !46 = !{!47}
- !48 = !DIExpression(DW_OP_push_object_address, DW_OP_deref, DW_OP_constu, 8, DW_OP_minus, DW_OP_deref)
- !47 = !DISubrange(upperBound: !48, lowerBound: 0)
- !50 = !DIExpression(DW_OP_push_object_address, DW_OP_deref)
- !49 = distinct !DICompositeType(tag: DW_TAG_array_type, baseType: !10, elements: !46, dataLocation: !50)
- !30 = !DIDerivedType(tag: DW_TAG_typedef, baseType: !49)
- !51 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "$RTTIDEF$_RTTI_$P$PROGRAM_$$_DEF00000005", file: !7, line: 0, size: 368, elements: !52)
- !52 = !{}
- !31 = !DIDerivedType(tag: DW_TAG_typedef, name: "rttidef$_RTTI_$P$PROGRAM_$$_def00000005", file: !7, line: 0, baseType: !51)
- !53 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "$RTTI_DYN_ARRAY$", file: !7, line: 0, size: 352, elements: !54)
- !54 = !{}
- !32 = !DIDerivedType(tag: DW_TAG_typedef, name: "rtti_dyn_array$", file: !7, line: 0, baseType: !53)
- !55 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "$RTTI_DYN_ARRAY_INNER$", file: !7, line: 0, size: 288, elements: !56)
- !56 = !{}
- !33 = !DIDerivedType(tag: DW_TAG_typedef, name: "rtti_dyn_array_inner$", file: !7, line: 0, baseType: !55)
- ; Defs - End Staticsymtable
- !57 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !58)
- !45 = !DIDerivedType(tag: DW_TAG_typedef, name: "char_pointer", file: !43, line: 25, baseType: !57)
- !59 = !DIBasicType(size: 8, encoding: DW_ATE_unsigned_char)
- !58 = !DIDerivedType(tag: DW_TAG_typedef, name: "CHAR", file: !43, line: 25, baseType: !59)
- !2 = !{!29}
- !3 = !DIExpression()
- !4 = !DIExpression(DW_OP_deref)
- !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)
- !llvm.dbg.cu = !{!5}
- ; End asmlist al_dwarf_info
- ; Begin asmlist al_dwarf_line
- !7 = !DIFile(filename: "tt4.pp", directory: "/ssdata/dev/fpcgit/test")
- !8 = !DILocation(line: 0, scope: !6)
- !15 = !DILocation(line: 5, column: 1, scope: !14)
- !16 = !DILocation(line: 6, column: 3, scope: !14)
- !17 = !DILocation(line: 7, column: 13, scope: !14)
- !18 = !DILocation(line: 7, column: 3, scope: !14)
- !19 = !DILocation(line: 8, column: 13, scope: !14)
- !20 = !DILocation(line: 8, column: 3, scope: !14)
- !21 = !DILocation(line: 9, column: 3, scope: !14)
- !22 = !DILocation(line: 10, column: 13, scope: !14)
- !23 = !DILocation(line: 10, column: 3, scope: !14)
- !24 = !DILocation(line: 11, column: 1, scope: !14)
- !27 = !DILocation(line: 0, scope: !26)
- !43 = !DIFile(filename: "system.pp", directory: "/ssdata/dev/fpcgit/test")
- ; End asmlist al_dwarf_line
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement