Forbid arrays of function-type and structures with function-typed fields.
[llvm/avr.git] / test / DebugInfo / 2009-03-03-deadstore.ll
blob0705c155f9f7cad7ab4579b85e88d2c438f014be
1 ; RUN: opt < %s -instcombine -S | not grep alloca
2 ; ModuleID = '<stdin>'
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
4 target triple = "i386-apple-darwin9.6"
6         type { }                ; type %0
7         type <{ i8 }>           ; type %1
8         type { i32 (...)**, %3 }                ; type %2
9         type { %4, %2*, i8, i8, %10*, %11*, %12*, %12* }                ; type %3
10         type { i32 (...)**, i32, i32, i32, i32, i32, %5*, %6, [8 x %6], i32, %6*, %7 }          ; type %4
11         type { %5*, void (i32, %4*, i32)*, i32, i32 }           ; type %5
12         type { i8*, i32 }               ; type %6
13         type { %8* }            ; type %7
14         type { i32, %9**, i32, %9**, i8** }             ; type %8
15         type { i32 (...)**, i32 }               ; type %9
16         type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %7 }          ; type %10
17         type { %9, i32*, i8, i32*, i32*, i32*, i8, [256 x i8], [256 x i8], i8 }         ; type %11
18         type { %9 }             ; type %12
19         type { i32, void ()* }          ; type %13
20         type { %15 }            ; type %14
21         type { %16 }            ; type %15
22         type { %17 }            ; type %16
23         type { i32*, i32*, i32* }               ; type %17
24         type { %19 }            ; type %18
25         type { %20 }            ; type %19
26         type { %21 }            ; type %20
27         type { %14*, %14*, %14* }               ; type %21
28         type { i32 }            ; type %22
29         type { i8 }             ; type %23
30         type { i32* }           ; type %24
31         type { %14* }           ; type %25
32         type { %27 }            ; type %26
33         type { i8* }            ; type %27
34         type { %29, %30, %3 }           ; type %28
35         type { i32 (...)** }            ; type %29
36         type { %10, i32, %26 }          ; type %30
37         %llvm.dbg.anchor.type = type { i32, i32 }
38         %llvm.dbg.basictype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, i32 }
39         %llvm.dbg.compile_unit.type = type { i32, %0*, i32, i8*, i8*, i8*, i1, i1, i8*, i32 }
40         %llvm.dbg.composite.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0*, %0*, i32 }
41         %llvm.dbg.derivedtype.type = type { i32, %0*, i8*, %0*, i32, i64, i64, i64, i32, %0* }
42         %llvm.dbg.enumerator.type = type { i32, i8*, i64 }
43         %llvm.dbg.global_variable.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1, %0* }
44         %llvm.dbg.subprogram.type = type { i32, %0*, %0*, i8*, i8*, i8*, %0*, i32, %0*, i1, i1 }
45         %llvm.dbg.subrange.type = type { i32, i64, i64 }
46         %llvm.dbg.variable.type = type { i32, %0*, i8*, %0*, i32, %0* }
48 @llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 17 }, section "llvm.metadata"               ; <%llvm.dbg.anchor.type*> [#uses=1]
49 @llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 458752, i32 46 }, section "llvm.metadata"         ; <%llvm.dbg.anchor.type*> [#uses=1]
50 internal constant [11 x i8] c"bigfib.cpp\00", section "llvm.metadata"           ; <[11 x i8]*>:0 [#uses=1]
51 internal constant [84 x i8] c"/Volumes/Nanpura/mainline/llvm/projects/llvm-test/SingleSource/Benchmarks/Misc-C++/\00", section "llvm.metadata"          ; <[84 x i8]*>:1 [#uses=1]
52 internal constant [57 x i8] c"4.2.1 (Based on Apple Inc. build 5636) (LLVM build 2099)\00", section "llvm.metadata"             ; <[57 x i8]*>:2 [#uses=1]
53 @llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([11 x i8]* @0, i32 0, i32 0), i8* getelementptr ([84 x i8]* @1, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 true, i1 false, i8* null, i32 0 }, section "llvm.metadata"               ; <%llvm.dbg.compile_unit.type*> [#uses=1]
54 internal constant [23 x i8] c"/usr/include/c++/4.0.0\00", section "llvm.metadata"               ; <[23 x i8]*>:3 [#uses=1]
57 internal constant [4 x i8] c"int\00", section "llvm.metadata"           ; <[4 x i8]*>:4 [#uses=1]
58 @llvm.dbg.basictype103 = internal constant %llvm.dbg.basictype.type { i32 458788, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([4 x i8]* @4, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 32, i64 32, i64 0, i32 0, i32 5 }, section "llvm.metadata"             ; <%llvm.dbg.basictype.type*> [#uses=1]
59 internal constant [8 x i8] c"iomanip\00", section "llvm.metadata"               ; <[8 x i8]*>:5 [#uses=1]
60 @llvm.dbg.compile_unit1548 = internal constant %llvm.dbg.compile_unit.type { i32 458769, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %0*), i32 4, i8* getelementptr ([8 x i8]* @5, i32 0, i32 0), i8* getelementptr ([23 x i8]* @3, i32 0, i32 0), i8* getelementptr ([57 x i8]* @2, i32 0, i32 0), i1 false, i1 false, i8* null, i32 0 }, section "llvm.metadata"           ; <%llvm.dbg.compile_unit.type*> [#uses=1]
61 internal constant [6 x i8] c"_Setw\00", section "llvm.metadata"         ; <[6 x i8]*>:6 [#uses=1]
62 internal constant [5 x i8] c"_M_n\00", section "llvm.metadata"          ; <[5 x i8]*>:7 [#uses=1]
63 @llvm.dbg.derivedtype1552 = internal constant %llvm.dbg.derivedtype.type { i32 458765, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @7, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 232, i64 32, i64 32, i64 0, i32 0, %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype103 to %0*) }, section "llvm.metadata"          ; <%llvm.dbg.derivedtype.type*> [#uses=1]
64 @llvm.dbg.array1553 = internal constant [1 x %0*] [%0* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype1552 to %0*)], section "llvm.metadata"         ; <[1 x %0*]*> [#uses=1]
65 @llvm.dbg.composite1554 = internal constant %llvm.dbg.composite.type { i32 458771, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([6 x i8]* @6, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 232, i64 32, i64 32, i64 0, i32 0, %0* null, %0* bitcast ([1 x %0*]* @llvm.dbg.array1553 to %0*), i32 0 }, section "llvm.metadata"               ; <%llvm.dbg.composite.type*> [#uses=1]
66 @llvm.dbg.array1555 = internal constant [2 x %0*] [%0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1554 to %0*), %0* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype103 to %0*)], section "llvm.metadata"              ; <[2 x %0*]*> [#uses=1]
67 @llvm.dbg.composite1556 = internal constant %llvm.dbg.composite.type { i32 458773, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* null, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i32 0, i64 0, i64 0, i64 0, i32 0, %0* null, %0* bitcast ([2 x %0*]* @llvm.dbg.array1555 to %0*), i32 0 }, section "llvm.metadata"             ; <%llvm.dbg.composite.type*> [#uses=1]
68 internal constant [5 x i8] c"setw\00", section "llvm.metadata"          ; <[5 x i8]*>:8 [#uses=2]
69 internal constant [11 x i8] c"_ZSt4setwi\00", section "llvm.metadata"           ; <[11 x i8]*>:9 [#uses=1]
70 @llvm.dbg.subprogram1559 = internal constant %llvm.dbg.subprogram.type { i32 458798, %0* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %0*), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %0*), i8* getelementptr ([5 x i8]* @8, i32 0, i32 0), i8* getelementptr ([5 x i8]* @8, i32 0, i32 0), i8* getelementptr ([11 x i8]* @9, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 242, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1556 to %0*), i1 false, i1 true }, section "llvm.metadata"          ; <%llvm.dbg.subprogram.type*> [#uses=1]
71 internal constant [4 x i8] c"__x\00", section "llvm.metadata"           ; <[4 x i8]*>:10 [#uses=1]
72 @llvm.dbg.variable1563 = internal constant %llvm.dbg.variable.type { i32 459008, %0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1559 to %0*), i8* getelementptr ([4 x i8]* @10, i32 0, i32 0), %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*), i32 244, %0* bitcast (%llvm.dbg.composite.type* @llvm.dbg.composite1554 to %0*) }, section "llvm.metadata"            ; <%llvm.dbg.variable.type*> [#uses=1]
74 define linkonce i32 @_ZSt4setwi(i32) nounwind {
75         %2 = alloca %22         ; <%22*> [#uses=2]
76         %3 = alloca %22         ; <%22*> [#uses=3]
77         %4 = alloca %22         ; <%22*> [#uses=2]
78         %5 = bitcast i32 0 to i32               ; <i32> [#uses=0]
79         call void @llvm.dbg.func.start(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1559 to %0*))
80         %6 = bitcast %22* %3 to %0*             ; <%0*> [#uses=1]
81         call void @llvm.dbg.declare(%0* %6, %0* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable1563 to %0*))
82         call void @llvm.dbg.stoppoint(i32 245, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*))
83         %7 = getelementptr %22* %3, i32 0, i32 0                ; <i32*> [#uses=1]
84         store i32 %0, i32* %7, align 4
85         call void @llvm.dbg.stoppoint(i32 246, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*))
86         %8 = getelementptr %22* %4, i32 0, i32 0                ; <i32*> [#uses=1]
87         %9 = getelementptr %22* %3, i32 0, i32 0                ; <i32*> [#uses=1]
88         %10 = load i32* %9, align 4             ; <i32> [#uses=1]
89         store i32 %10, i32* %8, align 4
90         %11 = getelementptr %22* %2, i32 0, i32 0               ; <i32*> [#uses=1]
91         %12 = getelementptr %22* %4, i32 0, i32 0               ; <i32*> [#uses=1]
92         %13 = load i32* %12, align 4            ; <i32> [#uses=1]
93         store i32 %13, i32* %11, align 4
94         %14 = bitcast %22* %2 to i32*           ; <i32*> [#uses=1]
95         %15 = load i32* %14             ; <i32> [#uses=1]
96         call void @llvm.dbg.stoppoint(i32 246, i32 0, %0* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit1548 to %0*))
97         call void @llvm.dbg.region.end(%0* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram1559 to %0*))
98         ret i32 %15
101 declare void @llvm.dbg.func.start(%0*) nounwind
103 declare void @llvm.dbg.declare(%0*, %0*) nounwind
105 declare void @llvm.dbg.stoppoint(i32, i32, %0*) nounwind
107 declare void @llvm.dbg.region.end(%0*) nounwind