[llvm-commits] CVS: llvm-poolalloc/Regressions/2006-03-04.undefArg.ll
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Sat Mar 4 12:41:05 PST 2006
Changes in directory llvm-poolalloc/Regressions:
2006-03-04.undefArg.ll added (r1.1)
---
Log message:
in PC, the argument of count is an undefined value and has some cloning problem (perhaps)
---
Diffs of the changes: (+96 -0)
2006-03-04.undefArg.ll | 96 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 96 insertions(+)
Index: llvm-poolalloc/Regressions/2006-03-04.undefArg.ll
diff -c /dev/null llvm-poolalloc/Regressions/2006-03-04.undefArg.ll:1.1
*** /dev/null Sat Mar 4 14:41:04 2006
--- llvm-poolalloc/Regressions/2006-03-04.undefArg.ll Sat Mar 4 14:40:54 2006
***************
*** 0 ****
--- 1,96 ----
+ ; 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
+ }
+
More information about the llvm-commits
mailing list