brintos

brintos / llvm-project-archived public Read only

0
0
Text · 23.8 KiB · 36cb91b Raw
514 lines · plain
1# clang++ -O2 -g -gdwarf-4 -gsplit-dwarf2# void use(int * x, int * y) {3#  *x += 4;4#  *y -= 2;5# }6#7# int helper(int z_, int d_);8# int x = 0;9# int y = 1;10# int  main(int argc, char *argv[]) {11#    x = argc;12#    y = argc + 3;13#    //use(&x, &y);14#    return helper(x, y);15# }16 17	.text18	.file	"main.cpp"19	.file	1 "." "main.cpp"20	.globl	_Z3usePiS_                      # -- Begin function _Z3usePiS_21	.p2align	4, 0x9022	.type	_Z3usePiS_,@function23_Z3usePiS_:                             # @_Z3usePiS_24.Lfunc_begin0:25	.cfi_startproc26# %bb.0:                                # %entry27	#DEBUG_VALUE: use:x <- $rdi28	#DEBUG_VALUE: use:y <- $rsi29	.loc	1 2 5 prologue_end              # main.cpp:2:530	addl	$4, (%rdi)31	.loc	1 3 5                           # main.cpp:3:532	addl	$-2, (%rsi)33	.loc	1 4 1                           # main.cpp:4:134	retq35.Ltmp0:36.Lfunc_end0:37	.size	_Z3usePiS_, .Lfunc_end0-_Z3usePiS_38	.cfi_endproc39                                        # -- End function40	.globl	main                            # -- Begin function main41	.p2align	4, 0x9042	.type	main,@function43main:                                   # @main44.Lfunc_begin1:45	.cfi_startproc46# %bb.0:                                # %entry47	#DEBUG_VALUE: main:argc <- $edi48	#DEBUG_VALUE: main:argv <- $rsi49                                        # kill: def $edi killed $edi def $rdi50	.loc	1 10 6 prologue_end             # main.cpp:10:651	movl	%edi, x(%rip)52	.loc	1 11 13                         # main.cpp:11:1353	leal	3(%rdi), %esi54.Ltmp1:55	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi56	.loc	1 11 6 is_stmt 0                # main.cpp:11:657	movl	%esi, y(%rip)58                                        # kill: def $edi killed $edi killed $rdi59.Ltmp2:60	.loc	1 13 11 is_stmt 1               # main.cpp:13:1161	jmp	_Z6helperii@PLT                 # TAILCALL62.Ltmp3:63.Lfunc_end1:64	.size	main, .Lfunc_end1-main65	.cfi_endproc66                                        # -- End function67	.type	x,@object                       # @x68	.bss69	.globl	x70	.p2align	2, 0x071x:72	.long	0                               # 0x073	.size	x, 474 75	.type	y,@object                       # @y76	.data77	.globl	y78	.p2align	2, 0x079y:80	.long	1                               # 0x181	.size	y, 482 83	.section	.debug_loc.dwo,"e",@progbits84.Ldebug_loc0:85	.byte	386	.byte	387	.long	.Ltmp1-.Lfunc_begin188	.short	1                               # Loc expr size89	.byte	84                              # DW_OP_reg490	.byte	391	.byte	592	.long	.Lfunc_end1-.Ltmp193	.short	4                               # Loc expr size94	.byte	243                             # DW_OP_GNU_entry_value95	.byte	1                               # 196	.byte	84                              # DW_OP_reg497	.byte	159                             # DW_OP_stack_value98	.byte	099	.section	.debug_abbrev,"",@progbits100	.byte	1                               # Abbreviation Code101	.byte	17                              # DW_TAG_compile_unit102	.byte	0                               # DW_CHILDREN_no103	.byte	16                              # DW_AT_stmt_list104	.byte	23                              # DW_FORM_sec_offset105	.byte	27                              # DW_AT_comp_dir106	.byte	14                              # DW_FORM_strp107	.ascii	"\264B"                         # DW_AT_GNU_pubnames108	.byte	25                              # DW_FORM_flag_present109	.ascii	"\260B"                         # DW_AT_GNU_dwo_name110	.byte	14                              # DW_FORM_strp111	.ascii	"\261B"                         # DW_AT_GNU_dwo_id112	.byte	7                               # DW_FORM_data8113	.byte	17                              # DW_AT_low_pc114	.byte	1                               # DW_FORM_addr115	.byte	18                              # DW_AT_high_pc116	.byte	6                               # DW_FORM_data4117	.ascii	"\263B"                         # DW_AT_GNU_addr_base118	.byte	23                              # DW_FORM_sec_offset119	.byte	0                               # EOM(1)120	.byte	0                               # EOM(2)121	.byte	0                               # EOM(3)122	.section	.debug_info,"",@progbits123.Lcu_begin0:124	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit125.Ldebug_info_start0:126	.short	4                               # DWARF version number127	.long	.debug_abbrev                   # Offset Into Abbrev. Section128	.byte	8                               # Address Size (in bytes)129	.byte	1                               # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit130	.long	.Lline_table_start0             # DW_AT_stmt_list131	.long	.Lskel_string0                  # DW_AT_comp_dir132                                        # DW_AT_GNU_pubnames133	.long	.Lskel_string1                  # DW_AT_GNU_dwo_name134	.quad	-3308548803209949056            # DW_AT_GNU_dwo_id135	.quad	.Lfunc_begin0                   # DW_AT_low_pc136	.long	.Lfunc_end1-.Lfunc_begin0       # DW_AT_high_pc137	.long	.Laddr_table_base0              # DW_AT_GNU_addr_base138.Ldebug_info_end0:139	.section	.debug_str,"MS",@progbits,1140.Lskel_string0:141	.asciz	"." # string offset=0142.Lskel_string1:143	.asciz	"main.dwo"                      # string offset=47144	.section	.debug_str.dwo,"eMS",@progbits,1145.Linfo_string0:146	.asciz	"x"                             # string offset=0147.Linfo_string1:148	.asciz	"int"                           # string offset=2149.Linfo_string2:150	.asciz	"y"                             # string offset=6151.Linfo_string3:152	.asciz	"_Z6helperii"                   # string offset=8153.Linfo_string4:154	.asciz	"helper"                        # string offset=20155.Linfo_string5:156	.asciz	"_Z3usePiS_"                    # string offset=27157.Linfo_string6:158	.asciz	"use"                           # string offset=38159.Linfo_string7:160	.asciz	"main"                          # string offset=42161.Linfo_string8:162	.asciz	"argc"                          # string offset=47163.Linfo_string9:164	.asciz	"argv"                          # string offset=52165.Linfo_string10:166	.asciz	"char"                          # string offset=57167.Linfo_string11:168	.asciz	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)" # string offset=62169.Linfo_string12:170	.asciz	"main.cpp"                      # string offset=163171.Linfo_string13:172	.asciz	"main.dwo"                      # string offset=172173	.section	.debug_str_offsets.dwo,"e",@progbits174	.long	0175	.long	2176	.long	6177	.long	8178	.long	20179	.long	27180	.long	38181	.long	42182	.long	47183	.long	52184	.long	57185	.long	62186	.long	163187	.long	172188	.section	.debug_info.dwo,"e",@progbits189	.long	.Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit190.Ldebug_info_dwo_start0:191	.short	4                               # DWARF version number192	.long	0                               # Offset Into Abbrev. Section193	.byte	8                               # Address Size (in bytes)194	.byte	1                               # Abbrev [1] 0xb:0x9d DW_TAG_compile_unit195	.byte	11                              # DW_AT_producer196	.short	33                              # DW_AT_language197	.byte	12                              # DW_AT_name198	.byte	13                              # DW_AT_GNU_dwo_name199	.quad	-3308548803209949056            # DW_AT_GNU_dwo_id200	.byte	2                               # Abbrev [2] 0x19:0xb DW_TAG_variable201	.byte	0                               # DW_AT_name202	.long	36                              # DW_AT_type203                                        # DW_AT_external204	.byte	1                               # DW_AT_decl_file205	.byte	7                               # DW_AT_decl_line206	.byte	2                               # DW_AT_location207	.byte	251208	.byte	0209	.byte	3                               # Abbrev [3] 0x24:0x4 DW_TAG_base_type210	.byte	1                               # DW_AT_name211	.byte	5                               # DW_AT_encoding212	.byte	4                               # DW_AT_byte_size213	.byte	2                               # Abbrev [2] 0x28:0xb DW_TAG_variable214	.byte	2                               # DW_AT_name215	.long	36                              # DW_AT_type216                                        # DW_AT_external217	.byte	1                               # DW_AT_decl_file218	.byte	8                               # DW_AT_decl_line219	.byte	2                               # DW_AT_location220	.byte	251221	.byte	1222	.byte	4                               # Abbrev [4] 0x33:0x21 DW_TAG_subprogram223	.byte	2                               # DW_AT_low_pc224	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc225	.byte	1                               # DW_AT_frame_base226	.byte	87227                                        # DW_AT_GNU_all_call_sites228	.byte	5                               # DW_AT_linkage_name229	.byte	6                               # DW_AT_name230	.byte	1                               # DW_AT_decl_file231	.byte	1                               # DW_AT_decl_line232                                        # DW_AT_external233	.byte	5                               # Abbrev [5] 0x3f:0xa DW_TAG_formal_parameter234	.byte	1                               # DW_AT_location235	.byte	85236	.byte	0                               # DW_AT_name237	.byte	1                               # DW_AT_decl_file238	.byte	1                               # DW_AT_decl_line239	.long	148                             # DW_AT_type240	.byte	5                               # Abbrev [5] 0x49:0xa DW_TAG_formal_parameter241	.byte	1                               # DW_AT_location242	.byte	84243	.byte	2                               # DW_AT_name244	.byte	1                               # DW_AT_decl_file245	.byte	1                               # DW_AT_decl_line246	.long	148                             # DW_AT_type247	.byte	0                               # End Of Children Mark248	.byte	6                               # Abbrev [6] 0x54:0x2c DW_TAG_subprogram249	.byte	3                               # DW_AT_low_pc250	.long	.Lfunc_end1-.Lfunc_begin1       # DW_AT_high_pc251	.byte	1                               # DW_AT_frame_base252	.byte	87253                                        # DW_AT_GNU_all_call_sites254	.byte	7                               # DW_AT_name255	.byte	1                               # DW_AT_decl_file256	.byte	9                               # DW_AT_decl_line257	.long	36                              # DW_AT_type258                                        # DW_AT_external259	.byte	5                               # Abbrev [5] 0x63:0xa DW_TAG_formal_parameter260	.byte	1                               # DW_AT_location261	.byte	85262	.byte	8                               # DW_AT_name263	.byte	1                               # DW_AT_decl_file264	.byte	9                               # DW_AT_decl_line265	.long	36                              # DW_AT_type266	.byte	7                               # Abbrev [7] 0x6d:0xc DW_TAG_formal_parameter267	.long	.Ldebug_loc0-.debug_loc.dwo     # DW_AT_location268	.byte	9                               # DW_AT_name269	.byte	1                               # DW_AT_decl_file270	.byte	9                               # DW_AT_decl_line271	.long	153                             # DW_AT_type272	.byte	8                               # Abbrev [8] 0x79:0x6 DW_TAG_GNU_call_site273	.long	128                             # DW_AT_abstract_origin274                                        # DW_AT_GNU_tail_call275	.byte	4                               # DW_AT_low_pc276	.byte	0                               # End Of Children Mark277	.byte	9                               # Abbrev [9] 0x80:0x14 DW_TAG_subprogram278	.byte	3                               # DW_AT_linkage_name279	.byte	4                               # DW_AT_name280	.byte	1                               # DW_AT_decl_file281	.byte	6                               # DW_AT_decl_line282	.long	36                              # DW_AT_type283                                        # DW_AT_declaration284                                        # DW_AT_external285	.byte	10                              # Abbrev [10] 0x89:0x5 DW_TAG_formal_parameter286	.long	36                              # DW_AT_type287	.byte	10                              # Abbrev [10] 0x8e:0x5 DW_TAG_formal_parameter288	.long	36                              # DW_AT_type289	.byte	0                               # End Of Children Mark290	.byte	11                              # Abbrev [11] 0x94:0x5 DW_TAG_pointer_type291	.long	36                              # DW_AT_type292	.byte	11                              # Abbrev [11] 0x99:0x5 DW_TAG_pointer_type293	.long	158                             # DW_AT_type294	.byte	11                              # Abbrev [11] 0x9e:0x5 DW_TAG_pointer_type295	.long	163                             # DW_AT_type296	.byte	3                               # Abbrev [3] 0xa3:0x4 DW_TAG_base_type297	.byte	10                              # DW_AT_name298	.byte	6                               # DW_AT_encoding299	.byte	1                               # DW_AT_byte_size300	.byte	0                               # End Of Children Mark301.Ldebug_info_dwo_end0:302	.section	.debug_abbrev.dwo,"e",@progbits303	.byte	1                               # Abbreviation Code304	.byte	17                              # DW_TAG_compile_unit305	.byte	1                               # DW_CHILDREN_yes306	.byte	37                              # DW_AT_producer307	.ascii	"\202>"                         # DW_FORM_GNU_str_index308	.byte	19                              # DW_AT_language309	.byte	5                               # DW_FORM_data2310	.byte	3                               # DW_AT_name311	.ascii	"\202>"                         # DW_FORM_GNU_str_index312	.ascii	"\260B"                         # DW_AT_GNU_dwo_name313	.ascii	"\202>"                         # DW_FORM_GNU_str_index314	.ascii	"\261B"                         # DW_AT_GNU_dwo_id315	.byte	7                               # DW_FORM_data8316	.byte	0                               # EOM(1)317	.byte	0                               # EOM(2)318	.byte	2                               # Abbreviation Code319	.byte	52                              # DW_TAG_variable320	.byte	0                               # DW_CHILDREN_no321	.byte	3                               # DW_AT_name322	.ascii	"\202>"                         # DW_FORM_GNU_str_index323	.byte	73                              # DW_AT_type324	.byte	19                              # DW_FORM_ref4325	.byte	63                              # DW_AT_external326	.byte	25                              # DW_FORM_flag_present327	.byte	58                              # DW_AT_decl_file328	.byte	11                              # DW_FORM_data1329	.byte	59                              # DW_AT_decl_line330	.byte	11                              # DW_FORM_data1331	.byte	2                               # DW_AT_location332	.byte	24                              # DW_FORM_exprloc333	.byte	0                               # EOM(1)334	.byte	0                               # EOM(2)335	.byte	3                               # Abbreviation Code336	.byte	36                              # DW_TAG_base_type337	.byte	0                               # DW_CHILDREN_no338	.byte	3                               # DW_AT_name339	.ascii	"\202>"                         # DW_FORM_GNU_str_index340	.byte	62                              # DW_AT_encoding341	.byte	11                              # DW_FORM_data1342	.byte	11                              # DW_AT_byte_size343	.byte	11                              # DW_FORM_data1344	.byte	0                               # EOM(1)345	.byte	0                               # EOM(2)346	.byte	4                               # Abbreviation Code347	.byte	46                              # DW_TAG_subprogram348	.byte	1                               # DW_CHILDREN_yes349	.byte	17                              # DW_AT_low_pc350	.ascii	"\201>"                         # DW_FORM_GNU_addr_index351	.byte	18                              # DW_AT_high_pc352	.byte	6                               # DW_FORM_data4353	.byte	64                              # DW_AT_frame_base354	.byte	24                              # DW_FORM_exprloc355	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites356	.byte	25                              # DW_FORM_flag_present357	.byte	110                             # DW_AT_linkage_name358	.ascii	"\202>"                         # DW_FORM_GNU_str_index359	.byte	3                               # DW_AT_name360	.ascii	"\202>"                         # DW_FORM_GNU_str_index361	.byte	58                              # DW_AT_decl_file362	.byte	11                              # DW_FORM_data1363	.byte	59                              # DW_AT_decl_line364	.byte	11                              # DW_FORM_data1365	.byte	63                              # DW_AT_external366	.byte	25                              # DW_FORM_flag_present367	.byte	0                               # EOM(1)368	.byte	0                               # EOM(2)369	.byte	5                               # Abbreviation Code370	.byte	5                               # DW_TAG_formal_parameter371	.byte	0                               # DW_CHILDREN_no372	.byte	2                               # DW_AT_location373	.byte	24                              # DW_FORM_exprloc374	.byte	3                               # DW_AT_name375	.ascii	"\202>"                         # DW_FORM_GNU_str_index376	.byte	58                              # DW_AT_decl_file377	.byte	11                              # DW_FORM_data1378	.byte	59                              # DW_AT_decl_line379	.byte	11                              # DW_FORM_data1380	.byte	73                              # DW_AT_type381	.byte	19                              # DW_FORM_ref4382	.byte	0                               # EOM(1)383	.byte	0                               # EOM(2)384	.byte	6                               # Abbreviation Code385	.byte	46                              # DW_TAG_subprogram386	.byte	1                               # DW_CHILDREN_yes387	.byte	17                              # DW_AT_low_pc388	.ascii	"\201>"                         # DW_FORM_GNU_addr_index389	.byte	18                              # DW_AT_high_pc390	.byte	6                               # DW_FORM_data4391	.byte	64                              # DW_AT_frame_base392	.byte	24                              # DW_FORM_exprloc393	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites394	.byte	25                              # DW_FORM_flag_present395	.byte	3                               # DW_AT_name396	.ascii	"\202>"                         # DW_FORM_GNU_str_index397	.byte	58                              # DW_AT_decl_file398	.byte	11                              # DW_FORM_data1399	.byte	59                              # DW_AT_decl_line400	.byte	11                              # DW_FORM_data1401	.byte	73                              # DW_AT_type402	.byte	19                              # DW_FORM_ref4403	.byte	63                              # DW_AT_external404	.byte	25                              # DW_FORM_flag_present405	.byte	0                               # EOM(1)406	.byte	0                               # EOM(2)407	.byte	7                               # Abbreviation Code408	.byte	5                               # DW_TAG_formal_parameter409	.byte	0                               # DW_CHILDREN_no410	.byte	2                               # DW_AT_location411	.byte	23                              # DW_FORM_sec_offset412	.byte	3                               # DW_AT_name413	.ascii	"\202>"                         # DW_FORM_GNU_str_index414	.byte	58                              # DW_AT_decl_file415	.byte	11                              # DW_FORM_data1416	.byte	59                              # DW_AT_decl_line417	.byte	11                              # DW_FORM_data1418	.byte	73                              # DW_AT_type419	.byte	19                              # DW_FORM_ref4420	.byte	0                               # EOM(1)421	.byte	0                               # EOM(2)422	.byte	8                               # Abbreviation Code423	.ascii	"\211\202\001"                  # DW_TAG_GNU_call_site424	.byte	0                               # DW_CHILDREN_no425	.byte	49                              # DW_AT_abstract_origin426	.byte	19                              # DW_FORM_ref4427	.ascii	"\225B"                         # DW_AT_GNU_tail_call428	.byte	25                              # DW_FORM_flag_present429	.byte	17                              # DW_AT_low_pc430	.ascii	"\201>"                         # DW_FORM_GNU_addr_index431	.byte	0                               # EOM(1)432	.byte	0                               # EOM(2)433	.byte	9                               # Abbreviation Code434	.byte	46                              # DW_TAG_subprogram435	.byte	1                               # DW_CHILDREN_yes436	.byte	110                             # DW_AT_linkage_name437	.ascii	"\202>"                         # DW_FORM_GNU_str_index438	.byte	3                               # DW_AT_name439	.ascii	"\202>"                         # DW_FORM_GNU_str_index440	.byte	58                              # DW_AT_decl_file441	.byte	11                              # DW_FORM_data1442	.byte	59                              # DW_AT_decl_line443	.byte	11                              # DW_FORM_data1444	.byte	73                              # DW_AT_type445	.byte	19                              # DW_FORM_ref4446	.byte	60                              # DW_AT_declaration447	.byte	25                              # DW_FORM_flag_present448	.byte	63                              # DW_AT_external449	.byte	25                              # DW_FORM_flag_present450	.byte	0                               # EOM(1)451	.byte	0                               # EOM(2)452	.byte	10                              # Abbreviation Code453	.byte	5                               # DW_TAG_formal_parameter454	.byte	0                               # DW_CHILDREN_no455	.byte	73                              # DW_AT_type456	.byte	19                              # DW_FORM_ref4457	.byte	0                               # EOM(1)458	.byte	0                               # EOM(2)459	.byte	11                              # Abbreviation Code460	.byte	15                              # DW_TAG_pointer_type461	.byte	0                               # DW_CHILDREN_no462	.byte	73                              # DW_AT_type463	.byte	19                              # DW_FORM_ref4464	.byte	0                               # EOM(1)465	.byte	0                               # EOM(2)466	.byte	0                               # EOM(3)467	.section	.debug_addr,"",@progbits468.Laddr_table_base0:469	.quad	x470	.quad	y471	.quad	.Lfunc_begin0472	.quad	.Lfunc_begin1473	.quad	.Ltmp3474	.quad	.Ltmp1475	.section	.debug_gnu_pubnames,"",@progbits476	.long	.LpubNames_end0-.LpubNames_start0 # Length of Public Names Info477.LpubNames_start0:478	.short	2                               # DWARF Version479	.long	.Lcu_begin0                     # Offset of Compilation Unit Info480	.long	48                              # Compilation Unit Length481	.long	25                              # DIE offset482	.byte	32                              # Attributes: VARIABLE, EXTERNAL483	.asciz	"x"                             # External Name484	.long	40                              # DIE offset485	.byte	32                              # Attributes: VARIABLE, EXTERNAL486	.asciz	"y"                             # External Name487	.long	51                              # DIE offset488	.byte	48                              # Attributes: FUNCTION, EXTERNAL489	.asciz	"use"                           # External Name490	.long	84                              # DIE offset491	.byte	48                              # Attributes: FUNCTION, EXTERNAL492	.asciz	"main"                          # External Name493	.long	0                               # End Mark494.LpubNames_end0:495	.section	.debug_gnu_pubtypes,"",@progbits496	.long	.LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info497.LpubTypes_start0:498	.short	2                               # DWARF Version499	.long	.Lcu_begin0                     # Offset of Compilation Unit Info500	.long	48                              # Compilation Unit Length501	.long	36                              # DIE offset502	.byte	144                             # Attributes: TYPE, STATIC503	.asciz	"int"                           # External Name504	.long	163                             # DIE offset505	.byte	144                             # Attributes: TYPE, STATIC506	.asciz	"char"                          # External Name507	.long	0                               # End Mark508.LpubTypes_end0:509	.ident	"clang version 18.0.0 (git@github.com:llvm/llvm-project.git 3a8db0f4bfb57348f49d9603119fa157114bbf8e)"510	.section	".note.GNU-stack","",@progbits511	.addrsig512	.section	.debug_line,"",@progbits513.Lline_table_start0:514