brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.9 KiB · e2d43ad Raw
422 lines · plain
1# -g2 -gdwarf-4 main.cpp -O12# static int helper(int i) {3#   return ++i;4# }5# void may_not_exist(void) __attribute__ ((weak));6# int main(int argc, char *argv[]) {7#   if (may_not_exist)8#     may_not_exist();9#   int j = 0;10#   [[clang::always_inline]] j = helper(argc);11#   return j;12# }13 14	.text15	.file	"main.cpp"16	.globl	main                            # -- Begin function main17	.p2align	4, 0x9018	.type	main,@function19main:                                   # @main20.Lfunc_begin0:21	.file	1 "." "main.cpp"22	.loc	1 5 0                           # main.cpp:5:023	.cfi_startproc24# %bb.0:                                # %entry25	#DEBUG_VALUE: main:argc <- $edi26	#DEBUG_VALUE: main:argv <- $rsi27	pushq	%rbx28	.cfi_def_cfa_offset 1629	.cfi_offset %rbx, -1630	movl	%edi, %ebx31.Ltmp0:32	.loc	1 6 7 prologue_end              # main.cpp:6:733	cmpq	$0, _Z13may_not_existv@GOTPCREL(%rip)34	je	.LBB0_235.Ltmp1:36# %bb.1:                                # %if.then37	#DEBUG_VALUE: main:argc <- $ebx38	#DEBUG_VALUE: main:argv <- $rsi39	.loc	1 7 5                           # main.cpp:7:540	callq	_Z13may_not_existv@PLT41.Ltmp2:42	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi43.LBB0_2:                                # %if.end44	#DEBUG_VALUE: main:argc <- $ebx45	#DEBUG_VALUE: main:argv <- [DW_OP_LLVM_entry_value 1] $rsi46	#DEBUG_VALUE: main:j <- 047	#DEBUG_VALUE: helper:i <- $ebx48	.loc	1 2 10                          # main.cpp:2:1049	incl	%ebx50.Ltmp3:51	#DEBUG_VALUE: main:argc <- [DW_OP_LLVM_entry_value 1] $edi52	#DEBUG_VALUE: helper:i <- $ebx53	#DEBUG_VALUE: main:j <- $ebx54	.loc	1 10 3                          # main.cpp:10:355	movl	%ebx, %eax56	.loc	1 10 3 epilogue_begin is_stmt 0 # main.cpp:10:357	popq	%rbx58.Ltmp4:59	#DEBUG_VALUE: helper:i <- $eax60	#DEBUG_VALUE: main:j <- $eax61	.cfi_def_cfa_offset 862	retq63.Ltmp5:64.Lfunc_end0:65	.size	main, .Lfunc_end0-main66	.cfi_endproc67                                        # -- End function68	.section	.debug_loc,"",@progbits69.Ldebug_loc0:70	.quad	.Lfunc_begin0-.Lfunc_begin071	.quad	.Ltmp1-.Lfunc_begin072	.short	1                               # Loc expr size73	.byte	85                              # super-register DW_OP_reg574	.quad	.Ltmp1-.Lfunc_begin075	.quad	.Ltmp3-.Lfunc_begin076	.short	1                               # Loc expr size77	.byte	83                              # super-register DW_OP_reg378	.quad	.Ltmp3-.Lfunc_begin079	.quad	.Lfunc_end0-.Lfunc_begin080	.short	4                               # Loc expr size81	.byte	243                             # DW_OP_GNU_entry_value82	.byte	1                               # 183	.byte	85                              # super-register DW_OP_reg584	.byte	159                             # DW_OP_stack_value85	.quad	086	.quad	087.Ldebug_loc1:88	.quad	.Lfunc_begin0-.Lfunc_begin089	.quad	.Ltmp2-.Lfunc_begin090	.short	1                               # Loc expr size91	.byte	84                              # DW_OP_reg492	.quad	.Ltmp2-.Lfunc_begin093	.quad	.Lfunc_end0-.Lfunc_begin094	.short	4                               # Loc expr size95	.byte	243                             # DW_OP_GNU_entry_value96	.byte	1                               # 197	.byte	84                              # DW_OP_reg498	.byte	159                             # DW_OP_stack_value99	.quad	0100	.quad	0101.Ldebug_loc2:102	.quad	.Ltmp2-.Lfunc_begin0103	.quad	.Ltmp3-.Lfunc_begin0104	.short	3                               # Loc expr size105	.byte	17                              # DW_OP_consts106	.byte	0                               # 0107	.byte	159                             # DW_OP_stack_value108	.quad	.Ltmp3-.Lfunc_begin0109	.quad	.Ltmp4-.Lfunc_begin0110	.short	1                               # Loc expr size111	.byte	83                              # super-register DW_OP_reg3112	.quad	.Ltmp4-.Lfunc_begin0113	.quad	.Lfunc_end0-.Lfunc_begin0114	.short	1                               # Loc expr size115	.byte	80                              # super-register DW_OP_reg0116	.quad	0117	.quad	0118	.section	.debug_abbrev,"",@progbits119	.byte	1                               # Abbreviation Code120	.byte	17                              # DW_TAG_compile_unit121	.byte	1                               # DW_CHILDREN_yes122	.byte	37                              # DW_AT_producer123	.byte	14                              # DW_FORM_strp124	.byte	19                              # DW_AT_language125	.byte	5                               # DW_FORM_data2126	.byte	3                               # DW_AT_name127	.byte	14                              # DW_FORM_strp128	.byte	16                              # DW_AT_stmt_list129	.byte	23                              # DW_FORM_sec_offset130	.byte	27                              # DW_AT_comp_dir131	.byte	14                              # DW_FORM_strp132	.byte	17                              # DW_AT_low_pc133	.byte	1                               # DW_FORM_addr134	.byte	18                              # DW_AT_high_pc135	.byte	6                               # DW_FORM_data4136	.byte	0                               # EOM(1)137	.byte	0                               # EOM(2)138	.byte	2                               # Abbreviation Code139	.byte	46                              # DW_TAG_subprogram140	.byte	1                               # DW_CHILDREN_yes141	.byte	110                             # DW_AT_linkage_name142	.byte	14                              # DW_FORM_strp143	.byte	3                               # DW_AT_name144	.byte	14                              # DW_FORM_strp145	.byte	58                              # DW_AT_decl_file146	.byte	11                              # DW_FORM_data1147	.byte	59                              # DW_AT_decl_line148	.byte	11                              # DW_FORM_data1149	.byte	73                              # DW_AT_type150	.byte	19                              # DW_FORM_ref4151	.byte	32                              # DW_AT_inline152	.byte	11                              # DW_FORM_data1153	.byte	0                               # EOM(1)154	.byte	0                               # EOM(2)155	.byte	3                               # Abbreviation Code156	.byte	5                               # DW_TAG_formal_parameter157	.byte	0                               # DW_CHILDREN_no158	.byte	3                               # DW_AT_name159	.byte	14                              # DW_FORM_strp160	.byte	58                              # DW_AT_decl_file161	.byte	11                              # DW_FORM_data1162	.byte	59                              # DW_AT_decl_line163	.byte	11                              # DW_FORM_data1164	.byte	73                              # DW_AT_type165	.byte	19                              # DW_FORM_ref4166	.byte	0                               # EOM(1)167	.byte	0                               # EOM(2)168	.byte	4                               # Abbreviation Code169	.byte	36                              # DW_TAG_base_type170	.byte	0                               # DW_CHILDREN_no171	.byte	3                               # DW_AT_name172	.byte	14                              # DW_FORM_strp173	.byte	62                              # DW_AT_encoding174	.byte	11                              # DW_FORM_data1175	.byte	11                              # DW_AT_byte_size176	.byte	11                              # DW_FORM_data1177	.byte	0                               # EOM(1)178	.byte	0                               # EOM(2)179	.byte	5                               # Abbreviation Code180	.byte	46                              # DW_TAG_subprogram181	.byte	1                               # DW_CHILDREN_yes182	.byte	17                              # DW_AT_low_pc183	.byte	1                               # DW_FORM_addr184	.byte	18                              # DW_AT_high_pc185	.byte	6                               # DW_FORM_data4186	.byte	64                              # DW_AT_frame_base187	.byte	24                              # DW_FORM_exprloc188	.ascii	"\227B"                         # DW_AT_GNU_all_call_sites189	.byte	25                              # DW_FORM_flag_present190	.byte	3                               # DW_AT_name191	.byte	14                              # DW_FORM_strp192	.byte	58                              # DW_AT_decl_file193	.byte	11                              # DW_FORM_data1194	.byte	59                              # DW_AT_decl_line195	.byte	11                              # DW_FORM_data1196	.byte	73                              # DW_AT_type197	.byte	19                              # DW_FORM_ref4198	.byte	63                              # DW_AT_external199	.byte	25                              # DW_FORM_flag_present200	.byte	0                               # EOM(1)201	.byte	0                               # EOM(2)202	.byte	6                               # Abbreviation Code203	.byte	5                               # DW_TAG_formal_parameter204	.byte	0                               # DW_CHILDREN_no205	.byte	2                               # DW_AT_location206	.byte	23                              # DW_FORM_sec_offset207	.byte	3                               # DW_AT_name208	.byte	14                              # DW_FORM_strp209	.byte	58                              # DW_AT_decl_file210	.byte	11                              # DW_FORM_data1211	.byte	59                              # DW_AT_decl_line212	.byte	11                              # DW_FORM_data1213	.byte	73                              # DW_AT_type214	.byte	19                              # DW_FORM_ref4215	.byte	0                               # EOM(1)216	.byte	0                               # EOM(2)217	.byte	7                               # Abbreviation Code218	.byte	52                              # DW_TAG_variable219	.byte	0                               # DW_CHILDREN_no220	.byte	2                               # DW_AT_location221	.byte	23                              # DW_FORM_sec_offset222	.byte	3                               # DW_AT_name223	.byte	14                              # DW_FORM_strp224	.byte	58                              # DW_AT_decl_file225	.byte	11                              # DW_FORM_data1226	.byte	59                              # DW_AT_decl_line227	.byte	11                              # DW_FORM_data1228	.byte	73                              # DW_AT_type229	.byte	19                              # DW_FORM_ref4230	.byte	0                               # EOM(1)231	.byte	0                               # EOM(2)232	.byte	8                               # Abbreviation Code233	.byte	29                              # DW_TAG_inlined_subroutine234	.byte	1                               # DW_CHILDREN_yes235	.byte	49                              # DW_AT_abstract_origin236	.byte	19                              # DW_FORM_ref4237	.byte	17                              # DW_AT_low_pc238	.byte	1                               # DW_FORM_addr239	.byte	18                              # DW_AT_high_pc240	.byte	6                               # DW_FORM_data4241	.byte	88                              # DW_AT_call_file242	.byte	11                              # DW_FORM_data1243	.byte	89                              # DW_AT_call_line244	.byte	11                              # DW_FORM_data1245	.byte	87                              # DW_AT_call_column246	.byte	11                              # DW_FORM_data1247	.byte	0                               # EOM(1)248	.byte	0                               # EOM(2)249	.byte	9                               # Abbreviation Code250	.byte	5                               # DW_TAG_formal_parameter251	.byte	0                               # DW_CHILDREN_no252	.byte	2                               # DW_AT_location253	.byte	24                              # DW_FORM_exprloc254	.byte	49                              # DW_AT_abstract_origin255	.byte	19                              # DW_FORM_ref4256	.byte	0                               # EOM(1)257	.byte	0                               # EOM(2)258	.byte	10                              # Abbreviation Code259	.ascii	"\211\202\001"                  # DW_TAG_GNU_call_site260	.byte	0                               # DW_CHILDREN_no261	.byte	49                              # DW_AT_abstract_origin262	.byte	19                              # DW_FORM_ref4263	.byte	17                              # DW_AT_low_pc264	.byte	1                               # DW_FORM_addr265	.byte	0                               # EOM(1)266	.byte	0                               # EOM(2)267	.byte	11                              # Abbreviation Code268	.byte	46                              # DW_TAG_subprogram269	.byte	0                               # DW_CHILDREN_no270	.byte	110                             # DW_AT_linkage_name271	.byte	14                              # DW_FORM_strp272	.byte	3                               # DW_AT_name273	.byte	14                              # DW_FORM_strp274	.byte	58                              # DW_AT_decl_file275	.byte	11                              # DW_FORM_data1276	.byte	59                              # DW_AT_decl_line277	.byte	11                              # DW_FORM_data1278	.byte	60                              # DW_AT_declaration279	.byte	25                              # DW_FORM_flag_present280	.byte	63                              # DW_AT_external281	.byte	25                              # DW_FORM_flag_present282	.byte	0                               # EOM(1)283	.byte	0                               # EOM(2)284	.byte	12                              # Abbreviation Code285	.byte	15                              # DW_TAG_pointer_type286	.byte	0                               # DW_CHILDREN_no287	.byte	73                              # DW_AT_type288	.byte	19                              # DW_FORM_ref4289	.byte	0                               # EOM(1)290	.byte	0                               # EOM(2)291	.byte	0                               # EOM(3)292	.section	.debug_info,"",@progbits293.Lcu_begin0:294	.long	.Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit295.Ldebug_info_start0:296	.short	4                               # DWARF version number297	.long	.debug_abbrev                   # Offset Into Abbrev. Section298	.byte	8                               # Address Size (in bytes)299	.byte	1                               # Abbrev [1] 0xb:0xcf DW_TAG_compile_unit300	.long	.Linfo_string0                  # DW_AT_producer301	.short	33                              # DW_AT_language302	.long	.Linfo_string1                  # DW_AT_name303	.long	.Lline_table_start0             # DW_AT_stmt_list304	.long	.Linfo_string2                  # DW_AT_comp_dir305	.quad	.Lfunc_begin0                   # DW_AT_low_pc306	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc307	.byte	2                               # Abbrev [2] 0x2a:0x1c DW_TAG_subprogram308	.long	.Linfo_string3                  # DW_AT_linkage_name309	.long	.Linfo_string4                  # DW_AT_name310	.byte	1                               # DW_AT_decl_file311	.byte	1                               # DW_AT_decl_line312	.long	70                              # DW_AT_type313	.byte	1                               # DW_AT_inline314	.byte	3                               # Abbrev [3] 0x3a:0xb DW_TAG_formal_parameter315	.long	.Linfo_string6                  # DW_AT_name316	.byte	1                               # DW_AT_decl_file317	.byte	1                               # DW_AT_decl_line318	.long	70                              # DW_AT_type319	.byte	0                               # End Of Children Mark320	.byte	4                               # Abbrev [4] 0x46:0x7 DW_TAG_base_type321	.long	.Linfo_string5                  # DW_AT_name322	.byte	5                               # DW_AT_encoding323	.byte	4                               # DW_AT_byte_size324	.byte	5                               # Abbrev [5] 0x4d:0x70 DW_TAG_subprogram325	.quad	.Lfunc_begin0                   # DW_AT_low_pc326	.long	.Lfunc_end0-.Lfunc_begin0       # DW_AT_high_pc327	.byte	1                               # DW_AT_frame_base328	.byte	87329                                        # DW_AT_GNU_all_call_sites330	.long	.Linfo_string9                  # DW_AT_name331	.byte	1                               # DW_AT_decl_file332	.byte	5                               # DW_AT_decl_line333	.long	70                              # DW_AT_type334                                        # DW_AT_external335	.byte	6                               # Abbrev [6] 0x66:0xf DW_TAG_formal_parameter336	.long	.Ldebug_loc0                    # DW_AT_location337	.long	.Linfo_string10                 # DW_AT_name338	.byte	1                               # DW_AT_decl_file339	.byte	5                               # DW_AT_decl_line340	.long	70                              # DW_AT_type341	.byte	6                               # Abbrev [6] 0x75:0xf DW_TAG_formal_parameter342	.long	.Ldebug_loc1                    # DW_AT_location343	.long	.Linfo_string11                 # DW_AT_name344	.byte	1                               # DW_AT_decl_file345	.byte	5                               # DW_AT_decl_line346	.long	200                             # DW_AT_type347	.byte	7                               # Abbrev [7] 0x84:0xf DW_TAG_variable348	.long	.Ldebug_loc2                    # DW_AT_location349	.long	.Linfo_string13                 # DW_AT_name350	.byte	1                               # DW_AT_decl_file351	.byte	8                               # DW_AT_decl_line352	.long	70                              # DW_AT_type353	.byte	8                               # Abbrev [8] 0x93:0x1c DW_TAG_inlined_subroutine354	.long	42                              # DW_AT_abstract_origin355	.quad	.Ltmp2                          # DW_AT_low_pc356	.long	.Ltmp3-.Ltmp2                   # DW_AT_high_pc357	.byte	1                               # DW_AT_call_file358	.byte	9                               # DW_AT_call_line359	.byte	32                              # DW_AT_call_column360	.byte	9                               # Abbrev [9] 0xa7:0x7 DW_TAG_formal_parameter361	.byte	1                               # DW_AT_location362	.byte	83363	.long	58                              # DW_AT_abstract_origin364	.byte	0                               # End Of Children Mark365	.byte	10                              # Abbrev [10] 0xaf:0xd DW_TAG_GNU_call_site366	.long	189                             # DW_AT_abstract_origin367	.quad	.Ltmp2                          # DW_AT_low_pc368	.byte	0                               # End Of Children Mark369	.byte	11                              # Abbrev [11] 0xbd:0xb DW_TAG_subprogram370	.long	.Linfo_string7                  # DW_AT_linkage_name371	.long	.Linfo_string8                  # DW_AT_name372	.byte	1                               # DW_AT_decl_file373	.byte	4                               # DW_AT_decl_line374                                        # DW_AT_declaration375                                        # DW_AT_external376	.byte	12                              # Abbrev [12] 0xc8:0x5 DW_TAG_pointer_type377	.long	205                             # DW_AT_type378	.byte	12                              # Abbrev [12] 0xcd:0x5 DW_TAG_pointer_type379	.long	210                             # DW_AT_type380	.byte	4                               # Abbrev [4] 0xd2:0x7 DW_TAG_base_type381	.long	.Linfo_string12                 # DW_AT_name382	.byte	6                               # DW_AT_encoding383	.byte	1                               # DW_AT_byte_size384	.byte	0                               # End Of Children Mark385.Ldebug_info_end0:386	.section	.debug_str,"MS",@progbits,1387.Linfo_string0:388	.asciz	"clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)" # string offset=0389.Linfo_string1:390	.asciz	"main.cpp"                      # string offset=105391.Linfo_string2:392	.asciz	"." # string offset=114393.Linfo_string3:394	.asciz	"_ZL6helperi"                   # string offset=152395.Linfo_string4:396	.asciz	"helper"                        # string offset=164397.Linfo_string5:398	.asciz	"int"                           # string offset=171399.Linfo_string6:400	.asciz	"i"                             # string offset=175401.Linfo_string7:402	.asciz	"_Z13may_not_existv"            # string offset=177403.Linfo_string8:404	.asciz	"may_not_exist"                 # string offset=196405.Linfo_string9:406	.asciz	"main"                          # string offset=210407.Linfo_string10:408	.asciz	"argc"                          # string offset=215409.Linfo_string11:410	.asciz	"argv"                          # string offset=220411.Linfo_string12:412	.asciz	"char"                          # string offset=225413.Linfo_string13:414	.asciz	"j"                             # string offset=230415	.weak	_Z13may_not_existv416	.ident	"clang version 17.0.0 (https://github.com/llvm/llvm-project.git 640e07c49037cca41a1bfbeb916b569d8c950aea)"417	.section	".note.GNU-stack","",@progbits418	.addrsig419	.addrsig_sym _Z13may_not_existv420	.section	.debug_line,"",@progbits421.Lline_table_start0:422