brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.3 KiB · 511b8ab Raw
401 lines · plain
1; RUN: llc < %s -mtriple=x86_64-linux-gnu2; PR17293 4	%struct.CUMULATIVE_ARGS = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }5	%struct.VEC_edge = type { i32, i32, [1 x ptr] }6	%struct.VEC_tree = type { i32, i32, [1 x ptr] }7	%struct._IO_FILE = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i64, i16, i8, [1 x i8], ptr, i64, ptr, ptr, ptr, ptr, i64, i32, [20 x i8] }8	%struct._IO_marker = type { ptr, ptr, i32 }9	%struct._obstack_chunk = type { ptr, ptr, [4 x i8] }10	%struct.addr_diff_vec_flags = type <{ i8, i8, i8, i8 }>11	%struct.alloc_pool_def = type { ptr, i64, i64, ptr, i64, i64, i64, ptr, i64, i64 }12	%struct.alloc_pool_list_def = type { ptr }13	%struct.basic_block_def = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [2 x ptr], ptr, ptr, ptr, ptr, i64, i32, i32, i32, i32 }14	%struct.bb_ann_d = type opaque15	%struct.bitmap_element_def = type { ptr, ptr, i32, [2 x i64] }16	%struct.bitmap_head_def = type { ptr, ptr, i32, ptr }17	%struct.bitmap_obstack = type { ptr, ptr, %struct.obstack }18	%struct.cselib_val_struct = type opaque19	%struct.dataflow_d = type opaque20	%struct.die_struct = type opaque21	%struct.edge_def = type { ptr, ptr, %struct.edge_def_insns, ptr, ptr, i32, i32, i64, i32 }22	%struct.edge_def_insns = type { ptr }23	%struct.edge_iterator = type { i32, ptr }24	%struct.eh_status = type opaque25	%struct.elt_list = type opaque26	%struct.emit_status = type { i32, i32, ptr, ptr, ptr, i32, %struct.location_t, i32, ptr, ptr }27	%struct.et_node = type opaque28	%struct.expr_status = type { i32, i32, i32, ptr, ptr, ptr }29	%struct.function = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, ptr, %struct.CUMULATIVE_ARGS, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i32, i64, ptr, ptr, ptr, ptr, ptr, i32, ptr, i32, i32, ptr, ptr, i32, i32, i32, ptr, i32, i32, i8, i8, ptr, ptr, i32, i32, i32, i32, %struct.location_t, ptr, ptr, ptr, i8, i8, i8 }30	%struct.ht_identifier = type { ptr, i32, i32 }31	%struct.initial_value_struct = type opaque32	%struct.lang_decl = type opaque33	%struct.lang_type = type opaque34	%struct.language_function = type opaque35	%struct.location_t = type { ptr, i32 }36	%struct.loop = type opaque37	%struct.machine_function = type { ptr, ptr, ptr, i32, i32, i32, i32, i32 }38	%struct.mem_attrs = type { i64, ptr, ptr, ptr, i32 }39	%struct.obstack = type { i64, ptr, ptr, ptr, ptr, i64, i32, ptr, ptr, ptr, i8 }40	%struct.phi_arg_d = type { ptr, i8 }41	%struct.ptr_info_def = type opaque42	%struct.real_value = type opaque43	%struct.reg_attrs = type { ptr, i64 }44	%struct.reg_info_def = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 }45	%struct.reorder_block_def = type { ptr, ptr, ptr, ptr, ptr, i32, i32, i32 }46	%struct.rtunion = type { ptr }47	%struct.rtvec_def = type { i32, [1 x ptr] }48	%struct.rtx_def = type { i16, i8, i8, %struct.u }49	%struct.sequence_stack = type { ptr, ptr, ptr }50	%struct.simple_bitmap_def = type { i32, i32, i32, [1 x i64] }51	%struct.stack_local_entry = type opaque52	%struct.temp_slot = type opaque53	%struct.tree_binfo = type { %struct.tree_common, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, %struct.VEC_tree }54	%struct.tree_block = type { %struct.tree_common, i32, ptr, ptr, ptr, ptr, ptr, ptr }55	%struct.tree_common = type { ptr, ptr, ptr, i8, i8, i8, i8, i8 }56	%struct.tree_complex = type { %struct.tree_common, ptr, ptr }57	%struct.tree_decl = type { %struct.tree_common, %struct.location_t, i32, ptr, i8, i8, i8, i8, i8, i8, i8, i8, i32, %struct.tree_decl_u1, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, %struct.tree_decl_u2, ptr, ptr, i64, ptr }58	%struct.tree_decl_u1 = type { i64 }59	%struct.tree_decl_u1_a = type <{ i32 }>60	%struct.tree_decl_u2 = type { ptr }61	%struct.tree_exp = type { %struct.tree_common, ptr, i32, ptr, [1 x ptr] }62	%struct.tree_identifier = type { %struct.tree_common, %struct.ht_identifier }63	%struct.tree_int_cst = type { %struct.tree_common, %struct.tree_int_cst_lowhi }64	%struct.tree_int_cst_lowhi = type { i64, i64 }65	%struct.tree_list = type { %struct.tree_common, ptr, ptr }66	%struct.tree_node = type { %struct.tree_decl }67	%struct.tree_phi_node = type { %struct.tree_common, ptr, i32, i32, i32, ptr, ptr, [1 x %struct.phi_arg_d] }68	%struct.tree_real_cst = type { %struct.tree_common, ptr }69	%struct.tree_ssa_name = type { %struct.tree_common, ptr, i32, ptr, ptr, ptr }70	%struct.tree_statement_list = type { %struct.tree_common, ptr, ptr }71	%struct.tree_statement_list_node = type { ptr, ptr, ptr }72	%struct.tree_string = type { %struct.tree_common, i32, [1 x i8] }73	%struct.tree_type = type { %struct.tree_common, ptr, ptr, ptr, ptr, i32, i16, i8, i8, i32, ptr, ptr, %struct.rtunion, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr }74	%struct.tree_type_symtab = type { ptr }75	%struct.tree_value_handle = type { %struct.tree_common, ptr, i32 }76	%struct.tree_vec = type { %struct.tree_common, i32, [1 x ptr] }77	%struct.tree_vector = type { %struct.tree_common, ptr }78	%struct.u = type { [1 x %struct.rtunion] }79	%struct.value_set = type opaque80	%struct.var_refs_queue = type { ptr, i32, i32, ptr }81	%struct.varasm_status = type opaque82	%struct.varray_data = type { [1 x i64] }83	%struct.varray_head_tag = type { i64, i64, i32, ptr, %struct.varray_data }84	%union.tree_ann_d = type opaque85@first_edge_aux_obj = external global ptr		; <ptr> [#uses=0]86@first_block_aux_obj = external global ptr		; <ptr> [#uses=0]87@n_edges = external global i32		; <ptr> [#uses=0]88@ENTRY_BLOCK_PTR = external global ptr		; <ptr> [#uses=0]89@EXIT_BLOCK_PTR = external global ptr		; <ptr> [#uses=0]90@n_basic_blocks = external global i32		; <ptr> [#uses=0]91@.str = external constant [9 x i8]		; <ptr> [#uses=0]92@rbi_pool = external global ptr		; <ptr> [#uses=0]93@__FUNCTION__.19643 = external constant [18 x i8]		; <ptr> [#uses=0]94@.str1 = external constant [20 x i8]		; <ptr> [#uses=0]95@__FUNCTION__.19670 = external constant [15 x i8]		; <ptr> [#uses=0]96@basic_block_info = external global ptr		; <ptr> [#uses=0]97@last_basic_block = external global i32		; <ptr> [#uses=0]98@__FUNCTION__.19696 = external constant [14 x i8]		; <ptr> [#uses=0]99@__FUNCTION__.20191 = external constant [20 x i8]		; <ptr> [#uses=0]100@block_aux_obstack = external global %struct.obstack		; <ptr> [#uses=0]101@__FUNCTION__.20301 = external constant [20 x i8]		; <ptr> [#uses=0]102@__FUNCTION__.20316 = external constant [19 x i8]		; <ptr> [#uses=0]103@edge_aux_obstack = external global %struct.obstack		; <ptr> [#uses=0]104@stderr = external global ptr		; <ptr> [#uses=0]105@__FUNCTION__.20463 = external constant [11 x i8]		; <ptr> [#uses=0]106@.str2 = external constant [7 x i8]		; <ptr> [#uses=0]107@.str3 = external constant [6 x i8]		; <ptr> [#uses=0]108@.str4 = external constant [4 x i8]		; <ptr> [#uses=0]109@.str5 = external constant [11 x i8]		; <ptr> [#uses=0]110@.str6 = external constant [8 x i8]		; <ptr> [#uses=0]111@.str7 = external constant [4 x i8]		; <ptr> [#uses=0]112@bitnames.20157 = external constant [13 x ptr]		; <ptr> [#uses=0]113@.str8 = external constant [9 x i8]		; <ptr> [#uses=0]114@.str9 = external constant [3 x i8]		; <ptr> [#uses=0]115@.str10 = external constant [7 x i8]		; <ptr> [#uses=0]116@.str11 = external constant [3 x i8]		; <ptr> [#uses=0]117@.str12 = external constant [5 x i8]		; <ptr> [#uses=0]118@.str13 = external constant [9 x i8]		; <ptr> [#uses=0]119@.str14 = external constant [13 x i8]		; <ptr> [#uses=0]120@.str15 = external constant [12 x i8]		; <ptr> [#uses=0]121@.str16 = external constant [8 x i8]		; <ptr> [#uses=0]122@.str17 = external constant [10 x i8]		; <ptr> [#uses=0]123@.str18 = external constant [5 x i8]		; <ptr> [#uses=0]124@.str19 = external constant [6 x i8]		; <ptr> [#uses=0]125@.str20 = external constant [5 x i8]		; <ptr> [#uses=0]126@.str21 = external constant [3 x i8]		; <ptr> [#uses=0]127@.str22 = external constant [3 x i8]		; <ptr> [#uses=0]128@__FUNCTION__.19709 = external constant [20 x i8]		; <ptr> [#uses=0]129@.str23 = external constant [5 x i8]		; <ptr> [#uses=0]130@.str24 = external constant [10 x i8]		; <ptr> [#uses=0]131@__FUNCTION__.19813 = external constant [19 x i8]		; <ptr> [#uses=0]132@.str25 = external constant [7 x i8]		; <ptr> [#uses=0]133@.str26 = external constant [6 x i8]		; <ptr> [#uses=0]134@initialized.20241.b = external global i1		; <ptr> [#uses=0]135@__FUNCTION__.20244 = external constant [21 x i8]		; <ptr> [#uses=0]136@__FUNCTION__.19601 = external constant [12 x i8]		; <ptr> [#uses=0]137@__FUNCTION__.14571 = external constant [8 x i8]		; <ptr> [#uses=0]138@__FUNCTION__.14535 = external constant [13 x i8]		; <ptr> [#uses=0]139@.str27 = external constant [28 x i8]		; <ptr> [#uses=0]140@__FUNCTION__.14589 = external constant [8 x i8]		; <ptr> [#uses=0]141@__FUNCTION__.19792 = external constant [12 x i8]		; <ptr> [#uses=0]142@__FUNCTION__.19851 = external constant [19 x i8]		; <ptr> [#uses=0]143@profile_status = external global i32		; <ptr> [#uses=0]144@.str29 = external constant [46 x i8]		; <ptr> [#uses=0]145@.str30 = external constant [49 x i8]		; <ptr> [#uses=0]146@.str31 = external constant [54 x i8]		; <ptr> [#uses=0]147@.str32 = external constant [49 x i8]		; <ptr> [#uses=1]148@__FUNCTION__.19948 = external constant [15 x i8]		; <ptr> [#uses=0]149@reg_n_info = external global ptr		; <ptr> [#uses=0]150@reload_completed = external global i32		; <ptr> [#uses=0]151@.str33 = external constant [15 x i8]		; <ptr> [#uses=0]152@.str34 = external constant [43 x i8]		; <ptr> [#uses=0]153@.str35 = external constant [13 x i8]		; <ptr> [#uses=0]154@.str36 = external constant [1 x i8]		; <ptr> [#uses=0]155@.str37 = external constant [2 x i8]		; <ptr> [#uses=0]156@.str38 = external constant [16 x i8]		; <ptr> [#uses=0]157@cfun = external global ptr		; <ptr> [#uses=0]158@.str39 = external constant [14 x i8]		; <ptr> [#uses=0]159@.str40 = external constant [11 x i8]		; <ptr> [#uses=0]160@.str41 = external constant [20 x i8]		; <ptr> [#uses=0]161@.str42 = external constant [17 x i8]		; <ptr> [#uses=0]162@.str43 = external constant [19 x i8]		; <ptr> [#uses=0]163@mode_size = external global [48 x i8]		; <ptr> [#uses=0]164@target_flags = external global i32		; <ptr> [#uses=0]165@.str44 = external constant [11 x i8]		; <ptr> [#uses=0]166@reg_class_names = external global [0 x ptr]		; <ptr> [#uses=0]167@.str45 = external constant [10 x i8]		; <ptr> [#uses=0]168@.str46 = external constant [13 x i8]		; <ptr> [#uses=0]169@.str47 = external constant [19 x i8]		; <ptr> [#uses=0]170@.str48 = external constant [12 x i8]		; <ptr> [#uses=0]171@.str49 = external constant [10 x i8]		; <ptr> [#uses=0]172@.str50 = external constant [3 x i8]		; <ptr> [#uses=0]173@.str51 = external constant [29 x i8]		; <ptr> [#uses=0]174@.str52 = external constant [17 x i8]		; <ptr> [#uses=0]175@.str53 = external constant [19 x i8]		; <ptr> [#uses=0]176@.str54 = external constant [22 x i8]		; <ptr> [#uses=0]177@.str55 = external constant [10 x i8]		; <ptr> [#uses=0]178@.str56 = external constant [12 x i8]		; <ptr> [#uses=0]179@.str57 = external constant [26 x i8]		; <ptr> [#uses=0]180@.str58 = external constant [15 x i8]		; <ptr> [#uses=0]181@.str59 = external constant [14 x i8]		; <ptr> [#uses=0]182@.str60 = external constant [26 x i8]		; <ptr> [#uses=0]183@.str61 = external constant [24 x i8]		; <ptr> [#uses=0]184@initialized.20366.b = external global i1		; <ptr> [#uses=0]185@__FUNCTION__.20369 = external constant [20 x i8]		; <ptr> [#uses=0]186@__FUNCTION__.20442 = external constant [19 x i8]		; <ptr> [#uses=0]187@bb_bitnames.20476 = external constant [6 x ptr]		; <ptr> [#uses=0]188@.str62 = external constant [6 x i8]		; <ptr> [#uses=0]189@.str63 = external constant [4 x i8]		; <ptr> [#uses=0]190@.str64 = external constant [10 x i8]		; <ptr> [#uses=0]191@.str65 = external constant [8 x i8]		; <ptr> [#uses=0]192@.str66 = external constant [17 x i8]		; <ptr> [#uses=0]193@.str67 = external constant [11 x i8]		; <ptr> [#uses=0]194@.str68 = external constant [15 x i8]		; <ptr> [#uses=0]195@.str69 = external constant [3 x i8]		; <ptr> [#uses=0]196@.str70 = external constant [3 x i8]		; <ptr> [#uses=0]197@__FUNCTION__.20520 = external constant [32 x i8]		; <ptr> [#uses=0]198@dump_file = external global ptr		; <ptr> [#uses=0]199@.str71 = external constant [86 x i8]		; <ptr> [#uses=0]200@.str72 = external constant [94 x i8]		; <ptr> [#uses=0]201@reg_obstack = external global %struct.bitmap_obstack		; <ptr> [#uses=0]202 203declare void @init_flow()204 205declare ptr @ggc_alloc_cleared_stat(i64)206 207declare fastcc void @free_edge(ptr)208 209declare void @ggc_free(ptr)210 211declare ptr @alloc_block()212 213declare void @alloc_rbi_pool()214 215declare ptr @create_alloc_pool(ptr, i64, i64)216 217declare void @free_rbi_pool()218 219declare void @free_alloc_pool(ptr)220 221declare void @initialize_bb_rbi(ptr)222 223declare void @fancy_abort(ptr, i32, ptr)224 225declare ptr @pool_alloc(ptr)226 227declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1)228 229declare void @link_block(ptr, ptr)230 231declare void @unlink_block(ptr)232 233declare void @compact_blocks()234 235declare void @varray_check_failed(ptr, i64, ptr, i32, ptr)236 237declare void @expunge_block(ptr)238 239declare void @clear_bb_flags()240 241declare void @alloc_aux_for_block(ptr, i32)242 243declare void @_obstack_newchunk(ptr, i32)244 245declare void @clear_aux_for_blocks()246 247declare void @free_aux_for_blocks()248 249declare void @obstack_free(ptr, ptr)250 251declare void @alloc_aux_for_edge(ptr, i32)252 253declare void @debug_bb(ptr)254 255declare void @dump_bb(ptr, ptr, i32)256 257declare ptr @debug_bb_n(i32)258 259declare void @dump_edge_info(ptr, ptr, i32)260 261declare i32 @fputs_unlocked(ptr noalias , ptr noalias )262 263declare i32 @fprintf(ptr noalias , ptr noalias , ...)264 265declare i64 @fwrite(ptr, i64, i64, ptr)266 267declare i32 @__overflow(ptr, i32)268 269declare ptr @unchecked_make_edge(ptr, ptr, i32)270 271declare ptr @vec_gc_p_reserve(ptr, i32)272 273declare void @vec_assert_fail(ptr, ptr, ptr, i32, ptr)274 275declare void @execute_on_growing_pred(ptr)276 277declare ptr @make_edge(ptr, ptr, i32)278 279declare ptr @find_edge(ptr, ptr)280 281declare ptr @make_single_succ_edge(ptr, ptr, i32)282 283declare ptr @cached_make_edge(ptr, ptr, ptr, i32)284 285declare void @redirect_edge_succ(ptr, ptr)286 287declare void @execute_on_shrinking_pred(ptr)288 289declare void @alloc_aux_for_blocks(i32)290 291declare ptr @xmalloc(i64)292 293declare i32 @_obstack_begin(ptr, i32, i32, ptr, ptr)294 295declare void @free(ptr)296 297declare void @clear_edges()298 299declare void @remove_edge(ptr)300 301declare ptr @redirect_edge_succ_nodup(ptr, ptr)302 303declare void @redirect_edge_pred(ptr, ptr)304 305define void @check_bb_profile(ptr %bb, ptr %file) {306entry:307	br i1 false, label %cond_false759.preheader, label %cond_false149.preheader308 309cond_false149.preheader:		; preds = %entry310	ret void311 312cond_false759.preheader:		; preds = %entry313	br i1 false, label %cond_next873, label %cond_true794314 315bb644:		; preds = %cond_next873316	ret void317 318cond_true794:		; preds = %cond_false759.preheader319	ret void320 321cond_next873:		; preds = %cond_false759.preheader322	br i1 false, label %bb882, label %bb644323 324bb882:		; preds = %cond_next873325	br i1 false, label %cond_true893, label %cond_next901326 327cond_true893:		; preds = %bb882328	br label %cond_false1036329 330cond_next901:		; preds = %bb882331	ret void332 333bb929:		; preds = %cond_next1150334	%tmp934 = add i64 0, %lsum.11225.0		; <i64> [#uses=1]335	br i1 false, label %cond_next979, label %cond_true974336 337cond_true974:		; preds = %bb929338	ret void339 340cond_next979:		; preds = %bb929341	br label %cond_false1036342 343cond_false1036:		; preds = %cond_next979, %cond_true893344	%lsum.11225.0 = phi i64 [ 0, %cond_true893 ], [ %tmp934, %cond_next979 ]		; <i64> [#uses=2]345	br i1 false, label %cond_next1056, label %cond_true1051346 347cond_true1051:		; preds = %cond_false1036348	ret void349 350cond_next1056:		; preds = %cond_false1036351	br i1 false, label %cond_next1150, label %cond_true1071352 353cond_true1071:		; preds = %cond_next1056354	ret void355 356cond_next1150:		; preds = %cond_next1056357	%tmp1156 = icmp eq ptr null, null		; <i1> [#uses=1]358	br i1 %tmp1156, label %bb1159, label %bb929359 360bb1159:		; preds = %cond_next1150361	br i1 false, label %cond_true1169, label %UnifiedReturnBlock362 363cond_true1169:		; preds = %bb1159364	%tmp11741175 = trunc i64 %lsum.11225.0 to i32		; <i32> [#uses=1]365	%tmp1178 = tail call i32 (ptr  , ptr  , ...) @fprintf( ptr noalias %file  , ptr @.str32  , i32 %tmp11741175, i32 0 )		; <i32> [#uses=0]366	ret void367 368UnifiedReturnBlock:		; preds = %bb1159369	ret void370}371 372declare void @dump_flow_info(ptr)373 374declare i32 @max_reg_num()375 376declare void @rtl_check_failed_flag(ptr, ptr, ptr, i32, ptr)377 378declare i32 @reg_preferred_class(i32)379 380declare i32 @reg_alternate_class(i32)381 382declare zeroext i8 @maybe_hot_bb_p(ptr)  383 384declare zeroext i8 @probably_never_executed_bb_p(ptr)  385 386declare void @dump_regset(ptr, ptr)387 388declare void @debug_flow_info()389 390declare void @alloc_aux_for_edges(i32)391 392declare void @clear_aux_for_edges()393 394declare void @free_aux_for_edges()395 396declare void @brief_dump_cfg(ptr)397 398declare i32 @fputc(i32, ptr)399 400declare void @update_bb_profile_for_threading(ptr, i32, i64, ptr)401