llvm.org GIT mirror llvm / ec9a35a
Remove llvm-upgrade and update test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47793 91177308-0d34-0410-b5e6-96231b3b80d8 Tanya Lattner 11 years ago
258 changed file(s) with 8031 addition(s) and 7914 deletion(s). Raw diff Collapse all Expand all
0 ; It is illegal to remove BB1 because it will mess up the PHI node!
11 ;
2 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce | llvm-dis | grep BB1
2 ; RUN: llvm-as < %s | opt -adce | llvm-dis | grep BB1
33
4 define i32 @test(i1 %C, i32 %A, i32 %B) {
5 ;
6 br i1 %C, label %BB1, label %BB2
47
5 int "test"(bool %C, int %A, int %B) {
6 br bool %C, label %BB1, label %BB2
7 BB1:
8 br label %BB2
9 BB2:
10 %R = phi int [%A, %0], [%B, %BB1]
11 ret int %R
8 BB1: ; preds = %0
9 br label %BB2
10
11 BB2: ; preds = %BB1, %0
12 %R = phi i32 [ %A, %0 ], [ %B, %BB1 ] ; [#uses=1]
13 ret i32 %R
1214 }
15
33 ; removed even though there were uses still around. Now the uses are filled
44 ; in with a dummy value before the PHI is deleted.
55 ;
6 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
6 ; RUN: llvm-as < %s | opt -adce
77
8 %node_t = type { double*, %node_t*, %node_t**, double**, double*, int, int }
8 %node_t = type { double*, %node_t*, %node_t**, double**, double*, i32, i32 }
99
10 implementation ; Functions:
10 define void @localize_local(%node_t* %nodelist) {
11 bb0:
12 %nodelist.upgrd.1 = alloca %node_t* ; <%node_t**> [#uses=2]
13 store %node_t* %nodelist, %node_t** %nodelist.upgrd.1
14 br label %bb1
1115
12 void %localize_local(%node_t* %nodelist) {
13 bb0: ;[#uses=0]
14 %nodelist = alloca %node_t* ; <%node_t**> [#uses=2]
15 store %node_t* %nodelist, %node_t** %nodelist
16 br label %bb1
16 bb1: ; preds = %bb0
17 %reg107 = load %node_t** %nodelist.upgrd.1 ; <%node_t*> [#uses=2]
18 %cond211 = icmp eq %node_t* %reg107, null ; [#uses=1]
19 br i1 %cond211, label %bb3, label %bb2
1720
18 bb1: ;[#uses=2]
19 %reg107 = load %node_t** %nodelist ; <%node_t*> [#uses=2]
20 %cond211 = seteq %node_t* %reg107, null ; [#uses=1]
21 br bool %cond211, label %bb3, label %bb2
21 bb2: ; preds = %bb2, %bb1
22 %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ] ; <%node_t*> [#uses=1]
23 %reg212 = getelementptr %node_t* %reg109, i64 0, i32 1 ; <%node_t**> [#uses=1]
24 %reg110 = load %node_t** %reg212 ; <%node_t*> [#uses=2]
25 %cond213 = icmp ne %node_t* %reg110, null ; [#uses=1]
26 br i1 %cond213, label %bb2, label %bb3
2227
23 bb2: ;[#uses=3]
24 %reg109 = phi %node_t* [ %reg110, %bb2 ], [ %reg107, %bb1 ] ; <%node_t*> [#uses=1]
25 %reg212 = getelementptr %node_t* %reg109, long 0, uint 1 ; <%node_t**> [#uses=1]
26 %reg110 = load %node_t** %reg212 ; <%node_t*> [#uses=2]
27 %cond213 = setne %node_t* %reg110, null ; [#uses=1]
28 br bool %cond213, label %bb2, label %bb3
28 bb3: ; preds = %bb2, %bb1
29 ret void
30 }
2931
30 bb3: ;[#uses=2]
31 ret void
32 }
0 ; This testcase is a distilled form of: 2002-05-28-Crash.ll
11
2 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
2 ; RUN: llvm-as < %s | opt -adce
33
4 float "test"(int %i) {
5 %F = cast int %i to float ; This BB is not dead
6 %I = cast int %i to uint ; future dead inst
7 br label %Loop
4 define float @test(i32 %i) {
5 %F = sitofp i32 %i to float ; [#uses=1]
6 %I = bitcast i32 %i to i32 ; [#uses=1]
7 br label %Loop
88
9 Loop: ; This block is dead
10 %B = cast uint %I to bool
11 br bool %B, label %Out, label %Loop
9 Loop: ; preds = %Loop, %0
10 %B = icmp ne i32 %I, 0 ; [#uses=1]
11 br i1 %B, label %Out, label %Loop
1212
13 Out:
14 ret float %F
13 Out: ; preds = %Loop
14 ret float %F
1515 }
1616
1010 ; return !s;
1111 ;}
1212 ;
13 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
13 ; RUN: llvm-as < %s | opt -adce
1414
15 implementation ; Functions:
15 define i32 @rx_bitset_empty(i32 %size, i32* %set) {
16 bb1:
17 %reg110 = load i32* %set ; [#uses=2]
18 store i32 1, i32* %set
19 %cast112 = sext i32 %size to i64 ; [#uses=1]
20 %reg113 = add i64 %cast112, 31 ; [#uses=1]
21 %reg114 = lshr i64 %reg113, 5 ; [#uses=2]
22 %cast109 = trunc i64 %reg114 to i32 ; [#uses=1]
23 %reg129 = add i32 %cast109, -1 ; [#uses=1]
24 %reg114-idxcast = trunc i64 %reg114 to i32 ; [#uses=1]
25 %reg114-idxcast-offset = add i32 %reg114-idxcast, 1073741823 ; [#uses=1]
26 %reg114-idxcast-offset.upgrd.1 = zext i32 %reg114-idxcast-offset to i64 ; [#uses=1]
27 %reg124 = getelementptr i32* %set, i64 %reg114-idxcast-offset.upgrd.1 ; [#uses=1]
28 %reg125 = load i32* %reg124 ; [#uses=1]
29 %cond232 = icmp ne i32 %reg125, 0 ; [#uses=1]
30 br i1 %cond232, label %bb3, label %bb2
1631
17 int %rx_bitset_empty(int %size, uint* %set) {
18 bb1: ;[#uses=2]
19 %reg110 = load uint* %set ; [#uses=2]
20 store uint 1, uint* %set
21 %cast112 = cast int %size to ulong ; [#uses=1]
22 %reg113 = add ulong %cast112, 31 ; [#uses=1]
23 %reg114 = shr ulong %reg113, ubyte 5 ; [#uses=2]
24 %cast109 = cast ulong %reg114 to int ; [#uses=1]
25 %reg129 = add int %cast109, -1 ; [#uses=1]
26 %reg114-idxcast = cast ulong %reg114 to uint ; [#uses=1]
27 %reg114-idxcast-offset = add uint %reg114-idxcast, 1073741823 ; [#uses=1]
28 %reg114-idxcast-offset = cast uint %reg114-idxcast-offset to long
29 %reg124 = getelementptr uint* %set, long %reg114-idxcast-offset ; [#uses=1]
30 %reg125 = load uint* %reg124 ; [#uses=1]
31 %cond232 = setne uint %reg125, 0 ; [#uses=1]
32 br bool %cond232, label %bb3, label %bb2
32 bb2: ; preds = %bb2, %bb1
33 %cann-indvar = phi i32 [ 0, %bb1 ], [ %add1-indvar, %bb2 ] ; [#uses=2]
34 %reg130-scale = mul i32 %cann-indvar, -1 ; [#uses=1]
35 %reg130 = add i32 %reg130-scale, %reg129 ; [#uses=1]
36 %add1-indvar = add i32 %cann-indvar, 1 ; [#uses=1]
37 %reg130-idxcast = bitcast i32 %reg130 to i32 ; [#uses=1]
38 %reg130-idxcast-offset = add i32 %reg130-idxcast, 1073741823 ; [#uses=1]
39 %reg130-idxcast-offset.upgrd.2 = zext i32 %reg130-idxcast-offset to i64 ; [#uses=1]
40 %reg118 = getelementptr i32* %set, i64 %reg130-idxcast-offset.upgrd.2 ; [#uses=1]
41 %reg119 = load i32* %reg118 ; [#uses=1]
42 %cond233 = icmp eq i32 %reg119, 0 ; [#uses=1]
43 br i1 %cond233, label %bb2, label %bb3
3344
34 bb2: ;[#uses=3]
35 %cann-indvar = phi int [ 0, %bb1 ], [ %add1-indvar, %bb2 ] ; [#uses=2]
36 %reg130-scale = mul int %cann-indvar, -1 ; [#uses=1]
37 %reg130 = add int %reg130-scale, %reg129 ; [#uses=1]
38 %add1-indvar = add int %cann-indvar, 1 ; [#uses=1]
39 %reg130-idxcast = cast int %reg130 to uint ; [#uses=1]
40 %reg130-idxcast-offset = add uint %reg130-idxcast, 1073741823 ; [#uses=1]
41 %reg130-idxcast-offset = cast uint %reg130-idxcast-offset to long
42 %reg118 = getelementptr uint* %set, long %reg130-idxcast-offset ; [#uses=1]
43 %reg119 = load uint* %reg118 ; [#uses=1]
44 %cond233 = seteq uint %reg119, 0 ; [#uses=1]
45 br bool %cond233, label %bb2, label %bb3
45 bb3: ; preds = %bb2, %bb1
46 store i32 %reg110, i32* %set
47 %cast126 = zext i32 %reg110 to i64 ; [#uses=1]
48 %reg127 = add i64 %cast126, -1 ; [#uses=1]
49 %reg128 = lshr i64 %reg127, 63 ; [#uses=1]
50 %cast120 = trunc i64 %reg128 to i32 ; [#uses=1]
51 ret i32 %cast120
52 }
4653
47 bb3: ;[#uses=2]
48 store uint %reg110, uint* %set
49 %cast126 = cast uint %reg110 to ulong ; [#uses=1]
50 %reg127 = add ulong %cast126, 18446744073709551615 ; [#uses=1]
51 %reg128 = shr ulong %reg127, ubyte 63 ; [#uses=1]
52 %cast120 = cast ulong %reg128 to int ; [#uses=1]
53 ret int %cast120
54
55 }
22 ; block in this function, it would work fine, but that would be the part we
33 ; have to fix now, wouldn't it....
44 ;
5 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
5 ; RUN: llvm-as < %s | opt -adce
66
7 void %foo(sbyte* %reg5481) {
8 %cast611 = cast sbyte* %reg5481 to sbyte** ; [#uses=1]
9 %reg162 = load sbyte** %cast611 ; [#uses=0]
10 cast sbyte*%reg162 to int
11 ret void
7 define void @foo(i8* %reg5481) {
8 %cast611 = bitcast i8* %reg5481 to i8** ; [#uses=1]
9 %reg162 = load i8** %cast611 ; [#uses=1]
10 ptrtoint i8* %reg162 to i32 ; :1 [#uses=0]
11 ret void
1212 }
0 ; This testcase was extracted from the gzip SPEC benchmark
11 ;
2 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
2 ; RUN: llvm-as < %s | opt -adce
33
4 %bk = external global uint ; [#uses=2]
5 %hufts = external global uint ; [#uses=1]
4 @bk = external global i32 ; [#uses=2]
5 @hufts = external global i32 ; [#uses=1]
66
7 implementation ; Functions:
7 define i32 @inflate() {
8 bb0:
9 br label %bb2
810
9 int %inflate() {
10 bb0: ;[#uses=1]
11 br label %bb2
11 bb2: ; preds = %bb6, %bb0
12 %reg128 = phi i32 [ %reg130, %bb6 ], [ 0, %bb0 ] ; [#uses=2]
13 br i1 true, label %bb4, label %bb3
1214
13 bb2: ;[#uses=2]
14 %reg128 = phi uint [ %reg130, %bb6 ], [ 0, %bb0 ] ; [#uses=2]
15 br bool true, label %bb4, label %bb3
15 bb3: ; preds = %bb2
16 br label %UnifiedExitNode
1617
17 bb3: ;[#uses=2]
18 br label %UnifiedExitNode
18 bb4: ; preds = %bb2
19 %reg117 = load i32* @hufts ; [#uses=2]
20 %cond241 = icmp ule i32 %reg117, %reg128 ; [#uses=1]
21 br i1 %cond241, label %bb6, label %bb5
1922
20 bb4: ;[#uses=2]
21 %reg117 = load uint* %hufts ; [#uses=2]
22 %cond241 = setle uint %reg117, %reg128 ; [#uses=1]
23 br bool %cond241, label %bb6, label %bb5
23 bb5: ; preds = %bb4
24 br label %bb6
2425
25 bb5: ;[#uses=2]
26 br label %bb6
26 bb6: ; preds = %bb5, %bb4
27 %reg130 = phi i32 [ %reg117, %bb5 ], [ %reg128, %bb4 ] ; [#uses=1]
28 br i1 false, label %bb2, label %bb7
2729
28 bb6: ;[#uses=3]
29 %reg130 = phi uint [ %reg117, %bb5 ], [ %reg128, %bb4 ] ; [#uses=1]
30 br bool false, label %bb2, label %bb7
30 bb7: ; preds = %bb6
31 %reg126 = load i32* @bk ; [#uses=1]
32 %cond247 = icmp ule i32 %reg126, 7 ; [#uses=1]
33 br i1 %cond247, label %bb9, label %bb8
3134
32 bb7: ;[#uses=1]
33 %reg126 = load uint* %bk ; [#uses=1]
34 %cond247 = setle uint %reg126, 7 ; [#uses=1]
35 br bool %cond247, label %bb9, label %bb8
35 bb8: ; preds = %bb8, %bb7
36 %reg119 = load i32* @bk ; [#uses=1]
37 %cond256 = icmp ugt i32 %reg119, 7 ; [#uses=1]
38 br i1 %cond256, label %bb8, label %bb9
3639
37 bb8: ;[#uses=2]
38 %reg119 = load uint* %bk ; [#uses=1]
39 %cond256 = setgt uint %reg119, 7 ; [#uses=1]
40 br bool %cond256, label %bb8, label %bb9
40 bb9: ; preds = %bb8, %bb7
41 br label %UnifiedExitNode
4142
42 bb9: ;[#uses=3]
43 br label %UnifiedExitNode
43 UnifiedExitNode: ; preds = %bb9, %bb3
44 %UnifiedRetVal = phi i32 [ 7, %bb3 ], [ 0, %bb9 ] ; [#uses=1]
45 ret i32 %UnifiedRetVal
46 }
4447
45 UnifiedExitNode: ;[#uses=2]
46 %UnifiedRetVal = phi int [ 7, %bb3 ], [ 0, %bb9 ] ; [#uses=1]
47 ret int %UnifiedRetVal
48 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
0 ; RUN: llvm-as < %s | opt -adce
11
2 void "test"()
3 begin
4 br label %BB3
2 define void @test() {
3 br label %BB3
54
6 BB3:
7 br label %BB3
8 end
5 BB3: ; preds = %BB3, %0
6 br label %BB3
7 }
8
0 ; Testcase reduced from 197.parser by bugpoint
1 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
2 implementation ; Functions:
1 ; RUN: llvm-as < %s | opt -adce
32
4 void %conjunction_prune() {
5 ;
6 br label %bb19
3 define void @conjunction_prune() {
4 ;
5 br label %bb19
76
8 bb19: ; preds = %bb22, %bb23, %0
9 %reg205 = phi sbyte* [ null, %bb22 ], [ null, %bb23 ], [ null, %0 ] ; [#uses=1]
10 br bool false, label %bb21, label %bb22
7 bb19: ; preds = %bb23, %bb22, %0
8 %reg205 = phi i8* [ null, %bb22 ], [ null, %bb23 ], [ null, %0 ] ; [#uses=1]
9 br i1 false, label %bb21, label %bb22
1110
12 bb21: ; preds = %bb19
13 %cast455 = cast sbyte* %reg205 to sbyte** ; [#uses=0]
14 br label %bb22
11 bb21: ; preds = %bb19
12 %cast455 = bitcast i8* %reg205 to i8** ; [#uses=0]
13 br label %bb22
1514
16 bb22: ; preds = %bb21, %bb19
17 br bool false, label %bb19, label %bb23
15 bb22: ; preds = %bb21, %bb19
16 br i1 false, label %bb19, label %bb23
1817
19 bb23: ; preds = %bb22
20 br bool false, label %bb19, label %bb28
18 bb23: ; preds = %bb22
19 br i1 false, label %bb19, label %bb28
2120
22 bb28: ; preds = %bb23
23 ret void
21 bb28: ; preds = %bb23
22 ret void
2423 }
24
11 ; entries for it's postdominator. But I think this can only happen when the
22 ; PHI node is dead, so we just avoid patching up dead PHI nodes.
33
4 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce
4 ; RUN: llvm-as < %s | opt -adce
55
6 target endian = little
7 target pointersize = 32
6 target datalayout = "e-p:32:32"
87
9 implementation ; Functions:
8 define void @dead_test8() {
9 entry:
10 br label %loopentry
1011
11 void %dead_test8() {
12 entry: ; No predecessors!
13 br label %loopentry
12 loopentry: ; preds = %endif, %entry
13 %k.1 = phi i32 [ %k.0, %endif ], [ 0, %entry ] ; [#uses=1]
14 br i1 false, label %no_exit, label %return
1415
15 loopentry: ; preds = %entry, %endif
16 %k.1 = phi int [ %k.0, %endif ], [ 0, %entry ] ; [#uses=1]
17 br bool false, label %no_exit, label %return
16 no_exit: ; preds = %loopentry
17 br i1 false, label %then, label %else
1818
19 no_exit: ; preds = %loopentry
20 br bool false, label %then, label %else
19 then: ; preds = %no_exit
20 br label %endif
2121
22 then: ; preds = %no_exit
23 br label %endif
22 else: ; preds = %no_exit
23 %dec = add i32 %k.1, -1 ; [#uses=1]
24 br label %endif
2425
25 else: ; preds = %no_exit
26 %dec = add int %k.1, -1 ; [#uses=1]
27 br label %endif
26 endif: ; preds = %else, %then
27 %k.0 = phi i32 [ %dec, %else ], [ 0, %then ] ; [#uses=1]
28 store i32 2, i32* null
29 br label %loopentry
2830
29 endif: ; preds = %else, %then
30 %k.0 = phi int [ %dec, %else ], [ 0, %then ] ; [#uses=1]
31 store int 2, int* null
32 br label %loopentry
31 return: ; preds = %loopentry
32 ret void
33 }
3334
34 return: ; preds = %loopentry
35 ret void
36 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output
1 %G = external global int*
0 ; RUN: llvm-as < %s | opt -adce -disable-output
21
3 implementation ; Functions:
2 @G = external global i32* ; [#uses=1]
43
5 declare void %Fn(int*)
4 declare void @Fn(i32*)
65
7 int %main(int %argc.1, sbyte** %argv.1) {
8 entry: ; No predecessors!
9 br label %endif.42
6 define i32 @main(i32 %argc.1, i8** %argv.1) {
7 entry:
8 br label %endif.42
109
11 endif.42: ; preds = %entry, %shortcirc_done.12, %then.66, %endif.42
12 br bool false, label %endif.65, label %endif.42
13
14 then.66: ; preds = %shortcirc_done.12
15 call void %Fn( int* %tmp.2846)
16 br label %endif.42
10 endif.42: ; preds = %shortcirc_done.12, %then.66, %endif.42, %entry
11 br i1 false, label %endif.65, label %endif.42
1712
18 endif.65: ; preds = %endif.42
19 %tmp.2846 = load int** %G
20 br bool false, label %shortcirc_next.12, label %shortcirc_done.12
13 then.66: ; preds = %shortcirc_done.12
14 call void @Fn( i32* %tmp.2846 )
15 br label %endif.42
2116
22 shortcirc_next.12: ; preds = %endif.65
23 br label %shortcirc_done.12
17 endif.65: ; preds = %endif.42
18 %tmp.2846 = load i32** @G ; [#uses=1]
19 br i1 false, label %shortcirc_next.12, label %shortcirc_done.12
2420
25 shortcirc_done.12: ; preds = %endif.65, %shortcirc_next.12
26 br bool false, label %then.66, label %endif.42
21 shortcirc_next.12: ; preds = %endif.65
22 br label %shortcirc_done.12
23
24 shortcirc_done.12: ; preds = %shortcirc_next.12, %endif.65
25 br i1 false, label %then.66, label %endif.42
2726 }
27
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output
0 ; RUN: llvm-as < %s | opt -adce -disable-output
1 target datalayout = "e-p:32:32"
2 %struct..CppObjTypeDesc = type { i32, i16, i16 }
3 %struct..TypeToken = type { i32, i16, i16 }
14
2 target endian = little
3 target pointersize = 32
4 %struct..CppObjTypeDesc = type { uint, ushort, ushort }
5 %struct..TypeToken = type { uint, ushort, ushort }
6
7 implementation ; Functions:
8
9 uint %C_ReFaxToDb() {
10 entry: ; No predecessors!
11 br bool false, label %endif.0, label %then.0
5 define i32 @C_ReFaxToDb() {
6 entry:
7 br i1 false, label %endif.0, label %then.0
128
139 then.0: ; preds = %entry
14 ret uint 0
10 ret i32 0
1511
1612 endif.0: ; preds = %entry
17 br bool false, label %then.11, label %then.4
13 br i1 false, label %then.11, label %then.4
1814
1915 then.4: ; preds = %endif.0
20 ret uint 0
16 ret i32 0
2117
2218 then.11: ; preds = %endif.0
23 br bool false, label %loopentry.0, label %else.2
19 br i1 false, label %loopentry.0, label %else.2
2420
25 loopentry.0: ; preds = %then.11, %endif.14, %loopentry.1
26 br bool false, label %endif.14, label %loopexit.0
21 loopentry.0: ; preds = %loopentry.1, %endif.14, %then.11
22 br i1 false, label %endif.14, label %loopexit.0
2723
2824 endif.14: ; preds = %loopentry.0
29 br bool false, label %loopentry.1, label %loopentry.0
25 br i1 false, label %loopentry.1, label %loopentry.0
3026
31 loopentry.1: ; preds = %endif.14, %then.53, %then.53, %then.53, %then.53, %then.53
32 %SubArrays.10 = phi uint* [ %SubArrays.8, %then.53 ] , [ null, %endif.14 ] ; [#uses=3]
33 br bool false, label %no_exit.1, label %loopentry.0
27 loopentry.1: ; preds = %then.53, %endif.14
28 %SubArrays.10 = phi i32* [ %SubArrays.8, %then.53 ], [ null, %endif.14 ] ; [#uses=3]
29 br i1 false, label %no_exit.1, label %loopentry.0
3430
3531 no_exit.1: ; preds = %loopentry.1
36 switch uint 0, label %label.17 [
37 uint 2, label %label.11
38 uint 19, label %label.10
32 switch i32 0, label %label.17 [
33 i32 2, label %label.11
34 i32 19, label %label.10
3935 ]
4036
4137 label.10: ; preds = %no_exit.1
42 br bool false, label %then.43, label %endif.43
38 br i1 false, label %then.43, label %endif.43
4339
4440 then.43: ; preds = %label.10
45 br bool false, label %then.44, label %endif.44
41 br i1 false, label %then.44, label %endif.44
4642
4743 then.44: ; preds = %then.43
48 br bool false, label %shortcirc_next.4, label %endif.45
44 br i1 false, label %shortcirc_next.4, label %endif.45
4945
5046 shortcirc_next.4: ; preds = %then.44
51 br bool false, label %no_exit.2, label %loopexit.2
47 br i1 false, label %no_exit.2, label %loopexit.2
5248
5349 no_exit.2: ; preds = %shortcirc_next.4
54 %tmp.897 = getelementptr uint* %SubArrays.10, long 0 ; [#uses=1]
55 %tmp.899 = load uint* %tmp.897 ; [#uses=1]
56 store uint %tmp.899, uint* null
57 ret uint 0
50 %tmp.897 = getelementptr i32* %SubArrays.10, i64 0 ; [#uses=1]
51 %tmp.899 = load i32* %tmp.897 ; [#uses=1]
52 store i32 %tmp.899, i32* null
53 ret i32 0
5854
5955 loopexit.2: ; preds = %shortcirc_next.4
60 ret uint 0
56 ret i32 0
6157
6258 endif.45: ; preds = %then.44
63 ret uint 0
59 ret i32 0
6460
6561 endif.44: ; preds = %then.43
66 ret uint 0
62 ret i32 0
6763
6864 endif.43: ; preds = %label.10
69 ret uint 0
65 ret i32 0
7066
7167 label.11: ; preds = %no_exit.1
72 ret uint 0
68 ret i32 0
7369
74 label.17: ; preds = %no_exit.1, %no_exit.1, %no_exit.1, %no_exit.1, %no_exit.1, %no_exit.1
75 br bool false, label %then.53, label %shortcirc_next.7
70 label.17: ; preds = %no_exit.1
71 br i1 false, label %then.53, label %shortcirc_next.7
7672
7773 shortcirc_next.7: ; preds = %label.17
78 br bool false, label %then.53, label %shortcirc_next.8
74 br i1 false, label %then.53, label %shortcirc_next.8
7975
8076 shortcirc_next.8: ; preds = %shortcirc_next.7
81 ret uint 0
77 ret i32 0
8278
8379 then.53: ; preds = %shortcirc_next.7, %label.17
84 %SubArrays.8 = phi uint* [ %SubArrays.10, %shortcirc_next.7 ], [ %SubArrays.10, %label.17 ] ; [#uses=5]
85 %tmp.1023 = load uint* null ; [#uses=1]
86 switch uint %tmp.1023, label %loopentry.1 []
80 %SubArrays.8 = phi i32* [ %SubArrays.10, %shortcirc_next.7 ], [ %SubArrays.10, %label.17 ] ; [#uses=1]
81 %tmp.1023 = load i32* null ; [#uses=1]
82 switch i32 %tmp.1023, label %loopentry.1 [
83 ]
8784
8885 loopexit.0: ; preds = %loopentry.0
89 ret uint 0
86 ret i32 0
9087
9188 else.2: ; preds = %then.11
92 ret uint 0
89 ret i32 0
9390 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis | not grep then:
0 ; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis | not grep then:
11
2 void %dead_test8(int* %data.1, int %idx.1) {
3 entry: ; No predecessors!
4 %tmp.1 = load int* %data.1 ; [#uses=2]
5 %tmp.41 = setgt int %tmp.1, 0 ; [#uses=1]
6 br bool %tmp.41, label %no_exit.preheader, label %return
2 define void @dead_test8(i32* %data.1, i32 %idx.1) {
3 entry:
4 %tmp.1 = load i32* %data.1 ; [#uses=2]
5 %tmp.41 = icmp sgt i32 %tmp.1, 0 ; [#uses=1]
6 br i1 %tmp.41, label %no_exit.preheader, label %return
77
8 no_exit.preheader: ; preds = %entry
9 %tmp.11 = getelementptr int* %data.1, long 1 ; [#uses=1]
10 %tmp.22-idxcast = cast int %idx.1 to long ; [#uses=1]
11 %tmp.28 = getelementptr int* %data.1, long %tmp.22-idxcast ; [#uses=1]
12 br label %no_exit
8 no_exit.preheader: ; preds = %entry
9 %tmp.11 = getelementptr i32* %data.1, i64 1 ; [#uses=1]
10 %tmp.22-idxcast = sext i32 %idx.1 to i64 ; [#uses=1]
11 %tmp.28 = getelementptr i32* %data.1, i64 %tmp.22-idxcast ; [#uses=1]
12 br label %no_exit
1313
14 no_exit: ; preds = %no_exit.preheader, %endif
15 %k.1 = phi int [ %k.0, %endif ], [ 0, %no_exit.preheader ] ; [#uses=3]
16 %i.0 = phi int [ %inc.1, %endif ], [ 0, %no_exit.preheader ] ; [#uses=1]
17 %tmp.12 = load int* %tmp.11 ; [#uses=1]
18 %tmp.14 = sub int 0, %tmp.12 ; [#uses=1]
19 %tmp.161 = setne int %k.1, %tmp.14 ; [#uses=1]
20 br bool %tmp.161, label %then, label %else
14 no_exit: ; preds = %endif, %no_exit.preheader
15 %k.1 = phi i32 [ %k.0, %endif ], [ 0, %no_exit.preheader ] ; [#uses=3]
16 %i.0 = phi i32 [ %inc.1, %endif ], [ 0, %no_exit.preheader ] ; [#uses=1]
17 %tmp.12 = load i32* %tmp.11 ; [#uses=1]
18 %tmp.14 = sub i32 0, %tmp.12 ; [#uses=1]
19 %tmp.161 = icmp ne i32 %k.1, %tmp.14 ; [#uses=1]
20 br i1 %tmp.161, label %then, label %else
2121
22 then: ; preds = %no_exit
23 %inc.0 = add int %k.1, 1 ; [#uses=1]
24 br label %endif
22 then: ; preds = %no_exit
23 %inc.0 = add i32 %k.1, 1 ; [#uses=1]
24 br label %endif
2525
26 else: ; preds = %no_exit
27 %dec = add int %k.1, -1 ; [#uses=1]
28 br label %endif
26 else: ; preds = %no_exit
27 %dec = add i32 %k.1, -1 ; [#uses=1]
28 br label %endif
2929
30 endif: ; preds = %else, %then
31 %k.0 = phi int [ %dec, %else ], [ %inc.0, %then ] ; [#uses=1]
32 store int 2, int* %tmp.28
33 %inc.1 = add int %i.0, 1 ; [#uses=2]
34 %tmp.4 = setlt int %inc.1, %tmp.1 ; [#uses=1]
35 br bool %tmp.4, label %no_exit, label %return
30 endif: ; preds = %else, %then
31 %k.0 = phi i32 [ %dec, %else ], [ %inc.0, %then ] ; [#uses=1]
32 store i32 2, i32* %tmp.28
33 %inc.1 = add i32 %i.0, 1 ; [#uses=2]
34 %tmp.4 = icmp slt i32 %inc.1, %tmp.1 ; [#uses=1]
35 br i1 %tmp.4, label %no_exit, label %return
3636
37 return: ; preds = %entry, %endif
38 ret void
37 return: ; preds = %endif, %entry
38 ret void
3939 }
40
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output
0 ; RUN: llvm-as < %s | opt -adce -disable-output
11
2 implementation ; Functions:
2 define void @test() {
3 br i1 false, label %then, label %endif
34
4 void %test() {
5 br bool false, label %then, label %endif
5 then: ; preds = %0
6 invoke void null( i8* null )
7 to label %invoke_cont unwind label %invoke_catch
68
7 then:
8 invoke void null( sbyte* null )
9 to label %invoke_cont except label %invoke_catch
9 invoke_catch: ; preds = %then
10 unwind
1011
11 invoke_catch:
12 unwind
12 invoke_cont: ; preds = %then
13 ret void
1314
14 invoke_cont:
15 ret void
15 endif: ; preds = %0
16 ret void
17 }
1618
17 endif:
18 ret void
19 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output
0 ; RUN: llvm-as < %s | opt -adce -disable-output
11
2 int %main() {
3 br label %loop
2 define i32 @main() {
3 br label %loop
44
5 loop:
6 br label %loop
5 loop: ; preds = %loop, %0
6 br label %loop
77 }
8
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis | grep call
1 declare void %exit(int)
0 ; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis | grep call
1 declare void @exit(i32)
22
3 int %main(int %argc) {
4 %C = seteq int %argc, 1
5 br bool %C, label %Cond, label %Done
3 define i32 @main(i32 %argc) {
4 %C = icmp eq i32 %argc, 1 ; [#uses=2]
5 br i1 %C, label %Cond, label %Done
66
7 Cond:
8 br bool %C, label %Loop, label %Done
7 Cond: ; preds = %0
8 br i1 %C, label %Loop, label %Done
99
10 Loop:
11 call void %exit(int 0)
12 br label %Loop
10 Loop: ; preds = %Loop, %Cond
11 call void @exit( i32 0 )
12 br label %Loop
1313
14 Done:
15 ret int 1
14 Done: ; preds = %Cond, %0
15 ret i32 1
1616 }
17
0 ; This testcase was failing because without merging the return blocks, ADCE
11 ; didn't know that it could get rid of the then.0 block.
22
3 ; RUN: llvm-upgrade < %s | llvm-as | opt -adce | llvm-dis | not grep load
3 ; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep load
44
55
6 implementation ; Functions:
6 define void @main(i32 %argc, i8** %argv) {
7 entry:
8 call void @__main( )
9 %tmp.1 = icmp ule i32 %argc, 5 ; [#uses=1]
10 br i1 %tmp.1, label %then.0, label %return
711
8 void %main(uint %argc, sbyte** %argv) {
9 entry:
10 call void %__main( )
11 %tmp.1 = setle uint %argc, 5 ; [#uses=1]
12 br bool %tmp.1, label %then.0, label %return
12 then.0: ; preds = %entry
13 %tmp.8 = load i8** %argv ; [#uses=1]
14 %tmp.10 = load i8* %tmp.8 ; [#uses=1]
15 %tmp.11 = icmp eq i8 %tmp.10, 98 ; [#uses=1]
16 br i1 %tmp.11, label %then.1, label %return
1317
14 then.0: ; preds = %entry
15 %tmp.8 = load sbyte** %argv ; [#uses=1]
16 %tmp.10 = load sbyte* %tmp.8 ; [#uses=1]
17 %tmp.11 = seteq sbyte %tmp.10, 98 ; [#uses=1]
18 br bool %tmp.11, label %then.1, label %return
18 then.1: ; preds = %then.0
19 ret void
1920
20 then.1: ; preds = %then.0
21 ret void
22
23 return: ; preds = %entry, %then.0
24 ret void
21 return: ; preds = %then.0, %entry
22 ret void
2523 }
2624
27 declare void %__main()
25 declare void @__main()
26
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output
0 ; RUN: llvm-as < %s | opt -adce -disable-output
11
2 void %test() {
2 define void @test() {
33 entry:
4 br label %UnifiedReturnBlock
4 br label %UnifiedReturnBlock
55
6 UnifiedReturnBlock:
7 ret void
6 UnifiedReturnBlock: ; preds = %invoke_catch.0, %entry
7 ret void
88
9 invoke_catch.0: ; No predecessors!
10 br bool false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock
9 invoke_catch.0: ; No predecessors!
10 br i1 false, label %UnifiedUnwindBlock, label %UnifiedReturnBlock
1111
12 UnifiedUnwindBlock: ; preds = %invoke_catch.0
13 unwind
12 UnifiedUnwindBlock: ; preds = %invoke_catch.0
13 unwind
14 }
1415
15 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output
0 ; RUN: llvm-as < %s | opt -adce -disable-output
11
2 implementation ; Functions:
2 declare void @strlen()
33
4 declare void %strlen()
5 declare void %_ZN10QByteArray6resizeEi()
6 declare void %q_atomic_decrement()
4 declare void @_ZN10QByteArray6resizeEi()
75
8 void %_ZNK10QByteArray13leftJustifiedEicb() {
6 declare void @q_atomic_decrement()
7
8 define void @_ZNK10QByteArray13leftJustifiedEicb() {
99 entry:
10 invoke void %strlen( )
11 to label %tmp.3.i.noexc unwind label %invoke_catch.0
10 invoke void @strlen( )
11 to label %tmp.3.i.noexc unwind label %invoke_catch.0
1212
13 tmp.3.i.noexc: ; preds = %entry
14 br bool false, label %then.0, label %else.0
13 tmp.3.i.noexc: ; preds = %entry
14 br i1 false, label %then.0, label %else.0
1515
16 invoke_catch.0: ; preds = %entry
17 invoke void %q_atomic_decrement( )
18 to label %tmp.1.i.i183.noexc unwind label %terminate
16 invoke_catch.0: ; preds = %entry
17 invoke void @q_atomic_decrement( )
18 to label %tmp.1.i.i183.noexc unwind label %terminate
1919
20 tmp.1.i.i183.noexc: ; preds = %invoke_catch.0
21 unwind
20 tmp.1.i.i183.noexc: ; preds = %invoke_catch.0
21 unwind
2222
23 then.0: ; preds = %tmp.3.i.noexc
24 invoke void %_ZN10QByteArray6resizeEi( )
25 to label %invoke_cont.1 unwind label %invoke_catch.1
23 then.0: ; preds = %tmp.3.i.noexc
24 invoke void @_ZN10QByteArray6resizeEi( )
25 to label %invoke_cont.1 unwind label %invoke_catch.1
2626
27 invoke_catch.1: ; preds = %then.0
28 invoke void %q_atomic_decrement( )
29 to label %tmp.1.i.i162.noexc unwind label %terminate
27 invoke_catch.1: ; preds = %then.0
28 invoke void @q_atomic_decrement( )
29 to label %tmp.1.i.i162.noexc unwind label %terminate
3030
31 tmp.1.i.i162.noexc: ; preds = %invoke_catch.1
32 ret void
31 tmp.1.i.i162.noexc: ; preds = %invoke_catch.1
32 ret void
3333
34 invoke_cont.1: ; preds = %then.0
35 ret void
34 invoke_cont.1: ; preds = %then.0
35 ret void
3636
37 else.0: ; preds = %tmp.3.i.noexc
38 ret void
37 else.0: ; preds = %tmp.3.i.noexc
38 ret void
3939
40 terminate: ; preds = %invoke_catch.1, %invoke_catch.0
41 %dbg.0.1 = phi { }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ] ; <{ }*> [#uses=1]
42 unreachable
40 terminate: ; preds = %invoke_catch.1, %invoke_catch.0
41 %dbg.0.1 = phi { }* [ null, %invoke_catch.1 ], [ null, %invoke_catch.0 ] ; <{ }*> [#uses=0]
42 unreachable
4343 }
44
0 ; This is the test case taken from Appel's book that illustrates a hard case
11 ; that SCCP gets right, and when followed by ADCE, is completely eliminated
22 ;
3 ; RUN: llvm-upgrade < %s | llvm-as | opt -sccp -adce -simplifycfg | llvm-dis | not grep br
3 ; RUN: llvm-as < %s | opt -sccp -adce -simplifycfg | llvm-dis | not grep br
44
5 int "test function"(int %i0, int %j0) {
5 define i32 @"test function"(i32 %i0, i32 %j0) {
66 BB1:
7 br label %BB2
8 BB2:
9 %j2 = phi int [%j4, %BB7], [1, %BB1]
10 %k2 = phi int [%k4, %BB7], [0, %BB1]
11 %kcond = setlt int %k2, 100
12 br bool %kcond, label %BB3, label %BB4
7 br label %BB2
138
14 BB3:
15 %jcond = setlt int %j2, 20
16 br bool %jcond, label %BB5, label %BB6
9 BB2: ; preds = %BB7, %BB1
10 %j2 = phi i32 [ %j4, %BB7 ], [ 1, %BB1 ] ; [#uses=2]
11 %k2 = phi i32 [ %k4, %BB7 ], [ 0, %BB1 ] ; [#uses=4]
12 %kcond = icmp slt i32 %k2, 100 ; [#uses=1]
13 br i1 %kcond, label %BB3, label %BB4
1714
18 BB4:
19 ret int %j2
15 BB3: ; preds = %BB2
16 %jcond = icmp slt i32 %j2, 20 ; [#uses=1]
17 br i1 %jcond, label %BB5, label %BB6
2018
21 BB5:
22 %k3 = add int %k2, 1
23 br label %BB7
19 BB4: ; preds = %BB2
20 ret i32 %j2
2421
25 BB6:
26 %k5 = add int %k2, 1
27 br label %BB7
22 BB5: ; preds = %BB3
23 %k3 = add i32 %k2, 1 ; [#uses=1]
24 br label %BB7
2825
29 BB7:
30 %j4 = phi int [1, %BB5], [%k2, %BB6]
31 %k4 = phi int [%k3, %BB5], [%k5, %BB6]
32 br label %BB2
26 BB6: ; preds = %BB3
27 %k5 = add i32 %k2, 1 ; [#uses=1]
28 br label %BB7
29
30 BB7: ; preds = %BB6, %BB5
31 %j4 = phi i32 [ 1, %BB5 ], [ %k2, %BB6 ] ; [#uses=1]
32 %k4 = phi i32 [ %k3, %BB5 ], [ %k5, %BB6 ] ; [#uses=1]
33 br label %BB2
3334 }
35
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis
0 ; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis
11
2 int "Test"(int %A, int %B) {
2 define i32 @Test(i32 %A, i32 %B) {
33 BB1:
4 br label %BB4
5 BB2:
6 br label %BB3
7 BB3:
8 %ret = phi int [%X, %BB4], [%B, %BB2]
9 ret int %ret
10 BB4:
11 %X = phi int [%A, %BB1]
12 br label %BB3
4 br label %BB4
5
6 BB2: ; No predecessors!
7 br label %BB3
8
9 BB3: ; preds = %BB4, %BB2
10 %ret = phi i32 [ %X, %BB4 ], [ %B, %BB2 ] ; [#uses=1]
11 ret i32 %ret
12
13 BB4: ; preds = %BB1
14 %X = phi i32 [ %A, %BB1 ] ; [#uses=1]
15 br label %BB3
1316 }
17
18
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis
1
2 %FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint }
3 %spec_fd_t = type { int, int, int, ubyte* }
4 %__iob = uninitialized global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1]
5 %dbglvl = global int 4 ; [#uses=3]
6 %spec_fd = uninitialized global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4]
7 %.LC9 = internal global [34 x sbyte] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x sbyte]*> [#uses=1]
8 %.LC10 = internal global [4 x sbyte] c"EOF\00" ; <[4 x sbyte]*> [#uses=1]
9 %.LC11 = internal global [4 x sbyte] c"%d\0A\00" ; <[4 x sbyte]*> [#uses=1]
10 %.LC12 = internal global [17 x sbyte] c"spec_getc: %d = \00" ; <[17 x sbyte]*> [#uses=1]
0 ; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis
1 %FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 }
2 %spec_fd_t = type { i32, i32, i32, i8* }
3 @__iob = external global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1]
4 @dbglvl = global i32 4 ; [#uses=3]
5 @spec_fd = external global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4]
6 @.LC9 = internal global [34 x i8] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x i8]*> [#uses=1]
7 @.LC10 = internal global [4 x i8] c"EOF\00" ; <[4 x i8]*> [#uses=1]
8 @.LC11 = internal global [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1]
9 @.LC12 = internal global [17 x i8] c"spec_getc: %d = \00" ; <[17 x i8]*> [#uses=1]
1110
12 implementation ; Functions:
11 declare i32 @fprintf(%FILE*, i8*, ...)
1312
14 declare int "fprintf"(%FILE*, sbyte*, ...)
13 declare void @exit(i32)
1514
16 declare void "exit"(int)
15 declare i32 @remove(i8*)
1716
18 declare int "remove"(sbyte*)
17 declare i32 @fputc(i32, %FILE*)
1918
20 declare int "fputc"(int, %FILE*)
19 declare i32 @fwrite(i8*, i32, i32, %FILE*)
2120
22 declare uint "fwrite"(sbyte*, uint, uint, %FILE*)
21 declare void @perror(i8*)
2322
24 declare void "perror"(sbyte*)
23 define i32 @spec_getc(i32 %fd) {
24 %reg109 = load i32* @dbglvl ; [#uses=1]
25 %cond266 = icmp sle i32 %reg109, 4 ; [#uses=1]
26 br i1 %cond266, label %bb3, label %bb2
2527
26 int "spec_getc"(int %fd) {
27 ;
28 %reg109 = load int* %dbglvl ; [#uses=1]
29 %cond266 = setle int %reg109, 4 ; [#uses=1]
30 br bool %cond266, label %bb3, label %bb2
31
32 bb2: ;[#uses=1]
33 %cast273 = getelementptr [17 x sbyte]* %.LC12, long 0, long 0 ; [#uses=0]
28 bb2: ; preds = %0
29 %cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0 ; [#uses=0]
3430 br label %bb3
3531
36 bb3: ;[#uses=2]
37 %cond267 = setle int %fd, 3 ; [#uses=1]
38 br bool %cond267, label %bb5, label %bb4
32 bb3: ; preds = %bb2, %0
33 %cond267 = icmp sle i32 %fd, 3 ; [#uses=1]
34 br i1 %cond267, label %bb5, label %bb4
3935
40 bb4: ;[#uses=2]
41 %reg111 = getelementptr [20 x %FILE]* %__iob, long 0, long 1, uint 3 ; [#uses=1]
42 %cast274 = getelementptr [34 x sbyte]* %.LC9, long 0, long 0 ; [#uses=0]
43 %cast282 = cast ubyte* %reg111 to %FILE* ; <%FILE*> [#uses=0]
44 call void %exit( int 1 )
36 bb4: ; preds = %bb3
37 %reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; [#uses=1]
38 %cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0 ; [#uses=0]
39 %cast282 = bitcast i8* %reg111 to %FILE* ; <%FILE*> [#uses=0]
40 call void @exit( i32 1 )
4541 br label %UnifiedExitNode
4642
47 bb5: ;[#uses=1]
48 %reg107-idxcast1 = cast int %fd to long ; [#uses=2]
49 %reg107-idxcast2 = cast int %fd to long ; [#uses=1]
50 %reg1311 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1]
51 %idx1 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2 ; [#uses=3]
52 %reg1321 = load int* %idx1
53 %idx2 = getelementptr %spec_fd_t* %reg1311, long 0, uint 1 ; [#uses=1]
54 %reg1331 = load int* %idx2
55 %cond270 = setlt int %reg1321, %reg1331 ; [#uses=1]
56 br bool %cond270, label %bb9, label %bb6
43 bb5: ; preds = %bb3
44 %reg107-idxcast1 = sext i32 %fd to i64 ; [#uses=2]
45 %reg107-idxcast2 = sext i32 %fd to i64 ; [#uses=1]
46 %reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1]
47 %idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1]
48 %reg1321 = load i32* %idx1 ; [#uses=3]
49 %idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1 ; [#uses=1]
50 %reg1331 = load i32* %idx2 ; [#uses=1]
51 %cond270 = icmp slt i32 %reg1321, %reg1331 ; [#uses=1]
52 br i1 %cond270, label %bb9, label %bb6
5753
58 bb6: ;[#uses=1]
59 %reg134 = load int* %dbglvl ; [#uses=1]
60 %cond271 = setle int %reg134, 4 ; [#uses=1]
61 br bool %cond271, label %bb8, label %bb7
54 bb6: ; preds = %bb5
55 %reg134 = load i32* @dbglvl ; [#uses=1]
56 %cond271 = icmp sle i32 %reg134, 4 ; [#uses=1]
57 br i1 %cond271, label %bb8, label %bb7
6258
63 bb7: ;[#uses=1]
64 %cast277 = getelementptr [4 x sbyte]* %.LC10, long 0, long 0 ; [#uses=0]
59 bb7: ; preds = %bb6
60 %cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0 ; [#uses=0]
6561 br label %bb8
6662
67 bb8: ;[#uses=3]
63 bb8: ; preds = %bb7, %bb6
6864 br label %UnifiedExitNode
6965
70 bb9: ;[#uses=1]
71 %reg107-idxcast3 = cast int %fd to long ; [#uses=1]
72 %idx3 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast3, uint 3 ; [#uses=1]
73 %reg1601 = load ubyte** %idx3
74 %reg132-idxcast1 = cast int %reg1321 to long ; [#uses=1]
75 %idx4 = getelementptr ubyte* %reg1601, long %reg132-idxcast1 ; [#uses=2]
76 %reg1621 = load ubyte* %idx4
77 %cast108 = cast ubyte %reg1621 to long ; [#uses=0]
78 %reg157 = add int %reg1321, 1 ; [#uses=1]
79 %idx5 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2
80 store int %reg157, int* %idx5
81 %reg163 = load int* %dbglvl ; [#uses=1]
82 %cond272 = setle int %reg163, 4 ; [#uses=1]
83 br bool %cond272, label %bb11, label %bb10
66 bb9: ; preds = %bb5
67 %reg107-idxcast3 = sext i32 %fd to i64 ; [#uses=1]
68 %idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; [#uses=1]
69 %reg1601 = load i8** %idx3 ; [#uses=1]
70 %reg132-idxcast1 = sext i32 %reg1321 to i64 ; [#uses=1]
71 %idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1 ; [#uses=1]
72 %reg1621 = load i8* %idx4 ; [#uses=2]
73 %cast108 = zext i8 %reg1621 to i64 ; [#uses=0]
74 %reg157 = add i32 %reg1321, 1 ; [#uses=1]
75 %idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1]
76 store i32 %reg157, i32* %idx5
77 %reg163 = load i32* @dbglvl ; [#uses=1]
78 %cond272 = icmp sle i32 %reg163, 4 ; [#uses=1]
79 br i1 %cond272, label %bb11, label %bb10
8480
85 bb10: ;[#uses=1]
86 %cast279 = getelementptr [4 x sbyte]* %.LC11, long 0, long 0 ; [#uses=0]
81 bb10: ; preds = %bb9
82 %cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0 ; [#uses=0]
8783 br label %bb11
8884
89 bb11: ;[#uses=3]
90 %cast291 = cast ubyte %reg1621 to int ; [#uses=1]
85 bb11: ; preds = %bb10, %bb9
86 %cast291 = zext i8 %reg1621 to i32 ; [#uses=1]
9187 br label %UnifiedExitNode
9288
93 UnifiedExitNode: ;[#uses=3]
94 %UnifiedRetVal = phi int [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; [#uses=1]
95 ret int %UnifiedRetVal
89 UnifiedExitNode: ; preds = %bb11, %bb8, %bb4
90 %UnifiedRetVal = phi i32 [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; [#uses=1]
91 ret i32 %UnifiedRetVal
9692 }
9793
98 declare int "puts"(sbyte*)
94 declare i32 @puts(i8*)
9995
100 declare int "printf"(sbyte*, ...)
96 declare i32 @printf(i8*, ...)
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -simplifycfg | llvm-dis
0 ; RUN: llvm-as < %s | opt -adce -simplifycfg | llvm-dis
1 %FILE = type { i32, i8*, i8*, i8, i8, i32, i32, i32 }
2 %spec_fd_t = type { i32, i32, i32, i8* }
3 @__iob = external global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1]
4 @dbglvl = global i32 4 ; [#uses=3]
5 @spec_fd = external global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4]
6 @.LC9 = internal global [34 x i8] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x i8]*> [#uses=1]
7 @.LC10 = internal global [4 x i8] c"EOF\00" ; <[4 x i8]*> [#uses=1]
8 @.LC11 = internal global [4 x i8] c"%d\0A\00" ; <[4 x i8]*> [#uses=1]
9 @.LC12 = internal global [17 x i8] c"spec_getc: %d = \00" ; <[17 x i8]*> [#uses=1]
110
2 %FILE = type { int, ubyte*, ubyte*, ubyte, ubyte, uint, uint, uint }
3 %spec_fd_t = type { int, int, int, ubyte* }
4 %__iob = uninitialized global [20 x %FILE] ; <[20 x %FILE]*> [#uses=1]
5 %dbglvl = global int 4 ; [#uses=3]
6 %spec_fd = uninitialized global [3 x %spec_fd_t] ; <[3 x %spec_fd_t]*> [#uses=4]
7 %.LC9 = internal global [34 x sbyte] c"spec_read: fd=%d, > MAX_SPEC_FD!\0A\00" ; <[34 x sbyte]*> [#uses=1]
8 %.LC10 = internal global [4 x sbyte] c"EOF\00" ; <[4 x sbyte]*> [#uses=1]
9 %.LC11 = internal global [4 x sbyte] c"%d\0A\00" ; <[4 x sbyte]*> [#uses=1]
10 %.LC12 = internal global [17 x sbyte] c"spec_getc: %d = \00" ; <[17 x sbyte]*> [#uses=1]
11 declare i32 @fprintf(%FILE*, i8*, ...)
1112
12 implementation ; Functions:
13 declare void @exit(i32)
1314
14 declare int "fprintf"(%FILE*, sbyte*, ...)
15 declare i32 @remove(i8*)
1516
16 declare void "exit"(int)
17 declare i32 @fputc(i32, %FILE*)
1718
18 declare int "remove"(sbyte*)
19 declare i32 @fwrite(i8*, i32, i32, %FILE*)
1920
20 declare int "fputc"(int, %FILE*)
21 declare void @perror(i8*)
2122
22 declare uint "fwrite"(sbyte*, uint, uint, %FILE*)
23 define i32 @spec_getc(i32 %fd) {
24 %reg109 = load i32* @dbglvl ; [#uses=1]
25 %cond266 = icmp sle i32 %reg109, 4 ; [#uses=1]
26 br i1 %cond266, label %bb3, label %bb2
2327
24 declare void "perror"(sbyte*)
25
26 int "spec_getc"(int %fd) {
27 ;
28 %reg109 = load int* %dbglvl ; [#uses=1]
29 %cond266 = setle int %reg109, 4 ; [#uses=1]
30 br bool %cond266, label %bb3, label %bb2
31
32 bb2: ;[#uses=1]
33 %cast273 = getelementptr [17 x sbyte]* %.LC12, long 0, long 0 ; [#uses=0]
28 bb2: ; preds = %0
29 %cast273 = getelementptr [17 x i8]* @.LC12, i64 0, i64 0 ; [#uses=0]
3430 br label %bb3
3531
36 bb3: ;[#uses=2]
37 %cond267 = setle int %fd, 3 ; [#uses=1]
38 ; br bool %cond267, label %bb5, label %bb4
32 bb3: ; preds = %bb2, %0
33 %cond267 = icmp sle i32 %fd, 3 ; [#uses=0]
3934 br label %bb5
4035
41 bb4: ;[#uses=2]
42 %reg111 = getelementptr [20 x %FILE]* %__iob, long 0, long 1, uint 3 ; [#uses=1]
43 %cast274 = getelementptr [34 x sbyte]* %.LC9, long 0, long 0 ; [#uses=0]
44 %cast282 = cast ubyte* %reg111 to %FILE* ; <%FILE*> [#uses=0]
45 call void %exit( int 1 )
36 bb4: ; No predecessors!
37 %reg111 = getelementptr [20 x %FILE]* @__iob, i64 0, i64 1, i32 3 ; [#uses=1]
38 %cast274 = getelementptr [34 x i8]* @.LC9, i64 0, i64 0 ; [#uses=0]
39 %cast282 = bitcast i8* %reg111 to %FILE* ; <%FILE*> [#uses=0]
40 call void @exit( i32 1 )
4641 br label %UnifiedExitNode
4742
48 bb5: ;[#uses=1]
49 %reg107-idxcast1 = cast int %fd to long ; [#uses=2]
50 %reg107-idxcast2 = cast int %fd to long ; [#uses=1]
51 %reg1311 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1]
52 %idx1 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2 ; [#uses=3]
53 %reg1321 = load int* %idx1
54 %idx2 = getelementptr %spec_fd_t* %reg1311, long 0, uint 1 ; [#uses=1]
55 %reg1331 = load int* %idx2
56 %cond270 = setlt int %reg1321, %reg1331 ; [#uses=1]
57 br bool %cond270, label %bb9, label %bb6
43 bb5: ; preds = %bb3
44 %reg107-idxcast1 = sext i32 %fd to i64 ; [#uses=2]
45 %reg107-idxcast2 = sext i32 %fd to i64 ; [#uses=1]
46 %reg1311 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast2 ; <%spec_fd_t*> [#uses=1]
47 %idx1 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1]
48 %reg1321 = load i32* %idx1 ; [#uses=3]
49 %idx2 = getelementptr %spec_fd_t* %reg1311, i64 0, i32 1 ; [#uses=1]
50 %reg1331 = load i32* %idx2 ; [#uses=1]
51 %cond270 = icmp slt i32 %reg1321, %reg1331 ; [#uses=1]
52 br i1 %cond270, label %bb9, label %bb6
5853
59 bb6: ;[#uses=1]
60 %reg134 = load int* %dbglvl ; [#uses=1]
61 %cond271 = setle int %reg134, 4 ; [#uses=1]
62 br bool %cond271, label %bb8, label %bb7
54 bb6: ; preds = %bb5
55 %reg134 = load i32* @dbglvl ; [#uses=1]
56 %cond271 = icmp sle i32 %reg134, 4 ; [#uses=1]
57 br i1 %cond271, label %bb8, label %bb7
6358
64 bb7: ;[#uses=1]
65 %cast277 = getelementptr [4 x sbyte]* %.LC10, long 0, long 0 ; [#uses=0]
59 bb7: ; preds = %bb6
60 %cast277 = getelementptr [4 x i8]* @.LC10, i64 0, i64 0 ; [#uses=0]
6661 br label %bb8
6762
68 bb8: ;[#uses=3]
63 bb8: ; preds = %bb7, %bb6
6964 br label %UnifiedExitNode
7065
71 bb9: ;[#uses=1]
72 %reg107-idxcast3 = cast int %fd to long ; [#uses=1]
73 %idx3 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast3, uint 3 ; [#uses=1]
74 %reg1601 = load ubyte** %idx3
75 %reg132-idxcast1 = cast int %reg1321 to long ; [#uses=1]
76 %idx4 = getelementptr ubyte* %reg1601, long %reg132-idxcast1 ; [#uses=2]
77 %reg1621 = load ubyte* %idx4
78 %cast108 = cast ubyte %reg1621 to long ; [#uses=0]
79 %reg157 = add int %reg1321, 1 ; [#uses=1]
80 %idx5 = getelementptr [3 x %spec_fd_t]* %spec_fd, long 0, long %reg107-idxcast1, uint 2
81 store int %reg157, int* %idx5
82 %reg163 = load int* %dbglvl ; [#uses=1]
83 %cond272 = setle int %reg163, 4 ; [#uses=1]
84 br bool %cond272, label %bb11, label %bb10
66 bb9: ; preds = %bb5
67 %reg107-idxcast3 = sext i32 %fd to i64 ; [#uses=1]
68 %idx3 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast3, i32 3 ; [#uses=1]
69 %reg1601 = load i8** %idx3 ; [#uses=1]
70 %reg132-idxcast1 = sext i32 %reg1321 to i64 ; [#uses=1]
71 %idx4 = getelementptr i8* %reg1601, i64 %reg132-idxcast1 ; [#uses=1]
72 %reg1621 = load i8* %idx4 ; [#uses=2]
73 %cast108 = zext i8 %reg1621 to i64 ; [#uses=0]
74 %reg157 = add i32 %reg1321, 1 ; [#uses=1]
75 %idx5 = getelementptr [3 x %spec_fd_t]* @spec_fd, i64 0, i64 %reg107-idxcast1, i32 2 ; [#uses=1]
76 store i32 %reg157, i32* %idx5
77 %reg163 = load i32* @dbglvl ; [#uses=1]
78 %cond272 = icmp sle i32 %reg163, 4 ; [#uses=1]
79 br i1 %cond272, label %bb11, label %bb10
8580
86 bb10: ;[#uses=1]
87 %cast279 = getelementptr [4 x sbyte]* %.LC11, long 0, long 0 ; [#uses=0]
81 bb10: ; preds = %bb9
82 %cast279 = getelementptr [4 x i8]* @.LC11, i64 0, i64 0 ; [#uses=0]
8883 br label %bb11
8984
90 bb11: ;[#uses=3]
91 %cast291 = cast ubyte %reg1621 to int ; [#uses=1]
85 bb11: ; preds = %bb10, %bb9
86 %cast291 = zext i8 %reg1621 to i32 ; [#uses=1]
9287 br label %UnifiedExitNode
9388
94 UnifiedExitNode: ;[#uses=3]
95 %UnifiedRetVal = phi int [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; [#uses=1]
96 ret int %UnifiedRetVal
89 UnifiedExitNode: ; preds = %bb11, %bb8, %bb4
90 %UnifiedRetVal = phi i32 [ 42, %bb4 ], [ -1, %bb8 ], [ %cast291, %bb11 ] ; [#uses=1]
91 ret i32 %UnifiedRetVal
9792 }
9893
99 declare int "puts"(sbyte*)
94 declare i32 @puts(i8*)
10095
101 declare int "printf"(sbyte*, ...)
96 declare i32 @printf(i8*, ...)
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce | llvm-dis | not grep call
0 ; RUN: llvm-as < %s | opt -adce | llvm-dis | not grep call
11
22 ; The call is not live just because the PHI uses the call retval!
33
4 int %test(int %X) {
5 br label %Done
4 define i32 @test(i32 %X) {
5 ;
6 br label %Done
67
7 DeadBlock:
8 %Y = call int %test(int 0)
9 br label %Done
8 DeadBlock: ; No predecessors!
9 %Y = call i32 @test( i32 0 ) ; [#uses=1]
10 br label %Done
1011
11 Done:
12 %Z = phi int [%X, %0], [%Y, %DeadBlock]
13 ret int %Z
12 Done: ; preds = %DeadBlock, %0
13 %Z = phi i32 [ %X, %0 ], [ %Y, %DeadBlock ] ; [#uses=1]
14 ret i32 %Z
1415 }
16
None ; RUN: llvm-upgrade < %s | llvm-as | opt -adce -disable-output
0 ; RUN: llvm-as < %s | opt -adce -disable-output
11
2 void %test() {
2 define void @test() {
33 unreachable
44 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion -instcombine | not grep load
0 ; RUN: llvm-as < %s | opt -argpromotion -instcombine | not grep load
11
2 %QuadTy = type {int, int, int, int}
2 %QuadTy = type { i32, i32, i32, i32 }
3 @G = constant %QuadTy {
4 i32 0,
5 i32 0,
6 i32 17,
7 i32 25 } ; <%QuadTy*> [#uses=1]
38
4 %G = constant %QuadTy {int 0, int 0, int 17, int 25 }
5
6 implementation
7
8 internal int %test(%QuadTy* %P) {
9 %A = getelementptr %QuadTy* %P, long 0, uint 3
10 %B = getelementptr %QuadTy* %P, long 0, uint 2
11 %a = load int* %A
12 %b = load int* %B
13 %V = add int %a, %b
14 ret int %V
9 define internal i32 @test(%QuadTy* %P) {
10 %A = getelementptr %QuadTy* %P, i64 0, i32 3 ; [#uses=1]
11 %B = getelementptr %QuadTy* %P, i64 0, i32 2 ; [#uses=1]
12 %a = load i32* %A ; [#uses=1]
13 %b = load i32* %B ; [#uses=1]
14 %V = add i32 %a, %b ; [#uses=1]
15 ret i32 %V
1516 }
1617
17 int %caller() {
18 %V = call int %test(%QuadTy* %G)
19 ret int %V
18 define i32 @caller() {
19 %V = call i32 @test( %QuadTy* @G ) ; [#uses=1]
20 ret i32 %V
2021 }
22
None ; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion -mem2reg | llvm-dis | not grep alloca
1
2 implementation
3
4 internal int %test(int *%X, int* %Y) {
5 %A = load int* %X
6 %B = load int* %Y
7 %C = add int %A, %B
8 ret int %C
0 ; RUN: llvm-as < %s | opt -argpromotion -mem2reg | llvm-dis | not grep alloca
1 define internal i32 @test(i32* %X, i32* %Y) {
2 %A = load i32* %X ; [#uses=1]
3 %B = load i32* %Y ; [#uses=1]
4 %C = add i32 %A, %B ; [#uses=1]
5 ret i32 %C
96 }
107
11 internal int %caller(int* %B) {
12 %A = alloca int
13 store int 1, int* %A
14 %C = call int %test(int* %A, int* %B)
15 ret int %C
8 define internal i32 @caller(i32* %B) {
9 %A = alloca i32 ; [#uses=2]
10 store i32 1, i32* %A
11 %C = call i32 @test( i32* %A, i32* %B ) ; [#uses=1]
12 ret i32 %C
1613 }
1714
18 int %callercaller() {
19 %B = alloca int
20 store int 2, int* %B
21 %X = call int %caller(int* %B)
22 ret int %X
15 define i32 @callercaller() {
16 %B = alloca i32 ; [#uses=2]
17 store i32 2, i32* %B
18 %X = call i32 @caller( i32* %B ) ; [#uses=1]
19 ret i32 %X
2320 }
21
None ; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion -instcombine | llvm-dis | not grep load
0 ; RUN: llvm-as < %s | opt -argpromotion -instcombine | llvm-dis | not grep load
11
2 %G1 = constant int 0
3 %G2 = constant int* %G1
2 @G1 = constant i32 0 ; [#uses=1]
3 @G2 = constant i32* @G1 ; [#uses=1]
44
5 implementation
6
7 internal int %test(int **%X) {
8 %Y = load int** %X
9 %X = load int* %Y
10 ret int %X
5 define internal i32 @test(i32** %X) {
6 %Y = load i32** %X ; [#uses=1]
7 %X.upgrd.1 = load i32* %Y ; [#uses=1]
8 ret i32 %X.upgrd.1
119 }
1210
13 int %caller(int** %P) {
14 %X = call int %test(int** %G2)
15 ret int %X
11 define i32 @caller(i32** %P) {
12 %X = call i32 @test( i32** @G2 ) ; [#uses=1]
13 ret i32 %X
1614 }
15
None ; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion | llvm-dis | \
0 ; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \
11 ; RUN: not grep {load int\* null}
22
3 implementation
3 define internal i32 @callee(i1 %C, i32* %P) {
4 br i1 %C, label %T, label %F
45
5 internal int %callee(bool %C, int* %P) {
6 br bool %C, label %T, label %F
7 T:
8 ret int 17
9 F:
10 %X = load int* %P
11 ret int %X
6 T: ; preds = %0
7 ret i32 17
8
9 F: ; preds = %0
10 %X = load i32* %P ; [#uses=1]
11 ret i32 %X
1212 }
1313
14 int %foo() {
15 %X = call int %callee(bool true, int* null)
16 ret int %X
14 define i32 @foo() {
15 %X = call i32 @callee( i1 true, i32* null ) ; [#uses=1]
16 ret i32 %X
1717 }
1818
None ; RUN: llvm-upgrade < %s | llvm-as | opt -argpromotion | llvm-dis | \
0 ; RUN: llvm-as < %s | opt -argpromotion | llvm-dis | \
11 ; RUN: grep {load i32\\* %A}
22
3 implementation
3 define internal i32 @callee(i1 %C, i32* %P) {
4 br i1 %C, label %T, label %F
45
5 internal int %callee(bool %C, int* %P) {
6 br bool %C, label %T, label %F
7 T:
8 ret int 17
9 F:
10 %X = load int* %P
11 ret int %X
6 T: ; preds = %0
7 ret i32 17
8
9 F: ; preds = %0
10 %X = load i32* %P ; [#uses=1]
11 ret i32 %X
1212 }
1313
14 int %foo() {
15 %A = alloca int
16 store int 17, int* %A
17 %X = call int %callee(bool false, int* %A)
18 ret int %X
14 define i32 @foo() {
15 %A = alloca i32 ; [#uses=2]
16 store i32 17, i32* %A
17 %X = call i32 @callee( i1 false, i32* %A ) ; [#uses=1]
18 ret i32 %X
1919 }
2020
None ; RUN: llvm-upgrade < %s | llvm-as | opt -block-placement -disable-output -print
0 ; RUN: llvm-as < %s | opt -block-placement -disable-output -print
11
2 int %test() {
2 define i32 @test() {
3 br i1 true, label %X, label %Y
34
4 br bool true, label %X, label %Y
5 A:
6 ret int 0
7 X:
8 br label %A
9 Y:
10 br label %A
5 A: ; preds = %Y, %X
6 ret i32 0
7
8 X: ; preds = %0
9 br label %A
10
11 Y: ; preds = %0
12 br label %A
1113 }
14
None ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output
0 ; RUN: llvm-as < %s | opt -loop-extract -disable-output
11
2 void %solve() {
2 define void @solve() {
33 entry:
44 br label %loopentry.0
55
6 loopentry.0: ; preds = %entry, %endif.0
7 br bool false, label %no_exit.0, label %loopexit.0
6 loopentry.0: ; preds = %endif.0, %entry
7 br i1 false, label %no_exit.0, label %loopexit.0
88
99 no_exit.0: ; preds = %loopentry.0
10 br bool false, label %then.0, label %endif.0
10 br i1 false, label %then.0, label %endif.0
1111
1212 then.0: ; preds = %no_exit.0
13 br bool false, label %shortcirc_done, label %shortcirc_next
13 br i1 false, label %shortcirc_done, label %shortcirc_next
1414
1515 shortcirc_next: ; preds = %then.0
1616 br label %shortcirc_done
1717
18 shortcirc_done: ; preds = %then.0, %shortcirc_next
19 br bool false, label %then.1, label %endif.1
18 shortcirc_done: ; preds = %shortcirc_next, %then.0
19 br i1 false, label %then.1, label %endif.1
2020
2121 then.1: ; preds = %shortcirc_done
22 br bool false, label %cond_true, label %cond_false
22 br i1 false, label %cond_true, label %cond_false
2323
2424 cond_true: ; preds = %then.1
2525 br label %cond_continue
2727 cond_false: ; preds = %then.1
2828 br label %cond_continue
2929
30 cond_continue: ; preds = %cond_true, %cond_false
30 cond_continue: ; preds = %cond_false, %cond_true
3131 br label %return
3232
3333 after_ret.0: ; No predecessors!
3434 br label %endif.1
3535
36 endif.1: ; preds = %shortcirc_done, %after_ret.0
36 endif.1: ; preds = %after_ret.0, %shortcirc_done
3737 br label %endif.0
3838
39 endif.0: ; preds = %no_exit.0, %endif.1
39 endif.0: ; preds = %endif.1, %no_exit.0
4040 br label %loopentry.0
4141
4242 loopexit.0: ; preds = %loopentry.0
43 br bool false, label %then.2, label %endif.2
43 br i1 false, label %then.2, label %endif.2
4444
4545 then.2: ; preds = %loopexit.0
46 br bool false, label %then.3, label %endif.3
46 br i1 false, label %then.3, label %endif.3
4747
4848 then.3: ; preds = %then.2
4949 br label %return
5151 after_ret.1: ; No predecessors!
5252 br label %endif.3
5353
54 endif.3: ; preds = %then.2, %after_ret.1
54 endif.3: ; preds = %after_ret.1, %then.2
5555 br label %endif.2
5656
57 endif.2: ; preds = %loopexit.0, %endif.3
57 endif.2: ; preds = %endif.3, %loopexit.0
5858 br label %loopentry.1
5959
60 loopentry.1: ; preds = %endif.2, %no_exit.1
61 br bool false, label %no_exit.1, label %loopexit.1
60 loopentry.1: ; preds = %no_exit.1, %endif.2
61 br i1 false, label %no_exit.1, label %loopexit.1
6262
6363 no_exit.1: ; preds = %loopentry.1
6464 br label %loopentry.1
6969 after_ret.2: ; No predecessors!
7070 br label %return
7171
72 return: ; preds = %cond_continue, %then.3, %loopexit.1, %after_ret.2
72 return: ; preds = %after_ret.2, %loopexit.1, %then.3, %cond_continue
7373 ret void
7474 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output
0 ; RUN: llvm-as < %s | opt -loop-extract -disable-output
11 ; This testcase is failing the loop extractor because not all exit blocks
22 ; are dominated by all of the live-outs.
33
4 implementation ; Functions:
4 define i32 @ab(i32 %alpha, i32 %beta) {
5 entry:
6 br label %loopentry.1.preheader
57
6 int %ab(int %alpha, int %beta) {
7 entry:
8 br label %loopentry.1.preheader
8 loopentry.1.preheader: ; preds = %entry
9 br label %loopentry.1
910
10 loopentry.1.preheader: ; preds = %then.1
11 br label %loopentry.1
11 loopentry.1: ; preds = %no_exit.1, %loopentry.1.preheader
12 br i1 false, label %no_exit.1, label %loopexit.0.loopexit1
1213
13 loopentry.1: ; preds = %loopentry.1.preheader, %no_exit.1
14 br bool false, label %no_exit.1, label %loopexit.0.loopexit1
14 no_exit.1: ; preds = %loopentry.1
15 %tmp.53 = load i32* null ; [#uses=1]
16 br i1 false, label %shortcirc_next.2, label %loopentry.1
1517
16 no_exit.1: ; preds = %loopentry.1
17 %tmp.53 = load int* null ; [#uses=1]
18 br bool false, label %shortcirc_next.2, label %loopentry.1
18 shortcirc_next.2: ; preds = %no_exit.1
19 %tmp.563 = call i32 @wins( i32 0, i32 %tmp.53, i32 3 ) ; [#uses=0]
20 ret i32 0
1921
20 shortcirc_next.2: ; preds = %no_exit.1
21 %tmp.563 = call int %wins( int 0, int %tmp.53, int 3 ) ; [#uses=0]
22 ret int 0
22 loopexit.0.loopexit1: ; preds = %loopentry.1
23 br label %loopexit.0
2324
24 loopexit.0.loopexit1: ; preds = %loopentry.1
25 br label %loopexit.0
26
27 loopexit.0: ; preds = %loopexit.0.loopexit, %loopexit.0.loopexit1
28 ret int 0
25 loopexit.0: ; preds = %loopexit.0.loopexit1
26 ret i32 0
2927 }
3028
31 declare int %wins(int, int, int)
29 declare i32 @wins(i32, i32, i32)
3230
33 declare ushort %ab_code()
31 declare i16 @ab_code()
32
None ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract-single -disable-output
0 ; RUN: llvm-as < %s | opt -loop-extract-single -disable-output
11
2 void %ab() {
2 define void @ab() {
33 entry:
4 br label %codeReplTail
4 br label %codeReplTail
55
6 then.1: ; preds = %codeReplTail
7 br label %loopentry.1
6 then.1: ; preds = %codeReplTail
7 br label %loopentry.1
88
9 loopentry.1: ; preds = %loopentry.1.preheader, %no_exit.1
10 br bool false, label %no_exit.1, label %loopexit.0.loopexit1
9 loopentry.1: ; preds = %no_exit.1, %then.1
10 br i1 false, label %no_exit.1, label %loopexit.0.loopexit1
1111
12 no_exit.1: ; preds = %loopentry.1
13 br label %loopentry.1
12 no_exit.1: ; preds = %loopentry.1
13 br label %loopentry.1
1414
15 loopexit.0.loopexit: ; preds = %codeReplTail
16 ret void
15 loopexit.0.loopexit: ; preds = %codeReplTail
16 ret void
1717
18 loopexit.0.loopexit1: ; preds = %loopentry.1
19 ret void
18 loopexit.0.loopexit1: ; preds = %loopentry.1
19 ret void
2020
21 codeReplTail: ; preds = %codeRepl, %codeReplTail
22 switch ushort 0, label %codeReplTail [
23 ushort 0, label %loopexit.0.loopexit
24 ushort 1, label %then.1
25 ]
21 codeReplTail: ; preds = %codeReplTail, %entry
22 switch i16 0, label %codeReplTail [
23 i16 0, label %loopexit.0.loopexit
24 i16 1, label %then.1
25 ]
2626 }
27
None ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output
0 ; RUN: llvm-as < %s | opt -loop-extract -disable-output
11
2 void %sendMTFValues() {
2 define void @sendMTFValues() {
33 entry:
4 br bool false, label %then.1, label %endif.1
4 br i1 false, label %then.1, label %endif.1
55
66 then.1: ; preds = %entry
7 br bool false, label %loopentry.6.preheader, label %else.0
7 br i1 false, label %loopentry.6.preheader, label %else.0
88
99 endif.1: ; preds = %entry
1010 ret void
1313 ret void
1414
1515 loopentry.6.preheader: ; preds = %then.1
16 br bool false, label %endif.7.preheader, label %loopexit.9
16 br i1 false, label %endif.7.preheader, label %loopexit.9
1717
1818 endif.7.preheader: ; preds = %loopentry.6.preheader
19 %tmp.183 = add int 0, -1 ; > [#uses=1]
19 %tmp.183 = add i32 0, -1 ; > [#uses=1]
2020 br label %endif.7
2121
22 endif.7: ; preds = %endif.7.preheader, %loopexit.15
23 br bool false, label %loopentry.10, label %loopentry.12
22 endif.7: ; preds = %loopexit.15, %endif.7.preheader
23 br i1 false, label %loopentry.10, label %loopentry.12
2424
2525 loopentry.10: ; preds = %endif.7
2626 br label %loopentry.12
2727
28 loopentry.12: ; preds = %endif.7, %loopentry.10
29 %ge.2.1 = phi int [ 0, %loopentry.10 ], [ %tmp.183, %endif.7 ] ; [#uses=0]
30 br bool false, label %loopexit.14, label %no_exit.11
28 loopentry.12: ; preds = %loopentry.10, %endif.7
29 %ge.2.1 = phi i32 [ 0, %loopentry.10 ], [ %tmp.183, %endif.7 ] ; [#uses=0]
30 br i1 false, label %loopexit.14, label %no_exit.11
3131
3232 no_exit.11: ; preds = %loopentry.12
3333 ret void
3434
3535 loopexit.14: ; preds = %loopentry.12
36 br bool false, label %loopexit.15, label %no_exit.14
36 br i1 false, label %loopexit.15, label %no_exit.14
3737
3838 no_exit.14: ; preds = %loopexit.14
3939 ret void
4040
4141 loopexit.15: ; preds = %loopexit.14
42 br bool false, label %endif.7, label %loopexit.9
42 br i1 false, label %endif.7, label %loopexit.9
4343
44 loopexit.9: ; preds = %loopentry.6.preheader, %loopexit.15
44 loopexit.9: ; preds = %loopexit.15, %loopentry.6.preheader
4545 ret void
4646 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output
0 ; RUN: llvm-as < %s | opt -loop-extract -disable-output
11
2 %struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, int, int }
3 %struct.table_t = type { [1 x %struct.node_t**], [1 x %struct.node_t**] }
2 %struct.node_t = type { double*, %struct.node_t*, %struct.node_t**, double**, double*, i32, i32 }
3 %struct.table_t = type { [1 x %struct.node_t**], [1 x %struct.node_t**] }
44
5 implementation ; Functions:
5 define void @make_tables() {
6 entry:
7 %tmp.0.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=1]
8 br i1 false, label %no_exit.i, label %loopexit.i
69
7 void %make_tables() {
8 entry:
9 %tmp.0.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=1]
10 br bool false, label %no_exit.i, label %loopexit.i
10 no_exit.i: ; preds = %no_exit.i, %entry
11 %prev_node.0.i.1 = phi %struct.node_t* [ %tmp.16.i, %no_exit.i ], [ %tmp.0.i, %entry ] ; <%struct.node_t*> [#uses=0]
12 %tmp.16.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=2]
13 br i1 false, label %no_exit.i, label %loopexit.i
1114
12 no_exit.i: ; preds = %entry, %no_exit.i
13 %prev_node.0.i.1 = phi %struct.node_t* [ %tmp.16.i, %no_exit.i ], [ %tmp.0.i, %entry ] ; <%struct.node_t*> [#uses=0]
14 %tmp.16.i = malloc %struct.node_t ; <%struct.node_t*> [#uses=2]
15 br bool false, label %no_exit.i, label %loopexit.i
15 loopexit.i: ; preds = %no_exit.i, %entry
16 %cur_node.0.i.0 = phi %struct.node_t* [ null, %entry ], [ %tmp.16.i, %no_exit.i ] ; <%struct.node_t*> [#uses=0]
17 ret void
18 }
1619
17 loopexit.i: ; preds = %entry, %no_exit.i
18 %cur_node.0.i.0 = phi %struct.node_t* [ null, %entry ], [ %tmp.16.i, %no_exit.i ] ; <%struct.node_t*> [#uses=0]
19 ret void
20 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output
0 ; RUN: llvm-as < %s | opt -loop-extract -disable-output
11
2 define void @maketree() {
3 entry:
4 br i1 false, label %no_exit.1, label %loopexit.0
25
3 void %maketree() {
4 entry:
5 br bool false, label %no_exit.1, label %loopexit.0
6 no_exit.1: ; preds = %endif, %expandbox.entry, %entry
7 br i1 false, label %endif, label %expandbox.entry
68
7 no_exit.1: ; preds = %entry, %expandbox.entry, %endif
8 br bool false, label %endif, label %expandbox.entry
9 expandbox.entry: ; preds = %no_exit.1
10 br i1 false, label %loopexit.1, label %no_exit.1
911
10 expandbox.entry: ; preds = %no_exit.1
11 br bool false, label %loopexit.1, label %no_exit.1
12 endif: ; preds = %no_exit.1
13 br i1 false, label %loopexit.1, label %no_exit.1
1214
13 endif: ; preds = %no_exit.1
14 br bool false, label %loopexit.1, label %no_exit.1
15 loopexit.1: ; preds = %endif, %expandbox.entry
16 %ic.i.0.0.4 = phi i32 [ 0, %expandbox.entry ], [ 0, %endif ] ; [#uses=0]
17 ret void
1518
16 loopexit.1: ; preds = %expandbox.entry, %endif
17 %ic.i.0.0.4 = phi int [ 0, %expandbox.entry ], [ 0, %endif ] ; [#uses=0]
18 ret void
19 loopexit.0: ; preds = %entry
20 ret void
21 }
1922
20 loopexit.0: ; preds = %entry
21 ret void
22 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -loop-extract -disable-output
0 ; RUN: llvm-as < %s | opt -loop-extract -disable-output
11
2 implementation ; Functions:
2 declare i32 @_IO_getc()
33
4 declare int %_IO_getc()
4 declare void @__errno_location()
55
6 declare void %__errno_location()
7
8 void %yylex() {
6 define void @yylex() {
97 entry:
10 switch uint 0, label %label.126 [
11 uint 0, label %return
12 uint 61, label %combine
13 uint 33, label %combine
14 uint 94, label %combine
15 uint 37, label %combine
16 uint 47, label %combine
17 uint 42, label %combine
18 uint 62, label %combine
19 uint 60, label %combine
20 uint 58, label %combine
21 uint 124, label %combine
22 uint 38, label %combine
23 uint 45, label %combine
24 uint 43, label %combine
25 uint 34, label %string_constant
26 uint 39, label %char_constant
27 uint 46, label %loopexit.2
28 uint 57, label %loopexit.2
29 uint 56, label %loopexit.2
30 uint 55, label %loopexit.2
31 uint 54, label %loopexit.2
32 uint 53, label %loopexit.2
33 uint 52, label %loopexit.2
34 uint 51, label %loopexit.2
35 uint 50, label %loopexit.2
36 uint 49, label %loopexit.2
37 uint 48, label %loopexit.2
38 uint 95, label %letter
39 uint 122, label %letter
40 uint 121, label %letter
41 uint 120, label %letter
42 uint 119, label %letter
43 uint 118, label %letter
44 uint 117, label %letter
45 uint 116, label %letter
46 uint 115, label %letter
47 uint 114, label %letter
48 uint 113, label %letter
49 uint 112, label %letter
50 uint 111, label %letter
51 uint 110, label %letter
52 uint 109, label %letter
53 uint 108, label %letter
54 uint 107, label %letter
55 uint 106, label %letter
56 uint 105, label %letter
57 uint 104, label %letter
58 uint 103, label %letter
59 uint 102, label %letter
60 uint 101, label %letter
61 uint 100, label %letter
62 uint 99, label %letter
63 uint 98, label %letter
64 uint 97, label %letter
65 uint 90, label %letter
66 uint 89, label %letter
67 uint 88, label %letter
68 uint 87, label %letter
69 uint 86, label %letter
70 uint 85, label %letter
71 uint 84, label %letter
72 uint 83, label %letter
73 uint 82, label %letter
74 uint 81, label %letter
75 uint 80, label %letter
76 uint 79, label %letter
77 uint 78, label %letter
78 uint 77, label %letter
79 uint 75, label %letter
80 uint 74, label %letter
81 uint 73, label %letter
82 uint 72, label %letter
83 uint 71, label %letter
84 uint 70, label %letter
85 uint 69, label %letter
86 uint 68, label %letter
87 uint 67, label %letter
88 uint 66, label %letter
89 uint 65, label %letter
90 uint 64, label %label.13
91 uint 76, label %label.12
92 uint 36, label %label.11
93 uint 4294967295, label %label.10
8 switch i32 0, label %label.126 [
9 i32 0, label %return
10 i32 61, label %combine
11 i32 33, label %combine
12 i32 94, label %combine
13 i32 37, label %combine
14 i32 47, label %combine
15 i32 42, label %combine
16 i32 62, label %combine
17 i32 60, label %combine
18 i32 58, label %combine
19 i32 124, label %combine
20 i32 38, label %combine
21 i32 45, label %combine
22 i32 43, label %combine
23 i32 34, label %string_constant
24 i32 39, label %char_constant
25 i32 46, label %loopexit.2
26 i32 57, label %loopexit.2
27 i32 56, label %loopexit.2
28 i32 55, label %loopexit.2
29 i32 54, label %loopexit.2
30 i32 53, label %loopexit.2
31 i32 52, label %loopexit.2
32 i32 51, label %loopexit.2
33 i32 50, label %loopexit.2
34 i32 49, label %loopexit.2
35 i32 48, label %loopexit.2
36 i32 95, label %letter
37 i32 122, label %letter
38 i32 121, label %letter
39 i32 120, label %letter
40 i32 119, label %letter
41 i32 118, label %letter
42 i32 117, label %letter
43 i32 116, label %letter
44 i32 115, label %letter
45 i32 114, label %letter
46 i32 113, label %letter
47 i32 112, label %letter
48 i32 111, label %letter
49 i32 110, label %letter
50 i32 109, label %letter
51 i32 108, label %letter
52 i32 107, label %letter
53 i32 106, label %letter
54 i32 105, label %letter
55 i32 104, label %letter
56 i32 103, label %letter
57 i32 102, label %letter
58 i32 101, label %letter
59 i32 100, label %letter
60 i32 99, label %letter
61 i32 98, label %letter
62 i32 97, label %letter
63 i32 90, label %letter
64 i32 89, label %letter
65 i32 88, label %letter
66 i32 87, label %letter
67 i32 86, label %letter
68 i32 85, label %letter
69 i32 84, label %letter
70 i32 83, label %letter
71 i32 82, label %letter
72 i32 81, label %letter
73 i32 80, label %letter
74 i32 79, label %letter
75 i32 78, label %letter
76 i32 77, label %letter
77 i32 75, label %letter
78 i32 74, label %letter
79 i32 73, label %letter
80 i32 72, label %letter
81 i32 71, label %letter
82 i32 70, label %letter
83 i32 69, label %letter
84 i32 68, label %letter
85 i32 67, label %letter
86 i32 66, label %letter
87 i32 65, label %letter
88 i32 64, label %label.13
89 i32 76, label %label.12
90 i32 36, label %label.11
91 i32 -1, label %label.10
9492 ]
9593
9694 label.10: ; preds = %entry
109107 ret void
110108
111109 loopexit.2: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry
112 switch int 0, label %shortcirc_next.14 [
113 int 48, label %then.20
114 int 46, label %endif.38
110 switch i32 0, label %shortcirc_next.14 [
111 i32 48, label %then.20
112 i32 46, label %endif.38
115113 ]
116114
117115 then.20: ; preds = %loopexit.2
118 switch int 0, label %else.4 [
119 int 120, label %then.21
120 int 88, label %then.21
116 switch i32 0, label %else.4 [
117 i32 120, label %then.21
118 i32 88, label %then.21
121119 ]
122120
123121 then.21: ; preds = %then.20, %then.20
130128 ret void
131129
132130 endif.38: ; preds = %loopexit.2
133 br bool false, label %then.40, label %then.39
131 br i1 false, label %then.40, label %then.39
134132
135133 then.39: ; preds = %endif.38
136134 ret void
137135
138136 then.40: ; preds = %endif.38
139 invoke void %__errno_location( )
137 invoke void @__errno_location( )
140138 to label %switchexit.2 unwind label %LongJmpBlkPre
141139
142140 loopentry.6: ; preds = %endif.52
143 switch uint 0, label %switchexit.2 [
144 uint 73, label %label.82
145 uint 105, label %label.82
146 uint 76, label %label.80
147 uint 108, label %label.80
148 uint 70, label %label.78
149 uint 102, label %label.78
141 switch i32 0, label %switchexit.2 [
142 i32 73, label %label.82
143 i32 105, label %label.82
144 i32 76, label %label.80
145 i32 108, label %label.80
146 i32 70, label %label.78
147 i32 102, label %label.78
150148 ]
151149
152150 label.78: ; preds = %loopentry.6, %loopentry.6
156154 ret void
157155
158156 label.82: ; preds = %loopentry.6, %loopentry.6
159 %c.0.15.5 = phi int [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; > [#uses=0]
157 %c.0.15.5 = phi i32 [ %tmp.79417, %loopentry.6 ], [ %tmp.79417, %loopentry.6 ] ; > [#uses=0]
160158 ret void
161159
162 switchexit.2: ; preds = %then.40, %loopentry.6
163 br bool false, label %endif.51, label %loopexit.6
160 switchexit.2: ; preds = %loopentry.6, %then.40
161 br i1 false, label %endif.51, label %loopexit.6
164162
165163 endif.51: ; preds = %switchexit.2
166 br bool false, label %endif.52, label %then.52
164 br i1 false, label %endif.52, label %then.52
167165
168166 then.52: ; preds = %endif.51
169167 ret void
170168
171169 endif.52: ; preds = %endif.51
172 %tmp.79417 = invoke int %_IO_getc( )
173 to label %loopentry.6 unwind label %LongJmpBlkPre ; [#uses=2]
170 %tmp.79417 = invoke i32 @_IO_getc( )
171 to label %loopentry.6 unwind label %LongJmpBlkPre ; [#uses=2]
174172
175173 loopexit.6: ; preds = %switchexit.2
176174 ret void
190188 return: ; preds = %entry
191189 ret void
192190
193 LongJmpBlkPre: ; preds = %then.40, %endif.52
191 LongJmpBlkPre: ; preds = %endif.52, %then.40
194192 ret void
195193 }
None ; RUN: llvm-upgrade < %s | llvm-as | opt -extract-blocks -disable-output
0 ; RUN: llvm-as < %s | opt -extract-blocks -disable-output
11
2 implementation
2 define void @test1() {
3 no_exit.0.i:
4 br i1 false, label %yylex.entry, label %yylex.entry
35
4 void %test1() {
5 no_exit.0.i:
6 br bool false, label %yylex.entry, label %yylex.entry
7
8 yylex.entry:
9 %tmp.1027 = phi int [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ]
10 ret void
11 }
12
13 void %test2() {
14 no_exit.0.i:
15 switch uint 0, label %yylex.entry [
16 uint 0, label %yylex.entry
17 uint 1, label %foo
18 ]
19
20 yylex.entry:
21 %tmp.1027 = phi int [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ]
22 ret void
23 foo:
6 yylex.entry: ; preds = %no_exit.0.i, %no_exit.0.i
7 %tmp.1027 = phi i32 [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ] ; [#uses=0]
248 ret void
259 }
2610
11 define void @test2() {
12 no_exit.0.i:
13 switch i32 0, label %yylex.entry [
14 i32 0, label %yylex.entry
15 i32 1, label %foo
16 ]
17
18 yylex.entry: ; preds = %no_exit.0.i, %no_exit.0.i
19 %tmp.1027 = phi i32 [ 0, %no_exit.0.i ], [ 0, %no_exit.0.i ] ; [#uses=0]
20 ret void
21
22 foo: ; preds = %no_exit.0.i
23 ret void
24 }
25
None ; RUN: llvm-upgrade < %s | llvm-as | opt -extract-blocks -disable-output
1 int %foo() {
2 br label %EB
3 EB:
4 %V = invoke int %foo() to label %Cont unwind label %Unw
5 Cont:
6 ret int %V
7 Unw:
8 unwind
0 ; RUN: llvm-as < %s | opt -extract-blocks -disable-output
1 define i32 @foo() {
2 br label %EB
3
4 EB: ; preds = %0
5 %V = invoke i32 @foo( )
6 to label %Cont unwind label %Unw ; [#uses=1]
7
8 Cont: ; preds = %EB
9 ret i32 %V
10
11 Unw: ; preds = %EB
12 unwind
913 }
14
None ; RUN: llvm-upgrade < %s | llvm-as | opt -condprop -disable-output
0 ; RUN: llvm-as < %s | opt -condprop -disable-output
11 ; PR877
2
3 target endian = big
4 target pointersize = 32
2 target datalayout = "E-p:32:32"
53 target triple = "powerpc-apple-darwin9.0.0d1"
6 "struct.kc::impl_Ccode_option" = type { "struct.kc::impl_abstract_phylum" }
7 "struct.kc::impl_ID" = type { "struct.kc::impl_abstract_phylum", "struct.kc::impl_Ccode_option"*, "struct.kc::impl_casestring__Str"*, int, "struct.kc::impl_casestring__Str"* }
8 "struct.kc::impl_abstract_phylum" = type { int (...)** }
9 "struct.kc::impl_casestring__Str" = type { "struct.kc::impl_abstract_phylum", sbyte* }
10 "struct.kc::impl_elem_patternrepresentation" = type { "struct.kc::impl_abstract_phylum", int, "struct.kc::impl_casestring__Str"*, "struct.kc::impl_ID"* }
11 "struct.kc::impl_outmostpatterns" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_elem_patternrepresentation"*, "struct.kc::impl_outmostpatterns"* }
12 "struct.kc::impl_patternrepresentations" = type { "struct.kc::impl_Ccode_option", "struct.kc::impl_outmostpatterns"*, "struct.kc::impl_patternrepresentations"* }
13
14 implementation ; Functions:
15
16 void %_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() {
4 %"struct.kc::impl_Ccode_option" = type { %"struct.kc::impl_abstract_phylum" }
5 %"struct.kc::impl_ID" = type { %"struct.kc::impl_abstract_phylum", %"struct.kc::impl_Ccode_option"*, %"struct.kc::impl_casestring__Str"*, i32, %"struct.kc::impl_casestring__Str"* }
6 %"struct.kc::impl_abstract_phylum" = type { i32 (...)** }
7 %"struct.kc::impl_casestring__Str" = type { %"struct.kc::impl_abstract_phylum", i8* }
8 %"struct.kc::impl_elem_patternrepresentation" = type { %"struct.kc::impl_abstract_phylum", i32, %"struct.kc::impl_casestring__Str"*, %"struct.kc::impl_ID"* }
9 %"struct.kc::impl_outmostpatterns" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_elem_patternrepresentation"*, %"struct.kc::impl_outmostpatterns"* }
10 %"struct.kc::impl_patternrepresentations" = type { %"struct.kc::impl_Ccode_option", %"struct.kc::impl_outmostpatterns"*, %"struct.kc::impl_patternrepresentations"* }
11
12 define void @_ZN2kc16compare_patternsEPNS_26impl_patternrepresentationES1_PNS_27impl_patternrepresentationsE() {
1713 entry:
1814 br label %bb1269.outer.outer.outer.outer
1915
2117 br label %bb1269.outer69
2218
2319 cond_false: ; preds = %cond_true1298
24 br bool false, label %cond_next, label %bb51
20 br i1 false, label %cond_next, label %bb51
2521
2622 cond_next: ; preds = %cond_false
27 br bool false, label %bb52, label %bb51
23 br i1 false, label %bb52, label %bb51
2824
2925 bb51: ; preds = %cond_next, %cond_false
3026 br label %bb52
3127
3228 bb52: ; preds = %bb51, %cond_next
33 br bool false, label %cond_false82, label %cond_true55
29 br i1 false, label %cond_false82, label %cond_true55
3430
3531 cond_true55: ; preds = %bb52
36 br bool false, label %UnifiedReturnBlock, label %cond_true57
32 br i1 false, label %UnifiedReturnBlock, label %cond_true57
3733
3834 cond_true57: ; preds = %cond_true55
3935 br label %UnifiedReturnBlock
4036
4137 cond_false82: ; preds = %bb52
42 br bool false, label %cond_next97, label %bb113
38 br i1 false, label %cond_next97, label %bb113
4339
4440 cond_next97: ; preds = %cond_false82
45 br bool false, label %bb114, label %bb113
41 br i1 false, label %bb114, label %bb113
4642
4743 bb113: ; preds = %cond_next97, %cond_false82
4844 br label %bb114
4945
5046 bb114: ; preds = %bb113, %cond_next97
51 br bool false, label %cond_false151, label %cond_true117
47 br i1 false, label %cond_false151, label %cond_true117
5248
5349 cond_true117: ; preds = %bb114
54 br bool false, label %UnifiedReturnBlock, label %cond_true120
50 br i1 false, label %UnifiedReturnBlock, label %cond_true120
5551
5652 cond_true120: ; preds = %cond_true117
5753 br label %UnifiedReturnBlock
5854
5955 cond_false151: ; preds = %bb114
60 br bool false, label %cond_next166, label %bb182
56 br i1 false, label %cond_next166, label %bb182
6157
6258 cond_next166: ; preds = %cond_false151
63 br bool false, label %bb183, label %bb182
59 br i1 false, label %bb183, label %bb182
6460
6561 bb182: ; preds = %cond_next166, %cond_false151
6662 br label %bb183
6763
6864 bb183: ; preds = %bb182, %cond_next166
69 br bool false, label %cond_false256, label %cond_true186
65 br i1 false, label %cond_false256, label %cond_true186
7066
7167 cond_true186: ; preds = %bb183
72 br bool false, label %cond_true207, label %cond_false214
68 br i1 false, label %cond_true207, label %cond_false214
7369
7470 cond_true207: ; preds = %cond_true186
7571 br label %bb1269.outer38.backedge
7874 br label %bb1269.outer38
7975
8076 cond_false214: ; preds = %cond_true186
81 br bool false, label %cond_true228, label %cond_false235
77 br i1 false, label %cond_true228, label %cond_false235
8278
8379 cond_true228: ; preds = %cond_false214
8480 br label %bb1269.outer21.backedge
8783 br label %bb1269.outer21
8884
8985 cond_false235: ; preds = %cond_false214
90 br bool false, label %UnifiedReturnBlock, label %cond_false250
86 br i1 false, label %UnifiedReturnBlock, label %cond_false250
9187
9288 cond_false250: ; preds = %cond_false235
9389 br label %UnifiedUnreachableBlock
9490
9591 cond_false256: ; preds = %bb183
96 br bool false, label %cond_next271, label %bb287
92 br i1 false, label %cond_next271, label %bb287
9793
9894 cond_next271: ; preds = %cond_false256
99 br bool false, label %bb288, label %bb287
95 br i1 false, label %bb288, label %bb287
10096
10197 bb287: ; preds = %cond_next271, %cond_false256
10298 br label %bb288
10399
104100 bb288: ; preds = %bb287, %cond_next271
105 br bool false, label %cond_false369, label %cond_true291
101 br i1 false, label %cond_false369, label %cond_true291
106102
107103 cond_true291: ; preds = %bb288
108 br bool false, label %cond_true320, label %cond_false327
104 br i1 false, label %cond_true320, label %cond_false327
109105
110106 cond_true320: ; preds = %cond_true291
111107 br label %bb1269.outer38.backedge
112108
113109 cond_false327: ; preds = %cond_true291
114 br bool false, label %cond_true341, label %cond_false348
110 br i1 false, label %cond_true341, label %cond_false348
115111
116112 cond_true341: ; preds = %cond_false327
117113 br label %bb1269.outer21.backedge
118114
119115 cond_false348: ; preds = %cond_false327
120 br bool false, label %UnifiedReturnBlock, label %cond_false363
116 br i1 false, label %UnifiedReturnBlock, label %cond_false363
121117
122118 cond_false363: ; preds = %cond_false348
123119 br label %UnifiedUnreachableBlock
124120
125121 cond_false369: ; preds = %bb288
126 br bool false, label %cond_next384, label %bb400
122 br i1 false, label %cond_next384, label %bb400
127123
128124 cond_next384: ; preds = %cond_false369
129 br bool false, label %bb401, label %bb400
125 br i1 false, label %bb401, label %bb400
130126
131127 bb400: ; preds = %cond_next384, %cond_false369
132128 br label %bb401
133129
134130 bb401: ; preds = %bb400, %cond_next384
135 br bool false, label %cond_false481, label %cond_true404
131 br i1 false, label %cond_false481, label %cond_true404
136132
137133 cond_true404: ; preds = %bb401
138 br bool false, label %cond_true432, label %cond_false439
134 br i1 false, label %cond_true432, label %cond_false439
139135
140136 cond_true432: ; preds = %cond_true404
141137 br label %bb1269.outer38.backedge
142138
143139 cond_false439: ; preds = %cond_true404
144 br bool false, label %cond_true453, label %cond_false460
140 br i1 false, label %cond_true453, label %cond_false460
145141
146142 cond_true453: ; preds = %cond_false439
147143 br label %bb1269.outer21.backedge
148144
149145 cond_false460: ; preds = %cond_false439
150 br bool false, label %UnifiedReturnBlock, label %cond_false475
146 br i1 false, label %UnifiedReturnBlock, label %cond_false475
151147
152148 cond_false475: ; preds = %cond_false460
153149 br label %UnifiedUnreachableBlock
154150
155151 cond_false481: ; preds = %bb401
156 br bool false, label %cond_next496, label %bb512
152 br i1 false, label %cond_next496, label %bb512
157153
158154 cond_next496: ; preds = %cond_false481
159 br bool false, label %bb513, label %bb512
155 br i1 false, label %bb513, label %bb512
160156
161157 bb512: ; preds = %cond_next496, %cond_false481
162158 br label %bb513
163159
164160 bb513: ; preds = %bb512, %cond_next496
165 br bool false, label %cond_false594, label %cond_true516
161 br i1 false, label %cond_false594, label %cond_true516
166162
167163 cond_true516: ; preds = %bb513
168 br bool false, label %cond_true545, label %cond_false552
164 br i1 false, label %cond_true545, label %cond_false552
169165
170166 cond_true545: ; preds = %cond_true516
171167 br label %bb1269.outer38.backedge
172168
173169 cond_false552: ; preds = %cond_true516
174 br bool false, label %cond_true566, label %cond_false573
170 br i1 false, label %cond_true566, label %cond_false573
175171
176172 cond_true566: ; preds = %cond_false552
177173 br label %bb1269.outer21.backedge
178174
179175 cond_false573: ; preds = %cond_false552
180 br bool false, label %UnifiedReturnBlock, label %cond_false588
176 br i1 false, label %UnifiedReturnBlock, label %cond_false588
181177
182178 cond_false588: ; preds = %cond_false573
183179 br label %UnifiedUnreachableBlock
184180
185181 cond_false594: ; preds = %bb513
186 br bool false, label %cond_next609, label %bb625
182 br i1 false, label %cond_next609, label %bb625
187183
188184 cond_next609: ; preds = %cond_false594
189 br bool false, label %bb626, label %bb625
185 br i1 false, label %bb626, label %bb625
190186
191187 bb625: ; preds = %cond_next609, %cond_false594
192188 br label %bb626
193189
194190 bb626: ; preds = %bb625, %cond_next609
195 br bool false, label %cond_false707, label %cond_true629
191 br i1 false, label %cond_false707, label %cond_true629
196192
197193 cond_true629: ; preds = %bb626
198 br bool false, label %cond_true658, label %cond_false665
194 br i1 false, label %cond_true658, label %cond_false665
199195
200196 cond_true658: ; preds = %cond_true629
201197 br label %bb1269.outer2.backedge
204200 br label %bb1269.outer2
205201
206202 cond_false665: ; preds = %cond_true629
207 br bool false, label %cond_true679, label %cond_false686
203 br i1 false, label %cond_true679, label %cond_false686
208204
209205 cond_true679: ; preds = %cond_false665
210206 br label %bb1269.outer2.backedge
211207
212208 cond_false686: ; preds = %cond_false665
213 br bool false, label %UnifiedReturnBlock, label %cond_false701
209 br i1 false, label %UnifiedReturnBlock, label %cond_false701
214210
215211 cond_false701: ; preds = %cond_false686
216212 br label %UnifiedUnreachableBlock
217213
218214 cond_false707: ; preds = %bb626
219 br bool false, label %cond_next722, label %bb738
215 br i1 false, label %cond_next722, label %bb738
220216
221217 cond_next722: ; preds = %cond_false707
222 br bool false, label %bb739, label %bb738
218 br i1 false, label %bb739, label %bb738
223219
224220 bb738: ; preds = %cond_next722, %cond_false707
225221 br label %bb739
226222
227223 bb739: ; preds = %bb738, %cond_next722
228 br bool false, label %cond_false820, label %cond_true742
224 br i1 false, label %cond_false820, label %cond_true742
229225
230226 cond_true742: ; preds = %bb739
231 br bool false, label %cond_true771, label %cond_false778
227 br i1 false, label %cond_true771, label %cond_false778
232228
233229 cond_true771: ; preds = %cond_true742
234230 br label %bb1269.outer.backedge
237233 br label %bb1269.outer
238234
239235 cond_false778: ; preds = %cond_true742
240 br bool false, label %cond_true792, label %cond_false799
236 br i1 false, label %cond_true792, label %cond_false799
241237
242238 cond_true792: ; preds = %cond_false778
243239 br label %bb1269.outer.backedge
244240
245241 cond_false799: ; preds = %cond_false778
246 br bool false, label %UnifiedReturnBlock, label %cond_false814
242 br i1 false, label %UnifiedReturnBlock, label %cond_false814
247243
248244 cond_false814: ; preds = %cond_false799
249245 br label %UnifiedUnreachableBlock
250246
251247 cond_false820: ; preds = %bb739
252 br bool false, label %cond_next835, label %bb851
248 br i1 false, label %cond_next835, label %bb851
253249
254250 cond_next835: ; preds = %cond_false820
255 br bool false, label %bb852, label %bb851
251 br i1 false, label %bb852, label %bb851
256252
257253 bb851: ; preds = %cond_next835, %cond_false820
258254 br label %bb852
259255
260256 bb852: ; preds = %bb851, %cond_next835
261 br bool false, label %cond_false933, label %cond_true855
257 br i1 false, label %cond_false933, label %cond_true855
262258
263259 cond_true855: ; preds = %bb852
264 br bool false, label %cond_true884, label %cond_false891
260 br i1 false, label %cond_true884, label %cond_false891
265261
266262 cond_true884: ; preds = %cond_true855
267263 br label %bb1269.outer.outer.backedge
270266 br label %bb1269.outer.outer
271267
272268 cond_false891: ; preds = %cond_true855
273 br bool false, label %cond_true905, label %cond_false912
269 br i1 false, label %cond_true905, label %cond_false912
274270
275271 cond_true905: ; preds = %cond_false891
276272 br label %bb1269.outer.outer.backedge
277273
278274 cond_false912: ; preds = %cond_false891
279 br bool false, label %UnifiedReturnBlock, label %cond_false927
275 br i1 false, label %UnifiedReturnBlock, label %cond_false927
280276
281277 cond_false927: ; preds = %cond_false912
282278 br label %UnifiedUnreachableBlock
283279
284280 cond_false933: ; preds = %bb852
285 br bool false, label %cond_next948, label %bb964
281 br i1 false, label %cond_next948, label %bb964
286282
287283 cond_next948: ; preds = %cond_false933
288 br bool false, label %bb965, label %bb964
284 br i1 false, label %bb965, label %bb964
289285
290286 bb964: ; preds = %cond_next948, %cond_false933
291287 br label %bb965
292288
293289 bb965: ; preds = %bb964, %cond_next948
294 br bool false, label %cond_false1046, label %cond_true968
290 br i1 false, label %cond_false1046, label %cond_true968
295291
296292 cond_true968: ; preds = %bb965
297 br bool false, label %cond_true997, label %cond_false1004
293 br i1 false, label %cond_true997, label %cond_false1004
298294
299295 cond_true997: ; preds = %cond_true968
300296 br label %bb1269.outer.outer.outer.backedge
303299 br label %bb1269.outer.outer.outer
304300
305301 cond_false1004: ; preds = %cond_true968
306 br bool false, label %cond_true1018, label %cond_false1025
302 br i1 false, label %cond_true1018, label %cond_false1025
307303
308304 cond_true1018: ; preds = %cond_false1004
309305 br label %bb1269.outer.outer.outer.backedge
310306
311307 cond_false1025: ; preds = %cond_false1004
312 br bool false, label %UnifiedReturnBlock, label %cond_false1040
308 br i1 false, label %UnifiedReturnBlock, label %cond_false1040
313309
314310 cond_false1040: ; preds = %cond_false1025
315311 br label %UnifiedUnreachableBlock
316312
317313 cond_false1046: ; preds = %bb965
318 br bool false, label %cond_next1061, label %bb1077
314 br i1 false, label %cond_next1061, label %bb1077
319315
320316 cond_next1061: ; preds = %cond_false1046
321 br bool false, label %bb1078, label %bb1077
317 br i1 false, label %bb1078, label %bb1077
322318
323319 bb1077: ; preds = %cond_next1061, %cond_false1046
324320 br label %bb1078
325321
326322 bb1078: ; preds = %bb1077, %cond_next1061
327 %tmp1080 = phi bool [ true, %bb1077 ], [ false, %cond_next1061 ] ; [#uses=1]
328 br bool %tmp1080, label %cond_false1159, label %cond_true1081
323 %tmp1080 = phi i1 [ true, %bb1077 ], [ false, %cond_next1061 ] ; [#uses=1]
324 br i1 %tmp1080, label %cond_false1159, label %cond_true1081
329325
330326 cond_true1081: ; preds = %bb1078
331 br bool false, label %cond_true1110, label %cond_false1117
327 br i1 false, label %cond_true1110, label %cond_false1117
332328
333329 cond_true1110: ; preds = %cond_true1081
334330 br label %bb1269.outer.outer.outer.outer.backedge
337333 br label %bb1269.outer.outer.outer.outer
338334
339335 cond_false1117: ; preds = %cond_true1081
340 br bool false, label %cond_true1131, label %cond_false1138
336 br i1 false, label %cond_true1131, label %cond_false1138
341337
342338 cond_true1131: ; preds = %cond_false1117
343339 br label %bb1269.outer.outer.outer.outer.backedge
344340
345341 cond_false1138: ; preds = %cond_false1117
346 br bool false, label %UnifiedReturnBlock, label %cond_false1153
342 br i1 false, label %UnifiedReturnBlock, label %cond_false1153
347343
348344 cond_false1153: ; preds = %cond_false1138
349345 br label %UnifiedUnreachableBlock
350346
351347 cond_false1159: ; preds = %bb1078
352 %tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi "struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ] ; <"struct.kc::impl_elem_patternrepresentation"*> [#uses=0]
353 br bool false, label %UnifiedReturnBlock, label %cond_false1174
348 %tmp.i119.lcssa35.lcssa.lcssa.lcssa.lcssa.lcssa = phi %"struct.kc::impl_elem_patternrepresentation"* [ null, %bb1078 ] ; <%"struct.kc::impl_elem_patternrepresentation"*> [#uses=0]
349 br i1 false, label %UnifiedReturnBlock, label %cond_false1174
354350
355351 cond_false1174: ; preds = %cond_false1159
356 br bool false, label %UnifiedReturnBlock, label %cond_false1189
352 br i1 false, label %UnifiedReturnBlock, label %cond_false1189
357353
358354 cond_false1189: ; preds = %cond_false1174
359 br bool false, label %UnifiedReturnBlock, label %cond_false1204
355 br i1 false, label %UnifiedReturnBlock, label %cond_false1204
360356
361357 cond_false1204: ; preds = %cond_false1189
362 br bool false, label %UnifiedReturnBlock, label %cond_false1219
358 br i1 false, label %UnifiedReturnBlock, label %cond_false1219
363359
364360 cond_false1219: ; preds = %cond_false1204
365 br bool false, label %UnifiedReturnBlock, label %cond_true1222
361 br i1 false, label %UnifiedReturnBlock, label %cond_true1222
366362
367363 cond_true1222: ; preds = %cond_false1219
368364 br label %UnifiedReturnBlock
395391 br label %bb1269
396392
397393 bb1269: ; preds = %bb1269.outer69
398 br bool false, label %cond_next1281, label %bb1294
394 br i1 false, label %cond_next1281, label %bb1294
399395
400396 cond_next1281: ; preds = %bb1269
401 br bool false, label %cond_true1298, label %bb1294
397 br i1 false, label %cond_true1298, label %bb1294
402398
403399 bb1294: ; preds = %cond_next1281, %bb1269
404 br bool false, label %cond_true1331, label %cond_next1313
400 br i1 false, label %cond_true1331, label %cond_next1313
405401
406402 cond_true1298: ; preds = %cond_next1281
407 br bool false, label %cond_false, label %cond_true
403 br i1 false, label %cond_false, label %cond_true
408404
409405 cond_next1313: ; preds = %bb1294
410 br bool false, label %cond_true1331, label %cond_next1355
406 br i1 false, label %cond_true1331, label %cond_next1355
411407
412408 cond_true1331: ; preds = %cond_next1313, %bb1294
413 br bool false, label %cond_false1346, label %cond_true1342
409 br i1 false, label %cond_false1346, label %cond_true1342
414410
415411 cond_true1342: ; preds = %cond_true1331
416412 br label %cond_next1350
422418 br label %bb.i
423419
424420 bb.i: ; preds = %bb.i, %cond_next1350
425 br bool false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i
421 br i1 false, label %_ZN2kc18impl_abstract_list8freelistEv.exit, label %bb.i
426422
427423 _ZN2kc18impl_abstract_list8freelistEv.exit: ; preds = %bb.i
428424 br label %cond_next1355
429425
430426 cond_next1355: ; preds = %_ZN2kc18impl_abstract_list8freelistEv.exit, %cond_next1313
431 br bool false, label %cond_next1363, label %bb1388
427 br i1 false, label %cond_next1363, label %bb1388
432428
433429 cond_next1363: ; preds = %cond_next1355
434 br bool false, label %UnifiedReturnBlock, label %cond_true1366
430 br i1 false, label %UnifiedReturnBlock, label %cond_true1366
435431
436432 cond_true1366: ; preds = %cond_next1363
437433 br label %UnifiedReturnBlock
438434
439435 bb1388: ; preds = %cond_next1355
440 br bool false, label %UnifiedReturnBlock, label %bb1414.preheader
436 br i1 false, label %UnifiedReturnBlock, label %bb1414.preheader
441437
442438 bb1414.preheader: ; preds = %bb1388
443439 br label %bb1414
444440
445441 bb1414: ; preds = %cond_true1426, %bb1414.preheader
446 br bool false, label %cond_true1426, label %bb1429
442 br i1 false, label %cond_true1426, label %bb1429
447443
448444 cond_true1426: ; preds = %bb1414
449445 br label %bb1414
450446
451447 bb1429: ; preds = %bb1414
452 br bool false, label %cond_true1431, label %UnifiedReturnBlock
448 br i1 false, label %cond_true1431, label %UnifiedReturnBlock
453449
454450 cond_true1431: ; preds = %bb1429
455 br bool false, label %UnifiedReturnBlock, label %cond_true1434
451 br i1 false, label %UnifiedReturnBlock, label %cond_true1434
456452
457453 cond_true1434: ; preds = %cond_true1431
458454 br label %UnifiedReturnBlock
None ; RUN: llvm-upgrade < %s | llvm-as | opt -condprop -disable-output
0 ; RUN: llvm-as < %s | opt -condprop -disable-output
11 ; PR979
2
23 target datalayout = "e-p:32:32"
3 target endian = little
4 target pointersize = 32
54 target triple = "i686-pc-linux-gnu"
65 deplibs = [ "c", "crtend" ]
7 %struct.IO_APIC_reg_00 = type { uint }
8 %struct.Qdisc = type { int (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, uint, %struct.Qdisc_ops*, %struct.Qdisc*, uint, %struct.bluez_skb_cb, %struct.sk_buff_head, %struct.net_device*, %struct.tc_stats, int (%struct.sk_buff*, %struct.Qdisc*)*, %struct.Qdisc*, [1 x sbyte] }
9 %struct.Qdisc_class_ops = type { int (%struct.Qdisc*, uint, %struct.Qdisc*, %struct.Qdisc**)*, %struct.Qdisc* (%struct.Qdisc*, uint)*, uint (%struct.Qdisc*, uint)*, void (%struct.Qdisc*, uint)*, int (%struct.Qdisc*, uint, uint, %struct._agp_version**, uint*)*, int (%struct.Qdisc*, uint)*, void (%struct.Qdisc*, %struct.qdisc_walker*)*, %struct.tcf_proto** (%struct.Qdisc*, uint)*, uint (%struct.Qdisc*, uint, uint)*, void (%struct.Qdisc*, uint)*, int (%struct.Qdisc*, uint, %struct.sk_buff*, %struct.tcmsg*)* }
10 %struct.Qdisc_ops = type { %struct.Qdisc_ops*, %struct.Qdisc_class_ops*, [16 x sbyte], int, int (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, int (%struct.sk_buff*, %struct.Qdisc*)*, uint (%struct.Qdisc*)*, int (%struct.Qdisc*, %struct._agp_version*)*, void (%struct.Qdisc*)*, void (%struct.Qdisc*)*, int (%struct.Qdisc*, %struct._agp_version*)*, int (%struct.Qdisc*, %struct.sk_buff*)* }
11 %struct.ViceFid = type { uint, uint, uint }
12 %struct.__wait_queue = type { uint, %struct.task_struct*, %struct.list_head }
6 %struct.IO_APIC_reg_00 = type { i32 }
7 %struct.Qdisc = type { i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, i32, %struct.Qdisc_ops*, %struct.Qdisc*, i32, %struct.IO_APIC_reg_00, %struct.sk_buff_head, %struct.net_device*, %struct.tc_stats, i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.Qdisc*, [1 x i8] }
8 %struct.Qdisc_class_ops = type { i32 (%struct.Qdisc*, i32, %struct.Qdisc*, %struct.Qdisc**)*, %struct.Qdisc* (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32)*, void (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, i32, %struct._agp_version**, i32*)*, i32 (%struct.Qdisc*, i32)*, void (%struct.Qdisc*, %struct.qdisc_walker*)*, %struct.tcf_proto** (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, i32)*, void (%struct.Qdisc*, i32)*, i32 (%struct.Qdisc*, i32, %struct.sk_buff*, %struct.tcmsg*)* }
9 %struct.Qdisc_ops = type { %struct.Qdisc_ops*, %struct.Qdisc_class_ops*, [16 x i8], i32, i32 (%struct.sk_buff*, %struct.Qdisc*)*, %struct.sk_buff* (%struct.Qdisc*)*, i32 (%struct.sk_buff*, %struct.Qdisc*)*, i32 (%struct.Qdisc*)*, i32 (%struct.Qdisc*, %struct._agp_version*)*, void (%struct.Qdisc*)*, void (%struct.Qdisc*)*, i32 (%struct.Qdisc*, %struct._agp_version*)*, i32 (%struct.Qdisc*, %struct.sk_buff*)* }
10 %struct.ViceFid = type { i32, i32, i32 }
11 %struct.__wait_queue = type { i32, %struct.task_struct*, %struct.list_head }
1312 %struct.__wait_queue_head = type { %struct.IO_APIC_reg_00, %struct.list_head }
14 %struct._agp_version = type { ushort, ushort }
15 %struct._drm_i810_overlay_t = type { uint, uint }
16 %struct.address_space = type { %struct.list_head, %struct.list_head, %struct.list_head, uint, %struct.address_space_operations*, %struct.inode*, %struct.vm_area_struct*, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, int }
17 %struct.address_space_operations = type { int (%struct.page*)*, int (%struct.file*, %struct.page*)*, int (%struct.page*)*, int (%struct.file*, %struct.page*, uint, uint)*, int (%struct.file*, %struct.page*, uint, uint)*, int (%struct.address_space*, int)*, int (%struct.page*, uint)*, int (%struct.page*, int)*, int (int, %struct.inode*, %struct.kiobuf*, uint, int)*, int (int, %struct.file*, %struct.kiobuf*, uint, int)*, void (%struct.page*)* }
18 %struct.audio_buf_info = type { int, int, int, int }
19 %struct.autofs_packet_hdr = type { int, int }
20 %struct.block_device = type { %struct.list_head, %struct.bluez_skb_cb, %struct.inode*, ushort, int, %struct.block_device_operations*, %struct.semaphore, %struct.list_head }
21 %struct.block_device_operations = type { int (%struct.inode*, %struct.file*)*, int (%struct.inode*, %struct.file*)*, int (%struct.inode*, %struct.file*, uint, uint)*, int (ushort)*, int (ushort)*, %struct.module* }
22 %struct.bluez_skb_cb = type { int }
23 %struct.buffer_head = type { %struct.buffer_head*, uint, ushort, ushort, ushort, %struct.bluez_skb_cb, ushort, uint, uint, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head**, sbyte*, %struct.page*, void (%struct.buffer_head*, int)*, sbyte*, uint, %struct.__wait_queue_head, %struct.list_head }
24 %struct.char_device = type { %struct.list_head, %struct.bluez_skb_cb, ushort, %struct.bluez_skb_cb, %struct.semaphore }
25 %struct.completion = type { uint, %struct.__wait_queue_head }
26 %struct.cramfs_info = type { uint, uint, uint, uint }
27 %struct.dentry = type { %struct.bluez_skb_cb, uint, %struct.inode*, %struct.dentry*, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, int, %struct.qstr, uint, %struct.dentry_operations*, %struct.super_block*, uint, sbyte*, [16 x ubyte] }
28 %struct.dentry_operations = type { int (%struct.dentry*, int)*, int (%struct.dentry*, %struct.qstr*)*, int (%struct.dentry*, %struct.qstr*, %struct.qstr*)*, int (%struct.dentry*)*, void (%struct.dentry*)*, void (%struct.dentry*, %struct.inode*)* }
29 %struct.dev_mc_list = type { %struct.dev_mc_list*, [8 x ubyte], ubyte, int, int }
30 %struct.dnotify_struct = type { %struct.dnotify_struct*, uint, int, %struct.file*, %struct.files_struct* }
31 %struct.dquot = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.__wait_queue_head, %struct.__wait_queue_head, int, int, %struct.super_block*, uint, ushort, long, short, short, uint, %struct.mem_dqblk }
32 %struct.dquot_operations = type { void (%struct.inode*, int)*, void (%struct.inode*)*, int (%struct.inode*, ulong, int)*, int (%struct.inode*, uint)*, void (%struct.inode*, ulong)*, void (%struct.inode*, uint)*, int (%struct.inode*, %struct.iattr*)*, int (%struct.dquot*)* }
33 %struct.drm_clip_rect = type { ushort, ushort, ushort, ushort }
34 %struct.drm_ctx_priv_map = type { uint, sbyte* }
35 %struct.drm_mga_indices = type { int, uint, uint, int }
36 %struct.dst_entry = type { %struct.dst_entry*, %struct.bluez_skb_cb, int, %struct.net_device*, int, int, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, int, %struct.neighbour*, %struct.hh_cache*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)*, %struct.dst_ops*, [0 x sbyte] }
37 %struct.dst_ops = type { ushort, ushort, uint, int ()*, %struct.dst_entry* (%struct.dst_entry*, uint)*, %struct.dst_entry* (%struct.dst_entry*, %struct.sk_buff*)*, void (%struct.dst_entry*)*, %struct.dst_entry* (%struct.dst_entry*)*, void (%struct.sk_buff*)*, int, %struct.bluez_skb_cb, %struct.kmem_cache_s* }
38 %struct.e820entry = type { ulong, ulong, uint }
39 %struct.exec_domain = type { sbyte*, void (int, %struct.pt_regs*)*, ubyte, ubyte, uint*, uint*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.module*, %struct.exec_domain* }
40 %struct.ext2_inode_info = type { [15 x uint], uint, uint, ubyte, ubyte, uint, uint, uint, uint, uint, uint, uint, uint, uint, int }
41 %struct.ext3_inode_info = type { [15 x uint], uint, uint, uint, uint, uint, uint, uint, uint, uint, %struct.list_head, long, %struct.rw_semaphore }
42 %struct.fasync_struct = type { int, int, %struct.fasync_struct*, %struct.file* }
43 %struct.file = type { %struct.list_head, %struct.dentry*, %struct.vfsmount*, %struct.file_operations*, %struct.bluez_skb_cb, uint, ushort, long, uint, uint, uint, uint, uint, %struct.drm_mga_indices, uint, uint, int, uint, sbyte*, %struct.kiobuf*, int }
44 %struct.file_lock = type { %struct.file_lock*, %struct.list_head, %struct.list_head, %struct.files_struct*, uint, %struct.__wait_queue_head, %struct.file*, ubyte, ubyte, long, long, void (%struct.file_lock*)*, void (%struct.file_lock*)*, void (%struct.file_lock*)*, %struct.fasync_struct*, uint, { %struct.nfs_lock_info } }
45 %struct.file_operations = type { %struct.module*, long (%struct.file*, long, int)*, int (%struct.file*, sbyte*, uint, long*)*, int (%struct.file*, sbyte*, uint, long*)*, int (%struct.file*, sbyte*, int (sbyte*, sbyte*, int, long, uint, uint)*)*, uint (%struct.file*, %struct.poll_table_struct*)*, int (%struct.inode*, %struct.file*, uint, uint)*, int (%struct.file*, %struct.vm_area_struct*)*, int (%struct.inode*, %struct.file*)*, int (%struct.file*)*, int (%struct.inode*, %struct.file*)*, int (%struct.file*, %struct.dentry*, int)*, int (int, %struct.file*, int)*, int (%struct.file*, int, %struct.file_lock*)*, int (%struct.file*, %struct.iovec*, uint, long*)*, int (%struct.file*, %struct.iovec*, uint, long*)*, int (%struct.file*, %struct.page*, int, uint, long*, int)*, uint (%struct.file*, uint, uint, uint, uint)* }
46 %struct.file_system_type = type { sbyte*, int, %struct.super_block* (%struct.super_block*, sbyte*, int)*, %struct.module*, %struct.file_system_type*, %struct.list_head }
47 %struct.files_struct = type { %struct.bluez_skb_cb, %typedef.rwlock_t, int, int, int, %struct.file**, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set, %typedef.__kernel_fd_set, [32 x %struct.file*] }
48 %struct.fs_disk_quota = type { sbyte, sbyte, ushort, uint, ulong, ulong, ulong, ulong, ulong, ulong, int, int, ushort, ushort, int, ulong, ulong, ulong, int, ushort, short, [8 x sbyte] }
49 %struct.fs_quota_stat = type { sbyte, ushort, sbyte, %struct.e820entry, %struct.e820entry, uint, int, int, int, ushort, ushort }
50 %struct.fs_struct = type { %struct.bluez_skb_cb, %typedef.rwlock_t, int, %struct.dentry*, %struct.dentry*, %struct.dentry*, %struct.vfsmount*, %struct.vfsmount*, %struct.vfsmount* }
51 %struct.hh_cache = type { %struct.hh_cache*, %struct.bluez_skb_cb, ushort, int, int (%struct.sk_buff*)*, %typedef.rwlock_t, [32 x uint] }
52 %struct.i387_fxsave_struct = type { ushort, ushort, ushort, ushort, int, int, int, int, int, int, [32 x int], [32 x int], [56 x int] }
53 %struct.iattr = type { uint, ushort, uint, uint, long, int, int, int, uint }
54 %struct.if_dqblk = type { ulong, ulong, ulong, ulong, ulong, ulong, ulong, ulong, uint }
55 %struct.if_dqinfo = type { ulong, ulong, uint, uint }
56 %struct.ifmap = type { uint, uint, ushort, ubyte, ubyte, ubyte }
57 %struct.ifreq = type { { [16 x sbyte] }, %typedef.dvd_authinfo }
58 %struct.inode = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, uint, %struct.bluez_skb_cb, ushort, ushort, ushort, uint, uint, ushort, long, int, int, int, uint, uint, uint, uint, ushort, %struct.semaphore, %struct.rw_semaphore, %struct.semaphore, %struct.inode_operations*, %struct.file_operations*, %struct.super_block*, %struct.__wait_queue_head, %struct.file_lock*, %struct.address_space*, %struct.address_space, [2 x %struct.dquot*], %struct.list_head, %struct.pipe_inode_info*, %struct.block_device*, %struct.char_device*, uint, %struct.dnotify_struct*, uint, uint, ubyte, %struct.bluez_skb_cb, uint, uint, { %struct.ext2_inode_info, %struct.ext3_inode_info, %struct.msdos_inode_info, %struct.iso_inode_info, %struct.nfs_inode_info, %struct._drm_i810_overlay_t, %struct.shmem_inode_info, %struct.proc_inode_info, %struct.socket, %struct.usbdev_inode_info, sbyte* } }
59 %struct.inode_operations = type { int (%struct.inode*, %struct.dentry*, int)*, %struct.dentry* (%struct.inode*, %struct.dentry*)*, int (%struct.dentry*, %struct.inode*, %struct.dentry*)*, int (%struct.inode*, %struct.dentry*)*, int (%struct.inode*, %struct.dentry*, sbyte*)*, int (%struct.inode*, %struct.dentry*, int)*, int (%struct.inode*, %struct.dentry*)*, int (%struct.inode*, %struct.dentry*, int, int)*, int (%struct.inode*, %struct.dentry*, %struct.inode*, %struct.dentry*)*, int (%struct.dentry*, sbyte*, int)*, int (%struct.dentry*, %struct.nameidata*)*, void (%struct.inode*)*, int (%struct.inode*, int)*, int (%struct.dentry*)*, int (%struct.dentry*, %struct.iattr*)*, int (%struct.dentry*, %struct.iattr*)*, int (%struct.dentry*, sbyte*, sbyte*, uint, int)*, int (%struct.dentry*, sbyte*, sbyte*, uint)*, int (%struct.dentry*, sbyte*, uint)*, int (%struct.dentry*, sbyte*)* }
60 %struct.iovec = type { sbyte*, uint }
61 %struct.ip_options = type { uint, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, ubyte, [0 x ubyte] }
62 %struct.isapnp_dma = type { ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_dma* }
63 %struct.isapnp_irq = type { ushort, ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_irq* }
64 %struct.isapnp_mem = type { uint, uint, uint, uint, ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_mem* }
65 %struct.isapnp_mem32 = type { [17 x ubyte], %struct.isapnp_resources*, %struct.isapnp_mem32* }
66 %struct.isapnp_port = type { ushort, ushort, ubyte, ubyte, ubyte, ubyte, %struct.isapnp_resources*, %struct.isapnp_port* }
67 %struct.isapnp_resources = type { ushort, ushort, %struct.isapnp_port*, %struct.isapnp_irq*, %struct.isapnp_dma*, %struct.isapnp_mem*, %struct.isapnp_mem32*, %struct.pci_dev*, %struct.isapnp_resources*, %struct.isapnp_resources* }
68 %struct.iso_inode_info = type { uint, ubyte, [3 x ubyte], uint, int }
13 %struct._agp_version = type { i16, i16 }
14 %struct._drm_i810_overlay_t = type { i32, i32 }
15 %struct.address_space = type { %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.address_space_operations*, %struct.inode*, %struct.vm_area_struct*, %struct.vm_area_struct*, %struct.IO_APIC_reg_00, i32 }
16 %struct.address_space_operations = type { i32 (%struct.page*)*, i32 (%struct.file*, %struct.page*)*, i32 (%struct.page*)*, i32 (%struct.file*, %struct.page*, i32, i32)*, i32 (%struct.file*, %struct.page*, i32, i32)*, i32 (%struct.address_space*, i32)*, i32 (%struct.page*, i32)*, i32 (%struct.page*, i32)*, i32 (i32, %struct.inode*, %struct.kiobuf*, i32, i32)*, i32 (i32, %struct.file*, %struct.kiobuf*, i32, i32)*, void (%struct.page*)* }
17 %struct.audio_buf_info = type { i32, i32, i32, i32 }
18 %struct.autofs_packet_hdr = type { i32, i32 }
19 %struct.block_device = type { %struct.list_head, %struct.IO_APIC_reg_00, %struct.inode*, i16, i32, %struct.block_device_operations*, %struct.semaphore, %struct.list_head }
20 %struct.block_device_operations = type { i32 (%struct.inode*, %struct.file*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.inode*, %struct.file*, i32, i32)*, i32 (i16)*, i32 (i16)*, %struct.module* }
21 %struct.bluez_skb_cb = type { i32 }
22 %struct.buffer_head = type { %struct.buffer_head*, i32, i16, i16, i16, %struct.IO_APIC_reg_00, i16, i32, i32, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head*, %struct.buffer_head**, i8*, %struct.page*, void (%struct.buffer_head*, i32)*, i8*, i32, %struct.__wait_queue_head, %struct.list_head }
23 %struct.char_device = type { %struct.list_head, %struct.IO_APIC_reg_00, i16, %struct.IO_APIC_reg_00, %struct.semaphore }
24 %struct.completion = type { i32, %struct.__wait_queue_head }
25 %struct.cramfs_info = type { i32, i32, i32, i32 }
26 %struct.dentry = type { %struct.IO_APIC_reg_00, i32, %struct.inode*, %struct.dentry*, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.qstr, i32, %struct.dentry_operations*, %struct.super_block*, i32, i8*, [16 x i8] }
27 %struct.dentry_operations = type { i32 (%struct.dentry*, i32)*, i32 (%struct.dentry*, %struct.qstr*)*, i32 (%struct.dentry*, %struct.qstr*, %struct.qstr*)*, i32 (%struct.dentry*)*, void (%struct.dentry*)*, void (%struct.dentry*, %struct.inode*)* }
28 %struct.dev_mc_list = type { %struct.dev_mc_list*, [8 x i8], i8, i32, i32 }
29 %struct.dnotify_struct = type { %struct.dnotify_struct*, i32, i32, %struct.file*, %struct.files_struct* }
30 %struct.dquot = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.__wait_queue_head, %struct.__wait_queue_head, i32, i32, %struct.super_block*, i32, i16, i64, i16, i16, i32, %struct.mem_dqblk }
31 %struct.dquot_operations = type { void (%struct.inode*, i32)*, void (%struct.inode*)*, i32 (%struct.inode*, i64, i32)*, i32 (%struct.inode*, i32)*, void (%struct.inode*, i64)*, void (%struct.inode*, i32)*, i32 (%struct.inode*, %struct.iattr*)*, i32 (%struct.dquot*)* }
32 %struct.drm_clip_rect = type { i16, i16, i16, i16 }
33 %struct.drm_ctx_priv_map = type { i32, i8* }
34 %struct.drm_mga_indices = type { i32, i32, i32, i32 }
35 %struct.dst_entry = type { %struct.dst_entry*, %struct.IO_APIC_reg_00, i32, %struct.net_device*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.neighbour*, %struct.hh_cache*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, %struct.dst_ops*, [0 x i8] }
36 %struct.dst_ops = type { i16, i16, i32, i32 ()*, %struct.dst_entry* (%struct.dst_entry*, i32)*, %struct.dst_entry* (%struct.dst_entry*, %struct.sk_buff*)*, void (%struct.dst_entry*)*, %struct.dst_entry* (%struct.dst_entry*)*, void (%struct.sk_buff*)*, i32, %struct.IO_APIC_reg_00, %struct.kmem_cache_s* }
37 %struct.e820entry = type { i64, i64, i32 }
38 %struct.exec_domain = type { i8*, void (i32, %struct.pt_regs*)*, i8, i8, i32*, i32*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.map_segment*, %struct.module*, %struct.exec_domain* }
39 %struct.ext2_inode_info = type { [15 x i32], i32, i32, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
40 %struct.ext3_inode_info = type { [15 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.list_head, i64, %struct.rw_semaphore }
41 %struct.fasync_struct = type { i32, i32, %struct.fasync_struct*, %struct.file* }
42 %struct.file = type { %struct.list_head, %struct.dentry*, %struct.vfsmount*, %struct.file_operations*, %struct.IO_APIC_reg_00, i32, i16, i64, i32, i32, i32, i32, i32, %struct.audio_buf_info, i32, i32, i32, i32, i8*, %struct.kiobuf*, i32 }
43 %struct.file_lock = type { %struct.file_lock*, %struct.list_head, %struct.list_head, %struct.files_struct*, i32, %struct.__wait_queue_head, %struct.file*, i8, i8, i64, i64, void (%struct.file_lock*)*, void (%struct.file_lock*)*, void (%struct.file_lock*)*, %struct.fasync_struct*, i32, { %struct.nfs_lock_info } }
44 %struct.file_operations = type { %struct.module*, i64 (%struct.file*, i64, i32)*, i32 (%struct.file*, i8*, i32, i64*)*, i32 (%struct.file*, i8*, i32, i64*)*, i32 (%struct.file*, i8*, i32 (i8*, i8*, i32, i64, i32, i32)*)*, i32 (%struct.file*, %struct.poll_table_struct*)*, i32 (%struct.inode*, %struct.file*, i32, i32)*, i32 (%struct.file*, %struct.vm_area_struct*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.file*)*, i32 (%struct.inode*, %struct.file*)*, i32 (%struct.file*, %struct.dentry*, i32)*, i32 (i32, %struct.file*, i32)*, i32 (%struct.file*, i32, %struct.file_lock*)*, i32 (%struct.file*, %struct.iovec*, i32, i64*)*, i32 (%struct.file*, %struct.iovec*, i32, i64*)*, i32 (%struct.file*, %struct.page*, i32, i32, i64*, i32)*, i32 (%struct.file*, i32, i32, i32, i32)* }
45 %struct.file_system_type = type { i8*, i32, %struct.super_block* (%struct.super_block*, i8*, i32)*, %struct.module*, %struct.file_system_type*, %struct.list_head }
46 %struct.files_struct = type { %struct.IO_APIC_reg_00, %typedef.rwlock_t, i32, i32, i32, %struct.file**, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set*, %typedef.__kernel_fd_set, %typedef.__kernel_fd_set, [32 x %struct.file*] }
47 %struct.fs_disk_quota = type { i8, i8, i16, i32, i64, i64, i64, i64, i64, i64, i32, i32, i16, i16, i32, i64, i64, i64, i32, i16, i16, [8 x i8] }
48 %struct.fs_quota_stat = type { i8, i16, i8, %struct.e820entry, %struct.e820entry, i32, i32, i32, i32, i16, i16 }
49 %struct.fs_struct = type { %struct.IO_APIC_reg_00, %typedef.rwlock_t, i32, %struct.dentry*, %struct.dentry*, %struct.dentry*, %struct.vfsmount*, %struct.vfsmount*, %struct.vfsmount* }
50 %struct.hh_cache = type { %struct.hh_cache*, %struct.IO_APIC_reg_00, i16, i32, i32 (%struct.sk_buff*)*, %typedef.rwlock_t, [32 x i32] }
51 %struct.i387_fxsave_struct = type { i16, i16, i16, i16, i32, i32, i32, i32, i32, i32, [32 x i32], [32 x i32], [56 x i32] }
52 %struct.iattr = type { i32, i16, i32, i32, i64, i32, i32, i32, i32 }
53 %struct.if_dqblk = type { i64, i64, i64, i64, i64, i64, i64, i64, i32 }
54 %struct.if_dqinfo = type { i64, i64, i32, i32 }
55 %struct.ifmap = type { i32, i32, i16, i8, i8, i8 }
56 %struct.ifreq = type { { [16 x i8] }, %typedef.dvd_authinfo }
57 %struct.inode = type { %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, %struct.IO_APIC_reg_00, i16, i16, i16, i32, i32, i16, i64, i32, i32, i32, i32, i32, i32, i32, i16, %struct.semaphore, %struct.rw_semaphore, %struct.semaphore, %struct.inode_operations*, %struct.file_operations*, %struct.super_block*, %struct.__wait_queue_head, %struct.file_lock*, %struct.address_space*, %struct.address_space, [2 x %struct.dquot*], %struct.list_head, %struct.pipe_inode_info*, %struct.block_device*, %struct.char_device*, i32, %struct.dnotify_struct*, i32, i32, i8, %struct.IO_APIC_reg_00, i32, i32, { %struct.ext2_inode_info, %struct.ext3_inode_info, %struct.msdos_inode_info, %struct.iso_inode_info, %struct.nfs_inode_info, %struct._drm_i810_overlay_t, %struct.shmem_inode_info, %struct.proc_inode_info, %struct.socket, %struct.usbdev_inode_info, i8* } }
58 %struct.inode_operations = type { i32 (%struct.inode*, %struct.dentry*, i32)*, %struct.dentry* (%struct.inode*, %struct.dentry*)*, i32 (%struct.dentry*, %struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*, i8*)*, i32 (%struct.inode*, %struct.dentry*, i32)*, i32 (%struct.inode*, %struct.dentry*)*, i32 (%struct.inode*, %struct.dentry*, i32, i32)*, i32 (%struct.inode*, %struct.dentry*, %struct.inode*, %struct.dentry*)*, i32 (%struct.dentry*, i8*, i32)*, i32 (%struct.dentry*, %struct.nameidata*)*, void (%struct.inode*)*, i32 (%struct.inode*, i32)*, i32 (%struct.dentry*)*, i32 (%struct.dentry*, %struct.iattr*)*, i32 (%struct.dentry*, %struct.iattr*)*, i32 (%struct.dentry*, i8*, i8*, i32, i32)*, i32 (%struct.dentry*, i8*, i8*, i32)*, i32 (%struct.dentry*, i8*, i32)*, i32 (%struct.dentry*, i8*)* }
59 %struct.iovec = type { i8*, i32 }
60 %struct.ip_options = type { i32, i8, i8, i8, i8, i8, i8, i8, i8, [0 x i8] }
61 %struct.isapnp_dma = type { i8, i8, %struct.isapnp_resources*, %struct.isapnp_dma* }
62 %struct.isapnp_irq = type { i16, i8, i8, %struct.isapnp_resources*, %struct.isapnp_irq* }
63 %struct.isapnp_mem = type { i32, i32, i32, i32, i8, i8, %struct.isapnp_resources*, %struct.isapnp_mem* }
64 %struct.isapnp_mem32 = type { [17 x i8], %struct.isapnp_resources*, %struct.isapnp_mem32* }
65 %struct.isapnp_port = type { i16, i16, i8, i8, i8, i8, %struct.isapnp_resources*, %struct.isapnp_port* }
66 %struct.isapnp_resources = type { i16, i16, %struct.isapnp_port*, %struct.isapnp_irq*, %struct.isapnp_dma*, %struct.isapnp_mem*, %struct.isapnp_mem32*, %struct.pci_dev*, %struct.isapnp_resources*, %struct.isapnp_resources* }
67 %struct.iso_inode_info = type { i32, i8, [3 x i8], i32, i32 }
6968 %struct.iw_handler_def = type opaque
7069 %struct.iw_statistics = type opaque
7170 %struct.k_sigaction = type { %struct.sigaction }
72 %struct.kern_ipc_perm = type { int, uint, uint, uint, uint, ushort, uint }
73 %struct.kiobuf = type { int, int, int, int, uint, %struct.page**, %struct.buffer_head**, uint*, %struct.bluez_skb_cb, int, void (%struct.kiobuf*)*, %struct.__wait_queue_head }
74 %struct.kmem_cache_s = type { %struct.list_head, %struct.list_head, %struct.list_head, uint, uint, uint, %struct.IO_APIC_reg_00, uint, uint, uint, uint, uint, uint, %struct.kmem_cache_s*, uint, uint, void (sbyte*, %struct.kmem_cache_s*, uint)*, void (sbyte*, %struct.kmem_cache_s*, uint)*, uint, [20 x sbyte], %struct.list_head, [32 x %struct._drm_i810_overlay_t*], uint }
75 %struct.linux_binfmt = type { %struct.linux_binfmt*, %struct.module*, int (%struct.linux_binprm*, %struct.pt_regs*)*, int (%struct.file*)*, int (int, %struct.pt_regs*, %struct.file*)*, uint, int (%struct.linux_binprm*, sbyte*)* }
76 %struct.linux_binprm = type { [128 x sbyte], [32 x %struct.page*], uint, int, %struct.file*, int, int, uint, uint, uint, int, int, sbyte*, uint, uint }
71 %struct.kern_ipc_perm = type { i32, i32, i32, i32, i32, i16, i32 }
72 %struct.kiobuf = type { i32, i32, i32, i32, i32, %struct.page**, %struct.buffer_head**, i32*, %struct.IO_APIC_reg_00, i32, void (%struct.kiobuf*)*, %struct.__wait_queue_head }
73 %struct.kmem_cache_s = type { %struct.list_head, %struct.list_head, %struct.list_head, i32, i32, i32, %struct.IO_APIC_reg_00, i32, i32, i32, i32, i32, i32, %struct.kmem_cache_s*, i32, i32, void (i8*, %struct.kmem_cache_s*, i32)*, void (i8*, %struct.kmem_cache_s*, i32)*, i32, [20 x i8], %struct.list_head, [32 x %struct._drm_i810_overlay_t*], i32 }
74 %struct.linux_binfmt = type { %struct.linux_binfmt*, %struct.module*, i32 (%struct.linux_binprm*, %struct.pt_regs*)*, i32 (%struct.file*)*, i32 (i32, %struct.pt_regs*, %struct.file*)*, i32, i32 (%struct.linux_binprm*, i8*)* }
75 %struct.linux_binprm = type { [128 x i8], [32 x %struct.page*], i32, i32, %struct.file*, i32, i32, i32, i32, i32, i32, i32, i8*, i32, i32 }
7776 %struct.list_head = type { %struct.list_head*, %struct.list_head* }
78 %struct.llva_sigcontext = type { %typedef.llva_icontext_t, %typedef.llva_fp_state_t, uint, uint, uint, uint, [1 x uint], sbyte* }
77 %struct.llva_sigcontext = type { %typedef.llva_icontext_t, %typedef.llva_fp_state_t, i32, i32, i32, i32, [1 x i32], i8* }
7978 %struct.map_segment = type opaque
80 %struct.mem_dqblk = type { uint, uint, ulong, uint, uint, uint, int, int }
81 %struct.mem_dqinfo = type { %struct.quota_format_type*, int, uint, uint, { %struct.ViceFid } }
82 %struct.mm_struct = type { %struct.vm_area_struct*, %struct.rb_root_s, %struct.vm_area_struct*, %struct.IO_APIC_reg_00*, %struct.bluez_skb_cb, %struct.bluez_skb_cb, int, %struct.rw_semaphore, %struct.IO_APIC_reg_00, %struct.list_head, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, %struct.iovec }
83 %struct.module = type { uint, %struct.module*, sbyte*, uint, %struct.bluez_skb_cb, uint, uint, uint, %struct.drm_ctx_priv_map*, %struct.module_ref*, %struct.module_ref*, int ()*, void ()*, %struct._drm_i810_overlay_t*, %struct._drm_i810_overlay_t*, %struct.module_persist*, %struct.module_persist*, int ()*, int, sbyte*, sbyte*, sbyte*, sbyte*, sbyte* }
79 %struct.mem_dqblk = type { i32, i32, i64, i32, i32, i32, i32, i32 }
80 %struct.mem_dqinfo = type { %struct.quota_format_type*, i32, i32, i32, { %struct.ViceFid } }
81 %struct.mm_struct = type { %struct.vm_area_struct*, %struct.rb_root_s, %struct.vm_area_struct*, %struct.IO_APIC_reg_00*, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32, %struct.rw_semaphore, %struct.IO_APIC_reg_00, %struct.list_head, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.iovec }
82 %struct.module = type { i32, %struct.module*, i8*, i32, %struct.IO_APIC_reg_00, i32, i32, i32, %struct.drm_ctx_priv_map*, %struct.module_ref*, %struct.module_ref*, i32 ()*, void ()*, %struct._drm_i810_overlay_t*, %struct._drm_i810_overlay_t*, %struct.module_persist*, %struct.module_persist*, i32 ()*, i32, i8*, i8*, i8*, i8*, i8* }
8483 %struct.module_persist = type opaque
8584 %struct.module_ref = type { %struct.module*, %struct.module*, %struct.module_ref* }
86 %struct.msdos_inode_info = type { uint, int, int, int, int, int, %struct.inode*, %struct.list_head }
87 %struct.msghdr = type { sbyte*, int, %struct.iovec*, uint, sbyte*, uint, uint }
88 %struct.msq_setbuf = type { uint, uint, uint, ushort }
89 %struct.nameidata = type { %struct.dentry*, %struct.vfsmount*, %struct.qstr, uint, int }
90 %struct.namespace = type { %struct.bluez_skb_cb, %struct.vfsmount*, %struct.list_head, %struct.rw_semaphore }
91 %struct.neigh_ops = type { int, void (%struct.neighbour*)*, void (%struct.neighbour*, %struct.sk_buff*)*, void (%struct.neighbour*, %struct.sk_buff*)*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)*, int (%struct.sk_buff*)* }
92 %struct.neigh_parms = type { %struct.neigh_parms*, int (%struct.neighbour*)*, %struct.neigh_table*, int, sbyte*, sbyte*, int, int, int, int, int, int, int, int, int, int, int, int, int }
93 %struct.neigh_table = type { %struct.neigh_table*, int, int, int, uint (sbyte*, %struct.net_device*)*, int (%struct.neighbour*)*, int (%struct.pneigh_entry*)*, void (%struct.pneigh_entry*)*, void (%struct.sk_buff*)*, sbyte*, %struct.neigh_parms, int, int, int, int, uint, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, int, %typedef.rwlock_t, uint, %struct.neigh_parms*, %struct.kmem_cache_s*, %struct.tasklet_struct, %struct.cramfs_info, [32 x %struct.neighbour*], [16 x %struct.pneigh_entry*] }
94 %struct.neighbour = type { %struct.neighbour*, %struct.neigh_table*, %struct.neigh_parms*, %struct.net_device*, uint, uint, uint, ubyte, ubyte, ubyte, ubyte, %struct.bluez_skb_cb, %typedef.rwlock_t, [8 x ubyte], %struct.hh_cache*, %struct.bluez_skb_cb, int (%struct.sk_buff*)*, %struct.sk_buff_head, %struct.timer_list, %struct.neigh_ops*, [0 x ubyte] }
85 %struct.msdos_inode_info = type { i32, i32, i32, i32, i32, i32, %struct.inode*, %struct.list_head }
86 %struct.msghdr = type { i8*, i32, %struct.iovec*, i32, i8*, i32, i32 }
87 %struct.msq_setbuf = type { i32, i32, i32, i16 }
88 %struct.nameidata = type { %struct.dentry*, %struct.vfsmount*, %struct.qstr, i32, i32 }
89 %struct.namespace = type { %struct.IO_APIC_reg_00, %struct.vfsmount*, %struct.list_head, %struct.rw_semaphore }
90 %struct.neigh_ops = type { i32, void (%struct.neighbour*)*, void (%struct.neighbour*, %struct.sk_buff*)*, void (%struct.neighbour*, %struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)*, i32 (%struct.sk_buff*)* }
91 %struct.neigh_parms = type { %struct.neigh_parms*, i32 (%struct.neighbour*)*, %struct.neigh_table*, i32, i8*, i8*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
92 %struct.neigh_table = type { %struct.neigh_table*, i32, i32, i32, i32 (i8*, %struct.net_device*)*, i32 (%struct.neighbour*)*, i32 (%struct.pneigh_entry*)*, void (%struct.pneigh_entry*)*, void (%struct.sk_buff*)*, i8*, %struct.neigh_parms, i32, i32, i32, i32, i32, %struct.timer_list, %struct.timer_list, %struct.sk_buff_head, i32, %typedef.rwlock_t, i32, %struct.neigh_parms*, %struct.kmem_cache_s*, %struct.tasklet_struct, %struct.audio_buf_info, [32 x %struct.neighbour*], [16 x %struct.pneigh_entry*] }
93 %struct.neighbour = type { %struct.neighbour*, %struct.neigh_table*, %struct.neigh_parms*, %struct.net_device*, i32, i32, i32, i8, i8, i8, i8, %struct.IO_APIC_reg_00, %typedef.rwlock_t, [8 x i8], %struct.hh_cache*, %struct.IO_APIC_reg_00, i32 (%struct.sk_buff*)*, %struct.sk_buff_head, %struct.timer_list, %struct.neigh_ops*, [0 x i8] }
9594 %struct.net_bridge_port = type opaque
96 %struct.net_device = type { [16 x sbyte], uint, uint, uint, uint, uint, uint, ubyte, ubyte, uint, %struct.net_device*, int (%struct.net_device*)*, %struct.net_device*, int, int, %struct.net_device_stats* (%struct.net_device*)*, %struct.iw_statistics* (%struct.net_device*)*, %struct.iw_handler_def*, uint, uint, ushort, ushort, ushort, ushort, uint, ushort, ushort, sbyte*, %struct.net_device*, [8 x ubyte], [8 x ubyte], ubyte, %struct.dev_mc_list*, int, int, int, int, %struct.timer_list, sbyte*, sbyte*, sbyte*, sbyte*, sbyte*, %struct.list_head, int, int, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, uint, %struct.IO_APIC_reg_00, int, %struct.IO_APIC_reg_00, %struct.bluez_skb_cb, int, int, void (%struct.net_device*)*, void (%struct.net_device*)*, int (%struct.net_device*)*, int (%struct.net_device*)*, int (%struct.sk_buff*, %struct.net_device*)*, int (%struct.net_device*, int*)*, int (%struct.sk_buff*, %struct.net_device*, ushort, sbyte*, sbyte*, uint)*, int (%struct.sk_buff*)*, void (%struct.net_device*)*, int (%struct.net_device*, sbyte*)*, int (%struct.net_device*, %struct.ifreq*, int)*, int (%struct.net_device*, %struct.ifmap*)*, int (%struct.neighbour*, %struct.hh_cache*)*, void (%struct.hh_cache*, %struct.net_device*, ubyte*)*, int (%struct.net_device*, int)*, void (%struct.net_device*)*, void (%struct.net_device*, %struct.vlan_group*)*, void (%struct.net_device*, ushort)*, void (%struct.net_device*, ushort)*, int (%struct.sk_buff*, ubyte*)*, int (%struct.net_device*, %struct.neigh_parms*)*, int (%struct.net_device*, %struct.dst_entry*)*, %struct.module*, %struct.net_bridge_port* }
97 %struct.net_device_stats = type { uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint, uint }
98 %struct.nf_conntrack = type { %struct.bluez_skb_cb, void (%struct.nf_conntrack*)* }
95 %struct.net_device = type { [16 x i8], i32, i32, i32, i32, i32, i32, i8, i8, i32, %struct.net_device*, i32 (%struct.net_device*)*, %struct.net_device*, i32, i32, %struct.net_device_stats* (%struct.net_device*)*, %struct.iw_statistics* (%struct.net_device*)*, %struct.iw_handler_def*, i32, i32, i16, i16, i16, i16, i32, i16, i16, i8*, %struct.net_device*, [8 x i8], [8 x i8], i8, %struct.dev_mc_list*, i32, i32, i32, i32, %struct.timer_list, i8*, i8*, i8*, i8*, i8*, %struct.list_head, i32, i32, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, %struct.Qdisc*, i32, %struct.IO_APIC_reg_00, i32, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, i32, i32, void (%struct.net_device*)*, void (%struct.net_device*)*, i32 (%struct.net_device*)*, i32 (%struct.net_device*)*, i32 (%struct.sk_buff*, %struct.net_device*)*, i32 (%struct.net_device*, i32*)*, i32 (%struct.sk_buff*, %struct.net_device*, i16, i8*, i8*, i32)*, i32 (%struct.sk_buff*)*, void (%struct.net_device*)*, i32 (%struct.net_device*, i8*)*, i32 (%struct.net_device*, %struct.ifreq*, i32)*, i32 (%struct.net_device*, %struct.ifmap*)*, i32 (%struct.neighbour*, %struct.hh_cache*)*, void (%struct.hh_cache*, %struct.net_device*, i8*)*, i32 (%struct.net_device*, i32)*, void (%struct.net_device*)*, void (%struct.net_device*, %struct.vlan_group*)*, void (%struct.net_device*, i16)*, void (%struct.net_device*, i16)*, i32 (%struct.sk_buff*, i8*)*, i32 (%struct.net_device*, %struct.neigh_parms*)*, i32 (%struct.net_device*, %struct.dst_entry*)*, %struct.module*, %struct.net_bridge_port* }
96 %struct.net_device_stats = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
97 %struct.nf_conntrack = type { %struct.IO_APIC_reg_00, void (%struct.nf_conntrack*)* }
9998 %struct.nf_ct_info = type { %struct.nf_conntrack* }
100 %struct.nfs_fh = type { ushort, [64 x ubyte] }
101 %struct.nfs_inode_info = type { ulong, %struct.nfs_fh, ushort, uint, ulong, ulong, ulong, uint, uint, uint, [2 x uint], %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, uint, uint, uint, uint, %struct.rpc_cred* }
102 %struct.nfs_lock_info = type { uint, uint, %struct.nlm_host* }
99 %struct.nfs_fh = type { i16, [64 x i8] }
100 %struct.nfs_inode_info = type { i64, %struct.nfs_fh, i16, i32, i64, i64, i64, i32, i32, i32, [2 x i32], %struct.list_head, %struct.list_head, %struct.list_head, %struct.list_head, i32, i32, i32, i32, %struct.rpc_cred* }
101 %struct.nfs_lock_info = type { i32, i32, %struct.nlm_host* }
103102 %struct.nlm_host = type opaque
104 %struct.open_request = type { %struct.open_request*, uint, uint, ushort, ushort, ubyte, ubyte, ushort, uint, uint, uint, uint, %struct.or_calltable*, %struct.sock*, { %struct.tcp_v4_open_req } }
105 %struct.or_calltable = type { int, int (%struct.sock*, %struct.open_request*, %struct.dst_entry*)*, void (%struct.sk_buff*, %struct.open_request*)*, void (%struct.open_request*)*, void (%struct.sk_buff*)* }
106 %struct.page = type { %struct.list_head, %struct.address_space*, uint, %struct.page*, %struct.bluez_skb_cb, uint, %struct.list_head, %struct.page**, %struct.buffer_head* }
107 %struct.pci_bus = type { %struct.list_head, %struct.pci_bus*, %struct.list_head, %struct.list_head, %struct.pci_dev*, [4 x %struct.resource*], %struct.pci_ops*, sbyte*, %struct.proc_dir_entry*, ubyte, ubyte, ubyte, ubyte, [48 x sbyte], ushort, ushort, uint, ubyte, ubyte, ubyte, ubyte }
108 %struct.pci_dev = type { %struct.list_head, %struct.list_head, %struct.pci_bus*, %struct.pci_bus*, sbyte*, %struct.proc_dir_entry*, uint, ushort, ushort, ushort, ushort, uint, ubyte, ubyte, %struct.pci_driver*, sbyte*, ulong, uint, [4 x ushort], [4 x ushort], uint, [12 x %struct.resource], [2 x %struct.resource], [2 x %struct.resource], [90 x sbyte], [8 x sbyte], int, int, ushort, ushort, int (%struct.pci_dev*)*, int (%struct.pci_dev*)*, int (%struct.pci_dev*)* }
109 %struct.pci_device_id = type { uint, uint, uint, uint, uint, uint, uint }
110 %struct.pci_driver = type { %struct.list_head, sbyte*, %struct.pci_device_id*, int (%struct.pci_dev*, %struct.pci_device_id*)*, void (%struct.pci_dev*)*, int (%struct.pci_dev*, uint)*, int (%struct.pci_dev*, uint)*, int (%struct.pci_dev*)*, int (%struct.pci_dev*, uint, int)* }
111 %struct.pci_ops = type { int (%struct.pci_dev*, int, ubyte*)*, int (%struct.pci_dev*, int, ushort*)*, int (%struct.pci_dev*, int, uint*)*, int (%struct.pci_dev*, int, ubyte)*, int (%struct.pci_dev*, int, ushort)*, int (%struct.pci_dev*, int, uint)* }
112 %struct.pipe_inode_info = type { %struct.__wait_queue_head, sbyte*, uint, uint, uint, uint, uint, uint, uint, uint }
113 %struct.pneigh_entry = type { %struct.pneigh_entry*, %struct.net_device*, [0 x ubyte] }
103 %struct.open_request = type { %struct.open_request*, i32, i32, i16, i16, i8, i8, i16, i32, i32, i32, i32, %struct.or_calltable*, %struct.sock*, { %struct.tcp_v4_open_req } }
104 %struct.or_calltable = type { i32, i32 (%struct.sock*, %struct.open_request*, %struct.dst_entry*)*, void (%struct.sk_buff*, %struct.open_request*)*, void (%struct.open_request*)*, void (%struct.sk_buff*)* }
105 %struct.page = type { %struct.list_head, %struct.address_space*, i32, %struct.page*, %struct.IO_APIC_reg_00, i32, %struct.list_head, %struct.page**, %struct.buffer_head* }
106 %struct.pci_bus = type { %struct.list_head, %struct.pci_bus*, %struct.list_head, %struct.list_head, %struct.pci_dev*, [4 x %struct.resource*], %struct.pci_ops*, i8*, %struct.proc_dir_entry*, i8, i8, i8, i8, [48 x i8], i16, i16, i32, i8, i8, i8, i8 }
107 %struct.pci_dev = type { %struct.list_head, %struct.list_head, %struct.pci_bus*, %struct.pci_bus*, i8*, %struct.proc_dir_entry*, i32, i16, i16, i16, i16, i32, i8, i8, %struct.pci_driver*, i8*, i64, i32, [4 x i16], [4 x i16], i32, [12 x %struct.resource], [2 x %struct.resource], [2 x %struct.resource], [90 x i8], [8 x i8], i32, i32, i16, i16, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*)* }
108 %struct.pci_device_id = type { i32, i32, i32, i32, i32, i32, i32 }
109 %struct.pci_driver = type { %struct.list_head, i8*, %struct.pci_device_id*, i32 (%struct.pci_dev*, %struct.pci_device_id*)*, void (%struct.pci_dev*)*, i32 (%struct.pci_dev*, i32)*, i32 (%struct.pci_dev*, i32)*, i32 (%struct.pci_dev*)*, i32 (%struct.pci_dev*, i32, i32)* }
110 %struct.pci_ops = type { i32 (%struct.pci_dev*, i32, i8*)*, i32 (%struct.pci_dev*, i32, i16*)*, i32 (%struct.pci_dev*, i32, i32*)*, i32 (%struct.pci_dev*, i32, i8)*, i32 (%struct.pci_dev*, i32, i16)*, i32 (%struct.pci_dev*, i32, i32)* }
111 %struct.pipe_inode_info = type { %struct.__wait_queue_head, i8*, i32, i32, i32, i32, i32, i32, i32, i32 }
112 %struct.pneigh_entry = type { %struct.pneigh_entry*, %struct.net_device*, [0 x i8] }
114113 %struct.poll_table_entry = type { %struct.file*, %struct.__wait_queue, %struct.__wait_queue_head* }
115114 %struct.poll_table_page = type { %struct.poll_table_page*, %struct.poll_table_entry*, [0 x %struct.poll_table_entry] }
116 %struct.poll_table_struct = type { int, %struct.poll_table_page* }
117 %struct.proc_dir_entry = type { ushort, ushort, sbyte*, ushort, ushort, uint, uint, uint, %struct.inode_operations*, %struct.file_operations*, int (sbyte*, sbyte**, int, int)*, %struct.module*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, sbyte*, int (sbyte*, sbyte**, int, int, int*, sbyte*)*, int (%struct.file*, sbyte*, uint, sbyte*)*, %struct.bluez_skb_cb, int, ushort }
118 %struct.proc_inode_info = type { %struct.task_struct*, int, { int (%struct.task_struct*, sbyte*)* }, %struct.file* }
119 %struct.proto = type { void (%struct.sock*, int)*, int (%struct.sock*, %struct.sockaddr*, int)*, int (%struct.sock*, int)*, %struct.sock* (%struct.sock*, int, int*)*, int (%struct.sock*, int, uint)*, int (%struct.sock*)*, int (%struct.sock*)*, void (%struct.sock*, int)*, int (%struct.sock*, int, int, sbyte*, int)*, int (%struct.sock*, int, int, sbyte*, int*)*, int (%struct.sock*, %struct.msghdr*, int)*, int (%struct.sock*, %struct.msghdr*, int, int, int, int*)*, int (%struct.sock*, %struct.sockaddr*, int)*, int (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)*, void (%struct.sock*)*, int (%struct.sock*, ushort)*, [32 x sbyte], [32 x { int, [28 x ubyte] }] }
120 %struct.proto_ops = type { int, int (%struct.socket*)*, int (%struct.socket*, %struct.sockaddr*, int)*, int (%struct.socket*, %struct.sockaddr*, int, int)*, int (%struct.socket*, %struct.socket*)*, int (%struct.socket*, %struct.socket*, int)*, int (%struct.socket*, %struct.sockaddr*, int*, int)*, uint (%struct.file*, %struct.socket*, %struct.poll_table_struct*)*, int (%struct.socket*, uint, uint)*, int (%struct.socket*, int)*, int (%struct.socket*, int)*, int (%struct.socket*, int, int, sbyte*, int)*, int (%struct.socket*, int, int, sbyte*, int*)*, int (%struct.socket*, %struct.msghdr*, int, %struct.scm_cookie*)*, int (%struct.socket*, %struct.msghdr*, int, int, %struct.scm_cookie*)*, int (%struct.file*, %struct.socket*, %struct.vm_area_struct*)*, int (%struct.socket*, %struct.page*, int, uint, int)* }
121 %struct.pt_regs = type { int, int, int, int, int, int, int, int, int, int, int, int, int, int, int }
122 %struct.qdisc_walker = type { int, int, int, int (%struct.Qdisc*, uint, %struct.qdisc_walker*)* }
123 %struct.qstr = type { ubyte*, uint, uint }
124 %struct.quota_format_ops = type { int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.dquot*)*, int (%struct.dquot*)* }
125 %struct.quota_format_type = type { int, %struct.quota_format_ops*, %struct.module*, %struct.quota_format_type* }
126 %struct.quota_info = type { uint, %struct.semaphore, %struct.semaphore, [2 x %struct.file*], [2 x %struct.mem_dqinfo], [2 x %struct.quota_format_ops*] }
127 %struct.quotactl_ops = type { int (%struct.super_block*, int, int, sbyte*)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int)*, int (%struct.super_block*, int, %struct.if_dqinfo*)*, int (%struct.super_block*, int, %struct.if_dqinfo*)*, int (%struct.super_block*, int, uint, %struct.if_dqblk*)*, int (%struct.super_block*, int, uint, %struct.if_dqblk*)*, int (%struct.super_block*, %struct.fs_quota_stat*)*, int (%struct.super_block*, uint, int)*, int (%struct.super_block*, int, uint, %struct.fs_disk_quota*)*, int (%struct.super_block*, int, uint, %struct.fs_disk_quota*)* }
128 %struct.rb_node_s = type { %struct.rb_node_s*, int, %struct.rb_node_s*, %struct.rb_node_s* }
115 %struct.poll_table_struct = type { i32, %struct.poll_table_page* }
116 %struct.proc_dir_entry = type { i16, i16, i8*, i16, i16, i32, i32, i32, %struct.inode_operations*, %struct.file_operations*, i32 (i8*, i8**, i32, i32)*, %struct.module*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, %struct.proc_dir_entry*, i8*, i32 (i8*, i8**, i32, i32, i32*, i8*)*, i32 (%struct.file*, i8*, i32, i8*)*, %struct.IO_APIC_reg_00, i32, i16 }
117 %struct.proc_inode_info = type { %struct.task_struct*, i32, { i32 (%struct.task_struct*, i8*)* }, %struct.file* }
118 %struct.proto = type { void (%struct.sock*, i32)*, i32 (%struct.sock*, %struct.sockaddr*, i32)*, i32 (%struct.sock*, i32)*, %struct.sock* (%struct.sock*, i32, i32*)*, i32 (%struct.sock*, i32, i32)*, i32 (%struct.sock*)*, i32 (%struct.sock*)*, void (%struct.sock*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32)*, i32 (%struct.sock*, i32, i32, i8*, i32*)*, i32 (%struct.sock*, %struct.msghdr*, i32)*, i32 (%struct.sock*, %struct.msghdr*, i32, i32, i32, i32*)*, i32 (%struct.sock*, %struct.sockaddr*, i32)*, i32 (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)*, void (%struct.sock*)*, i32 (%struct.sock*, i16)*, [32 x i8], [32 x { i32, [28 x i8] }] }
119 %struct.proto_ops = type { i32, i32 (%struct.socket*)*, i32 (%struct.socket*, %struct.sockaddr*, i32)*, i32 (%struct.socket*, %struct.sockaddr*, i32, i32)*, i32 (%struct.socket*, %struct.socket*)*, i32 (%struct.socket*, %struct.socket*, i32)*, i32 (%struct.socket*, %struct.sockaddr*, i32*, i32)*, i32 (%struct.file*, %struct.socket*, %struct.poll_table_struct*)*, i32 (%struct.socket*, i32, i32)*, i32 (%struct.socket*, i32)*, i32 (%struct.socket*, i32)*, i32 (%struct.socket*, i32, i32, i8*, i32)*, i32 (%struct.socket*, i32, i32, i8*, i32*)*, i32 (%struct.socket*, %struct.msghdr*, i32, %struct.scm_cookie*)*, i32 (%struct.socket*, %struct.msghdr*, i32, i32, %struct.scm_cookie*)*, i32 (%struct.file*, %struct.socket*, %struct.vm_area_struct*)*, i32 (%struct.socket*, %struct.page*, i32, i32, i32)* }
120 %struct.pt_regs = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
121 %struct.qdisc_walker = type { i32, i32, i32, i32 (%struct.Qdisc*, i32, %struct.qdisc_walker*)* }
122 %struct.qstr = type { i8*, i32, i32 }
123 %struct.quota_format_ops = type { i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.dquot*)*, i32 (%struct.dquot*)* }
124 %struct.quota_format_type = type { i32, %struct.quota_format_ops*, %struct.module*, %struct.quota_format_type* }
125 %struct.quota_info = type { i32, %struct.semaphore, %struct.semaphore, [2 x %struct.file*], [2 x %struct.mem_dqinfo], [2 x %struct.quota_format_ops*] }
126 %struct.quotactl_ops = type { i32 (%struct.super_block*, i32, i32, i8*)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32)*, i32 (%struct.super_block*, i32, %struct.if_dqinfo*)*, i32 (%struct.super_block*, i32, %struct.if_dqinfo*)*, i32 (%struct.super_block*, i32, i32, %struct.if_dqblk*)*, i32 (%struct.super_block*, i32, i32, %struct.if_dqblk*)*, i32 (%struct.super_block*, %struct.fs_quota_stat*)*, i32 (%struct.super_block*, i32, i32)*, i32 (%struct.super_block*, i32, i32, %struct.fs_disk_quota*)*, i32 (%struct.super_block*, i32, i32, %struct.fs_disk_quota*)* }
127 %struct.rb_node_s = type { %struct.rb_node_s*, i32, %struct.rb_node_s*, %struct.rb_node_s* }
129128 %struct.rb_root_s = type { %struct.rb_node_s* }
130 %struct.resource = type { sbyte*, uint, uint, uint, %struct.resource*, %struct.resource*, %struct.resource* }
131 %struct.revectored_struct = type { [8 x uint] }
132 %struct.rpc_auth = type { [8 x %struct.rpc_cred*], uint, uint, uint, uint, uint, %struct.rpc_authops* }
133 %struct.rpc_authops = type { uint, sbyte*, %struct.rpc_auth* (%struct.rpc_clnt*)*, void (%struct.rpc_auth*)*, %struct.rpc_cred* (int)* }
134 %struct.rpc_clnt = type { %struct.bluez_skb_cb, %struct.rpc_xprt*, %struct.rpc_procinfo*, uint, sbyte*, sbyte*, %struct.rpc_auth*, %struct.rpc_stat*, uint, uint, uint, %struct.rpc_rtt, %struct.msq_setbuf, %struct.rpc_wait_queue, int, [32 x sbyte] }
135 %struct.rpc_cred = type { %struct.rpc_cred*, %struct.rpc_auth*, %struct.rpc_credops*, uint, %struct.bluez_skb_cb, ushort, uint, uint }
136 %struct.rpc_credops = type { void (%struct.rpc_cred*)*, int (%struct.rpc_cred*, int)*, uint* (%struct.rpc_task*, uint*, int)*, int (%struct.rpc_task*)*, uint* (%struct.rpc_task*, uint*)* }
137 %struct.rpc_message = type { uint, sbyte*, sbyte*, %struct.rpc_cred* }
138 %struct.rpc_procinfo = type { sbyte*, int (sbyte*, uint*, sbyte*)*, int (sbyte*, uint*, sbyte*)*, uint, uint, uint }
139 %struct.rpc_program = type { sbyte*, uint, uint, %struct.rpc_version**, %struct.rpc_stat* }
140 %struct.rpc_rqst = type { %struct.rpc_xprt*, %struct.rpc_timeout, %struct.xdr_buf, %struct.xdr_buf, %struct.rpc_task*, uint, %struct.rpc_rqst*, int, int, %struct.list_head, %struct.xdr_buf, [2 x uint], uint, int, int, int }
141 %struct.rpc_rtt = type { int, [5 x int], [5 x int], %struct.bluez_skb_cb }
142 %struct.rpc_stat = type { %struct.rpc_program*, uint, uint, uint, uint, uint, uint, uint, uint, uint }
143 %struct.rpc_task = type { %struct.list_head, uint, %struct.list_head, %struct.rpc_clnt*, %struct.rpc_rqst*, int, %struct.rpc_wait_queue*, %struct.rpc_message, uint*, ubyte, ubyte, ubyte, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, sbyte*, %struct.timer_list, %struct.__wait_queue_head, uint, ushort, ubyte, uint, ushort }
144 %struct.rpc_timeout = type { uint, uint, uint, uint, short, ubyte }
145 %struct.rpc_version = type { uint, uint, %struct.rpc_procinfo* }
146 %struct.rpc_wait_queue = type { %struct.list_head, sbyte* }
147 %struct.rpc_xprt = type { %struct.socket*, %struct.sock*, %struct.rpc_timeout, %struct.sockaddr_in, int, uint, uint, uint, uint, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_rqst*, [16 x %struct.rpc_rqst], uint, ubyte, uint, uint, uint, uint, uint, uint, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.rpc_task*, %struct.list_head, void (%struct.sock*, int)*, void (%struct.sock*)*, void (%struct.sock*)*, %struct.__wait_queue_head }
148 %struct.rw_semaphore = type { int, %struct.IO_APIC_reg_00, %struct.list_head }
149 %struct.scm_cookie = type { %struct.ViceFid, %struct.scm_fp_list*, uint }
150 %struct.scm_fp_list = type { int, [255 x %struct.file*] }
151 %struct.sem_array = type { %struct.kern_ipc_perm, int, int, %struct.autofs_packet_hdr*, %struct.sem_queue*, %struct.sem_queue**, %struct.sem_undo*, uint }
152 %struct.sem_queue = type { %struct.sem_queue*, %struct.sem_queue**, %struct.task_struct*, %struct.sem_undo*, int, int, %struct.sem_array*, int, %struct.sembuf*, int, int }
153 %struct.sem_undo = type { %struct.sem_undo*, %struct.sem_undo*, int, short* }
154 %struct.semaphore = type { %struct.bluez_skb_cb, int, %struct.__wait_queue_head }
155 %struct.sembuf = type { ushort, short, short }
156 %struct.seq_file = type { sbyte*, uint, uint, uint, long, %struct.semaphore, %struct.seq_operations*, sbyte* }
157 %struct.seq_operations = type { sbyte* (%struct.seq_file*, long*)*, void (%struct.seq_file*, sbyte*)*, sbyte* (%struct.seq_file*, sbyte*, long*)*, int (%struct.seq_file*, sbyte*)* }
158 %struct.shmem_inode_info = type { %struct.IO_APIC_reg_00, uint, [16 x %struct.IO_APIC_reg_00], sbyte**, uint, uint, %struct.list_head, %struct.inode* }
159 %struct.sigaction = type { void (int)*, uint, void ()*, %typedef.sigset_t }
160 %struct.siginfo = type { int, int, int, { [29 x int] } }
161 %struct.signal_struct = type { %struct.bluez_skb_cb, [64 x %struct.k_sigaction], %struct.IO_APIC_reg_00 }
162 %struct.sigpending = type { %struct.sigqueue*, %struct.sigqueue**, %typedef.sigset_t }
129 %struct.resource = type { i8*, i32, i32, i32, %struct.resource*, %struct.resource*, %struct.resource* }
130 %struct.revectored_struct = type { [8 x i32] }
131 %struct.rpc_auth = type { [8 x %struct.rpc_cred*], i32, i32, i32, i32, i32, %struct.rpc_authops* }
132 %struct.rpc_authops = type { i32, i8*, %struct.rpc_auth* (%struct.rpc_clnt*)*, void (%struct.rpc_auth*)*, %struct.rpc_cred* (i32)* }
133 %struct.rpc_clnt = type { %struct.IO_APIC_reg_00, %struct.rpc_xprt*, %struct.rpc_procinfo*, i32, i8*, i8*, %struct.rpc_auth*, %struct.rpc_stat*, i32, i32, i32, %struct.rpc_rtt, %struct.msq_setbuf, %struct.rpc_wait_queue, i32, [32 x i8] }
134 %struct.rpc_cred = type { %struct.rpc_cred*, %struct.rpc_auth*, %struct.rpc_credops*, i32, %struct.IO_APIC_reg_00, i16, i32, i32 }
135 %struct.rpc_credops = type { void (%struct.rpc_cred*)*, i32 (%struct.rpc_cred*, i32)*, i32* (%struct.rpc_task*, i32*, i32)*, i32 (%struct.rpc_task*)*, i32* (%struct.rpc_task*, i32*)* }
136 %struct.rpc_message = type { i32, i8*, i8*, %struct.rpc_cred* }
137 %struct.rpc_procinfo = type { i8*, i32 (i8*, i32*, i8*)*, i32 (i8*, i32*, i8*)*, i32, i32, i32 }
138 %struct.rpc_program = type { i8*, i32, i32, %struct.rpc_version**, %struct.rpc_stat* }
139 %struct.rpc_rqst = type { %struct.rpc_xprt*, %struct.rpc_timeout, %struct.xdr_buf, %struct.xdr_buf, %struct.rpc_task*, i32, %struct.rpc_rqst*, i32, i32, %struct.list_head, %struct.xdr_buf, [2 x i32], i32, i32, i32, i32 }
140 %struct.rpc_rtt = type { i32, [5 x i32], [5 x i32], %struct.IO_APIC_reg_00 }
141 %struct.rpc_stat = type { %struct.rpc_program*, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
142 %struct.rpc_task = type { %struct.list_head, i32, %struct.list_head, %struct.rpc_clnt*, %struct.rpc_rqst*, i32, %struct.rpc_wait_queue*, %struct.rpc_message, i32*, i8, i8, i8, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, void (%struct.rpc_task*)*, i8*, %struct.timer_list, %struct.__wait_queue_head, i32, i16, i8, i32, i16 }
143 %struct.rpc_timeout = type { i32, i32, i32, i32, i16, i8 }
144 %struct.rpc_version = type { i32, i32, %struct.rpc_procinfo* }
145 %struct.rpc_wait_queue = type { %struct.list_head, i8* }
146 %struct.rpc_xprt = type { %struct.socket*, %struct.sock*, %struct.rpc_timeout, %struct.sockaddr_in, i32, i32, i32, i32, i32, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_wait_queue, %struct.rpc_rqst*, [16 x %struct.rpc_rqst], i32, i8, i32, i32, i32, i32, i32, i32, %struct.IO_APIC_reg_00, %struct.IO_APIC_reg_00, %struct.rpc_task*, %struct.list_head, void (%struct.sock*, i32)*, void (%struct.sock*)*, void (%struct.sock*)*, %struct.__wait_queue_head }
147 %struct.rw_semaphore = type { i32, %struct.IO_APIC_reg_00, %struct.list_head }
148 %struct.scm_cookie = type { %struct.ViceFid, %struct.scm_fp_list*, i32 }
149 %struct.scm_fp_list = type { i32, [255 x %struct.file*] }
150 %struct.sem_array = type { %struct.kern_ipc_perm, i32, i32, %struct._drm_i810_overlay_t*, %struct.sem_queue*, %struct.sem_queue**, %struct.sem_undo*, i32 }
151 %struct.sem_queue = type { %struct.sem_queue*, %struct.sem_queue**, %struct.task_struct*, %struct.sem_undo*, i32, i32, %struct.sem_array*, i32, %struct.sembuf*, i32, i32 }
152 %struct.sem_undo = type { %struct.sem_undo*, %struct.sem_undo*, i32, i16* }
153 %struct.semaphore = type { %struct.IO_APIC_reg_00, i32, %struct.__wait_queue_head }
154 %struct.sembuf = type { i16, i16, i16 }
155 %struct.seq_file = type { i8*, i32, i32, i32, i64, %struct.semaphore, %struct.seq_operations*, i8* }
156 %struct.seq_operations = type { i8* (%struct.seq_file*, i64*)*, void (%struct.seq_file*, i8*)*, i8* (%struct.seq_file*, i8*, i64*)*, i32 (%struct.seq_file*, i8*)* }
157 %struct.shmem_inode_info = type { %struct.IO_APIC_reg_00, i32, [16 x %struct.IO_APIC_reg_00], i8**, i32, i32, %struct.list_head, %struct.inode* }
158 %struct.sigaction = type { void (i32)*, i32, void ()*, %typedef.__kernel_fsid_t }
159 %struct.siginfo = type { i32, i32, i32, { [29 x i32] } }
160 %struct.signal_struct = type { %struct.IO_APIC_reg_00, [64 x %struct.k_sigaction], %struct.IO_APIC_reg_00 }
161 %struct.sigpending = type { %struct.sigqueue*, %struct.sigqueue**, %typedef.__kernel_fsid_t }
163162 %struct.sigqueue = type { %struct.sigqueue*, %struct.siginfo }
164 %struct.sk_buff = type { %struct.sk_buff*, %struct.sk_buff*, %struct.sk_buff_head*, %struct.sock*, %struct.autofs_packet_hdr, %struct.net_device*, %struct.net_device*, { ubyte* }, { ubyte* }, { ubyte* }, %struct.dst_entry*, [48 x sbyte], uint, uint, uint, ubyte, ubyte, ubyte, ubyte, uint, %struct.bluez_skb_cb, ushort, ushort, uint, ubyte*, ubyte*, ubyte*, ubyte*, void (%struct.sk_buff*)*, uint, uint, %struct.nf_ct_info*, uint }
165 %struct.sk_buff_head = type { %struct.sk_buff*, %struct.sk_buff*, uint, %struct.IO_APIC_reg_00 }
166 %struct.sock = type { uint, uint, ushort, ushort, int, %struct.sock*, %struct.sock**, %struct.sock*, %struct.sock**, ubyte, ubyte, ushort, ushort, ubyte, ubyte, %struct.bluez_skb_cb, %typedef.socket_lock_t, int, %struct.__wait_queue_head*, %struct.dst_entry*, %typedef.rwlock_t, %struct.bluez_skb_cb, %struct.sk_buff_head, %struct.bluez_skb_cb, %struct.sk_buff_head, %struct.bluez_skb_cb, int, int, uint, uint, int, %struct.sock*, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, sbyte, ubyte, ubyte, ubyte, ubyte, int, int, uint, int, %struct.sock*, { %struct.sk_buff*, %struct.sk_buff* }, %typedef.rwlock_t, %struct.sk_buff_head, %struct.proto*, { %struct.tcp_opt }, int, int, ushort, ushort, uint, ushort, ubyte, ubyte, %struct.ViceFid, int, int, int, { %struct.unix_opt }, %struct.timer_list, %struct.autofs_packet_hdr, %struct.socket*, sbyte*, void (%struct.sock*)*, void (%struct.sock*, int)*, void (%struct.sock*)*, void (%struct.sock*)*, int (%struct.sock*, %struct.sk_buff*)*, void (%struct.sock*)* }
167 %struct.sockaddr = type { ushort, [14 x sbyte] }
168 %struct.sockaddr_in = type { ushort, ushort, %struct.IO_APIC_reg_00, [8 x ubyte] }
169 %struct.sockaddr_un = type { ushort, [108 x sbyte] }
170 %struct.socket = type { uint, uint, %struct.proto_ops*, %struct.inode*, %struct.fasync_struct*, %struct.file*, %struct.sock*, %struct.__wait_queue_head, short, ubyte }
171 %struct.statfs = type { int, int, int, int, int, int, int, %typedef.__kernel_fsid_t, int, [6 x int] }
172 %struct.super_block = type { %struct.list_head, ushort, uint, ubyte, ubyte, ulong, %struct.file_system_type*, %struct.super_operations*, %struct.dquot_operations*, %struct.quotactl_ops*, uint, uint, %struct.dentry*, %struct.rw_semaphore, %struct.semaphore, int, %struct.bluez_skb_cb, %struct.list_head, %struct.list_head, %struct.list_head, %struct.block_device*, %struct.list_head, %struct.quota_info, { [115 x uint] }, %struct.semaphore, %struct.semaphore }
173 %struct.super_operations = type { %struct.inode* (%struct.super_block*)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.inode*, sbyte*)*, void (%struct.inode*)*, void (%struct.inode*, int)*, void (%struct.inode*)*, void (%struct.inode*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, int (%struct.super_block*)*, void (%struct.super_block*)*, void (%struct.super_block*)*, int (%struct.super_block*, %struct.statfs*)*, int (%struct.super_block*, int*, sbyte*)*, void (%struct.inode*)*, void (%struct.super_block*)*, %struct.dentry* (%struct.super_block*, uint*, int, int, int)*, int (%struct.dentry*, uint*, int*, int)*, int (%struct.seq_file*, %struct.vfsmount*)* }
174 %struct.task_struct = type { int, uint, int, %struct.IO_APIC_reg_00, %struct.exec_domain*, int, uint, int, int, int, uint, %struct.mm_struct*, int, uint, uint, %struct.list_head, uint, %struct.task_struct*, %struct.task_struct*, %struct.mm_struct*, %struct.list_head, uint, uint, %struct.linux_binfmt*, int, int, int, uint, int, int, int, int, int, int, int, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.task_struct*, %struct.list_head, %struct.task_struct*, %struct.task_struct**, %struct.__wait_queue_head, %struct.completion*, uint, uint, uint, uint, uint, uint, uint, %struct.timer_list, %struct.audio_buf_info, uint, [32 x int], [32 x int], uint, uint, uint, uint, uint, uint, int, uint, uint, uint, uint, uint, uint, uint, uint, int, [32 x uint], uint, uint, uint, int, %struct.user_struct*, [11 x %struct._drm_i810_overlay_t], ushort, [16 x sbyte], int, int, %struct.tty_struct*, uint, %struct.sem_undo*, %struct.sem_queue*, %struct.thread_struct, %struct.fs_struct*, %struct.files_struct*, %struct.namespace*, %struct.IO_APIC_reg_00, %struct.signal_struct*, %typedef.sigset_t, %struct.sigpending, uint, uint, int (sbyte*)*, sbyte*, %typedef.sigset_t*, uint, uint, %struct.IO_APIC_reg_00, sbyte*, %struct.llva_sigcontext*, uint, %struct.task_struct*, uint, %typedef.llva_icontext_t, %typedef.llva_fp_state_t, uint*, int, sbyte* }
175 %struct.tasklet_struct = type { %struct.tasklet_struct*, uint, %struct.bluez_skb_cb, void (uint)*, uint }
176 %struct.tc_stats = type { ulong, uint, uint, uint, uint, uint, uint, uint, %struct.IO_APIC_reg_00* }
177 %struct.tcf_proto = type { %struct.tcf_proto*, sbyte*, int (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, uint, uint, uint, %struct.Qdisc*, sbyte*, %struct.tcf_proto_ops* }
178 %struct.tcf_proto_ops = type { %struct.tcf_proto_ops*, [16 x sbyte], int (%struct.sk_buff*, %struct.tcf_proto*, %struct._drm_i810_overlay_t*)*, int (%struct.tcf_proto*)*, void (%struct.tcf_proto*)*, uint (%struct.tcf_proto*, uint)*, void (%struct.tcf_proto*, uint)*, int (%struct.tcf_proto*, uint, uint, %struct._agp_version**, uint*)*, int (%struct.tcf_proto*, uint)*, void (%struct.tcf_proto*, %struct.tcf_walker*)*, int (%struct.tcf_proto*, uint, %struct.sk_buff*, %struct.tcmsg*)* }