~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/X86/2010-02-12-CoalescerBug-Impdef.ll

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-03-12 11:30:04 UTC
  • mfrom: (0.41.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100312113004-b0fop4bkycszdd0z
Tags: 0.96~rc1+dfsg-0ubuntu1
* New upstream RC - FFE (LP: #537636):
  - Add OfficialDatabaseOnly option to clamav-base.postinst.in
  - Add LocalSocketGroup option to clamav-base.postinst.in
  - Add LocalSocketMode option to clamav-base.postinst.in
  - Add CrossFilesystems option to clamav-base.postinst.in
  - Add ClamukoScannerCount option to clamav-base.postinst.in
  - Add BytecodeSecurity opiton to clamav-base.postinst.in
  - Add DetectionStatsHostID option to clamav-freshclam.postinst.in
  - Add Bytecode option to clamav-freshclam.postinst.in
  - Add MilterSocketGroup option to clamav-milter.postinst.in
  - Add MilterSocketMode option to clamav-milter.postinst.in
  - Add ReportHostname option to clamav-milter.postinst.in
  - Bump libclamav SO version to 6.1.0 in libclamav6.install
  - Drop clamdmon from clamav.examples (no longer shipped by upstream)
  - Drop libclamav.a from libclamav-dev.install (not built by upstream)
  - Update SO version for lintian override for libclamav6
  - Add new Bytecode Testing Tool, usr/bin/clambc, to clamav.install
  - Add build-depends on python and python-setuptools for new test suite
  - Update debian/copyright for the embedded copy of llvm (using the system
    llvm is not currently feasible)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc < %s > %t
 
2
; PR6283
 
3
 
 
4
; Tricky coalescer bug:
 
5
; After coalescing %RAX with a virtual register, this instruction was rematted:
 
6
;
 
7
;   %EAX<def> = MOV32rr %reg1070<kill>
 
8
;
 
9
; This instruction silently defined %RAX, and when rematting removed the
 
10
; instruction, the live interval for %RAX was not properly updated. The valno
 
11
; referred to a deleted instruction and bad things happened.
 
12
;
 
13
; The fix is to implicitly define %RAX when coalescing:
 
14
;
 
15
;   %EAX<def> = MOV32rr %reg1070<kill>, %RAX<imp-def>
 
16
;
 
17
 
 
18
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 
19
target triple = "x86_64-unknown-linux-gnu"
 
20
 
 
21
module asm "\09.ident\09\22GCC: (GNU) 4.5.0 20100212 (experimental) LLVM: 95975\22"
 
22
 
 
23
%0 = type { %"union gimple_statement_d"* }
 
24
%"BITMAP_WORD[]" = type [2 x i64]
 
25
%"char[]" = type [4 x i8]
 
26
%"enum dom_state[]" = type [2 x i32]
 
27
%"int[]" = type [4 x i32]
 
28
%"struct VEC_basic_block_base" = type { i32, i32, [1 x %"struct basic_block_def"*] }
 
29
%"struct VEC_basic_block_gc" = type { %"struct VEC_basic_block_base" }
 
30
%"struct VEC_edge_base" = type { i32, i32, [1 x %"struct edge_def"*] }
 
31
%"struct VEC_edge_gc" = type { %"struct VEC_edge_base" }
 
32
%"struct VEC_gimple_base" = type { i32, i32, [1 x %"union gimple_statement_d"*] }
 
33
%"struct VEC_gimple_gc" = type { %"struct VEC_gimple_base" }
 
34
%"struct VEC_iv_cand_p_base" = type { i32, i32, [1 x %"struct iv_cand"*] }
 
35
%"struct VEC_iv_cand_p_heap" = type { %"struct VEC_iv_cand_p_base" }
 
36
%"struct VEC_iv_use_p_base" = type { i32, i32, [1 x %"struct iv_use"*] }
 
37
%"struct VEC_iv_use_p_heap" = type { %"struct VEC_iv_use_p_base" }
 
38
%"struct VEC_loop_p_base" = type { i32, i32, [1 x %"struct loop"*] }
 
39
%"struct VEC_loop_p_gc" = type { %"struct VEC_loop_p_base" }
 
40
%"struct VEC_rtx_base" = type { i32, i32, [1 x %"struct rtx_def"*] }
 
41
%"struct VEC_rtx_gc" = type { %"struct VEC_rtx_base" }
 
42
%"struct VEC_tree_base" = type { i32, i32, [1 x %"union tree_node"*] }
 
43
%"struct VEC_tree_gc" = type { %"struct VEC_tree_base" }
 
44
%"struct _obstack_chunk" = type { i8*, %"struct _obstack_chunk"*, %"char[]" }
 
45
%"struct basic_block_def" = type { %"struct VEC_edge_gc"*, %"struct VEC_edge_gc"*, i8*, %"struct loop"*, [2 x %"struct et_node"*], %"struct basic_block_def"*, %"struct basic_block_def"*, %"union basic_block_il_dependent", i64, i32, i32, i32, i32, i32 }
 
46
%"struct bitmap_element" = type { %"struct bitmap_element"*, %"struct bitmap_element"*, i32, %"BITMAP_WORD[]" }
 
47
%"struct bitmap_head_def" = type { %"struct bitmap_element"*, %"struct bitmap_element"*, i32, %"struct bitmap_obstack"* }
 
48
%"struct bitmap_obstack" = type { %"struct bitmap_element"*, %"struct bitmap_head_def"*, %"struct obstack" }
 
49
%"struct block_symbol" = type { [3 x %"union rtunion"], %"struct object_block"*, i64 }
 
50
%"struct comp_cost" = type { i32, i32 }
 
51
%"struct control_flow_graph" = type { %"struct basic_block_def"*, %"struct basic_block_def"*, %"struct VEC_basic_block_gc"*, i32, i32, i32, %"struct VEC_basic_block_gc"*, i32, %"enum dom_state[]", %"enum dom_state[]", i32, i32 }
 
52
%"struct cost_pair" = type { %"struct iv_cand"*, %"struct comp_cost", %"struct bitmap_head_def"*, %"union tree_node"* }
 
53
%"struct def_optype_d" = type { %"struct def_optype_d"*, %"union tree_node"** }
 
54
%"struct double_int" = type { i64, i64 }
 
55
%"struct edge_def" = type { %"struct basic_block_def"*, %"struct basic_block_def"*, %"union edge_def_insns", i8*, %"union tree_node"*, i32, i32, i32, i32, i64 }
 
56
%"struct eh_status" = type opaque
 
57
%"struct et_node" = type opaque
 
58
%"struct function" = type { %"struct eh_status"*, %"struct control_flow_graph"*, %"struct gimple_seq_d"*, %"struct gimple_df"*, %"struct loops"*, %"struct htab"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"struct machine_function"*, %"struct language_function"*, %"struct htab"*, i32, i32, i32, i32, i32, i32, i8*, i8, i8, i8, i8 }
 
59
%"struct gimple_bb_info" = type { %"struct gimple_seq_d"*, %"struct gimple_seq_d"* }
 
60
%"struct gimple_df" = type { %"struct htab"*, %"struct VEC_gimple_gc"*, %"struct VEC_tree_gc"*, %"union tree_node"*, %"struct pt_solution", %"struct pt_solution", %"struct pointer_map_t"*, %"union tree_node"*, %"struct htab"*, %"struct bitmap_head_def"*, i8, %"struct ssa_operands" }
 
61
%"struct gimple_seq_d" = type { %"struct gimple_seq_node_d"*, %"struct gimple_seq_node_d"*, %"struct gimple_seq_d"* }
 
62
%"struct gimple_seq_node_d" = type { %"union gimple_statement_d"*, %"struct gimple_seq_node_d"*, %"struct gimple_seq_node_d"* }
 
63
%"struct gimple_statement_base" = type { i8, i8, i16, i32, i32, i32, %"struct basic_block_def"*, %"union tree_node"* }
 
64
%"struct gimple_statement_phi" = type { %"struct gimple_statement_base", i32, i32, %"union tree_node"*, %"struct phi_arg_d[]" }
 
65
%"struct htab" = type { i32 (i8*)*, i32 (i8*, i8*)*, void (i8*)*, i8**, i64, i64, i64, i32, i32, i8* (i64, i64)*, void (i8*)*, i8*, i8* (i8*, i64, i64)*, void (i8*, i8*)*, i32 }
 
66
%"struct iv" = type { %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i8, i8, i32 }
 
67
%"struct iv_cand" = type { i32, i8, i32, %"union gimple_statement_d"*, %"union tree_node"*, %"union tree_node"*, %"struct iv"*, i32, i32, %"struct iv_use"*, %"struct bitmap_head_def"* }
 
68
%"struct iv_use" = type { i32, i32, %"struct iv"*, %"union gimple_statement_d"*, %"union tree_node"**, %"struct bitmap_head_def"*, i32, %"struct cost_pair"*, %"struct iv_cand"* }
 
69
%"struct ivopts_data" = type { %"struct loop"*, %"struct pointer_map_t"*, i32, i32, %"struct version_info"*, %"struct bitmap_head_def"*, %"struct VEC_iv_use_p_heap"*, %"struct VEC_iv_cand_p_heap"*, %"struct bitmap_head_def"*, i32, i8, i8 }
 
70
%"struct lang_decl" = type opaque
 
71
%"struct language_function" = type opaque
 
72
%"struct loop" = type { i32, i32, %"struct basic_block_def"*, %"struct basic_block_def"*, %"struct comp_cost", i32, i32, %"struct VEC_loop_p_gc"*, %"struct loop"*, %"struct loop"*, i8*, %"union tree_node"*, %"struct double_int", %"struct double_int", i8, i8, i32, %"struct nb_iter_bound"*, %"struct loop_exit"*, i8, %"union tree_node"* }
 
73
%"struct loop_exit" = type { %"struct edge_def"*, %"struct loop_exit"*, %"struct loop_exit"*, %"struct loop_exit"* }
 
74
%"struct loops" = type { i32, %"struct VEC_loop_p_gc"*, %"struct htab"*, %"struct loop"* }
 
75
%"struct machine_cfa_state" = type { %"struct rtx_def"*, i64 }
 
76
%"struct machine_function" = type { %"struct stack_local_entry"*, i8*, i32, i32, %"int[]", i32, %"struct machine_cfa_state", i32, i8 }
 
77
%"struct nb_iter_bound" = type { %"union gimple_statement_d"*, %"struct double_int", i8, %"struct nb_iter_bound"* }
 
78
%"struct object_block" = type { %"union section"*, i32, i64, %"struct VEC_rtx_gc"*, %"struct VEC_rtx_gc"* }
 
79
%"struct obstack" = type { i64, %"struct _obstack_chunk"*, i8*, i8*, i8*, i64, i32, %"struct _obstack_chunk"* (i8*, i64)*, void (i8*, %"struct _obstack_chunk"*)*, i8*, i8 }
 
80
%"struct phi_arg_d" = type { %"struct ssa_use_operand_d", %"union tree_node"*, i32 }
 
81
%"struct phi_arg_d[]" = type [1 x %"struct phi_arg_d"]
 
82
%"struct pointer_map_t" = type opaque
 
83
%"struct pt_solution" = type { i8, %"struct bitmap_head_def"* }
 
84
%"struct rtx_def" = type { i16, i8, i8, %"union u" }
 
85
%"struct section_common" = type { i32 }
 
86
%"struct ssa_operand_memory_d" = type { %"struct ssa_operand_memory_d"*, %"uchar[]" }
 
87
%"struct ssa_operands" = type { %"struct ssa_operand_memory_d"*, i32, i32, i8, %"struct def_optype_d"*, %"struct use_optype_d"* }
 
88
%"struct ssa_use_operand_d" = type { %"struct ssa_use_operand_d"*, %"struct ssa_use_operand_d"*, %0, %"union tree_node"** }
 
89
%"struct stack_local_entry" = type opaque
 
90
%"struct tree_base" = type <{ i16, i8, i8, i8, [2 x i8], i8 }>
 
91
%"struct tree_common" = type { %"struct tree_base", %"union tree_node"*, %"union tree_node"* }
 
92
%"struct tree_decl_common" = type { %"struct tree_decl_minimal", %"union tree_node"*, i8, i8, i8, i8, i8, i32, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"struct lang_decl"* }
 
93
%"struct tree_decl_minimal" = type { %"struct tree_common", i32, i32, %"union tree_node"*, %"union tree_node"* }
 
94
%"struct tree_decl_non_common" = type { %"struct tree_decl_with_vis", %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"* }
 
95
%"struct tree_decl_with_rtl" = type { %"struct tree_decl_common", %"struct rtx_def"* }
 
96
%"struct tree_decl_with_vis" = type { %"struct tree_decl_with_rtl", %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i8, i8, i8 }
 
97
%"struct tree_function_decl" = type { %"struct tree_decl_non_common", %"struct function"*, %"union tree_node"*, %"union tree_node"*, %"union tree_node"*, i16, i8, i8 }
 
98
%"struct unnamed_section" = type { %"struct section_common", void (i8*)*, i8*, %"union section"* }
 
99
%"struct use_optype_d" = type { %"struct use_optype_d"*, %"struct ssa_use_operand_d" }
 
100
%"struct version_info" = type { %"union tree_node"*, %"struct iv"*, i8, i32, i8 }
 
101
%"uchar[]" = type [1 x i8]
 
102
%"union basic_block_il_dependent" = type { %"struct gimple_bb_info"* }
 
103
%"union edge_def_insns" = type { %"struct gimple_seq_d"* }
 
104
%"union gimple_statement_d" = type { %"struct gimple_statement_phi" }
 
105
%"union rtunion" = type { i8* }
 
106
%"union section" = type { %"struct unnamed_section" }
 
107
%"union tree_node" = type { %"struct tree_function_decl" }
 
108
%"union u" = type { %"struct block_symbol" }
 
109
 
 
110
declare fastcc %"union tree_node"* @get_computation_at(%"struct loop"*, %"struct iv_use"* nocapture, %"struct iv_cand"* nocapture, %"union gimple_statement_d"*) nounwind
 
111
 
 
112
declare fastcc i32 @computation_cost(%"union tree_node"*, i8 zeroext) nounwind
 
113
 
 
114
define fastcc i64 @get_computation_cost_at(%"struct ivopts_data"* %data, %"struct iv_use"* nocapture %use, %"struct iv_cand"* nocapture %cand, i8 zeroext %address_p, %"struct bitmap_head_def"** %depends_on, %"union gimple_statement_d"* %at, i8* %can_autoinc) nounwind {
 
115
entry:
 
116
  br i1 undef, label %"100", label %"4"
 
117
 
 
118
"4":                                              ; preds = %entry
 
119
  br i1 undef, label %"6", label %"5"
 
120
 
 
121
"5":                                              ; preds = %"4"
 
122
  unreachable
 
123
 
 
124
"6":                                              ; preds = %"4"
 
125
  br i1 undef, label %"8", label %"7"
 
126
 
 
127
"7":                                              ; preds = %"6"
 
128
  unreachable
 
129
 
 
130
"8":                                              ; preds = %"6"
 
131
  br i1 undef, label %"100", label %"10"
 
132
 
 
133
"10":                                             ; preds = %"8"
 
134
  br i1 undef, label %"17", label %"16"
 
135
 
 
136
"16":                                             ; preds = %"10"
 
137
  unreachable
 
138
 
 
139
"17":                                             ; preds = %"10"
 
140
  br i1 undef, label %"19", label %"18"
 
141
 
 
142
"18":                                             ; preds = %"17"
 
143
  unreachable
 
144
 
 
145
"19":                                             ; preds = %"17"
 
146
  br i1 undef, label %"93", label %"20"
 
147
 
 
148
"20":                                             ; preds = %"19"
 
149
  br i1 undef, label %"23", label %"21"
 
150
 
 
151
"21":                                             ; preds = %"20"
 
152
  unreachable
 
153
 
 
154
"23":                                             ; preds = %"20"
 
155
  br i1 undef, label %"100", label %"25"
 
156
 
 
157
"25":                                             ; preds = %"23"
 
158
  br i1 undef, label %"100", label %"26"
 
159
 
 
160
"26":                                             ; preds = %"25"
 
161
  br i1 undef, label %"30", label %"28"
 
162
 
 
163
"28":                                             ; preds = %"26"
 
164
  unreachable
 
165
 
 
166
"30":                                             ; preds = %"26"
 
167
  br i1 undef, label %"59", label %"51"
 
168
 
 
169
"51":                                             ; preds = %"30"
 
170
  br i1 undef, label %"55", label %"52"
 
171
 
 
172
"52":                                             ; preds = %"51"
 
173
  unreachable
 
174
 
 
175
"55":                                             ; preds = %"51"
 
176
  %0 = icmp ugt i32 0, undef                      ; <i1> [#uses=1]
 
177
  br i1 %0, label %"50.i", label %"9.i"
 
178
 
 
179
"9.i":                                            ; preds = %"55"
 
180
  unreachable
 
181
 
 
182
"50.i":                                           ; preds = %"55"
 
183
  br i1 undef, label %"55.i", label %"54.i"
 
184
 
 
185
"54.i":                                           ; preds = %"50.i"
 
186
  br i1 undef, label %"57.i", label %"55.i"
 
187
 
 
188
"55.i":                                           ; preds = %"54.i", %"50.i"
 
189
  unreachable
 
190
 
 
191
"57.i":                                           ; preds = %"54.i"
 
192
  br label %"63.i"
 
193
 
 
194
"61.i":                                           ; preds = %"63.i"
 
195
  br i1 undef, label %"64.i", label %"62.i"
 
196
 
 
197
"62.i":                                           ; preds = %"61.i"
 
198
  br label %"63.i"
 
199
 
 
200
"63.i":                                           ; preds = %"62.i", %"57.i"
 
201
  br i1 undef, label %"61.i", label %"64.i"
 
202
 
 
203
"64.i":                                           ; preds = %"63.i", %"61.i"
 
204
  unreachable
 
205
 
 
206
"59":                                             ; preds = %"30"
 
207
  br i1 undef, label %"60", label %"82"
 
208
 
 
209
"60":                                             ; preds = %"59"
 
210
  br i1 undef, label %"61", label %"82"
 
211
 
 
212
"61":                                             ; preds = %"60"
 
213
  br i1 undef, label %"62", label %"82"
 
214
 
 
215
"62":                                             ; preds = %"61"
 
216
  br i1 undef, label %"100", label %"63"
 
217
 
 
218
"63":                                             ; preds = %"62"
 
219
  br i1 undef, label %"65", label %"64"
 
220
 
 
221
"64":                                             ; preds = %"63"
 
222
  unreachable
 
223
 
 
224
"65":                                             ; preds = %"63"
 
225
  br i1 undef, label %"66", label %"67"
 
226
 
 
227
"66":                                             ; preds = %"65"
 
228
  unreachable
 
229
 
 
230
"67":                                             ; preds = %"65"
 
231
  %1 = load i32* undef, align 4                   ; <i32> [#uses=0]
 
232
  br label %"100"
 
233
 
 
234
"82":                                             ; preds = %"61", %"60", %"59"
 
235
  unreachable
 
236
 
 
237
"93":                                             ; preds = %"19"
 
238
  %2 = call fastcc %"union tree_node"* @get_computation_at(%"struct loop"* undef, %"struct iv_use"* %use, %"struct iv_cand"* %cand, %"union gimple_statement_d"* %at) nounwind ; <%"union tree_node"*> [#uses=1]
 
239
  br i1 undef, label %"100", label %"97"
 
240
 
 
241
"97":                                             ; preds = %"93"
 
242
  br i1 undef, label %"99", label %"98"
 
243
 
 
244
"98":                                             ; preds = %"97"
 
245
  br label %"99"
 
246
 
 
247
"99":                                             ; preds = %"98", %"97"
 
248
  %3 = phi %"union tree_node"* [ undef, %"98" ], [ %2, %"97" ] ; <%"union tree_node"*> [#uses=1]
 
249
  %4 = call fastcc i32 @computation_cost(%"union tree_node"* %3, i8 zeroext undef) nounwind ; <i32> [#uses=1]
 
250
  br label %"100"
 
251
 
 
252
"100":                                            ; preds = %"99", %"93", %"67", %"62", %"25", %"23", %"8", %entry
 
253
  %memtmp1.1.0 = phi i32 [ 0, %"99" ], [ 10000000, %entry ], [ 10000000, %"8" ], [ 10000000, %"23" ], [ 10000000, %"25" ], [ undef, %"62" ], [ undef, %"67" ], [ 10000000, %"93" ] ; <i32> [#uses=1]
 
254
  %memtmp1.0.0 = phi i32 [ %4, %"99" ], [ 10000000, %entry ], [ 10000000, %"8" ], [ 10000000, %"23" ], [ 10000000, %"25" ], [ undef, %"62" ], [ undef, %"67" ], [ 10000000, %"93" ] ; <i32> [#uses=1]
 
255
  %5 = zext i32 %memtmp1.0.0 to i64               ; <i64> [#uses=1]
 
256
  %6 = zext i32 %memtmp1.1.0 to i64               ; <i64> [#uses=1]
 
257
  %7 = shl i64 %6, 32                             ; <i64> [#uses=1]
 
258
  %8 = or i64 %7, %5                              ; <i64> [#uses=1]
 
259
  ret i64 %8
 
260
}