blob: 82f0c9b77d994d99aca3711d7e21159c704a17c1 [file] [log] [blame]
; ModuleID = 'bugpoint-reduced-simplified.bc'
target endian = little
target pointersize = 64
target triple = "alphaev6-unknown-linux-gnu"
deplibs = [ "c", "crtend" ]
%struct..TorRec = type { int, void ()* }
%struct.CON_list_struct = type { %struct.CON_list_struct*, %struct.CON_node_struct* }
%struct.CON_node_struct = type { %struct.DIS_list_struct*, %struct.DIS_list_struct*, int }
%struct.Connector_struct = type { short, short, sbyte, sbyte, %struct.Connector_struct*, sbyte* }
%struct.DIS_list_struct = type { %struct.DIS_list_struct*, %struct.DIS_node_struct* }
%struct.DIS_node_struct = type { %struct.CON_list_struct*, %struct.List_o_links_struct*, int }
%struct.D_type_list_struct = type { %struct.D_type_list_struct*, int }
%struct.Dict_node_struct = type { sbyte*, %struct.Word_file_struct*, %struct.Exp_struct*, %struct.Dict_node_struct*, %struct.Dict_node_struct* }
%struct.Disjunct_struct = type { %struct.Disjunct_struct*, short, sbyte, sbyte*, %struct.Connector_struct*, %struct.Connector_struct* }
%struct.E_list_struct = type { %struct.E_list_struct*, %struct.Exp_struct* }
%struct.Exp_struct = type { sbyte, ubyte, sbyte, sbyte, { sbyte* } }
%struct.Image_node_struct = type { %struct.Image_node_struct*, %struct.Connector_struct*, int }
%struct.Link_struct = type { int, int, %struct.Connector_struct*, %struct.Connector_struct*, sbyte* }
%struct.Linkage_info_struct = type { int, short, short, short, short, short }
%struct.Links_to_patch_struct = type { %struct.Links_to_patch_struct*, int, sbyte, int }
%struct.List_o_links_struct = type { int, int, int, %struct.List_o_links_struct* }
%struct.Match_node_struct = type { %struct.Match_node_struct*, %struct.Disjunct_struct* }
%struct.PP_node_struct = type { %struct.D_type_list_struct**, %struct.Violation_list_struct* }
%struct.Table_connector = type { short, short, %struct.Connector_struct*, %struct.Connector_struct*, short, int, %struct.Table_connector* }
%struct.Tconnector_struct = type { sbyte, sbyte, %struct.Tconnector_struct*, sbyte* }
%struct.TorRec = type { int, void ()* }
%struct.Violation_list_struct = type { %struct.Violation_list_struct*, sbyte* }
%struct.Word_file_struct = type { [60 x sbyte], int, %struct.Word_file_struct* }
%struct.Word_struct = type { [60 x sbyte], %struct.X_node_struct*, %struct.Disjunct_struct* }
%struct.X_node_struct = type { sbyte*, %struct.Exp_struct*, %struct.X_node_struct* }
%struct._IO_FILE = type { int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct._IO_marker*, %struct._IO_FILE*, int, int, long, ushort, sbyte, [1 x sbyte], sbyte*, long, sbyte*, sbyte*, int, [44 x sbyte] }
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, int }
%struct.__va_list_tag = type { sbyte*, int }
%struct.c_list_struct = type { %struct.Connector_struct*, int, %struct.c_list_struct* }
%struct.clause_struct = type { %struct.clause_struct*, int, int, %struct.Tconnector_struct* }
%struct.d_tree_leaf_struct = type { %struct.domain_struct*, int, %struct.d_tree_leaf_struct* }
%struct.domain_struct = type { sbyte*, int, %struct.List_o_links_struct*, int, int, %struct.d_tree_leaf_struct*, %struct.domain_struct* }
%struct.label_node_struct = type { int, %struct.label_node_struct* }
%struct.patch_element_struct = type { sbyte, sbyte, int, int }
%struct.string_node_struct = type { sbyte*, int, %struct.string_node_struct* }
%sentence = external global [250 x %struct.Word_struct] ; <[250 x %struct.Word_struct]*> [#uses=2]
%mn_free_list = external global %struct.Match_node_struct* ; <%struct.Match_node_struct**> [#uses=1]
implementation ; Functions:
declare fastcc %struct.Match_node_struct* %form_match_list(%struct.Connector_struct*)
internal fastcc void %prune() {
entry:
%tmp.15 = getelementptr [250 x %struct.Word_struct]* %sentence, long 0, int 0, uint 2 ; <%struct.Disjunct_struct**> [#uses=1]
%tmp.16 = load %struct.Disjunct_struct** %tmp.15 ; <%struct.Disjunct_struct*> [#uses=1]
%tmp.44 = getelementptr %struct.Disjunct_struct* %tmp.16, long 0, uint 5 ; <%struct.Connector_struct**> [#uses=1]
%tmp.45 = load %struct.Connector_struct** %tmp.44 ; <%struct.Connector_struct*> [#uses=1]
free %struct.Connector_struct* %tmp.45
ret void
}
int %main(int %argc, sbyte** %argv) {
entry:
%tmp.2 = load %struct.Disjunct_struct** getelementptr ([250 x %struct.Word_struct]* %sentence, long 0, long 0, uint 2) ; <%struct.Disjunct_struct*> [#uses=1]
%tmp.16 = getelementptr %struct.Disjunct_struct* %tmp.2, long 0, uint 5 ; <%struct.Connector_struct**> [#uses=1]
%tmp.17 = load %struct.Connector_struct** %tmp.16 ; <%struct.Connector_struct*> [#uses=1]
%tmp.13 = tail call fastcc int %count( %struct.Connector_struct* %tmp.17 ) ; <int> [#uses=0]
%tmp.24 = tail call fastcc int %count( %struct.Connector_struct* null ) ; <int> [#uses=0]
ret int 0
}
internal fastcc int %count(%struct.Connector_struct* %le) {
no_exit.0: ; preds = %endif.4
%tmp.101 = tail call fastcc %struct.Match_node_struct* %form_match_list( %struct.Connector_struct* %le)
br label %no_exit.1
no_exit.1: ; preds = %loopexit.2, %no_exit.0
%m.2.0 = phi %struct.Match_node_struct* [ %tmp.101, %no_exit.0 ], [ %tmp.542, %loopexit.2 ] ; <%struct.Match_node_struct*> [#uses=2]
%tmp.112 = getelementptr %struct.Match_node_struct* %m.2.0, long 0, uint 1 ; <%struct.Disjunct_struct**> [#uses=1]
%tmp.113 = load %struct.Disjunct_struct** %tmp.112 ; <%struct.Disjunct_struct*> [#uses=1]
br bool false, label %loopexit.2, label %no_exit.2.preheader
no_exit.2.preheader: ; preds = %no_exit.1
%tmp.141 = getelementptr %struct.Disjunct_struct* %tmp.113, long 0, uint 5 ; <%struct.Connector_struct**> [#uses=1]
%tmp.432 = load %struct.Connector_struct** %tmp.141 ; <%struct.Connector_struct*> [#uses=1]
%tmp.427 = tail call fastcc int %count( %struct.Connector_struct* %tmp.432 ) ; <int> [#uses=0]
ret int 0
loopexit.2: ; preds = %no_exit.1
%tmp.541 = getelementptr %struct.Match_node_struct* %m.2.0, long 0, uint 0 ; <%struct.Match_node_struct**> [#uses=1]
%tmp.542 = load %struct.Match_node_struct** %tmp.541 ; <%struct.Match_node_struct*> [#uses=1]
br bool false, label %no_exit.i.preheader, label %no_exit.1
no_exit.i.preheader: ; preds = %loopexit.2
%mn_free_list.promoted = load %struct.Match_node_struct** %mn_free_list ; <%struct.Match_node_struct*> [#uses=1]
%tmp.5.i = getelementptr %struct.Match_node_struct* %tmp.101, long 0, uint 0 ; <%struct.Match_node_struct**> [#uses=1]
store %struct.Match_node_struct* %mn_free_list.promoted, %struct.Match_node_struct** %tmp.5.i
ret int 0
}