]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
* data-streamer.h (streamer_write_zero): Rename from output_zero.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7f385784 12011-08-12 Diego Novillo <dnovillo@google.com>
2
3 * data-streamer.h (streamer_write_zero): Rename from output_zero.
4 (streamer_write_uhwi): Rename from lto_output_uleb128.
5 (streamer_write_hwi): Rename from output_sleb128.
6 (streamer_write_string): Rename from lto_output_string.
7 (streamer_string_index): Rename from lto_string_index.
8 (streamer_write_string_with_length): Rename from
9 lto_output_string_with_length.
10 (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
11 (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
12 (streamer_read_string): Rename from lto_input_string.
13 (streamer_read_indexed_string): Rename from input_string_internal.
14 (streamer_read_uhwi): Rename from lto_input_uleb128.
15 (streamer_read_hwi): Rename from lto_input_sleb128.
16 (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
17 (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
18 (streamer_write_enum): Rename from lto_output_enum.
19 (streamer_read_enum): Rename from lto_input_enum.
20 (streamer_write_record_start): Rename from output_record_start.
21 (streamer_read_record_start): Rename from input_record_start.
22 (streamer_write_bitpack): Rename from lto_output_bitpack.
23 (streamer_read_bitpack): Rename from lto_input_bitpack.
24 (streamer_write_char_stream): Rename from lto_output_1_stream.
25 (streamer_read_uchar): Rename from lto_input_1_unsigned.
26 * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
27 (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
28 (streamer_read_string_cst): Rename from input_string_cst.
29 (streamer_read_chain): Rename from lto_input_chain.
30 (streamer_alloc_tree): Rename from lto_materialize_tree.
31 (streamer_read_tree_body): Rename from lto_input_tree_pointers.
32 (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
33 (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
34 (streamer_read_integer_cst): Rename from lto_input_integer_cst.
35 (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
36 (streamer_write_chain): Rename from lto_output_chain.
37 (streamer_write_tree_header): Rename from lto_output_tree_header.
38 (streamer_pack_tree_bitfields): Rename from pack_value_fields.
39 (streamer_write_tree_body): Rename from lto_output_tree_pointers.
40 (streamer_write_integer_cst): Rename from lto_output_integer_cst.
41 (streamer_write_builtin): Rename from lto_output_builtin_tree.
42 (streamer_check_handled_ts_structures): Rename from
43 check_handled_ts_structures.
44 (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
45 (streamer_tree_cache_insert_at): Rename from
46 lto_streamer_cache_insert_at.
47 (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
48 (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
49 (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
50 (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
51 (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
52 * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
53 (write_identifier): Rename from output_identifier.
54 (write_ts_common_tree_pointers): Rename from
55 lto_output_ts_common_tree_pointers.
56 (write_ts_vector_tree_pointers): Rename from
57 lto_output_ts_vector_tree_pointers.
58 (write_ts_complex_tree_pointers): Rename from
59 lto_output_ts_complex_tree_pointers.
60 (write_ts_decl_minimal_tree_pointers): Rename from
61 lto_output_ts_decl_minimal_tree_pointers.
62 (write_ts_decl_common_tree_pointers): Rename from
63 lto_output_ts_decl_common_tree_pointers.
64 (write_ts_decl_non_common_tree_pointers): Rename from
65 lto_output_ts_decl_non_common_tree_pointers.
66 (write_ts_decl_with_vis_tree_pointers): Rename from
67 lto_output_ts_decl_with_vis_tree_pointers.
68 (write_ts_field_decl_tree_pointers): Rename from
69 lto_output_ts_field_decl_tree_pointers.
70 (write_ts_function_decl_tree_pointers): Rename from
71 lto_output_ts_function_decl_tree_pointers.
72 (write_ts_type_common_tree_pointers): Rename from
73 lto_output_ts_type_common_tree_pointers.
74 (write_ts_type_non_common_tree_pointers): Rename from
75 lto_output_ts_type_non_common_tree_pointers.
76 (write_ts_list_tree_pointers): Rename from
77 lto_output_ts_list_tree_pointers.
78 (write_ts_vec_tree_pointers): Rename from
79 lto_output_ts_vec_tree_pointers.
80 (write_ts_exp_tree_pointers): Rename from
81 lto_output_ts_exp_tree_pointers.
82 (write_ts_block_tree_pointers): Rename from
83 lto_output_ts_block_tree_pointers.
84 (write_ts_binfo_tree_pointers): Rename from
85 lto_output_ts_binfo_tree_pointers.
86 (write_ts_constructor_tree_pointers): Rename from
87 lto_output_ts_constructor_tree_pointers.
88 (write_ts_target_option): Rename from
89 lto_output_ts_target_option.
90 (write_ts_translation_unit_decl_tree_pointers): Rename from
91 lto_output_ts_translation_unit_decl_tree_pointers.
92 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
93 Rename from lto_streamer_cache_add_to_node_array.
94 (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
95 (record_common_node): Rename from lto_record_common_node.
96
97 * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
98 declarations.
99 * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
100 function.
101 * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
102 unused function.
103 * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
104 (ipa-reference.o): Likewise.
105 * lto-section-out.c: Include data-streamer.h.
106 * ipa-reference.c: Include data-streamer.h.
107
bd021c1c 1082011-08-12 Nick Clifton <nickc@redhat.com>
109
110 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi
111 pattern.
112 * doc/md.texi (cmpstrn): Note that the comparison stops if both
113 fetched bytes are zero.
114 (cmpstr): Likewise.
115 (cmpmem): Note that the comparison does not stop if both of the
116 fetched bytes are zero.
117
80ff6494 1182011-08-12 Uros Bizjak <ubizjak@gmail.com>
119
120 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
121 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
122 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
123 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
124 to integer_type_node.
125 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
126 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
127 * builtins.c (expand_builtin_in): Ditto.
128 (mathfn_built_in_1): Ditto.
129 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
130 BUILT_IN_IFLOOR.
131 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
132 BUILT_IN_IROUND.
133 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
134 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
135 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
136
77c6bddb 1372011-08-12 Richard Guenther <rguenther@suse.de>
138
139 * tree-vrp.c (extract_range_from_unary_expr_1): Implement
140 -X as 0 - X.
141
1422011-08-12 Romain Geissler <romain.geissler@gmail.com>
02ea0cd9 143
144 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
145
1f5f87f6 1462011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
147
148 * config/arm/arm.c (get_label_padding): New function.
149 (create_fix_barrier, md_reorg): Likewise.
150
52d12c0f 1512011-08-11 Uros Bizjak <ubizjak@gmail.com>
152
153 PR target/49781
154 * config/i386/i386.md (*lea_5_zext): New.
155 (*lea_6_zext): Ditto.
156 * config/i386/predicates.md (const_32bit_mask): New predicate.
157 (lea_address_operand): Reject AND.
158 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
159 const_32bit_mask immediate.
160 (ix86_print_operand_address): Handle AND.
161 (memory_address_length): Ditto.
162
e4ae859d 1632011-08-11 Romain Geissler <romain.geissler@gmail.com>
52d12c0f 164 Brian Hackett <bhackett1024@gmail.com>
e4ae859d 165
166 * plugin.def: Add event for finish_decl.
167 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
168 * c-decl.c (finish_decl): Invoke callbacks on above event.
169 * doc/plugins.texi: Document above event.
170
b11771e1 1712011-08-11 Richard Guenther <rguenther@suse.de>
172
173 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
174 lookups, make looking through aggregate copies stronger.
175
a36f1a95 1762011-08-11 Richard Henderson <rth@redhat.com>
177
178 PR bootstrap/50018
179 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
180
446dbdd8 1812011-08-11 Richard Guenther <rguenther@suse.de>
182
183 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
184 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
185 (vrp_visit_stmt): Likewise.
186
33da34ea 1872011-08-11 Richard Guenther <rguenther@suse.de>
188
189 PR middle-end/50040
190 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
191 load of the other piece with TREE_NO_WARNING.
192 * tree-flow.h (warn_uninit): Adjust prototype.
193 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
194 the base variable and the expression that is used separately.
195 Properly query all TREE_NO_WARNING flags.
196 (struct walk_data): Remove.
197 (warn_uninitialized_var): Likewise.
198 (warn_uninitialized_vars): Do not walk gimple pieces but simply
199 look at all SSA uses of the statement. Handle unused memory
200 separately.
201 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
202
f3dc1120 2032011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
204
52d12c0f 205 * config/rx/rx.md (movsicc): Allow register to register transfers.
f3dc1120 206 (*movsicc): Likewise.
207 (*stcc): Restrict this pattern to EQ and NE compares.
208 (*stcc_reg): New pattern. Works for any comparison but only for
209 register transfers.
210
515cf651 2112011-08-11 Diego Novillo <dnovillo@google.com>
212
213 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
214 Call stream_write_tree instead of output_record_start.
215 (lto_output_ts_binfo_tree_pointers): Likewise.
216
217 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
218 Convert it to a macro.
219 (stream_read_tree): Likewise.
220
221 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
222 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
223
224 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
225 and tree_read_bitfields.
226 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
227 (lto_write_tree): Call it.
228 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
229 * streamer-hooks.h (struct streamer_hooks): Remove fields
230 name, is_streamable and alloc_tree. Update all users.
231 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
232 (lto_materialize_tree): ... here.
233 Handle CALL_EXPR codes.
234 Remove call to lto_streamer_cache_append.
52d12c0f 235 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
515cf651 236 * tree-streamer.h (tree_read_bitfields): Declare.
237
238 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
239 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
240 * tree-streamer.h (stream_read_tree): New. Replace all calls
241 to lto_input_tree with it.
242 (stream_write_tree): New. Replace all calls to lto_output_tree,
243 lto_output_tree_ref and lto_output_tree_or_ref with it.
244 * lto-streamer-in.c (lto_read_tree): Inline code from
245 lto_streamer_read_tree.
246 (lto_input_tree): Move from tree-streamer-in.c.
247 * lto-streamer-out.c (lto_output_tree_ref): Make static.
248 Remove handling of NULL values for EXPR.
249 Do not handle EXPRs that are not indexable.
250 (lto_write_tree): Move from tree-streamer-out.c.
251 Inline lto_streamer_write_tree.
252 (lto_output_tree): Move from tree-streamer-out.c.
253 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
254 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
255 (lto_preload_common_nodes): Likewise.
256 Remove assertions and adjustments for nodes
257 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
258 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
52d12c0f 259 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
515cf651 260 * lto-streamer.h (lto_input_tree): Declare.
261 (lto_output_tree_ref): Remove.
262 * streamer-hooks.h (struct streamer_hooks): Remove fields
263 preload_common_nodes, indexable_with_decls_p,
264 pack_value_fields, unpack_value_fields and output_tree_header.
265 Update all users.
266 * tree-streamer-in.c (lto_materialize_tree): Make extern.
267 (lto_input_tree_pointers): Likewise.
268 (lto_read_tree): Move to lto-streamer-in.c.
269 (lto_input_integer_cst): Make extern.
270 (lto_get_pickled_tree): Likewise.
271 (lto_get_builtin_tree): Likewise.
272 (lto_input_tree): Move to lto-streamer-in.c.
273 * tree-streamer-out.c (pack_value_fields): Make extern.
274 (lto_output_tree_or_ref): Remove. Replace all callers with
275 calls to stream_write_tree.
276 (lto_output_builtin_tree): Make extern.
277 (lto_streamer_write_tree): Inline into lto_write_tree.
278 (lto_output_tree_pointers): Make extern.
279 (lto_output_tree_header): Likewise.
280 (lto_output_integer_cst): Likewise.
281 (lto_write_tree): Move to lto-streamer-out.c.
282 (lto_output_tree): Likewise.
52d12c0f 283 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
515cf651 284 (preload_common_nodes): Likewise.
285 (lto_streamer_cache_create): Call it.
286 * tree-streamer.h: Include streamer-hooks.h.
287 (stream_write_tree): New.
288 (stream_read_tree): New.
289 (lto_input_tree): Remove.
290 (lto_materialize_tree): Declare.
291 (lto_input_tree_pointers): Declare.
292 (lto_get_pickled_tree): Declare.
293 (lto_get_builtin_tree): Declare.
294 (lto_input_integer_cst): Declare.
295 (lto_output_tree_header): Declare.
296 (pack_value_fields): Declare.
297 (lto_output_tree_pointers): Declare.
298 (lto_output_integer_cst): Declare.
299 (lto_output_builtin_tree): Declare.
300
457f77d1 3012011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
302
303 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
304 only if producer writes to the register given by regno.
305
60ba0654 3062011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
307 Alexander Monakov <amonakov@ispras.ru>
308
309 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
310 (sched_get_condition_with_rev_uncached): ... this. Factor out
311 condition caching logic into ...
312 (sched_get_condition_with_rev): ... this. Reimplement. Do not
313 attempt to use cache for instructions with zero luid.
314 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
315 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
316
bdcc104c 3172011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
318
319 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
320 get_seqno_for_a_jump. Update the caller.
321 (get_seqno_by_succs): New. Use it ...
322 (get_seqno_for_a_jump): ... here to find a seqno if looking at
323 predecessors was not sufficient.
324 (get_seqno_by_preds): Include head in iteration range, exclude insn.
325
c1c8a3d0 3262011-08-11 Dmitry Melnik <dm@ispras.ru>
327
328 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
329
1f53e226 3302011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
331
332 * sel-sched-ir.h (register_unavailable_p): Declare.
333 * sel-sched-ir.c (register_unavailable_p): New. Use it...
334 (set_unavailable_target_for_expr): ... here to properly test
335 availability of a register.
336 (speculate_expr): Ditto.
337 * sel-sched.c (substitute_reg_in_expr): Ditto.
338 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
339
619459a3 3402011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
341
342 * sel-sched.c (verify_target_availability): Fix usage of
343 hard_regno_nregs.
344
13434dcb 3452011-08-11 Dmitry Melnik <dm@ispras.ru>
346
347 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
348 recognized by cannot_copy_insn_p hook and volatile instructions.
349
32bbc704 3502011-08-11 Dmitry Melnik <dm@ispras.ru>
351
352 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
353
2334f0df 3542011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
355
356 * doc/md.texi (define_bypass): Say that the instruction names can
357 be filename-style globs.
358 * Makefile.in (FNMATCH_H): Define.
359 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
360 * genattrtab.c: Include fnmatch.h.
361 (bypass_list): Change field name from "insn" to "pattern".
362 (gen_bypass_1): Update accordingly.
363 (process_bypasses): Use fnmatch to check for matches between
364 insn reservations and define_bypasses.
365 * genautomata.c: Include fnmatch.h.
366 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
367 and out_pattern respectively.
368 (gen_bypass, insert_bypass): Update accordingly.
369 (for_each_matching_insn, process_bypass_2, process_bypass_1)
370 (process_bypass): New functions.
371 (process_decls): Use process_bypass. Update after field name changes.
372
12bf3919 3732011-08-11 Georg-Johann Lay <avr@gjlay.de>
f3dc1120 374
12bf3919 375 PR target/49687
376 * config/avr/avr.md (smulqi3_highpart): New insn.
377 (umulqi3_highpart): New insn.
378 (*subqi3.ashiftrt7): New insn.
379 (smulhi3_highpart): New expander.
380 (umulhi3_highpart): Nex expander.
381 (*smulhi3_highpart_call): New insn.
382 (*umulhi3_highpart_call): New insn.
383 (extend_u): New code attribute.
384 (extend_prefix): Rename code attribute to extend_su.
385 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
386 widening QI/HI multiply.
387
243cccda 3882011-08-11 Ira Rosen <ira.rosen@linaro.org>
389
390 PR tree-optimization/50039
391 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
392 that DEF_STMT has a stmt_vec_info.
393
c43db984 3942011-08-10 Richard Guenther <rguenther@suse.de>
395
396 * tree.h (can_trust_pointer_alignment): Remove.
397 * builtins.c (can_trust_pointer_alignment): Remove.
398
7dfa155b 3992011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
400
401 * c-typeck.c (scalar_to_vector): New function. Try scalar to
402 vector conversion.
403 (stv_conv): New enum for scalar_to_vector return type.
404 (build_binary_op): Adjust.
405 * doc/extend.texi: Description of scalar to vector expansion.
406
957d0361 4072011-08-10 Richard Guenther <rguenther@suse.de>
408
409 * tree.h (get_pointer_alignment): Remove max-align argument.
410 (get_object_alignment): Likewise.
411 * builtins.c (get_object_alignment_1): Adjust.
412 (get_object_alignment): Remove max-align argument.
413 (get_pointer_alignment): Likewise.
414 (expand_builtin_strlen): Adjust.
415 (expand_builtin_memcpy): Likewise.
416 (expand_builtin_mempcpy_args): Likewise.
417 (expand_builtin_strncpy): Likewise.
418 (expand_builtin_memset_args): Likewise.
419 (expand_builtin_memcmp): Likewise.
420 (expand_builtin_strcmp): Likewise.
421 (expand_builtin_strncmp): Likewise.
422 (get_builtin_sync_mem): Likewise.
423 (fold_builtin_memset): Likewise.
424 (fold_builtin_memory_op): Likewise.
425 (expand_builtin_memory_chk): Likewise.
426 * emit-rtl.c (get_mem_align_offset): Likewise.
427 (set_mem_attributes_minus_bitpos): Likewise.
428 * expr.c (expand_assignment): Likewise.
429 (expand_expr_real_1): Likewise.
430 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
431 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
432 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
433 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
434 * value-prof.c (gimple_stringops_transform): Likewise.
435
4c4bf817 4362011-08-10 Paulo J. Matos <paulo.matos@csr.com>
437
438 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
439 * doc/tm.texi: Regenerate.
440
20ff4398 4412011-08-10 Georg-Johann Lay <avr@gjlay.de>
52d12c0f 442
20ff4398 443 PR target/29560
444 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
445 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
446 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
447 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
448 shift target is unused.
449
f8abb542 4502011-08-10 Richard Guenther <rguenther@suse.de>
451
452 PR tree-optimization/49937
453 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
454 using get_object_alignment_1.
455
3af06b97 4562011-08-09 Uros Bizjak <ubizjak@gmail.com>
457
458 * config/i386/i386.c (ix86_emit_i387_round): New function.
459 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
460 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
461 Use ix86_emit_i387_round to expand round function for i387 math.
462 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
463 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
464
21889c08 4652011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
466
467 * config/sync.c: Move to ../libgcc.
3af06b97 468 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
21889c08 469 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
470 Remove.
471
f7e13ca6 4722011-08-09 Anatoly Sokolov <aesok@post.ru>
473
474 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
475 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
476 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
477 Change 'from' and 'to' arguments type to reg_class_t.
478 (TARGET_REGISTER_MOVE_COST): Define.
479
10de87c3 4802011-08-09 Vladimir Makarov <vmakarov@redhat.com>
481
482 PR target/50026
483 Revert:
484 PR rtl-optimization/49990
485 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
486 ignore classes which can not change mode.
487 (find_costs_and_classes): Ditto.
488
63bb6dcf 4892011-08-09 Richard Guenther <rguenther@suse.de>
490
491 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
492 information for ranges with only negative values.
493 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
494 BIT_AND_EXPR handling to handle ranges with negative values.
495
33541f98 4962011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
497
52d12c0f 498 * config/i386/i386.c: Remove traling spaces.
499 * config/i386/sse.md: Likewise.
500 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
501 (*fma_fmsub_<mode>): Likewise.
502 (*fma_fnmadd_<mode>): Likewise.
503 (*fma_fnmsub_<mode>): Likewise.
33541f98 504
07db3800 5052011-08-09 Nick Clifton <nickc@redhat.com>
506
507 * config/rx/rx.md: Disable extender peepholes at -O3.
508
023f367a 5092011-08-09 Uros Bizjak <ubizjak@gmail.com>
510
511 PR target/49781
512 * config/i386/i386.md (reload_noff_load): New.
513 (reload_noff_store): Ditto.
514 * config/i386/i386.c (ix86_secondary_reload): Use
515 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
516 double-word moves from/to non-offsetable addresses instead of
517 generating XMM temporary.
518
9382a007 5192011-08-09 Anatoly Sokolov <aesok@post.ru>
520
521 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
522
d42d0fe0 5232011-08-09 Ira Rosen <ira.rosen@linaro.org>
524
525 PR tree-optimization/50014
526 * tree-vect-loop.c (vectorizable_reduction): Get def type before
527 calling vect_get_vec_def_for_stmt_copy ().
528
363f7c88 5292011-08-08 Vladimir Makarov <vmakarov@redhat.com>
530
531 PR rtl-optimization/49990
532 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
533 ignore classes which can not change mode.
534 (find_costs_and_classes): Ditto.
535
a3b0eb41 5362011-08-08 Richard Henderson <rth@redhat.com>
537
538 PR middle-end/49990
539 * config/i386/i386.c (ix86_expand_prologue): Call
540 for SEH target gen_prologue_use instead of gen_blockage
541 at prologue's end.
542
bdb2a896 5432011-08-08 Martin Jambor <mjambor@suse.cz>
544
545 PR middle-end/49923
546 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
547 memory alignment.
548
2541503d 5492011-08-08 Diego Novillo <dnovillo@google.com>
550
551 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
552 (DATA_STREAMER_H): New.
553 (GIMPLE_STREAMER_H): New.
554 (TREE_STREAMER_H): New.
555 (STREAMER_HOOKS_H): New.
556 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
557 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
558 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
559 (data-streamer.o): New.
560 (data-streamer-in.o): New.
561 (data-streamer-out.o): New.
562 (gimple-streamer-in.o): New.
563 (gimple-streamer-out.o): New.
564 (streamer-hooks.o): New.
565 (tree-streamer.o): New.
566 (tree-streamer-in.o): New.
567 (tree-streamer-out.o): New.
023f367a 568 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2541503d 569 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
570 GIMPLE_STREAMER_H and TREE_STREAMER_H.
571 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
572 GIMPLE_STREAMER_H and TREE_STREAMER_H.
573 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
023f367a 574 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
2541503d 575 (ipa-inline-analysis.o): Likewise.
576 (ipa-pure-const.o): Likewise.
577 * data-streamer-in.c: New.
578 * data-streamer-out.c: New.
579 * data-streamer.c: New.
580 * data-streamer.h: New.
581 * gimple-streamer-in.c: New.
582 * gimple-streamer-out.c: New.
583 * gimple-streamer.h: New.
584 * ipa-inline-analysis.c: Include data-streamer.h.
585 * ipa-prop.c: Include data-streamer.h.
586 * ipa-pure-const.c: Include data-streamer.h.
587 * lto-cgraph.c: Include data-streamer.h.
588 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
589 (lto_input_widest_uint_uleb128): Likewise.
590 (lto_input_sleb128): Likewise.
591 (bp_unpack_var_len_unsigned): Likewise.
592 (bp_unpack_var_len_int): Likewise.
593 * lto-section-out.c (lto_output_uleb128_stream): Move to
594 data-streamer-out.c.
595 (lto_output_widest_uint_uleb128_stream): Likewise.
596 (lto_output_sleb128_stream): Likewise.
597 (bp_pack_var_len_unsigned): Likewise.
598 (bp_pack_var_len_int): Likewise.
023f367a 599 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
2541503d 600 (struct string_slot): Remove. Update all users.
601 (lto_tag_check_set): Make extern.
602 (lto_tag_check_range): Move to lto-streamer.h.
603 (lto_tag_check): Likewise.
604 (hash_string_slot_node): Remove. Update all users.
605 (eq_string_slot_node): Remove. Update all users.
606 (string_for_index): Move to data-streamer-in.c
607 (input_string_internal): Likewise.
608 (input_string_cst): Move to tree-streamer-in.c.
609 (input_identifier): Likewise.
610 (lto_input_string): Move to data-streamer-in.c
611 (input_record_start): Move to data-streamer.h
612 (canon_file_name): Use new definition of struct string_slot
023f367a 613 from data-streamer.h. Set S_SLOT.LEN.
2541503d 614 (lto_input_location): Make extern.
615 (lto_input_chain): Move to tree-streamer-in.c.
616 (lto_init_eh): Make extern.
617 (input_phi): Move to gimple-streamer-in.c.
618 (input_gimple_stmt): Likewise.
619 (input_bb): Likewise.
620 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
621 (unpack_ts_real_cst_value_fields): Likewise.
622 (unpack_ts_fixed_cst_value_fields): Likewise.
623 (unpack_ts_decl_common_value_fields): Likewise.
624 (unpack_ts_decl_wrtl_value_fields): Likewise.
625 (unpack_ts_decl_with_vis_value_fields): Likewise.
626 (unpack_ts_function_decl_value_fields): Likewise.
627 (unpack_ts_type_common_value_fields): Likewise.
628 (unpack_ts_block_value_fields): Likewise.
629 (unpack_ts_translation_unit_decl_value_fields): Likewise.
630 (unpack_value_fields): Likewise.
631 (lto_materialize_tree): Likewise.
632 (lto_input_ts_common_tree_pointers): Likewise.
633 (lto_input_ts_vector_tree_pointers): Likewise.
634 (lto_input_ts_complex_tree_pointers): Likewise.
635 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
636 (lto_input_ts_decl_common_tree_pointers): Likewise.
637 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
638 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
639 (lto_input_ts_field_decl_tree_pointers): Likewise.
640 (lto_input_ts_function_decl_tree_pointers): Likewise.
641 (lto_input_ts_type_common_tree_pointers): Likewise.
642 (lto_input_ts_type_non_common_tree_pointers): Likewise.
643 (lto_input_ts_list_tree_pointers): Likewise.
644 (lto_input_ts_vec_tree_pointers): Likewise.
645 (lto_input_ts_exp_tree_pointers): Likewise.
646 (lto_input_ts_block_tree_pointers): Likewise.
647 (lto_input_ts_binfo_tree_pointers): Likewise.
648 (lto_input_ts_constructor_tree_pointers): Likewise.
649 (lto_input_ts_target_option): Likewise.
650 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
651 (lto_input_tree_pointers): Likewise.
652 (lto_get_pickled_tree): Likewise.
653 (lto_get_builtin_tree): Likewise.
654 (lto_read_tree): Likewise.
655 (lto_input_integer_cst): Likewise.
656 (lto_input_tree): Likewise.
657 * lto-streamer-out.c: Include data-streamer.h,
658 gimple-streamer.h and streamer-hooks.h.
659 (struct string_slot): Move to data-streamer.h.
660 (hash_string_slot_node): Likewise.
661 (eq_string_slot_node): Likewise.
662 (lto_string_index): Move to data-streamer-out.c.
663 (lto_output_string_with_length): Likewise.
664 (lto_output_string): Likewise.
665 (output_string_cst): Move to tree-streamer-out.c.
666 (output_identifier): Likewise.
667 (output_zero): Move to data-streamer-out.c
668 (output_uleb128): Likewise.
669 (output_sleb128): Likewise.
670 (output_record_start): Move to data-streamer.h
671 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
672 (pack_ts_real_cst_value_fields): Likewise.
673 (pack_ts_fixed_cst_value_fields): Likewise.
674 (pack_ts_decl_common_value_fields): Likewise.
675 (pack_ts_decl_wrtl_value_fields): Likewise.
676 (pack_ts_decl_with_vis_value_fields): Likewise.
677 (pack_ts_function_decl_value_fields): Likewise.
678 (pack_ts_type_common_value_fields): Likewise.
679 (pack_ts_block_value_fields): Likewise.
680 (pack_ts_translation_unit_decl_value_fields): Likewise.
681 (pack_value_fields): Likewise.
682 (lto_output_chain): Likewise.
683 (lto_output_ts_common_tree_pointers): Likewise.
684 (lto_output_ts_vector_tree_pointers): Likewise.
685 (lto_output_ts_complex_tree_pointers): Likewise.
686 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
687 (lto_output_ts_decl_common_tree_pointers): Likewise.
688 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
689 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
690 (lto_output_ts_field_decl_tree_pointers): Likewise.
691 (lto_output_ts_function_decl_tree_pointers): Likewise.
692 (lto_output_ts_type_common_tree_pointers): Likewise.
693 (lto_output_ts_type_non_common_tree_pointers): Likewise.
694 (lto_output_ts_list_tree_pointers): Likewise.
695 (lto_output_ts_vec_tree_pointers): Likewise.
696 (lto_output_ts_exp_tree_pointers): Likewise.
697 (lto_output_ts_block_tree_pointers): Likewise.
698 (lto_output_ts_binfo_tree_pointers): Likewise.
699 (lto_output_ts_constructor_tree_pointers): Likewise.
700 (lto_output_ts_target_option): Likewise.
701 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
702 (lto_output_tree_pointers): Likewise.
703 (lto_output_tree_header): Likewise.
704 (lto_output_builtin_tree): Likewise.
705 (lto_write_tree): Likewise.
706 (lto_output_integer_cst): Likewise.
707 (lto_output_tree): Likewise.
708 (output_phi): Move to gimple-streamer-out.c.
709 (output_gimple_stmt): Likewise.
710 (output_bb): Likewise.
711 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
712 (streamer_hooks): Move to streamer-hooks.c.
713 (check_handled_ts_structures): Move to tree-streamer.c
714 (lto_streamer_cache_add_to_node_array): Likewise.
715 (lto_streamer_cache_insert_1): Likewise.
716 (lto_streamer_cache_insert): Likewise.
717 (lto_streamer_cache_insert_at): Likewise.
718 (lto_streamer_cache_append): Likewise.
719 (lto_streamer_cache_lookup): Likewise.
720 (lto_streamer_cache_get): Likewise.
721 (lto_record_common_node): Likewise.
722 (lto_preload_common_nodes): Likewise.
723 (lto_streamer_cache_create): Likewise.
724 (lto_streamer_cache_delete): Likewise.
725 (streamer_hooks_init): Move to streamer-hooks.c.
726 * lto-streamer.h: Include diagnostic.h
727 (struct output_block, struct lto_input_block,
023f367a 728 struct data_in, struct bitpack_d): Remove forward declarations.
2541503d 729 (struct bitpack_d): Move to data-streamer.h.
730 (struct lto_streamer_cache_d): Move to tree-streamer.h.
731 (struct streamer_hooks): Move to streamer-hooks.h.
732 (bp_pack_var_len_unsigned): Move to data-streamer.h.
733 (bp_pack_var_len_int): Likewise.
734 (bp_unpack_var_len_unsigned): Likewise.
735 (bp_unpack_var_len_int): Likewise.
736 (lto_input_location): Declare.
737 (lto_tag_check_set): Declare.
738 (lto_init_eh): Declare.
739 (lto_output_tree_ref): Declare.
740 (lto_output_location): Declare.
741 (bitpack_create): Move to data-streamer.h.
742 (bp_pack_value): Likewise.
743 (lto_output_bitpack): Likewise.
744 (lto_input_bitpack): Likewise.
745 (bp_unpack_value): Likewise.
746 (lto_output_1_stream): Likewise.
747 (lto_input_1_unsigned): Likewise.
748 (lto_output_int_in_range): Likewise.
749 (lto_input_int_in_range): Likewise.
750 (bp_pack_int_in_range): Likewise.
751 (bp_unpack_int_in_range): Likewise.
752 (lto_output_enum): Likewise.
753 (lto_input_enum): Likewise.
754 (bp_pack_enum): Likewise.
755 (bp_unpack_enum): Likewise.
756 * streamer-hooks.c: New.
757 * streamer-hooks.h: New.
758 * tree-streamer-in.c: New.
759 * tree-streamer-out.c: New.
760 * tree-streamer.c: New.
761 * tree-streamer.h: New.
762
fe5ef4a0 7632011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
764
765 * gthr-posix95.h: Remove.
766 * gthr.h [_PTHREADS95]: Remove.
767 * configure.ac (enable_threads): Remove posix95.
768 * configure: Regenerate.
023f367a 769 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
fe5ef4a0 770
023f367a 7712011-08-08 Uros Bizjak <ubizjak@gmail.com>
2938eab6 772
773 PR target/49781
774 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
775 SImode addresses.
776 (ix86_print_operand_address): Handle zero-extended addresses.
777 (memory_address_length): Add length of addr32 prefix for
778 zero-extended addresses.
779 (ix86_secondary_reload): Handle moves to/from double-word general
780 registers from/to zero-extended addresses.
781 * config/i386/predicates.md (lea_address_operand): Reject
782 zero-extended operands.
783
e451a093 7842011-08-08 H.J. Lu <hongjiu.lu@intel.com>
785
786 PR other/48007
2938eab6 787 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
e451a093 788
789 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
790 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
791
792 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
793 (_Unwind_Context_Reg_Val): Likewise.
794 (_Unwind_Get_Unwind_Word): Likewise.
795 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
796 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
797 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
798 for EXTENDED_CONTEXT_BIT.
799 (__frame_state_for): Likewise.
800 (uw_init_context_1): Likewise.
801 (_Unwind_GetGR): Updated.
802 (_Unwind_SetGR): Likewise.
803 (_Unwind_GetGRPtr): Likewise.
804 (_Unwind_SetGRPtr): Likewise.
805 (_Unwind_SetGRValue): Likewise.
806 (_Unwind_GRByValue): Likewise.
807 (uw_install_context_1): Likewise.
808
809 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
810 ASSUME_EXTENDED_UNWIND_CONTEXT.
811 * doc/tm.texi: Regenerated.
812
77eb3c2f 8132011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
814
815 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
816
e5220601 8172011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
818
819 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
820 Linux/GNU-specific.
821 (DEC Alpha Options, -mtune): Likewise.
822 (MIPS Options, -march): native is supported on IRIX.
823
76fd9e61 8242011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
825
826 * config/sparc/driver-sparc.c: New file.
827 * config/sparc/x-sparc: New file.
2938eab6 828 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
829 * config/sparc/sparc.opt (native): New value for enum processor_type.
76fd9e61 830 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
831 * config/sparc/sparc.c (sparc_option_override): Abort if
832 PROCESSOR_NATIVE gets here.
833 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
834 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
835 DRIVER_SELF_SPECS): Define.
836 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
837 (SPARC Options, -mtune): Likewise.
838 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
839 Substitute result.
840 * configure: Regenerate.
841 * Makefile.in (EXTRA_GCC_LIBS): Set.
842 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
843 (cpp$(exeext)): Likewise.
844
113fbe09 8452011-08-08 Richard Guenther <rguenther@suse.de>
846
847 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
848 split out from ...
849 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
850 by composition.
851
92c6b5e2 8522011-08-08 Mikael Pettersson <mikpe@it.uu.se>
853
854 PR tree-optimization/50005
855 * ipa-inline-analysis (remap_predicate): Add cast to
856 silence signed/unsigned comparison warning.
857
2beb48b8 8582011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
859
860 * modulo-sched.c (get_sched_window): Use a table for the debug output.
861 Print the current ii.
862 (sms_schedule_by_order): Reduce whitespace in dump line.
863
0f7b323c 8642011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
865
866 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
867 and one loop for successors. Fix upper bound of memory range.
868
0d25d8c2 8692011-08-06 Uros Bizjak <ubizjak@gmail.com>
870
871 PR target/50001
872 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
873 (TARGET_INSTANTIATE_DECLS): New define.
874
43406128 8752011-08-06 Paolo Bonzini <bonzini@gnu.org>
2938eab6 876 Mikael Morin <mikael.morin@sfr.fr>
43406128 877
878 * Makefile.in (INCLUDES_FOR_TARGET): New.
879 (LIBGCC2_CFLAGS): Use it.
0d25d8c2 880 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
43406128 881
5c616237 8822011-08-06 Uros Bizjak <ubizjak@gmail.com>
883
884 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
885 frame->save_regs_using_mov calculation.
886
675d6e0d 8872011-08-06 Uros Bizjak <ubizjak@gmail.com>
888
889 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
890 * config/i386/sse.md (castmode): New mode attribute.
891 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
892 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
893
4dbe7ac1 8942011-08-05 Jan Hubicka <jh@suse.cz>
895
896 PR middle-end/49494
897 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
898
478e80e0 8992011-08-05 Jan Hubicka <jh@suse.cz>
900
901 PR middle-end/49500
902 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
903 handle aliases.
904 (create_emultls_var):New function.
905 (ipa_lower_emutls): Handle aliases correctly.
906
67baa302 9072011-08-05 Jan Hubicka <jh@suse.cz>
908
909 PR middle-end/49735
910 * ipa-inline.c (recursive_inlining): Look through aliases.
911
01bb102a 9122011-08-05 Jason Merrill <jason@redhat.com>
913
914 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
915 declarations to beginning of function.
916
902ef38a 9172011-08-05 Bernd Schmidt <bernds@codesourcery.com>
918
919 PR rtl-optimization/49900
920 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
921 ensure basic blocks stay in the same order.
922
b634c730 9232011-08-05 Aldy Hernandez <aldyh@redhat.com>
924
925 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
926 store_bit_field.
927 (s390_expand_atomic): Same.
928
b0fb421c 9292011-08-05 Richard Henderson <rth@redhat.com>
930
931 PR rtl-opt/49977
932 * dwarf2cfi.c (scan_insn_after): Split out of ...
933 (scan_trace): ... here. Correctly place notes wrt sequences.
934
5b2686e6 9352011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
936 Richard Henderson <rth@redhat.com>
937
938 PR rtl-opt/49982
939 * expr.c (fixup_args_size_notes): Look through no-op moves.
940
13acb9da 9412011-08-05 Uros Bizjak <ubizjak@gmail.com>
942
943 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
944 of "m" for operand 0. Add type and mode attribute.
945 (*pushxf_nointeger"): Use "<" constraint for operand 0.
946 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
947 constraint instead of "o" for opreand 1.
948 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
e10cb373 949 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
950 operand 0, alternative 4.
951 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
13acb9da 952
9532011-08-05 Uros Bizjak <ubizjak@gmail.com>
954
955 * config/i386/predicates.md (lea_address_operand): Rename from
956 no_seg_address_operand.
957 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
958 (*lea_1_zext): Ditto.
959 (*lea_2): Ditto.
960 (*lea_2_zext): Ditto.
961
9622011-08-05 Uros Bizjak <ubizjak@gmail.com>
963
964 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
965 parts.base and parts.index.
966 * config/i386/predicates.md (aligned_operand): Ditto.
967 (cmpxchg8b_pic_memory_operand): Ditto.
968
84600db5 9692011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
970
971 * config/soft-fp: Move to ../libgcc.
972 * Makefile.in (SFP_MACHINE): Remove.
973 (libgcc-support): Remove $(SFP_MACHINE) dependency.
974 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
975 * config/arm/t-arm-softfp: Move to
976 ../libgcc/config/arm/t-softfp.
977 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
978 * config/c6x/t-c6x-softfp: Remove.
979 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
980 * config/i386/t-fprules-softfp: Move to
981 ../libgcc/config/t-softfp-tf.
982 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
983 * config/ia64/t-fprules-softfp: Remove.
984 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
985 * config/lm32/t-fprules-softfp: Remove.
986 * config/moxie/sfp-machine.h: Remove.
987 * config/moxie/t-moxie-softfp: Remove.
988 * config/rs6000/darwin-ldouble-format: Move to
989 ../libgcc/config/rs6000/ibm-ldouble-format.
990 * config/rs6000/darwin-ldouble.c: Move to
991 ../libgcc/config/rs6000/ibm-ldouble.c
992 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
993 * config/rs6000/libgcc-ppc64.ver: Likewise.
994 * config/rs6000/sfp-machine.h: Likewise.
995 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
996 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
997 (LIB2FUNCS_EXTRA): Remove.
998 (TARGET_LIBGCC2_CFLAGS): Remove.
999 * config/rs6000/t-aix52: Likewise
1000 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1001 $(srcdir)/config/rs6000/darwin-ldouble.c.
1002 (SHLIB_MAPFILES): Remove.
1003 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
1004 $(srcdir)/config/rs6000/darwin-ldouble.c.
1005 * config/rs6000/t-fprules-softfp: Move to
1006 ../libgcc/config/t-softfp-sfdf.
1007 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
1008 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
1009 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
1010 $(srcdir)/config/rs6000/darwin-ldouble.c.
1011 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
1012 * config/score/t-score-softfp: Remove.
1013 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
1014 soft-fp/t-softfp from tmake_file.
1015 (arm*-*-uclinux*): Likewise.
1016 (arm*-*-ecos-elf): Likewise.
1017 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
1018 (arm*-*-rtems*): Likewise.
1019 (arm*-*-elf): Likewise.
1020 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
1021 tmake_file.
1022 (moxie-*-uclinux*): Likewise.
1023 (moxie-*-rtems*): Likewise.
1024 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
1025 tmake_file.
1026 (lm32-*-rtems*): Likewise.
1027 (lm32-*-uclinux*): Likewise.
1028 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
1029 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1030 (powerpc-*-linux*, powerpc64-*-linux*): Remove
1031 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1032 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
1033 tmake_file.
1034 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
1035 tmake_file.
1036 (tic6x-*-uclinux): Likewise.
1037 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
1038 soft-fp/t-softfp from tmake_file.
1039 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
1040 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
1041 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
13acb9da 1042 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
84600db5 1043 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
1044
a23b9c51 10452011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1046
1047 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
13acb9da 1048 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
a23b9c51 1049 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
1050 TPBIT, TPBIT_FUNCS.
1051 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
1052 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
1053 Remove.
1054 * config/arm/t-vxworks: Likewise.
1055 * config/arm/t-wince-pe: Likewise.
1056 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
1057 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1058 * config/bfin/t-bfin-elf: Likewise.
1059 * config/bfin/t-bfin-linux: Likewise.
1060 * config/bfin/t-bfin-uclinux: Likewise.
1061 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
1062 Remove.
1063 * config/fr30/t-fr30: Likewise.
1064 * config/frv/t-frv: Likewise.
1065 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
1066 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1067 * config/m32c/t-m32c: Likewise.
1068 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
1069 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1070 * config/mcore/t-mcore: Likewise.
1071 * config/mep/t-mep: Likewise.
1072 * config/microblaze/t-microblaze: Likewise.
1073 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
1074 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1075 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
1076 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1077 * config/mn10300/t-linux: Remove.
1078 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1079 * config/pdp11/t-pdp11: Likewise.
1080 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
1081 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
1082 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1083 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
1084 * config/rs6000/t-aix52: Likewise.
1085 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1086 $(srcdir)/config/rs6000/ppc64-fp.c.
1087 * config/rs6000/t-fprules-fpbit: Remove.
1088 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
1089 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1090 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
1091 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1092 * config/sparc/t-elf: Likewise.
1093 * config/sparc/t-leon: Likewise.
1094 * config/sparc/t-leon3: Likewise.
1095 * config/spu/t-spu-elf: Likewise.
1096 (DPBIT_FUNCS): Remove.
1097 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1098 * config/v850/t-v850: Likewise.
1099 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
1100 (avr-*-*): Likewise.
1101 (h8300-*-rtems*): Set libgcc_tm_file.
1102 (h8300-*-elf*): Likewise.
1103 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
1104 tmake_file.
1105 (powerpc-*-eabisim*): Likewise.
1106 (powerpc-*-elf*): Likewise.
1107 (powerpc-*-eabialtivec*): Likewise.
1108 (powerpc-xilinx-eabi*): Likewise.
1109 (powerpc-*-eabi*): Likewise.
1110 (powerpc-*-rtems*): Likewise.
1111 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
1112 (powerpcle-*-elf*): Likewise.
1113 (powerpcle-*-eabisim*): Likewise.
1114 (powerpcle-*-eabi*): Likewise.
1115 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
1116 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
1117 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
1118 Remove.
1119
e59be7e3 11202011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1121
1122 * Makefile.in (UNWIND_H): Remove.
1123 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
1124 ../libgcc/Makefile.in.
1125 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
1126 (LIBUNWINDDEP): Remove.
1127 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
1128 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
1129 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
1130 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
1131 Don't copy $(UNWIND_H).
13acb9da 1132 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
e59be7e3 1133 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
1134 * aclocal.m4: Regenerate.
1135 * configure: Regenerate.
1136 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
1137 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
1138 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
1139 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
1140 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
1141 * config/arm/libunwind.S, config/arm/pr-support.c,
1142 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
1143 ../libgcc/config/arm.
1144 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
1145 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
1146 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
1147 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
1148 ($(T)frvend$(objext)): Likewise.
1149 * config/ia64/t-glibc (LIB2ADDEH): Remove.
1150 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1151 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1152 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1153 ../libgcc/config/ia64.
1154 * config/ia64/t-hpux (LIB2ADDEH): Remove.
1155 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1156 * config/ia64/t-vms (LIB2ADDEH): Remove.
1157 * config/ia64/vms.h (UNW_IVMS_MODE,
1158 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1159 * config/picochip/t-picochip (LIB2ADDEH): Remove.
1160 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1161 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1162 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1163 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1164 $(srcdir)/../libgcc to refer to unwinder sources.
1165 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1166 * config/t-darwin (LIB2ADDEH): Remove.
1167 * config/t-freebsd (LIB2ADDEH): Remove.
1168 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1169 * config/t-libunwind-elf: Move to ../libgcc/config.
1170 * config/t-linux (LIB2ADDEH): Remove.
1171 * config/t-sol2 (LIB2ADDEH): Remove.
1172 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1173 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1174
4e51667e 11752011-08-05 H.J. Lu <hongjiu.lu@intel.com>
1176
1177 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1178
1179 * doc/invoke.texi: Document core-avx-i.
1180
6aec97be 11812011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1182
1183 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1184
2f4ce795 11852011-08-05 Ira Rosen <ira.rosen@linaro.org>
1186
1187 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1188 result of multiple results reduction when extracting the final
1189 value using scalar code.
1190
6c696748 11912011-08-05 Richard Guenther <rguenther@suse.de>
1192
1193 PR tree-optimization/49984
1194 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1195
f26adbc1 11962011-08-05 Richard Guenther <rguenther@suse.de>
1197
1198 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1199 return true for constant integer ranges.
1200 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1201 BIT_IOR_EXPR handling.
1202
2190c507 12032011-08-04 Kai Tietz <ktietz@redhat.com>
1204
1205 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1206 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1207
45eea33f 12082011-08-04 Ira Rosen <ira.rosen@linaro.org>
1209
1210 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1211 pattern def statement, and its access macro.
1212 (NUM_PATTERNS): Set to 5.
1213 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1214 pattern def statement.
1215 (vect_transform_loop): Likewise.
1216 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1217 function vect_recog_over_widening_pattern ().
1218 (vect_operation_fits_smaller_type): New function.
1219 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1220 Likewise.
1221 (vect_pattern_recog_1): Move the code that marks pattern
1222 statements to vect_mark_pattern_stmts (), and call it. Update
1223 documentation.
1224 * tree-vect-stmts.c (vect_supportable_shift): New function.
1225 (vect_analyze_stmt): Handle pattern def statement.
1226 (new_stmt_vec_info): Initialize pattern def statement.
1227
83a435b8 12282011-08-04 Richard Henderson <rth@redhat.com>
1229
1230 PR target/49964
1231 * config/i386/i386.c (ix86_expand_call): Don't create nested
1232 PARALLELs for TARGET_VZEROUPPER.
1233 (ix86_split_call_vzeroupper): Fix extraction of the original call.
1234 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1235 recognize nested PARALLELs.
1236 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1237 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1238 *sibcall_value_pop_vzeroupper): Likewise.
1239
897445c7 12402011-08-04 Richard Henderson <rth@redhat.com>
1241
1242 PR middle-end/49968
1243 * calls.c (expand_call): Use fixup_args_size_notes for
1244 emit_stack_restore.
1245 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1246 in non-standard modes.
1247
bd3ce038 12482011-08-04 Jakub Jelinek <jakub@redhat.com>
1249
1250 * gcc.c (self_spec): New variable.
1251 (static_specs): Add self_spec.
1252 (main): Call do_self_spec on "self_spec" specs after reading
1253 user specs files. Move compare_debug handling right after that.
1254
c37659ce 12552011-08-04 Richard Guenther <rguenther@suse.de>
1256
1257 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1258 (value_range_nonnegative_p): New function.
1259 (ssa_name_nonnegative_p): Use it.
1260 (value_range_constant_singleton): New function.
1261 (op_with_constant_singleton_value_range): Use it.
1262 (extract_range_from_binary_expr_1): New function, split out from ...
1263 (extract_range_from_binary_expr): ... this. Remove fallback
1264 constant folding done here.
1265
d6f3306a 12662011-08-04 Richard Guenther <rguenther@suse.de>
1267
1268 PR tree-optimization/49806
1269 * tree-vrp.c (op_with_boolean_value_range_p): New function.
1270 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
1271 a new statement for a final conversion to bool.
1272
6d70c713 12732011-08-04 Romain Geissler <romain.geissler@gmail.com>
1274
1275 * gengtype-state.c: Include "bconfig.h" if
1276 GENERATOR_FILE is defined, "config.h" otherwise.
1277 * gengtype.c: Likewise.
1278 * gengtype-lex.l: Likewise.
1279 * gengtype-parse.c: Likewise.
1280 * Makefile.in (gengtype-lex.o-warn): New variable.
1281 (plugin_resourcesdir): Likewise.
1282 (plugin_bindir): Likewise.
1283 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1284 (MOSTLYCLEANFILES): Add gengtype$(exeext).
1285 (native): Depend on gengtype$(exeext) is $enable_plugin
1286 is set to "yes".
1287 (gtype.state): Depend on s-gtype. Use temporary file.
1288 (gengtype-lex.o): New rule.
1289 (gengtype-parse.o): Likewise.
1290 (gengtype-state.o): Likewise.
1291 (gengtype$(exeext)): Likewise.
1292 (install-gengtype): Likewise.
1293 (gengtype.o): Likewise.
1294 (build/gengtype.o): Depend on version.h.
1295 (build/gengtype-state): Depend on double-int.h, version.h,
1296 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1297 (install-plugin): Depend on install-gengtype.
1298
b7831f3e 12992011-08-04 Jakub Jelinek <jakub@redhat.com>
1300
1301 PR middle-end/49905
1302 * tree.h (init_attributes): New prototype.
1303 * attribs.c (init_attributes): No longer static.
1304
1ef7c666 13052011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1306
1307 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1308 maybe_suffix.
1309
ece97230 13102011-08-03 David Li <davidxl@google.com>
1311
1312 * tree-optimize.c (execute_fixup_cfg): Fix up entry
1313 outgoing edge counts after inlining.
1314
a648ea35 13152011-08-03 David Li <davidxl@google.com>
1316
1317 * profile.c (compute_branch_probabilities): Compute
1318 function frequency after profile annotation.
1319
01d6314d 13202011-08-04 Alan Modra <amodra@gmail.com>
1321
1322 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1323 use_backchain_to_restore_sp initialisation.
1324 (rs6000_legitimate_offset_address_p): Simplify offset test.
1325
342ec65b 13262011-08-03 Richard Henderson <rth@redhat.com>
1327
1328 * config/spu/spu.md: Use define_c_enum instead of define_constants.
1329 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1330 (UNSPECV_NOP): New.
1331
2324fa12 13322011-08-03 Richard Henderson <rth@redhat.com>
1333
1334 PR target/34888
1335 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1336
68b093cd 13372011-08-03 Jakub Jelinek <jakub@redhat.com>
1338
1339 PR tree-optimization/49948
1340 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1341
afe8797e 13422011-08-03 Anatoly Sokolov <aesok@post.ru>
1343
1344 * config/m32c/m32c.c (class_sizes): Remove.
1345 (reduce_class): Change arguments and return type to reg_class_t.
1346 Change type cc var to HARD_REG_SET. Change type best var to
1347 reg_class_t. Change type best_size var to unsigned int. Remove
1348 initialization class_sizes var. Use reg_class_size array instead
1349 of class_sizes. Use reg_class_contents array instead
1350 of class_contents.
1351
105f72b0 13522011-08-03 Richard Guenther <rguenther@suse.de>
1353
1354 PR middle-end/49958
1355 * fold-const.c (fold_binary_loc): Only associate
1356 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1357 overflow wraps.
1358
e0691b9a 13592011-08-03 Alan Modra <amodra@gmail.com>
1360
1361 PR rtl-optimization/49941
1362 * jump.c (mark_jump_label): Comment.
1363 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1364 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1365 (mark_used_flags): Don't mark RETURN.
1366
7624240a 13672011-08-03 Richard Guenther <rguenther@suse.de>
1368
1369 PR tree-optimization/49938
1370 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1371 deal with a POLYNOMIAL_CHREC.
1372
a5ea7ace 13732011-08-03 Revital Eres <revital.eres@linaro.org>
1374
1375 * modulo-sched.c (calculate_stage_count,
1376 calculate_must_precede_follow, get_sched_window,
1377 try_scheduling_node_in_cycle, remove_node_from_ps): Add
1378 declaration.
1379 (update_node_sched_params, set_must_precede_follow, optimize_sc):
1380 New functions.
1381 (reset_sched_times): Call update_node_sched_params.
1382 (sms_schedule): Call optimize_sc.
1383 (get_sched_window): Change function arguments.
1384 (sms_schedule_by_order): Update call to get_sched_window.
1385 Call set_must_precede_follow.
1386 (calculate_stage_count): Add function argument.
1387
dfe00a8f 13882011-08-02 Richard Henderson <rth@redhat.com>
1389
1390 PR target/49864
bad07f00 1391 PR target/49879
dfe00a8f 1392 * reg-notes.def (REG_ARGS_SIZE): New.
1393 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1394 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1395 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1396 different stack levels.
1397 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1398 (maybe_move_args_size_note): New.
1399 (combine_stack_adjustments_for_block): Use it.
1400 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1401 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1402 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1403 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1404 (cur_cfa): New.
1405 (queued_args_size): Remove.
1406 (add_cfi_args_size): Assert size is non-negative.
1407 (stack_adjust_offset, dwarf2out_args_size): Remove.
1408 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1409 (notice_args_size, notice_eh_throw): New.
1410 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1411 (dwarf2out_frame_debug_adjust_cfa): Likewise.
1412 (dwarf2out_frame_debug_cfa_offset): Likewise.
1413 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
1414 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1415 (change_cfi_row): Don't emit args_size.
1416 (maybe_record_trace_start_abnormal): Split out from ...
1417 (maybe_record_trace_start): Here. Set args_size_undefined.
1418 (create_trace_edges): Update to match.
1419 (scan_trace): Handle REG_ARGS_SIZE.
1420 (connect_traces): Connect args_size between EH insns.
1421 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1422 * explow.c (suppress_reg_args_size): New.
1423 (adjust_stack_1): Split out from ...
1424 (adjust_stack): ... here.
1425 (anti_adjust_stack): Use it.
1426 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1427 * expr.c (mem_autoinc_base): New.
1428 (fixup_args_size_notes): New.
1429 (emit_single_push_insn_1): Rename from emit_single_push_insn.
1430 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
1431 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1432 * reload1.c (reload_as_needed): Likewise.
1433 * rtl.h (fixup_args_size_notes): Declare.
1434
5ebd604f 14352011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
1436
1437 PR bootstrap/49914
1438 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1439 of abs.
1440 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1441 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1442
a5c6cfdd 14432011-08-02 Richard Henderson <rth@redhat.com>
1444
1445 * config/h8300/h8300.c (push, pop): Return the insn.
1446 (h8300_swap_into_er6): Generate correct unwind info.
1447 (h8300_swap_out_of_er6): Likewise.
eadd7e6b 1448 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1449 complex cfa expression.
1450 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
a5c6cfdd 1451
78be71f4 14522011-08-02 H.J. Lu <hongjiu.lu@intel.com>
1453
1454 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1455
e8bd1224 14562011-08-02 Richard Henderson <rth@redhat.com>
1457
1458 PR target/49878
1459 * config/h8300/h8300.c (h8300_move_ok): New.
1460 * config/h8300/h8300-protos.h: Declare it.
1461 * config/h8300/h8300.md (P): New mode iterator.
1462 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1463 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1464 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1465 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1466 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1467 and pushqi1_h8300hs_normal; use PRE_MODIFY and
1468 register_no_sp_elim_operand.
1469 (*pushhi1_h8300hs_<P>): Similarly.
1470 (pushqi1, pushhi1, pushhi1_h8300): Remove.
1471 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1472
090df986 14732011-08-02 Richard Henderson <rth@redhat.com>
1474
1475 PR target/49881
1476 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1477
2169f33b 14782011-08-02 Jakub Jelinek <jakub@redhat.com>
1479
1480 * c-parser.c (enum c_parser_prec): New enum, moved from within
1481 c_parser_binary_expression.
1482 (c_parser_binary_expression): Add PREC argument. Stop parsing
1483 if operator has lower or equal precedence than PREC.
1484 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1485 callers.
1486 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1487 Adjust c_finish_omp_atomic caller.
1488 (c_parser_omp_taskyield): New function.
1489 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1490 (c_parser_omp_clause_name): Handle final and mergeable clauses.
1491 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1492 functions.
1493 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1494 and PRAGMA_OMP_CLAUSE_MERGEABLE.
1495 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1496 (c_parser_omp_clause_reduction): Handle min and max.
1497 * c-typeck.c (c_finish_omp_clauses): Don't complain about
1498 const qualified predetermined vars in firstprivate clause.
1499 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1500 Handle MIN_EXPR and MAX_EXPR.
1501 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1502 and OMP_CLAUSE_MERGEABLE.
1503 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1504 and OMP_ATOMIC_CAPTURE_NEW.
1505 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1506 OMP_CLAUSE_MERGEABLE.
1507 (omp_clause_code_name): Likewise.
1508 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1509 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1510 and OMP_CLAUSE_MERGEABLE.
1511 (OMP_CLAUSE_FINAL_EXPR): Define.
1512 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1513 OMP_CLAUSE_MERGEABLE.
1514 (expand_task_call): Likewise.
1515 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1516 (expand_omp_atomic_fetch_op): Handle cases where old or new
1517 value is needed afterwards.
1518 (expand_omp_atomic): Call expand_omp_atomic_load resp.
1519 expand_omp_atomic_store.
1520 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1521 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1522 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1523 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1524 * tree-nested.c (convert_nonlocal_omp_clauses,
1525 convert_local_omp_clauses): Likewise.
1526 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1527 OMP_ATOMIC_CAPTURE_NEW): New.
1528 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1529 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1530 New inlines.
1531 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1532 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1533 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1534
75200312 15352011-08-02 Kai Tietz <ktietz@redhat.com>
1536
1537 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1538 boolean-type.
1539 (ssa_forward_propagate_and_combine): Interprete result of
1540 forward_propagate_comparison.
1541 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1542 boolean-typed operands for comparisons.
1543
a5717a97 15442011-08-02 Georg-Johann Lay <avr@gjlay.de>
e0691b9a 1545
a5717a97 1546 * config/avr/libgcc.S: Gather related function in the
1547 same input section.
e0691b9a 1548 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
a5717a97 1549 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1550 references.
1551 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1552 __udivmodsi4, __divmodsi4, __prologue_saves__,
1553 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1554 __do_copy_data, __do_clear_bss, __do_global_ctors,
1555 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1556
1d57f0d3 15572011-08-02 Uros Bizjak <ubizjak@gmail.com>
1558
1559 PR target/47766
1560 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1561 (stack_protect_test): The pattern compares ptr_mode value.
1562
3d573bac 15632011-08-02 Alan Modra <amodra@gmail.com>
1564
1565 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1566 note for save_LR_around_toc_setup sequence.
1567
b19d44e5 15682011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1569
1d57f0d3 1570 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
b19d44e5 1571
2fa63533 15722011-08-01 Sebastian Pop <sebastian.pop@amd.com>
1573 Joseph Myers <joseph@codesourcery.com>
1574
1575 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1576 * hwint.c: Include diagnostic-core.h.
1577 (abs_hwi): New.
1578 (gcd): Moved here...
1579 (pos_mul_hwi): New.
1580 (mul_hwi): New.
1581 (least_common_multiple): Moved here...
1582 * hwint.h (gcd): ... from here.
1583 (least_common_multiple): ... from here.
1584 (HOST_WIDE_INT_MIN): New.
1585 (HOST_WIDE_INT_MAX): New.
1586 (abs_hwi): Declared.
1587 (gcd): Declared.
1588 (pos_mul_hwi): Declared.
1589 (mul_hwi): Declared.
1590 (least_common_multiple): Declared.
1591 * omega.c (check_pos_mul): Removed.
1592 (check_mul): Removed.
1593 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1594 mul_hwi instead of check_mul.
1595
22d4c405 15962011-08-01 Richard Henderson <rth@redhat.com>
1597
1598 PR target/49881
1599 * config/avr/avr.h (PUSH_ROUNDING): New.
1600 * config/avr/avr.md (pushqi1): Rename from *pushqi.
1601 (*pushhi, *pushsi, *pushsf): Remove.
1602 (MPUSH): New mode iterator.
1603 (push<MPUSH>1): New expander.
1604
27925877 16052011-08-01 Anatoly Sokolov <aesok@post.ru>
1606
1607 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1608 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1609 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1610 mmix_preferred_output_reload_class): Remove.
1611 * config/mmix/mmix.c (mmix_preferred_reload_class,
1612 mmix_preferred_output_reload_class): Make static. Change rclass
1613 argument and return type to reg_class_t.
1614 (TARGET_PREFERRED_RELOAD_CLASS,
1615 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1616
aadec354 16172011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
1618
1619 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1620 handling.
1621
6e353f72 16222011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1623
1624 PR target/47766
1625 * config/i386/i386.md (PTR): New.
1626 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1627 (stack_protect_test): Likewise.
1628 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1629 (stack_tls_protect_set_<mode>): Likewise.
1630 (stack_tls_protect_test_<mode>): Likewise.
1631
3c22703a 16322011-08-01 Uros Bizjak <ubizjak@gmail.com>
1633
1634 PR target/49927
1635 * config/i386/i386.c (ix86_address_subreg_operand): New.
1636 (ix86_decompose_address): Use ix86_address_subreg_operand.
1637 (ix86_legitimate_address_p): Do not assert that subregs satisfy
1638 register_no_elim_operand in DImode.
1639
6b809b99 16402011-08-01 Ira Rosen <ira.rosen@linaro.org>
1641
1642 PR tree-optimization/49926
1643 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1644 in a chain doesn't have uses both inside and outside the loop.
1645
6db2e6e8 16462011-08-01 Georg-Johann Lay <avr@gjlay.de>
3c22703a 1647
6db2e6e8 1648 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1649 * config/avr/avr-devices.c (avr_mcu_types): Use it.
1650 * config/avr/avr-mcus.def (AVR_MCU): Use it.
1651 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1652 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1653 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1654 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1655 to detect if XJMP must not be skipped.
1656
9a4af446 16572011-08-02 Alan Modra <amodra@gmail.com>
1658
3c22703a 1659 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1660 Delete.
9a4af446 1661 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1662 (rs6000_emit_prologue): Don't prematurely return when
1663 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
1664 save_toc_in_prologue case.
1665 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1666 calls_alloca.
1667
efc29afe 16682011-08-01 Georg-Johann Lay <avr@gjlay.de>
9a4af446 1669
efc29afe 1670 * config/avr/avr-devices.c: Delete SVN property svn:executable.
1671 * config/avr/predicates.md: Ditto.
1672 * config/avr/driver-avr.c: Ditto.
1673 * config/avr/genopt.sh: Set SVN property svn:executable to *.
1674
ab6e3ce0 16752011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1676
1677 * calls.c (emit_library_call_value_1): Declare size only if
1678 BLOCK_REG_PADDING is defined.
1679
a3398ee6 16802011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
1681
1682 PR target/49547
3c22703a 1683 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
a3398ee6 1684 (x86_64-*-*): Likewise.
1685 * config/i386/i386.opt (mlzcnt): New.
1686 * config/i386/abmintrin.h: File removed.
1687 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
3c22703a 1688 * config/i386/lzcntintrin.h: ... here. New file.
a3398ee6 1689 (__lzcnt): Rename to ...
1690 (__lzcnt32): ... this.
1691 * config/i386/bmiintrin.h (head): Update copyright year.
1692 (__lzcnt_u16): Removed.
1693 (__lzcnt_u32): Likewise.
1694 (__lzcnt_u64): Likewise.
1695 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1696 is defined, remove abmintrin.h.
1697 * config/i386/cpuid.h (bit_LZCNT): New.
1698 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1699 LZCNT feature.
1700 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1701 __LZCNT__ if needed.
1702 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1703 (ix86_option_override_internal): Handle LZCNT option.
1704 (ix86_valid_target_attribute_inner_p): Likewise.
1705 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1706 * config/i386/i386.h (TARGET_LZCNT): New.
1707 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1708 * config/i386/i386.md (clz<mode>2): Update insn constraint.
1709 (clz<mode>2_lzcnt): Likewise.
1710 * doc/invoke.texi: Mention -mlzcnt option.
1711 * doc/extend.texi: Likewise.
1712
bbbe4599 17132011-08-01 Julian Brown <julian@codesourcery.com>
1714
1715 * configure.ac (fixed-point): Add ARM support.
1716 * configure: Regenerate.
1717 * config/arm/arm.c (arm_fixed_mode_set): New struct.
1718 (arm_set_fixed_optab_libfunc): New.
1719 (arm_set_fixed_conv_libfunc): New.
1720 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1721 ARM-specific names.
1722 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1723 return values in SImode.
1724 (arm_return_in_msb): Return fixed-point types in the msb.
1725 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1726 upwards.
1727 (arm_scalar_mode_supported_p): Support fixed-point modes.
1728 (arm_vector_mode_supported_p): Support vector fixed-point modes.
1729 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1730 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1731 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1732 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1733 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1734 New mode iterators.
1735 (qaddsub_suf): New mode attribute.
1736 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1737 vector modes.
1738 * config/arm/predicates.md (sat_shift_operator): New predicate.
1739 * config/arm/arm-fixed.md: New.
1740 * config/arm/arm.md: Include arm-fixed.md.
1741 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1742
37cd19a4 17432011-08-01 Julian Brown <julian@codesourcery.com>
1744
1745 * calls.c (emit_library_call_value_1): Support padding for libcall
1746 arguments and return values.
1747 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1748 downwards in big-endian mode.
1749
76005733 17502011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1751
1752 PR debug/49887
1753 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1754 * config/sol2-protos.h: Likewise.
1755 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1756 solaris_code_end.
1757 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1758 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1759 solaris_file_end.
1760 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1761
7f7ae544 17622011-08-01 Julian Brown <julian@codesourcery.com>
1763
1764 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1765
ba002eb4 17662011-08-01 Julian Brown <julian@codesourcery.com>
1767
1768 * final.c (output_addr_const): Print fixed-point constants as
1769 decimal not hex.
1770
5adf2733 17712011-08-01 Richard Guenther <rguenther@suse.de>
1772
1773 * stor-layout.c (initialize_sizetypes): Properly sign-extend
1774 bitsiztype TYPE_MAX_VALUE.
1775
df484ac6 17762011-08-01 Julian Brown <julian@codesourcery.com>
1777
1778 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1779 comparison helpers.
1780
24b780d3 17812011-07-31 Richard Henderson <rth@redhat.com>
1782
1783 * config/h8300/crti.asm: Add flags to .section directive.
1784 * config/h8300/crtn.asm: Likewise.
1785
621fad71 17862011-07-31 Richard Henderson <rth@redhat.com>
1787
1788 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1789 * tree.c (build_common_tree_nodes): Likewise.
1790
094f8370 17912011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
1792
1793 PR target/49880
1794 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1795 (divsi3_i1): Likewise.
1796
b248bf30 17972011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1798
1799 PR tree-optimization/49749
1800 * tree-ssa-reassoc.c (get_rank): New forward declaration.
1801 (PHI_LOOP_BIAS): New macro.
1802 (phi_rank): New function.
1803 (loop_carried_phi): Likewise.
1804 (propagate_rank): Likewise.
1805 (get_rank): Add calls to phi_rank and propagate_rank.
9a4af446 1806
343b0655 18072011-07-31 H.J. Lu <hongjiu.lu@intel.com>
1808
1809 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1810 of TARGET_64BIT.
1811 (PTRDIFF_TYPE): Likewise.
1812
e56ef720 18132011-07-31 Uros Bizjak <ubizjak@gmail.com>
1814
1815 PR target/49920
1816 * config/i386/i386.md (strset): Do not expand strset_singleop
1817 when %eax or $edi are fixed.
1818 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1819 (*strsetsi_1): Ditto.
1820 (*strsethi_1): Ditto.
1821 (*strsetqi_1): Ditto.
1822 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1823 (*rep_stossi): Ditto.
1824 (*rep_stosqi): Ditto.
3c22703a 1825 (*strlenqi_1): Ditto.
e56ef720 1826 (cmpstrnsi): Also fail when %ecx is fixed.
1827 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1828 (*cmpstrnqi_1): Ditto.
e56ef720 1829 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1830 (*strmovsi_1): Ditto.
1831 (*strmovhi_1): Ditto.
1832 (*strmovqi_1): Ditto.
1833 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1834 (*rep_movsi): Ditto.
1835 (*rep_movqi): Ditto.
1836
c2e7013d 18372011-07-31 Mikael Pettersson <mikpe@it.uu.se>
1838
1839 PR target/47908
1840 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1841 Disable instruction scheduling for non-ColdFire targets.
1842 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1843
9f995d88 18442011-07-31 Revital Eres <revital.eres@linaro.org>
1845
1846 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1847 of anti-dep edge from a branch.
1848 (add_cross_iteration_register_deps): Create anti-dep edge from
1849 a branch.
1850
abbfd803 18512011-07-31 Revital Eres <revital.eres@linaro.org>
1852
1853 * modulo-sched.c: Change comment.
1854 (reset_sched_times): Fix print message.
1855 (print_partial_schedule): Add print info.
1856
1b48bba8 18572011-07-31 Tom de Vries <tom@codesourcery.com>
1858
1859 PR middle-end/43513
1860 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1861 get_object_alignment and TYPE_ALIGN.
1862
dfc8fda4 18632011-07-30 Tom de Vries <tom@codesourcery.com>
1864
1865 PR middle-end/43513
1866 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1867 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1868
ea3d3176 18692011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1870
1871 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1872 <sys/sbd.h>.
1873 (cpu_types): New array.
1874 (cputype): New function.
1875 (host_detect_local_cpu): Only define buf, f if !__sgi__.
1876 Use scaninvent instead of /proc/cpuinfo if __sgi__.
1877 * config.host: Also use driver-native.o, mips/x-native on
1878 mips-sgi-irix*.
e56ef720 1879 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
ea3d3176 1880 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1881 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1882
784ad964 18832011-07-29 Jakub Jelinek <jakub@redhat.com>
1884
1885 PR middle-end/49897
1886 PR middle-end/49898
1887 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1888 in nested parallel and outer is a gimple_reg, mark it as addressable
1889 and set its bit in task_shared_vars bitmap too.
1890
e0b7913f 18912011-07-29 Uros Bizjak <ubizjak@gmail.com>
1892
1893 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1894
d2914357 18952011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1896
1897 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1898 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1899 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1900 AMASK_LOCKPFTCHOK): Define.
1901 (host_detect_local_cpu): Remove buf, f, cpu_names.
1902 Define cpu_types, implver, amask.
1903 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1904 native CPU.
1905 * config.host: Also use driver-alpha.o, alpha/x-alpha on
1906 alpha*-dec-osf*.
1907 * config/alpha/osf5.h [__alpha__ || __alpha]
1908 (host_detect_local_cpu): Declare.
1909 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1910 (DRIVER_SELF_SPECS): Define.
1911
1d96f528 19122011-07-29 Uros Bizjak <ubizjak@gmail.com>
1913
1914 PR target/47715
1915 * config/i386/i386.md (*load_tp_x32): New.
1916 (*load_tp_x32_zext): Ditto.
1917 (*add_tp_x32): Ditto.
1918 (*add_tp_x32_zext): Ditto.
1919 (*load_tp_<mode>): Disable for TARGET_X32 targets.
1920 (*add_tp_<mode>): Ditto.
1921 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1922 ptr_mode and convert to Pmode if needed.
1923
ef2de86b 19242011-07-29 Georg-Johann Lay <avr@gjlay.de>
1d96f528 1925
ef2de86b 1926 PR target/49687
1927 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1928 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1929 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1930 Add X to register footprint: Clobber r26/r27.
1931
de67cbb8 19322011-07-29 Richard Guenther <rguenther@suse.de>
1933
1934 * builtins.c (fold_builtin_signbit): Build the comparison
1935 with a proper type.
1936
450c0971 19372011-07-29 Richard Guenther <rguenther@suse.de>
1938
1939 PR tree-optimization/49893
1940 * tree-predcom.c (suitable_reference_p): Volatile references
1941 are not suitable.
1942
fe02678b 19432011-07-29 Georg-Johann Lay <avr@gjlay.de>
1d96f528 1944
fe02678b 1945 PR target/49313
1946 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1947 (__ctzsi2): Result for 0 may be undefined.
1948 (__ctzhi2): Result for 0 may be undefined.
1949 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1950 (__popcountsi2): Ditto. And don't clobber r26.
1951 (__popcountdi2): Ditto. And don't clobber r27.
1952 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1953 (parityhi2): New expand.
1954 (paritysi2): New expand.
1955 (popcounthi2): New expand.
1956 (popcountsi2): New expand.
1957 (clzhi2): New expand.
1958 (clzsi2): New expand.
1959 (ctzhi2): New expand.
1960 (ctzsi2): New expand.
1961 (ffshi2): New expand.
1962 (ffssi2): New expand.
1963 (copysignsf3): New insn.
1964 (bswapsi2): New expand.
1965 (*parityhi2.libgcc): New insn.
1966 (*parityqihi2.libgcc): New insn.
1967 (*paritysihi2.libgcc): New insn.
1968 (*popcounthi2.libgcc): New insn.
1969 (*popcountsi2.libgcc): New insn.
1970 (*popcountqi2.libgcc): New insn.
1971 (*popcountqihi2.libgcc): New insn-and-split.
1972 (*clzhi2.libgcc): New insn.
1973 (*clzsihi2.libgcc): New insn.
1974 (*ctzhi2.libgcc): New insn.
1975 (*ctzsihi2.libgcc): New insn.
1976 (*ffshi2.libgcc): New insn.
1977 (*ffssihi2.libgcc): New insn.
1978 (*bswapsi2.libgcc): New insn.
1979
fb41023e 19802011-07-29 Richard Guenther <rguenther@suse.de>
1981
1982 * tree-vrp.c (get_value_range): Only set parameter default
1983 definitions to varying, leave others at undefined.
1984 (extract_range_from_binary_expr): Fix undefined handling.
1985 (vrp_visit_phi_node): Handle merged undefined state.
1986
690dd636 19872011-07-29 Wei Guozhi <carrot@google.com>
1988
1989 PR rtl-optimization/49799
1990 * combine.c (make_compound_operation): Check if the bit field is valid
1991 before change it to bit field extraction.
1992
8cc069c4 19932011-07-29 Bernd Schmidt <bernds@codesourcery.com>
1994
1995 PR rtl-optimization/49891
1996 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1997 newly created returnjumps.
1998
5a4f6e8c 19992011-07-28 DJ Delorie <dj@redhat.com>
2000
5b9418fd 2001 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
2002 local frame in a naked function, and produce a suitable error for
2003 that specific case.
2004
5a4f6e8c 2005 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
2006 registers to be reloaded in HI classes when the target is HI.
2007
24a2ecdb 20082011-07-28 Sebastian Pop <sebastian.pop@amd.com>
2009
2010 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
2011 bound_one, bound_two.
2012
04f7c859 20132011-07-28 Sebastian Pop <sebastian.pop@amd.com>
2014
2015 PR middle-end/48648
2016 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
2017 CLAST assignments.
2018 (translate_clast): Same.
2019 (translate_clast_assignment): New.
2020
2a483856 20212011-07-28 Sebastian Pop <sebastian.pop@amd.com>
2022
2023 PR tree-optimization/49876
2024 * sese.c (rename_uses): Do not return false on gloog_error: set
2025 the new_expr to integer_zero_node and continue code generation.
2026 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
2027
6aed0484 20282011-07-28 Jakub Jelinek <jakub@redhat.com>
2029
2030 PR debug/49846
2031 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
2032 arguments also check if they aren't initialized with a MODE_INT
2033 mode of the same size.
2034
704384eb 20352011-07-28 Aldy Hernandez <aldyh@redhat.com>
2036
2037 * expr.c (get_bit_range): Handle *MEM_REF's.
2038
4115ac36 20392011-07-28 Bernd Schmidt <bernds@codesourcery.com>
2040
2041 * rtlanal.c (tablejump_p): False for returns.
2042 * reorg.c (first_active_target_insn): New static function.
2043 (find_end_label): Set JUMP_LABEL for a new returnjump.
2044 (optimize_skip, get_jump_flags, rare_destination,
2045 mostly_true_jump, get_branch_condition,
2046 steal_delay_list_from_target, own_thread_p,
2047 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
2048 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
2049 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
2050 * jump.c (delete_related_insns): Likewise.
2051 (jump_to_label_p): New function.
2052 (redirect_target): New static function.
2053 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
2054 (redirect_jump_1): Assert that the new label is nonnull.
2055 (redirect_jump): Likewise.
2056 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
2057 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
2058 exit block.
2059 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
2060 changed. Ensure that the right label is passed to redirect_jump.
2061 * function.c (emit_return_into_block,
2062 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
2063 ret_rtx in their JUMP_LABEL.
2064 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
2065 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
2066 pass ret_rtx as label.
2067 * cfglayout.c (fixup_reorder_chain): Use
2068 force_nonfallthru_and_redirect rather than force_nonfallthru.
2069 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
2070 * rtl.h (ANY_RETURN_P): New macro.
2071 (jump_to_label_p): Declare.
2072 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
2073 JUMP_LABELs.
2074 (mark_target_live_regs): Likewise.
2075 * basic-block.h (force_nonfallthru_and_redirect): Declare.
2076 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
2077 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
2078 alpha_tablejump_best_label): Remove functions.
2079 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
2080 alpha_tablejump_best_label): Remove declarations.
2081 * config/sh/sh.c (barrier_align, split_branches): Adjust for
2082 ret_rtx in JUMP_LABELs.
2083 * config/arm/arm.c (is_jump_table): Likewise.
2084
9e08230d 20852011-07-28 Uros Bizjak <ubizjak@gmail.com>
2086
2087 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
2088 special predicate. Remove explicit mode checks.
2089
7e446711 20902011-07-28 Jakub Jelinek <jakub@redhat.com>
2091
9e08230d 2092 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
2093 DW_AT_data_member_location containing just DW_OP_plus_uconst.
94609033 2094
7e446711 2095 PR debug/49871
2096 * dwarf2out.c (size_of_die, value_format, output_die): Use
2097 DW_FORM_udata instead of DW_FORM_data[48] for
2098 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
2099
91932f71 21002011-07-28 H.J. Lu <hongjiu.lu@intel.com>
2101
d305f2ce 2102 * config/i386/i386.md (*tls_global_dynamic_64): Update
2103 length attribute.
91932f71 2104
9ac02d8f 21052011-07-28 Uros Bizjak <ubizjak@gmail.com>
2106
2107 PR target/47715
2108 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
2109 tls_symbolic_operand check. Update code sequence for TARGET_X32.
2110 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
2111 (tls_dynamic_gnu2_64): Ditto.
2112 (*tls_dynamic_gnu2_lea_64): Ditto.
2113 (*tls_dynamic_gnu2_call_64): Ditto.
2114 (*tls_dynamic_gnu2_combine_64): Ditto.
2115
6b4db1bd 21162011-07-28 H.J. Lu <hongjiu.lu@intel.com>
2117
2118 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
2119
cbc284cd 21202011-07-28 H.J. Lu <hongjiu.lu@intel.com>
2121
2122 PR target/47364
2123 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
2124
c42b1beb 21252011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2126
2127 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
2128 before the core constraints. Adjust attributes.
9e08230d 2129 ("*thumb2_movdf_vfp"): Likewise.
c42b1beb 2130
eea7f7eb 21312011-07-28 Kai Tietz <ktietz@redhat.com>
2132
9ac02d8f 2133 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
eea7f7eb 2134 (simplify_truth_ops_using_ranges): Likewise.
2135 (build_assert_expr_for): Likewise.
2136 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
2137 and handle BIT_NOT_EXPR for truth-operation.
2138
f6ad34dd 21392011-07-28 Georg-Johann Lay <avr@gjlay.de>
9ac02d8f 2140
f6ad34dd 2141 PR target/49313
2142 Undo r176835 from trunk
2143 2011-07-27 Georg-Johann Lay
2144
713e2ad9 21452011-07-28 Georg-Johann Lay <avr@gjlay.de>
9ac02d8f 2146
713e2ad9 2147 PR target/49687
2148 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
2149 Add _muluhisi3, _mulshisi3, _usmulhisi3.
2150 * config/avr/libgcc.S (__mulsi3): Rewrite.
2151 (__mulhisi3): Rewrite.
2152 (__umulhisi3): Rewrite.
2153 (__usmulhisi3): New.
2154 (__muluhisi3): New.
2155 (__mulshisi3): New.
2156 (__mulohisi3): New.
2157 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2158 declare.
2159 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2160 (pseudo_register_or_const_int_operand): New.
2161 (combine_pseudo_register_operand): New.
2162 (u16_operand): New.
2163 (s16_operand): New.
2164 (o16_operand): New.
2165 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2166 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2167 (any_extend, any_extend2): New code iterators.
2168 (extend_prefix): New code attribute.
2169 (mulsi3): Rewrite. Turn insn to expander.
2170 (mulhisi3): Ditto.
2171 (umulhisi3): Ditto.
2172 (usmulhisi3): New expander.
2173 (*mulsi3): New insn-and-split.
2174 (mulu<mode>si3): New insn-and-split.
2175 (muls<mode>si3): New insn-and-split.
2176 (mulohisi3): New insn-and-split.
2177 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2178 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2179 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2180 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2181 insn-and-split.
2182 (*mulsi3_call): Rewrite.
2183 (*mulhisi3_call): Rewrite.
2184 (*umulhisi3_call): Rewrite.
2185 (*usmulhisi3_call): New insn.
2186 (*muluhisi3_call): New insn.
2187 (*mulshisi3_call): New insn.
2188 (*mulohisi3_call): New insn.
2189 (extendqihi2): Use combine_pseudo_register_operand as predicate
2190 for operand 1.
2191 (extendqisi2): Ditto.
2192 (zero_extendqihi2): Ditto.
2193 (zero_extendqisi2): Ditto.
2194 (zero_extendhisi2): Ditto.
2195 (extendhisi2): Ditto. Don't early-clobber operand 0.
2196
4875cd5a 21972011-07-28 Uros Bizjak <ubizjak@gmail.com>
2198
2199 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2200
38a66497 22012011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2202
2203 PR tree-optimization/49471
2204 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2205 iv only when the largest type is unsigned. Do not call
2206 lang_hooks.types.type_for_size.
2207
c71f56ce 22082011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2209
2210 PR middle-end/45450
2211 * graphite-poly.c (apply_poly_transforms): Disable legality check
2212 after an openscop read.
2213
1034b719 22142011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2215
2216 PR middle-end/47691
2217 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2218 copy_bb_and_scalar_dependences.
2219 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
2220 (graphite_copy_stmts_from_block): Update call to rename_uses.
2221 (copy_bb_and_scalar_dependences): Update call to
2222 graphite_copy_stmts_from_block.
2223 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2224
7a986272 22252011-07-27 Georg-Johann Lay <avr@gjlay.de>
1034b719 2226
7a986272 2227 PR target/49313
2228 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2229 (__ctzsi2): Result for 0 may be undefined.
2230 (__ctzhi2): Result for 0 may be undefined.
2231 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2232 (__popcountsi2): Ditto. And don't clobber r26.
2233 (__popcountdi2): Ditto. And don't clobber r27.
2234 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2235 (parityhi2): New expand.
2236 (paritysi2): New expand.
2237 (popcounthi2): New expand.
2238 (popcountsi2): New expand.
2239 (clzhi2): New expand.
2240 (clzsi2): New expand.
2241 (ctzhi2): New expand.
2242 (ctzsi2): New expand.
2243 (ffshi2): New expand.
2244 (ffssi2): New expand.
2245 (copysignsf3): New insn.
2246 (bswapsi2): New expand.
2247 (*parityhi2.libgcc): New insn.
2248 (*parityqihi2.libgcc): New insn.
2249 (*paritysihi2.libgcc): New insn.
2250 (*popcounthi2.libgcc): New insn.
2251 (*popcountsi2.libgcc): New insn.
2252 (*popcountqi2.libgcc): New insn.
2253 (*popcountqihi2.libgcc): New insn-and-split.
2254 (*clzhi2.libgcc): New insn.
2255 (*clzsihi2.libgcc): New insn.
2256 (*ctzhi2.libgcc): New insn.
2257 (*ctzsihi2.libgcc): New insn.
2258 (*ffshi2.libgcc): New insn.
2259 (*ffssihi2.libgcc): New insn.
2260 (*bswapsi2.libgcc): New insn.
2261
675e9361 22622011-07-27 Uros Bizjak <ubizjak@gmail.com>
2263
2264 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2265 the mode of symbolic_opreand RTXes.
2266
d5979ebe 22672011-07-27 Uros Bizjak <ubizjak@gmail.com>
2268
9e08230d 2269 * config/i386/predicates.md (x86_64_movabs_operand): Return false
2270 for pic_32bit_operand RTXes.
d5979ebe 2271 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2272 in DImode.
2273
08410c65 22742011-07-27 Kai Tietz <ktietz@redhat.com>
2275
05b56dfa 2276 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2277 for 32-bit, too.
2278 (ix86_handle_abi_attribute): Allow function attributes
2279 ms_abi/sysv_abi in 32-bit mode, too.
2280 * doc/extend.texi: Adjust attribute documentation.
2281
08410c65 2282 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2283 expression handling.
2284 (and_var_with_comparison_1): Likewise.
2285
4bb60ec7 22862011-07-27 Aldy Hernandez <aldyh@redhat.com>
2287
2288 * params.h (ALLOW_STORE_DATA_RACES): New.
2289 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2290 * Makefile.in (expr.o): Depend on PARAMS_H.
2291 * machmode.h (get_best_mode): Add argument.
2292 * fold-const.c (optimize_bit_field_compare): Add argument to
2293 get_best_mode.
2294 (fold_truthop): Same.
2295 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2296 * expr.c (emit_group_store): Same.
2297 (copy_blkmode_from_reg): Same.
2298 (write_complex_part): Same.
2299 (optimize_bitfield_assignment_op): Add argument.
2300 Add argument to get_best_mode.
2301 (get_bit_range): New.
d5979ebe 2302 (expand_assignment): Calculate maxbits and pass it down accordingly.
4bb60ec7 2303 (store_field): New argument.
d5979ebe 2304 (expand_expr_real_2): New argument to store_field. Include params.h.
4bb60ec7 2305 * expr.h (store_bit_field): New argument.
2306 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2307 into account maxbits.
2308 * calls.c (store_unaligned_arguments_into_pseudos): New argument
2309 to store_bit_field.
2310 * expmed.c (store_bit_field_1): New argument. Use it.
2311 (store_bit_field): Same.
2312 (store_fixed_bit_field): Same.
2313 (store_split_bit_field): Same.
2314 (extract_bit_field_1): Pass new argument to get_best_mode.
2315 (extract_bit_field): Same.
2316 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2317 * doc/invoke.texi: Document parameter allow-store-data-races.
2318
f5038a76 23192011-07-27 Jakub Jelinek <jakub@redhat.com>
2320
d5979ebe 2321 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
f5038a76 2322
cfd7906e 23232011-07-27 Kai Tietz <ktietz@redhat.com>
2324
2325 * tree-vrp.c (extract_range_from_binary_expr): Remove
2326 TRUTH-binary cases and add new bitwise-cases.
2327 (extract_range_from_assignment): Likewise.
2328 (register_edge_assert_for_1): Likeiwise.
2329 (register_edge_assert_for): Likewise.
2330 (simplify_truth_ops_using_ranges): Likewise.
2331 (simplify_stmt_using_ranges): Likewise.
2332
7ab44cda 23332011-07-26 H.J. Lu <hongjiu.lu@intel.com>
2334
2335 PR target/47372
2336 * config/i386/i386.c (ix86_delegitimize_address): Call
2337 simplify_gen_subreg for PIC with mode of x only if modes of
2338 x and orig_x are different.
2339
4d29a91a 23402011-07-26 Jakub Jelinek <jakub@redhat.com>
2341
2342 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2343 to GC allocated copy of the string.
2344 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2345 before .debug_line, not after it.
2346
2c8ee7ae 23472011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2348
2349 PR middle-end/47046
2350 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2351 evolution_function_is_affine_p on CHREC_RIGHT.
2352
7d30f431 23532011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2354
2355 * tree-data-ref.c (max_stmt_executions_tree): Do not call
2356 lang_hooks.types.type_for_size.
2357
afad2061 23582011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2359
2360 PR middle-end/47653
2361 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2362 loops using wrapping semantics.
2363
0d0cdcaa 23642011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2365
2366 PR middle-end/48805
2367 * tree-scalar-evolution.c (instantiate_scev_r): Return
2368 chrec_dont_know for ADDR_EXPR.
2369
ffd3655d 23702011-07-26 Uros Bizjak <ubizjak@gmail.com>
2371 H.J. Lu <hongjiu.lu@intel.com>
2372
2373 PR target/47369
2374 PR target/49853
2375 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2376 if legitimize_tls_address returned operand in wrong mode. Allow
2377 SImode and DImode symbolic operand for PIC. Call convert_to_mode
2378 if legitimize_pic_address returned operand in wrong mode.
2379
071a5e44 23802011-07-26 Martin Jambor <mjambor@suse.cz>
2381
2382 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2383 return false for invariants.
2384
b51a1082 23852011-07-26 Uros Bizjak <ubizjak@gmail.com>
2386
2387 * config/i386/i386.md (add->lea splitter): Implement using SWI
2388 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
2389 (add->lea zext splitter): Change operand 2 predicate to
2390 x86_64_nonmemory_operand.
2391
4b2d5543 23922011-07-26 Richard Guenther <rguenther@suse.de>
2393
2394 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2395 frequency makes everything hot.
2396
db3e66dc 23972011-07-26 Richard Guenther <rguenther@suse.de>
2398
2399 PR tree-optimization/49840
2400 * tree-vrp.c (range_fits_type_p): Properly handle full
2401 double-int precision.
2402
7b9dcf83 24032011-07-26 Martin Jambor <mjambor@suse.cz>
2404
2405 PR bootstrap/49786
2406 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2407 counts.
2408 (update_specialized_profile): Likewise.
2409
231a5310 24102011-07-26 Uros Bizjak <ubizjak@gmail.com>
2411 H.J. Lu <hongjiu.lu@intel.com>
2412
2413 PR target/47381
2414 PR target/49832
2415 PR target/49833
2416 * config/i386/i386.md (i): Change SImode attribute to "e".
2417 (g): Change SImode attribute to "rme".
2418 (di): Change SImode attribute to "nF".
2419 (general_operand): Change SImode attribute to x86_64_general_operand.
2420 (general_szext_operand): Change SImode attribute to
2421 x86_64_szext_general_operand.
2422 (immediate_operand): Change SImode attribute to
2423 x86_64_immediate_operand.
2424 (nonmemory_operand): Change SImode attribute to
2425 x86_64_nonmemory_operand.
2426 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2427 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
2428 (*lea_1): Use SWI48 mode iterator.
2429 (*lea_1_zext): New insn pattern.
2430 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2431 (*bt<mode>): Ditto.
2432 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2433 Update operand constraints.
2434 (addsi_1_zext): Ditto.
2435 (*add<mode>2): Ditto.
2436 (*addsi_3_zext): Ditto.
2437 (*subsi_1_zext): Ditto.
2438 (*subsi_2_zext): Ditto.
2439 (*subsi_3_zext): Ditto.
2440 (*addsi3_carry_zext): Ditto.
2441 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2442 (*mulsi3_1_zext): Ditto.
2443 (*andsi_1): Ditto.
2444 (*andsi_1_zext): Ditto.
2445 (*andsi_2_zext): Ditto.
2446 (*<any_or:code>si_1_zext): Ditto.
2447 (*<any_or:code>si_2_zext): Ditto.
2448 (*test<mode>_1): Use <general_operand> predicate for operand 1.
2449 (*and<mode>_2): Ditto.
2450 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
2451 (add->lea splitter): Check operand modes in insn constraint. Extend
2452 operands less than SImode wide to SImode.
2453 (add->lea zext splitter): Do not extend input operands to DImode.
2454 (*lea_general_1): Handle only QImode and HImode operands.
2455 (*lea_general_2): Ditto.
2456 (*lea_general_3): Ditto.
2457 (*lea_general_1_zext): Remove.
2458 (*lea_general_2_zext): Ditto.
2459 (*lea_general_3_zext): Ditto.
2460 (*lea_general_4): Check operand modes in insn constraint. Extend
2461 operands less than SImode wide to SImode.
2462 (ashift->lea splitter): Ditto.
2463 * config/i386/i386.c (ix86_print_operand_address): Print address
2464 registers with 'q' modifier on 64bit targets.
2465 * config/i386/predicates.md (pic_32bit_opreand): Define as special
2466 predicate. Reject non-SI and non-DI modes.
2467
72dbeb36 24682011-07-25 Andrew Pinski <apinski@cavium.com>
2469
2470 PR tree-opt/49671
2471 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2472 TREE_THIS_NOTRAP into the inner most MEM_REF.
2473 Always copy TREE_THIS_VOLATILE.
2474 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2475 arguments are not volatile references.
2476
f927e607 24772011-07-25 Richard Henderson <rth@redhat.com>
2478
2479 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2480 * final.c (final_scan_insn): Don't test for it.
2481 (rest_of_clean_state): Likewise.
2482
f9ac12d1 24832011-07-25 Richard Henderson <rth@redhat.com>
2484
2485 PR debug/49841
2486 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2487 (emit_frame_save): Likewise.
2488 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2489 insn onto a dummy blockage insn after the join label.
2490
ce4a64fd 24912011-07-25 Richard Henderson <rth@redhat.com>
2492
2493 * dwarf2cfi.c (dw_trace_info): Add ID member.
2494 (get_trace_index): Remove. Change users to use ID member.
2495 (before_next_cfi_note): New.
2496 (connect_traces): Remove unreachable traces before the main loop.
2497 Look across one trace and generate remember/restore_state if needed.
2498
35bf1d17 24992011-07-25 Richard Henderson <rth@redhat.com>
2500
2501 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2502
19c83f00 25032011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
2504
2505 * genattr.c (write_upcase, gen_attr <enum definition writing>):
2506 Move to ...
2507 * genattr-common.c ... here.
2508 (main): Call gen_attr.
2509 * optc-gen.awk: Make generated program include insn-attr-common.h .
2510 * Makefile.in (oprions.o): Depend on insn-attr-common.h
2511
b9e1ef49 25122011-07-25 Anatoly Sokolov <aesok@post.ru>
2513
2514 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2515 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2516 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2517 m32c_print_operand, m32c_print_operand_address): Remove.
2518 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2519 Change return type to bool. Change argument type to bool.
2520 (m32c_print_operand, m32c_print_operand_address): Make static.
2521 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2522 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2523
0b0d7802 25242011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2525
2526 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2527 attributes): Document mmap.
2528
7a7fb407 25292011-07-25 Anatoly Sokolov <aesok@post.ru>
2530
2531 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2532 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2533 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2534 mmix_print_operand, mmix_print_operand_address): Remove.
2535 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2536 Change return type to bool. Change argument type to bool.
2537 (mmix_print_operand, mmix_print_operand_address): Make static.
231a5310 2538 (mmix_intval, mmix_output_condition): Change 'x' argument type
7a7fb407 2539 to const_rtx.
2540 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2541 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2542
959d6369 25432011-07-25 Georg-Johann Lay <avr@gjlay.de>
231a5310 2544
959d6369 2545 PR target/39386
2546 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2547 shift counter for x << x and x >> x shifts.
2548
e8287058 25492011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2550
2551 PR target/47124
2552 * config.gcc: Reject *-*-solaris2 configuration.
2553
728dcc71 25542011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
2555
2556 PR tree-optimization/49809
2557 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2558 gimple_get_lhs instead of gimple_assign_lhs.
2559
71d67b2d 25602011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2561
2562 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2563
ff0739e0 25642011-07-25 Richard Guenther <rguenther@suse.de>
2565
2566 PR tree-optimization/49822
2567 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2568 more. Make sure to preserve stmts with side-effects. Properly
2569 handle virtual defs, follow a longer def chain.
2570
6ee97920 25712011-07-22 Romain Geissler <romain.geissler@gmail.com>
2572
2573 PR plugins/45348
2574 PR plugins/48425
2575 PR plugins/46577
2576 * Makefile.in: Do not flatten c-family directory when installing
2577 plugin headers.
2578
69d925d0 25792011-07-25 Eric Botcazou <ebotcazou@adacore.com>
2580
2581 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2582 original nodes if we are dealing with virtual clones.
2583
3d81ca5e 25842011-07-25 Bernd Schmidt <bernds@codesourcery.com>
2585
2586 * common/config/c6x/c6x-common.c: New file.
2587
9e074001 25882011-07-25 Roman Zhuykov <zhroma@ispras.ru>
2589
2590 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2591
f0938d2c 25922011-07-25 Richard Guenther <rguenther@suse.de>
2593
2594 PR tree-optimization/49715
2595 * tree-vrp.c: Include expr.h and optabs.h.
2596 (range_fits_type_): New function.
2597 (simplify_float_conversion_using_ranges): Likewise.
2598 (simplify_stmt_using_ranges): Call it.
2599 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2600 * optabs.c (can_float_p): Export.
2601 * optabs.h (can_float_p): Declare.
2602
e0186710 26032011-07-25 Richard Guenther <rguenther@suse.de>
2604
2605 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2606 (get_value_range): For out-of-range SSA names or names created
2607 after propagation return a read-only varying range.
2608 (dump_all_value_ranges): Adjust.
2609 (vrp_initialize): Likewise.
2610 (vrp_finalize): Likewise.
2611
c247c822 26122011-07-24 Richard Henderson <rth@redhat.com>
2613
2614 PR debug/49831
2615 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
2616 them entirely.
2617
afde4c94 26182011-07-24 Richard Henderson <rth@redhat.com>
2619
2620 PR debug/49825
2621 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2622 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2623
ad5618b3 26242011-07-24 Richard Henderson <rth@redhat.com>
2625
2626 PR debug/49827
2627 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2628
eb656671 26292011-07-24 Richard Henderson <rth@redhat.com>
2630
2631 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2632 Zero args_size for abnormal edges. Adjust all callers.
2633
215db506 26342011-07-24 Richard Henderson <rth@redhat.com>
2635
2636 PR debug/49825
2637 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2638
d45e065f 26392011-07-24 H.J. Lu <hongjiu.lu@intel.com>
2640
2641 PR bootstrap/49835
2642 * collect2.c (demangle_flag): Removed.
2643
73caa9f3 26442011-07-24 Sandra Loosemore <sandra@codesourcery.com>
2645
2646 * configure.ac (demangler_in_ld): Default to yes.
2647 * configure: Regenerated.
2648 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2649 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2650 --no-demangle options straight through to ld. When
2651 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2652 way that has the intended effect on Windows.
2653
97c251e4 26542011-07-23 Richard Henderson <rth@redhat.com>
2655
2656 * dwarf2cfi.c: Include basic-block.h.
2657 (dw_label_info): Remove.
2658 (trace_work_list, trace_index): New.
2659 (remember_row, emit_cfa_remember): Remove.
2660 (dw_trace_info_hash, dw_trace_info_eq): New.
2661 (get_trace_index, get_trace_info): New.
2662 (save_point_p): New.
2663 (free_cfi_row): Remove.
2664 (add_cfi): Do not emit DW_CFA_remember_state.
2665 (cfa_row_equal_p): New.
2666 (barrier_args_size): Remove.
2667 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2668 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2669 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2670 (dwarf2out_cfi_begin_epilogue): Remove.
2671 (dwarf2out_frame_debug_restore_state): Remove.
2672 (connect_traces, create_pseudo_cfg): New.
2673 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2674 * Makefile.in (dwarf2cfi.o): Update.
2675
b1613fc3 26762011-07-23 Richard Henderson <rth@redhat.com>
2677
2678 * dwarf2cfi.c (dw_trace_info): New.
2679 (dw_label_info): New.
2680 (cie_return_save): New.
2681 (cur_trace): New.
2682 (queued_args_size): Rename from args_size. Update all users.
2683 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2684 (def_cfa_1): Use cur_trace instead of cfa_*.
2685 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2686 (clobbers_queued_reg_save, reg_saved_in): Likewise.
2687 (dwarf2out_frame_debug_expr): Likewise.
2688 (create_cie_data): Split out from ...
2689 (execute_dwarf2_frame): ... here. Initialize cur_trace.
2690
e53680b9 26912011-07-23 Richard Henderson <rth@redhat.com>
2692
2693 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2694 Update all users to match.
2695 (execute_dwarf2_frame): Free reg_saved_in_data.
2696
c73aa568 26972011-07-23 Richard Henderson <rth@redhat.com>
2698
2699 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
2700 (queued_reg_saves): Don't GTY. Change to a VEC.
2701 (queue_reg_save): Update to match.
2702 (dwarf2out_flush_queued_reg_saves): Likewise.
2703 (clobbers_queued_reg_save): Likewise.
2704 (reg_saved_in): Likewise.
2705 (execute_dwarf2_frame): Free queued_reg_saves.
2706
1b1ea44c 27072011-07-23 Richard Henderson <rth@redhat.com>
2708
2709 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
2710
0b3b5cad 27112011-07-23 Richard Henderson <rth@redhat.com>
2712
2713 * dwarf2cfi.c (add_cfi_args_size): Split out from...
2714 (dwarf2out_args_size): ... here.
2715 (add_cfi_restore): Split out from ...
2716 (dwarf2out_frame_debug_cfa_restore): ... here.
2717 (def_cfa_0): Split out from ...
2718 (def_cfa_1): ... here.
2719 (cfi_oprnd_equal_p, cfi_equal_p): New.
2720 (change_cfi_row): New.
2721 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2722 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2723 (output_cfis): Remove.
2724 * dwarf2out.c (output_fde): Simplify output_cfi loop.
2725 (dwarf2out_switch_text_section): Don't call output_cfis.
2726 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2727 * dwarf2out.h: Update decls.
2728 (enum dw_val_class): Add dw_val_class_none.
2729
e9fe542d 27302011-07-23 Richard Henderson <rth@redhat.com>
2731
2732 * dwarf2cfi.c (update_row_reg_save): New.
2733 (dwarf2out_frame_debug_cfa_expression): Use it.
2734 (dwarf2out_frame_debug_cfa_restore): Likewise.
2735 (reg_save): Likewise. Do not emit DW_CFA_same_value.
2736
7b1c31a0 27372011-07-23 Richard Henderson <rth@redhat.com>
2738
2739 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
2740
eb93b3f4 27412011-07-23 Richard Henderson <rth@redhat.com>
2742
2743 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2744 (cie_cfi_row): New.
2745 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2746 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2747 (cur_row, remember_row): New.
2748 (def_cfa_1): Use cur_row instead of the old_* variables.
2749 (dwarf2out_frame_debug_restore_state): Similarly.
2750 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2751 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2752 (dwarf2out_frame_debug_adjust_cfa): Likewise.
2753 (dwarf2out_frame_debug_cfa_offset): Likewise.
2754 (dwarf2out_frame_debug_expr): Likewise.
2755 (execute_dwarf2_frame): Set up cur_row.
2756 * dwarf2out.h (struct cfa_loc): Mark for GTY.
2757
f59cbcbf 27582011-07-23 Richard Henderson <rth@redhat.com>
2759
2760 * basic-block.h (EDGE_PRESERVE): New.
2761 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2762 * bb-reorder.c: Include except.h.
2763 (fix_up_crossing_landing_pad): New.
231a5310 2764 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
f59cbcbf 2765 landing pads in the right partition. Duplicate as necessary.
2766 (partition_hot_cold_basic_blocks): Fix up DF info after
2767 duplicating landing pads.
2768 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2769 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2770 is set properly. Validate that EH edges are not CROSSING.
2771 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2772 (dw2_build_landing_pads): ... here.
2773 (convert_to_eh_region_ranges): Remove code to fixup crossing
2774 landing pads.
2775 * except.h (expand_dw2_landing_pad_for_region): Declare.
2776 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2777
397d79f2 27782011-07-23 Richard Earnshaw <rearnsha@arm.com>
2779
2780 PR target/49816
2781 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2782
a6ae59ca 27832011-07-22 Jason Merrill <jason@redhat.com>
2784
2785 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2786
d8346073 27872011-07-22 Richard Henderson <rth@redhat.com>
2788
2789 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2790
58c74e1e 27912011-07-22 Richard Henderson <rth@redhat.com>
2792
2793 * jump.c (maybe_propagate_label_ref): Split out of...
2794 (mark_all_labels): ... here. Do not attempt label_ref
2795 propagation while in cfglayout mode.
2796
f45370f8 27972011-07-22 Jakub Jelinek <jakub@redhat.com>
2798
60699ecd 2799 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2800 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2801 (dwarf_attr_name): Handle DW_AT_GNU_macros.
2802 (dwarf2out_define): If the vector is empty and
2803 lineno is 0, emit a dummy entry first.
2804 (dwarf2out_undef): Likewise. Remove redundant semicolon.
2805 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2806 optimize_macinfo_range): New functions.
2807 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
2808 mergeable, optimize longer strings using
2809 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2810 optimize longer sequences of define/undef ops from headers
2811 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
2812 emit a section headers.
2813 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2814 and macinfo_section_label to DEBUG_MACRO_SECTION
2815 resp. DEBUG_MACRO_SECTION_LABEL.
2816 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2817 instead of DW_AT_macro_info.
2818
f45370f8 2819 PR other/32998
2820 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2821 options.
2822 * dwarf2out.c: Include opts.h.
2823 (dchar_p): New typedef. Define heap VEC for it.
2824 (producer_string): New variable.
2825 (gen_producer_string): New function.
2826 (gen_compile_unit_die): Use it.
231a5310 2827 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
f45370f8 2828 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2829 * doc/invoke.texi: Document -grecord-gcc-switches and
2830 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2831 to -frecord-gcc-switches description.
2832
27282252 28332011-07-22 Jason Merrill <jason@redhat.com>
2834
2835 PR c++/30112
2836 * c-decl.c (c_linkage_bindings): Define.
2837
267001d7 28382011-07-22 Eric Botcazou <ebotcazou@adacore.com>
2839
2840 PR debug/49815
2841 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2842
f7d9435a 28432011-07-22 H.J. Lu <hongjiu.lu@intel.com>
2844
2845 * config/i386/i386.c (ix86_option_override_internal): Disallow
2846 MS ABI in x32 mode.
2847 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2848 only for TARGET_LP64.
231a5310 2849 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
f7d9435a 2850
09fe50ef 28512011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
66e006d8 2852
2853 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2854 avoid warnings when GCC is built with a C++ compiler.
2855
54e8af13 28562011-07-22 Martin Jambor <mjambor@suse.cz>
2857
2858 PR lto/49796
2859 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
231a5310 2860 if decl node is in another partition, call cgraph_get_node only once.
54e8af13 2861
2c6c4996 28622011-07-22 Uros Bizjak <ubizjak@gmail.com>
2863
27ea9038 2864 * config.gcc (x86_64-*-linux*): Set
2c6c4996 2865 default_gnu_indirect_function to yes.
2866
2e5dc41c 28672011-07-22 Richard Guenther <rguenther@suse.de>
2868
2869 PR tree-optimization/45819
2870 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2871 preserve volatile and notrap flags.
2872
6678cb4e 28732011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2874 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2875
2876 PR bootstrap/49794
2877 * configure.ac: Test AM_ICONV with CXX.
2878 * configure: Regenerate.
2879 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2880
e828ad34 28812011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2882
2883 PR bootstrap/49797
2884 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2885 (set_cloog_options): Use it.
2886
00dacc40 28872011-07-22 Jakub Jelinek <jakub@redhat.com>
2888
2889 PR c++/49756
2890 * gcc.c (main): Call stack_limit_increase (64MB).
2891 * toplev.c (toplev_main): Likewise.
2892
00679807 28932011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2894
2895 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2896 instead of force_reg.
2897
0c5fff87 28982011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2899
2900 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2901 needed and use force_reg after convert.
2902 (ix86_expand_call): Likewise.
2903 (ix86_expand_special_args_builtin): Likewise.
2904 (ix86_expand_builtin): Likewise.
2905
4c48fb0e 29062011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2907
2908 PR middle-end/47654
2909 PR middle-end/49649
2910 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2911 in parameter. Initialize v1 and v2 based on the values returned
2912 by clast_name_to_lb_ub.
2913 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2914 values.
2915 (type_for_clast_bin): Same.
2916 (type_for_clast_expr): Same.
2917 (type_for_clast_eq): Update calls to type_for_clast_expr.
2918 (type_for_clast_for): Same.
2919 (build_iv_mapping): Same.
2920 * graphite-ppl.h (value_min): New.
2921
e45543a0 29222011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2923
2924 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2925 types whenever possible.
2926
7cfe5b1f 29272011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2928
2929 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2930 and ub fields.
2931 (new_clast_name_index): Add lb and ub parameters.
2932 (free_clast_name_index): New.
2933 (clast_name_to_lb_ub): New.
2934 (save_clast_name_index): Add lb and ub parameters.
2935 (compute_bounds_for_param): New.
2936 (type_for_level): Removed.
2937 (type_for_clast_for): Removed level parameter. Do not call
2938 type_for_level.
2939 (graphite_create_new_loop): Store the lb and ub for the clast_name
2940 of the iterator of the loop that has been generated.
2941 (graphite_create_new_loop_guard): Remove parameter level.
2942 (create_params_index): Store the lb and ub of each parameter.
2943 (gloog): Use free_clast_name_index. Pass to create_params_index
2944 the current scop.
2945
28013ca9 29462011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2947
2948 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2949 (max_precision_type): Inline max_signed_precision_type.
2950 (type_for_clast_red): Use max_precision_type.
2951 (type_for_clast_bin): Same.
2952 (type_for_clast_for): Same.
2953
954e0498 29542011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2955
2956 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2957 type_for_interval.
2958 (gcc_type_for_value): Renamed type_for_value.
2959 (gcc_type_for_clast_term): Renamed type_for_clast_term.
2960 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2961 (gcc_type_for_clast_red): Renamed type_for_clast_red.
2962 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2963 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2964 (graphite_translate_clast_equation): Update calls.
2965 (compute_type_for_level): Renamed type_for_level.
2966 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2967 (build_iv_mapping): Update calls.
2968 (graphite_create_new_loop_guard): Same.
2969
bf662ce7 29702011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2971
2972 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2973 comment.
2974
17e7716e 29752011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2976
2977 * graphite-clast-to-gimple.c (struct ivs_params): New.
2978 (clast_name_to_gcc): Use ivs_params to pass around parameters.
2979 (clast_to_gcc_expression): Same.
2980 (clast_to_gcc_expression_red): Same.
2981 (gcc_type_for_clast_term): Same.
2982 (gcc_type_for_clast_expr): Same.
2983 (gcc_type_for_clast_red): Same.
2984 (gcc_type_for_clast_bin): Same.
2985 (gcc_type_for_clast_eq): Same.
2986 (graphite_translate_clast_equation): Same.
2987 (graphite_create_guard_cond_expr): Same.
2988 (graphite_create_new_guard): Same.
2989 (graphite_create_new_loop): Same.
2990 (build_iv_mapping): Same.
2991 (translate_clast_user): Same.
2992 (graphite_create_new_loop_guard): Same.
2993 (translate_clast): Same.
2994 (translate_clast_for_loop): Same.
2995 (translate_clast_for): Same.
2996 (translate_clast_guard): Same.
2997 (initialize_cloog_names): Fix typo.
2998 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2999
c5f2229b 30002011-07-21 Sebastian Pop <sebastian.pop@amd.com>
3001
3002 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
3003 (new_clast_name_index): Add level parameter.
3004 (clast_name_to_level): New.
3005 (save_clast_name_index): Add level parameter.
3006 (newivs_to_depth_to_newiv): Removed.
3007 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
3008 (graphite_create_new_loop): Add level parameter. Pass level to
3009 save_clast_name_index.
3010 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
3011 (create_params_index): Pass level to save_clast_name_index.
3012
35048891 30132011-07-21 Sebastian Pop <sebastian.pop@amd.com>
3014
3015 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
3016 recompute type, lb, and ub. Get them from...
3017 (graphite_create_new_loop_guard): ...here. Pass in parameter
3018 pointers to type, lb, and ub.
3019 (translate_clast_for_loop): Update function calls.
3020 (translate_clast_for): Same.
3021
9f6fd65f 30222011-07-21 Sebastian Pop <sebastian.pop@amd.com>
3023
3024 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
3025 psct_dynamic_dim.
3026 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
3027 (gcc_type_for_iv_of_clast_loop): Update use of level.
3028 (gloog): Start counting nesting level from 0.
3029 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
3030 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
3031 psct_dynamic_dim on level.
3032
d97f844f 30332011-07-21 H.J. Lu <hongjiu.lu@intel.com>
3034
3035 * config/i386/i386.c (ix86_legitimize_address): Convert to
3036 Pmode if needed.
3037
d88c9c8d 30382011-07-21 H.J. Lu <hongjiu.lu@intel.com>
3039
3040 * config/i386/i386.c (function_value_64): Always return pointers
3041 in Pmode.
3042 (ix86_promote_function_mode): New.
3043 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
3044
aa52f48f 30452011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3046
3047 PR tree-optimization/49749
3048 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
3049 remove no-longer-used maxrank variable.
2c6c4996 3050
114786e6 30512011-07-21 Georg-Johann Lay <avr@gjlay.de>
2c6c4996 3052
114786e6 3053 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
3054
a88d399f 30552011-07-21 Jason Merrill <jason@redhat.com>
3056
3057 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
3058 * recog.h (struct insn_data_d): Check it instead of
3059 HAVE_DESIGNATED_INITIALIZERS.
3060 * genoutput.c (output_insn_data): Likewise.
3061
882f8b55 30622011-07-21 Richard Guenther <rguenther@suse.de>
3063
3064 PR tree-optimization/49770
3065 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
3066 valueized any operand. Renamed from ...
3067 (valueize_refs): ... this. New wrapper around valueize_refs_1.
3068 (valueize_shared_reference_ops_from_ref): Return whether we
3069 valueized any operand.
3070 (vn_reference_lookup): Only when we valueized any operand
3071 use the valueized reference for alias analysis. Do not preserve
3072 the original reference tree in this case.
3073
c3f46109 30742011-07-21 Uros Bizjak <ubizjak@gmail.com>
3075
3076 * config/i386/i386.c (ix86_decompose_address): Reject all but
7b7d33ca 3077 register operands and subregs of DImode hard registers in index.
c3f46109 3078
4b5f1658 30792011-07-21 Kai Tietz <ktietz@redhat.com>
3080
3081 * fold-const.c (fold_unary_loc): Preserve indirect
3082 comparison cast to none-boolean type.
3083 * tree-ssa.c (useless_type_conversion_p): Preserve cast
3084 from/to boolean-type.
c3f46109 3085 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
3086 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
4b5f1658 3087 * tree-cfg.c (verify_gimple_comparison): Check result
3088 type of comparison expression.
c3f46109 3089 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
3090 of condition result and disallow type-cast sinking into comparison.
4b5f1658 3091
89c8f35a 30922011-07-21 Richard Guenther <rguenther@suse.de>
3093
3094 * tree-ssa-forwprop.c (combine_conversions): Return whether
3095 we have to run cfg-cleanup. Properly remove dead stmts.
3096 (ssa_forward_propagate_and_combine): Adjust.
3097
3a45e441 30982011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
3099
3100 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
3101
89dd6fe9 31022011-07-21 Kai Tietz <ktietz@redhat.com>
3103
3104 * tree-ssa-propagate.c (substitute_and_fold): Use
3105 do_dce flag to deside, if BB's statements are scanned
3106 in last to first, or first to last order.
3107
f9fb96f9 31082011-07-21 Georg-Johann Lay <avr@gjlay.de>
c3f46109 3109
f9fb96f9 3110 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
3111
9636738d 31122011-07-20 H.J. Lu <hongjiu.lu@intel.com>
3113 Uros Bizjak <ubizjak@gmail.com>
3114 Richard Henderson <rth@redhat.com>
3115
3116 * config/i386/constraints.md (w): New.
3117
3118 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
3119 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
3120
3121 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
3122 instead of TARGET_64BIT.
3123
3124 * config/i386/i386.md (indirect_jump): Replace
3125 nonimmediate_operand with indirect_branch_operand.
3126 (*indirect_jump): Likewise. Replace constraint "m" with "w".
7b7d33ca 3127 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
3128 Convert operand 0 to Pmode for x32 if not PIC.
9636738d 3129 (*tablejump_1): Replace nonimmediate_operand with
3130 indirect_branch_operand. Replace constraint "m" with "w".
3131 (*call_vzeroupper): Replace constraint "m" with "w".
3132 (*call): Likewise.
3133 (*call_rex64_ms_sysv_vzeroupper): Likewise.
3134 (*call_rex64_ms_sysv): Likewise.
3135 (*call_value_vzeroupper): Likewise.
3136 (*call_value): Likewise.
3137 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
3138 (*call_value_rex64_ms_sysv): Likewise.
7b7d33ca 3139 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
9636738d 3140
3141 * config/i386/predicates.md (indirect_branch_operand): New.
3142 (call_insn_operand): Support x32.
3143
2e337e8f 31442011-07-20 Michael Eager <eager@eagercon.com>
3145
3146 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
3147
25c39539 31482011-07-20 Richard Henderson <rth@redhat.com>
3149
3150 * cfg.c (dump_bb_info): Dump basic_block->flags.
3151 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3152
1c38a177 31532011-07-20 Uros Bizjak <ubizjak@gmail.com>
3154
3155 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3156 of DImode hard registers in index.
3157 (ix86_legitimate_address_p): Allow subregs of base and index to span
3158 more than a word. Assert that subregs of base and index satisfy
3159 register_no_elim_operand predicates. Reject addresses where
3160 base and index have different modes.
3161
17c6be22 31622011-07-20 Robert Millan <rmh@gnu.org>
3163
3164 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3165
c2841599 31662011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3167
3168 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3169 removing now-unnecessary assignment.
3170
7d4ec7eb 31712011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3172
3173 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3174 memory address space to the type's address space.
3175
0b90fc76 31762011-07-20 Georg-Johann Lay <avr@gjlay.de>
1c38a177 3177
0b90fc76 3178 PR target/36467
3179 PR target/49687
1c38a177 3180 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3181 and expand appropriately if there is a CONST_INT in operand2.
0b90fc76 3182 (usmulqihi3): New insn.
3183 (*sumulqihi3): New insn.
3184 (*osmulqihi3): New insn.
3185 (*oumulqihi3): New insn.
3186 (*muluqihi3.uconst): New insn_and_split.
3187 (*muluqihi3.sconst): New insn_and_split.
3188 (*mulsqihi3.sconst): New insn_and_split.
3189 (*mulsqihi3.uconst): New insn_and_split.
3190 (*mulsqihi3.oconst): New insn_and_split.
3191 (*ashifthi3.signx.const): New insn_and_split.
3192 (*ashifthi3.signx.const7): New insn_and_split.
3193 (*ashifthi3.zerox.const): New insn_and_split.
3194 (mulsqihi3): New insn.
3195 (muluqihi3): New insn.
3196 (muloqihi3): New insn.
3197 * config/avr/predicates.md (const_2_to_7_operand): New.
3198 (const_2_to_6_operand): New.
3199 (u8_operand): New.
3200 (s8_operand): New.
3201 (o8_operand): New.
3202 (s9_operand): New.
3203 (register_or_s9_operand): New.
3204
083bada9 32052011-07-20 Kai Tietz <ktietz@redhat.com>
3206
3207 * builtins.c (fold_builtin_expect): See through the cast
3208 from truthvalue_type_node to long.
3209
b58102e2 32102011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3211
3212 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3213 where we can use them from the standard and altivec instruction
3214 sets, instead of always using the 3 operand VSX forms that require
3215 the destination to overlap one of the inputs.
3216 (vsx_fms*): Ditto.
3217 (vsx_fnma*): Ditto.
3218 (vsx_fnms*): Ditto.
3219
3220 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3221 for DF types.
3222 (fmsdf4_fpr): Ditto.
3223 (nfmadf4_fpr): Ditto.
3224 (nfmsdf4_fpr): Ditto.
3225
6cfd42c4 32262011-07-20 Sandra Loosemore <sandra@codesourcery.com>
3227
3228 * genrecog.c (make_insn_sequence): Correct position numbering
3229 when filtering out match_scratch and match_dup.
3230
6f9714b3 32312011-07-20 Richard Guenther <rguenther@suse.de>
3232
3233 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3234 against already removed statements.
3235 (forward_propagate_into_comparison): Remove dead defining stmts.
3236 (forward_propagate_into_gimple_cond): Likewise.
3237 (forward_propagate_into_cond): Simplify.
3238 (ssa_forward_propagate_and_combine): Handle changed cfg from
3239 forward_propagate_into_comparison.
3240 * tree-ssa-phiopt.c (conditional_replacement): Use proper
3241 locations for newly built statements.
3242
9685fb69 32432011-07-20 Georg-Johann Lay <avr@gjlay.de>
3244
3245 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3246
6c2d82ab 32472011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3248
3249 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3250 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3251
8a5f403f 32522011-07-20 Richard Guenther <rguenther@suse.de>
3253
3254 PR middle-end/18908
3255 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3256 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3257 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
3258
26d1d353 32592011-07-20 Vladimir Makarov <vmakarov@redhat.com>
3260
3261 * config/frv/frv.c (frv_register_move_cost): Define explicitly
3262 costs for subclasses of GR_REGS.
3263
6dfd8449 32642011-07-20 Uros Bizjak <ubizjak@gmail.com>
3265
3266 PR target/49780
3267 * config/i386/predicates.md (no_seg_addres_operand): No more special.
3268 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3269 of DImode hard registers in base.
3270 (ix86_legitimate_address_p): Allow SImode and DImode base and index
3271 registers.
3272
8b3ad377 32732011-07-20 Richard Guenther <rguenther@suse.de>
3274
6dfd8449 3275 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
8b3ad377 3276 (unify_nodes): Deal with that.
3277 (solve_graph): Likewise.
3278
d05de055 32792011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
3280
3281 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3282 canonicalize left operand from ZERO_EXTEND to AND.
3283
d3ba22dc 32842011-07-20 Anatoly Sokolov <aesok@post.ru>
3285
3286 * target.def (class_max_nregs): New hook.
3287 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3288 * doc/tm.texi: Regenerate.
3289 * targhooks.c (default_class_max_nregs): New function.
3290 * targhooks.h (default_class_max_nregs): Declare.
3291 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3292 x_ira_reg_class_min_nregs arrays to unsigned char.
3293 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3294 hook instead of CLASS_MAX_NREGS macro.
3295 * reginfo.c (restore_register_info): Ditto.
3296 * ira-conflicts.c (process_regs_for_copy): Use
3297 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3298 Change type rclass and aclass vars to reg_class_t.
3299 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3300 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3301 reg_class_t.
3302 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3303 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3304
3305 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3306 * config/i386/i386.c (ix86_class_max_nregs): New function.
3307 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3308 instead of CLASS_MAX_NREGS macro.
3309 (TARGET_CLASS_MAX_NREGS): Define.
3310 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3311 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3312 * config/avr/avr.c (class_max_nregs): Remove function.
3313 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3314 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3315 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3316 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3317 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3318 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3319 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3320 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3321 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3322 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3323 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3324 * config/score/score.h (CLASS_MAX_NREGS): Remove.
3325 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3326 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3327 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3328
b588156f 33292011-07-19 Eric Botcazou <ebotcazou@adacore.com>
3330
3331 * cif-code.def (OVERWRITABLE): Fix typo and move around.
3332 (TARGET_OPTIMIZATION_MISMATCH): Delete.
3333 (EH_PERSONALITY): Fix typo.
3334 (NON_CALL_EXCEPTIONS): Fix message.
3335 (OPTIMIZATION_MISMATCH): Adjust message.
3336 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3337
ef3c41c7 33382011-07-19 Ian Lance Taylor <iant@google.com>
3339
3340 * doc/install.texi (Configuration): Document
3341 --enable-build-poststage1-with-cxx.
3342
1f796f40 33432011-07-19 Robert Millan <rmh@gnu.org>
3344
3345 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
3346 (GLIBC_DYNAMIC_LINKER): Remove.
3347
3348 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
3349 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3350 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3351 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3352 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3353 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3354
3355 * config/mips/linux.h: Remove everything except for ...
3356 (GLIBC_DYNAMIC_LINKER): ... this macro.
3357
3358 * config/mips/linux64.h: Remove everything except for ...
3359 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3360 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3361 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3362 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3363 (GNU_USER_LINK_EMULATIONN32): New macros.
3364
6dfd8449 3365 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3366 Use the new headers.
1f796f40 3367
6d58bcba 33682011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3369
3370 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3371 Add offset_known_p and size_known_p fields.
3372 (MEM_OFFSET_KNOWN_P): Update accordingly.
3373 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3374 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3375 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3376 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3377 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3378 (init_emit_regs): Likewise.
3379
da443c27 33802011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3381
3382 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3383 (MEM_OFFSET): Change from returning an rtx to returning a
3384 HOST_WIDE_INT.
3385 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3386 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3387 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3388 (clear_mem_offset): Declare.
3389 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3390 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3391 MEM_OFFSET to get a HOST_WIDE_INT offset.
3392 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
3393 (adjust_offset_for_component_ref): Take a bool "known_p"
3394 parameter and a HOST_WIDE_INT "offset" parameter.
3395 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3396 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3397 than an rtx. Use clear_mem_offset to clear the offset.
3398 * cfgcleanup.c (merge_memattrs): Likewise.
3399 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3400 * function.c (assign_parm_find_stack_rtl): Likewise.
3401 (assign_parm_setup_stack): Likewise.
3402 * print-rtl.c (print_rtx): Likewise.
3403 * reload.c (find_reloads_subreg_address): Likewise.
3404 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3405 * var-tracking.c (INT_MEM_OFFSET): Likewise.
3406 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3407 (get_mem_align_offset): Likewise.
3408 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3409 (clear_mem_offset): New function.
3410 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3411 offset rather than an rtx. Assume both the expressio and offset
3412 are available.
3413 (r10k_needs_protection_p_1): Update accordingly, checking the
3414 expression and offset availability here instead.
3415
5b2a69fa 34162011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3417
3418 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3419 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3420 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3421 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3422 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3423 (clear_mem_size): Declare.
3424 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3425 (clear_mem_size): New function.
3426 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3427 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3428 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
3429 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
3430 to clear the size.
3431 (nonoverlapping_memrefs_p): Likewise.
3432 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3433 (expand_builtin_init_trampoline): Likewise.
3434 * calls.c (compute_argument_addresses): Likewise.
3435 * cfgcleanup.c (merge_memattrs): Likewise.
3436 * dce.c (find_call_stack_args): Likewise.
3437 * dse.c (record_store, scan_insn): Likewise.
3438 * dwarf2out.c (dw_sra_loc_expr): Likewise.
3439 * expr.c (emit_block_move_hints): Likewise.
3440 * function.c (assign_parm_find_stack_rtl): Likewise.
3441 * print-rtl.c (print_rtx): Likewise.
3442 * reload.c (find_reloads_subreg_address): Likewise.
3443 * rtlanal.c (may_trap_p_1): Likewise.
3444 * var-tracking.c (track_expr_p): Likewise.
3445 * varasm.c (assemble_trampoline_template): Likewise.
3446 * config/arm/arm.c (arm_print_operand): Likewise.
3447 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3448 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3449 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3450 (expand_constant_setmem_prologue): Likewise.
3451 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3452 * config/rs6000/rs6000.c (expand_block_move): Likewise.
3453 (adjacent_mem_locations): Likewise.
3454 * config/s390/s390.c (s390_expand_setmem): Likewise.
3455 (s390_expand_insv): Likewise.
3456 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3457 (*extendqi<mode>2_short_displ): Likewise.
3458 * config/sh/sh.c (expand_block_move): Likewise.
3459 * config/sh/sh.md (extv, extzv): Likewise.
3460
d72886b5 34612011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3462
3463 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3464 (mem_attrs_htab_eq): ...here.
3465 (find_mem_attrs): Replace with...
3466 (set_mem_attrs): ...this function. Take a mem_attrs structure
3467 rather than individual fields.
3468 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3469 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3470 (set_mem_size, change_address, adjust_address_1, offset_address)
3471 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3472 Update accordingly.
3473
d83fcaa1 34742011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3475
3476 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3477 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3478 Provide a dummy definition of MEM_ADDR_SPACE for generators.
3479 (target_rtl): Add x_mode_mem_attrs.
3480 (mode_mem_attrs): New macro.
3481 (get_mem_attrs): New function.
3482 * emit-rtl.c (get_mem_attrs): Rename to...
3483 (find_mem_attrs): ...this.
3484 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3485 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3486 (set_mem_size, change_address, adjust_address_1, offset_address)
3487 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3488 Update accordingly.
3489 (init_emit_regs): Initialize mode_mem_attrs.
3490
8f4a7578 34912011-07-19 Richard Guenther <rguenther@suse.de>
3492
3493 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3494 TRUTH_*_EXPR handling.
3495 * tree-ssa-operands.c (get_expr_operands): Likewise.
3496 * tree-ssa-pre.c (fully_constant_expression): Likewise.
3497 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3498 Likewise.
3499 (is_and_or_or): Likewise.
3500 (is_norm_cond_subset_of): Likewise.
3501
2cc66f2a 35022011-07-19 Richard Guenther <rguenther@suse.de>
3503
3504 * tree.h (fold_build_pointer_plus_loc): New helper function.
3505 (fold_build_pointer_plus_hwi_loc): Likewise.
3506 (fold_build_pointer_plus): Define.
3507 (fold_build_pointer_plus_hwi): Likewise.
3508 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3509 (fold_builtin_memory_op): Likewise.
3510 (fold_builtin_stpcpy): Likewise.
3511 (fold_builtin_memchr): Likewise.
3512 (fold_builtin_strstr): Likewise.
3513 (fold_builtin_strchr): Likewise.
3514 (fold_builtin_strrchr): Likewise.
3515 (fold_builtin_strpbrk): Likewise.
3516 (fold_builtin_strcat): Likewise.
3517 (expand_builtin_memory_chk): Likewise.
3518 (fold_builtin_memory_chk): Likewise.
3519 * c-typeck.c (build_unary_op): Likewise.
3520 * cgraphunit.c (thunk_adjust): Likewise.
3521 * fold-const.c (build_range_check): Likewise.
3522 (fold_binary_loc): Likewise.
3523 * omp-low.c (extract_omp_for_data): Likewise.
3524 (expand_omp_for_generic): Likewise.
3525 (expand_omp_for_static_nochunk): Likewise.
3526 (expand_omp_for_static_chunk): Likewise.
3527 * tree-affine.c (add_elt_to_tree): Likewise.
3528 * tree-data-ref.c (split_constant_offset_1): Likewise.
3529 * tree-loop-distribution.c (generate_memset_zero): Likewise.
3530 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3531 * tree-predcom.c (ref_at_iteration): Likewise.
3532 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3533 (add_to_parts): Likewise.
3534 (create_mem_ref): Likewise.
3535 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3536 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3537 (number_of_iterations_le): Likewise.
3538 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3539 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3540 (vect_create_addr_base_for_vector_ref): Likewise.
3541 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3542 (vect_create_cond_for_alias_checks): Likewise.
3543 * tree-vrp.c (extract_range_from_assert): Likewise.
3544 * config/alpha/alpha.c (alpha_va_start): Likewise.
3545 (alpha_gimplify_va_arg_1): Likewise.
3546 * config/i386/i386.c (ix86_va_start): Likewise.
3547 (ix86_gimplify_va_arg): Likewise.
3548 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3549 * config/mep/mep.c (mep_expand_va_start): Likewise.
3550 (mep_gimplify_va_arg_expr): Likewise.
3551 * config/mips/mips.c (mips_va_start): Likewise.
3552 (mips_gimplify_va_arg_expr): Likewise.
3553 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3554 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3555 (rs6000_gimplify_va_arg): Likewise.
3556 * config/s390/s390.c (s390_va_start): Likewise.
3557 (s390_gimplify_va_arg): Likewise.
3558 * config/sh/sh.c (sh_va_start): Likewise.
3559 (sh_gimplify_va_arg_expr): Likewise.
3560 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3561 * config/spu/spu.c (spu_va_start): Likewise.
3562 (spu_gimplify_va_arg_expr): Likewise.
3563 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3564 Likewise.
3565 (xstormy16_gimplify_va_arg_expr): Likewise.
3566 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3567 (xtensa_gimplify_va_arg_expr): Likewise.
3568
8618a9e7 35692011-07-19 Richard Guenther <rguenther@suse.de>
3570
3571 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3572 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3573 handling.
3574
3575 PR middle-end/18908
3576 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3577 result of BIT_*_EXPR to bitfield precision.
3578
9f2e27ae 35792011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
3580
3581 PR tree-optimization/49742
3582 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3583 as a potential write.
3584
8618a9e7 35852011-07-19 Richard Guenther <rguenther@suse.de>
3586
3587 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3588 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3589 (forward_propagate_comparison): Simplify, remove obsolete code.
3590
569b4ac8 35912011-07-19 Richard Guenther <rguenther@suse.de>
3592
3593 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3594 BIT_XOR_EXPR, same as the RTL expander does.
3595 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3596 (verify_gimple_assign_unary): Likewise.
3597 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3598 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3599 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3600
40a19864 36012011-07-19 Jakub Jelinek <jakub@redhat.com>
3602
3603 PR tree-optimization/49768
3604 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3605 if offset is smaller than bitoffset, but offset+size is bigger
3606 than bitoffset.
3607
1a5a26cb 36082011-07-19 Ira Rosen <ira.rosen@linaro.org>
3609
3610 PR tree-optimization/49771
3611 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3612 zero step, set segment length to the size of the data-ref's type.
3613
821d0e0f 36142011-07-18 Martin Jambor <mjambor@suse.cz>
3615
3616 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3617 comments.
3618 (ipcp_values_pool): Declare.
3619 (ipcp_sources_pool): Likewise.
3620 (ipcp_lattice): Changed to forward declaration.
3621 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3622 cannot_devirtualize.
3623 (ipa_node_params): New fields descriptors, lattices, known_vals,
3624 clone_for_all_contexts and node dead, removed fields params and
3625 count_scale.
3626 (ipa_set_param_count): Removed.
3627 (ipa_get_param_count): Made to work with descriptors vector.
3628 (ipa_get_param): Updated.
3629 (ipa_param_cannot_devirtualize_p): Removed.
3630 (ipa_param_types_vec_empty): Likewise.
3631 (ipa_set_param_used): New function.
3632 (ipa_get_param_used): Updated to use descriptors vector.
3633 (ipa_func_list): Removed.
3634 (ipa_init_func_list): Removed declaration.
3635 (ipa_push_func_to_list_1): Likewise.
3636 (ipa_pop_func_from_list): Likewise.
3637 (ipa_push_func_to_list): Removed.
3638 (ipa_lattice_from_jfunc): Remove declaration.
3639 (ipa_get_jf_pass_through_result): Declare.
3640 (ipa_get_jf_ancestor_result): Likewise.
3641 (ipa_value_from_jfunc): Likewise.
3642 (ipa_get_lattice): Update.
3643 (ipa_lat_is_single_const): New function.
3644 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3645 (ipa_init_func_list): Likewise.
3646 (ipa_pop_func_from_list): Likewise.
3647 (ipa_get_param_decl_index): Fix coding style.
3648 (count_formal_params): Removed.
3649 (count_formal_params_1): Renamed to count_formal_params.
3650 (ipa_populate_param_decls): Update to use descriptors vector.
3651 (ipa_initialize_node_params): Likewise.
3652 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3653 (ipa_analyze_params_uses): Likewise.
3654 (ipa_free_node_params_substructures): Likewise and free also lattices
3655 and known values.
3656 (duplicate_array): Removed.
3657 (ipa_edge_duplication_hook): Add the new edge to the list of edge
3658 clones.
3659 (ipa_node_duplication_hook): Update to use new lattices.
3660 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3661 (ipa_free_all_structures_after_iinln): Likewise.
3662 (ipa_write_node_info): Update to use new lattices.
3663 (ipa_read_node_info): Likewise.
3664 (ipa_get_jf_pass_through_result): New function.
3665 (ipa_get_jf_ancestor_result): Likewise.
3666 (ipa_value_from_jfunc): Likewise.
3667 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3668 * ipa-cp.c: Reimplemented.
3669 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3670 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3671 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3672 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3673 * doc/invoke.texi (devirt-type-list-size): Removed description.
3674 (ipa-cp-value-list-size): Added description.
3675
0e1b5033 36762011-07-18 Richard Henderson <rth@redhat.com>
3677
3678 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3679 before calling create_basic_block.
3680
32f1135b 36812011-07-18 Jakub Jelinek <jakub@redhat.com>
3682
3683 PR middle-end/49675
3684 * tree.c (build_common_builtin_nodes): Register
3685 __builtin_return_address, __cyg_profile_func_enter
3686 and __cyg_profile_func_exit.
3687
29211303 36882011-07-18 Richard Henderson <rth@redhat.com>
3689
3690 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3691 (add_labels_and_missing_jumps): ... here.
3692 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3693
3a2befe0 36942011-07-18 Uros Bizjak <ubizjak@gmail.com>
3695
3696 PR target/47744
3697 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3698 of DImode hard registers in PLUS address chains.
3699
96a9428b 37002011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3701
3702 PR bootstrap/49769
3703 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3704 (alpha*-*-freebsd*): Likewise.
3705 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3706 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3707 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3708 crtprec80.o, crtfastmath.o to extra_parts for all targets.
3709 (ia64*-*-elf*): Remove extra_parts.
3710 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3711 (sparc64-*-linux*): Likewise.
3712 (sparc64-*-freebsd*): Likewise.
3713
3714 Revert:
3715 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3716 (ia64*-*-linux*): Likewise.
3717 (mips64*-*-linux*): Likewise.
3718 (mips*-*-linux*): Likewise.
3719
7168c017 37202011-07-18 David Edelsohn <dje.gcc@gmail.com>
3721
3722 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3723
eab3f3b8 37242011-07-18 Richard Guenther <rguenther@suse.de>
3725
3726 * gimplify.c (gimplify_expr): Use input_location, not saved_location
3727 when building new trees.
3728
f1c44a44 37292011-07-18 Richard Guenther <rguenther@suse.de>
3730
3731 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3732 expansion result to bitfield precision if required.
3733
4d72c922 37342011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3735
3736 * config.gcc (i[3456x]86-*-netware*): Remove.
3737
3738 * gthr-nks.h: Remove.
3739 * configure.ac (enable_threads): Remove nks.
3740 * configure: Regenerate.
3741
3742 * config/i386/i386.c (ix86_encode_section_info): Remove netware
3743 reference.
3744 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3745 <netware.h> reference.
3746
3747 * config/i386/netware-libgcc.c,
3748 gcc/config/i386/netware-libgcc.def,
3749 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3750 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3751 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3752 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3753
3754 * doc/extend.texi (Function Attributes,
3755 callee_pop_aggregate_return): Remove i?86-netware reference.
3756 * doc/install.texi (Configuration, --enable-threads): Remove nks.
3757
992f5d59 37582011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3759
3760 PR target/49746
3761 Revert:
3762 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3763
3764 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3765 patterns.
3766
b4b65961 37672011-07-17 Eric Botcazou <ebotcazou@adacore.com>
3768
3769 PR middle-end/49732
3770 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3771
d7e52ac9 37722011-07-16 Matthias Klose <doko@ubuntu.com>
3773
3774 * doc/install.texi: Document --enable-static-libjava.
3775
2a8e5eeb 37762011-07-15 Richard Henderson <rth@redhat.com>
3777
3778 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3779 Replace all three arguments by returning a VEC of edges.
3780 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3781 pointers and counts.
3782 (fix_edges_for_rarely_executed_code): Merge ...
3783 (rest_of_handle_partition_blocks): ... into...
3784 (partition_hot_cold_basic_blocks): ... here. Return todo items if
3785 any work was performed.
3786 (pass_partition_blocks): Clear todo_flags_finish.
3787
24335a64 37882011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
3789 Jakub Jelinek <jakub@redhat.com>
3790 Jonathan Wakely <jwakely.gcc@gmail.com>
3791
3792 PR libstdc++/49745
3793 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3794 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3795
a7313276 37962011-07-15 Jason Merrill <jason@redhat.com>
3797
3798 PR testsuite/49741
3799 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3800 rather than --tool_opts.
3801
7e89f914 38022011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
3803
3804 * doc/plugins.texi (Building GCC plugins): gengtype needs its
324ccaa5 3805 corresponding gtype.state.
7e89f914 3806
9736d0ec 38072011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3808
3809 PR target/49723
3810 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3811
8ee59e4e 38122011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3813
3814 PR target/48220
3815 * doc/md.texi (Standard Names): Document window_save.
3816 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3817 expand_debug_expr and expand_debug_source_expr. If the target has
3818 a window_save instruction, adjust the ENTRY_VALUE_EXP.
3819 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3820 SSA_NAME_VAR is a parameter.
3821 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3822 * var-tracking.c (parm_reg_t): New type and associated vector type.
3823 (windowed_parm_regs): New variable.
3824 (adjust_insn): If the target has a window_save instruction and this
3825 is the instruction, make its effect on parameter registers explicit.
3826 (next_non_note_insn_var_location): New function.
3827 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3828 (vt_add_function_parameter): If the target has a window_save insn,
3829 adjust the incoming RTL and record that in windowed_parm_regs.
3830 (vt_finalize): Free windowed_parm_regs.
3831
5aa04b01 38322011-07-15 Bernd Schmidt <bernds@codesourcery.com>
3833
3834 * doc/invoke.texi (C6X Options): New section.
3835 * doc/md.texi (TI C6X family): New section.
3836 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3837 tic6x-*-uclinux.
3838 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3839 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3840 Provide C6X definitions.
3841 * config/c6x/c6x.md: New file.
3842 * config/c6x/constraints.md: New file.
3843 * config/c6x/predicates.md: New file.
3844 * config/c6x/c6x-sched.md.in: New file.
3845 * config/c6x/c6x-sched.md: New file.
3846 * config/c6x/gensched.sh: New file.
3847 * config/c6x/c6x-mult.md.in: New file.
3848 * config/c6x/genmult.sh: New file.
3849 * config/c6x/c6x-mult.md: New file.
3850 * config/c6x/sync.md: New file.
3851 * config/c6x/c6x-protos.h: New file.
3852 * config/c6x/sfp-machine.h: New file.
3853 * config/c6x/c6x.c: New file.
3854 * config/c6x/c6x.h: New file.
3855 * config/c6x/crti.s: New file.
3856 * config/c6x/crtn.s: New file.
3857 * config/c6x/lib1funcs.asm: New file.
3858 * config/c6x/c6x-modes.def: New file.
3859 * config/c6x/genopt.sh: New file.
3860 * config/c6x/c6x.opt: New file.
3861 * config/c6x/c6x-tables.opt: New file.
3862 * config/c6x/c6x-opts.h: New file.
3863 * config/c6x/c6x-isas.def: New file.
3864 * config/c6x/elf.h: New file.
3865 * config/c6x/elf-common.h: New file.
3866 * config/c6x/uclinux-elf.h: New file.
3867 * config/c6x/t-c6x: New file.
3868 * config/c6x/t-c6x-elf: New file.
3869 * config/c6x/t-c6x-uclinux: New file.
3870 * config/c6x/t-c6x-softfp: New file.
3871 * config/c6x/gtd.c: New file.
3872 * config/c6x/gtf.c: New file.
3873 * config/c6x/ltd.c: New file.
3874 * config/c6x/ltf.c: New file.
3875 * config/c6x/ged.c: New file.
3876 * config/c6x/gef.c: New file.
3877 * config/c6x/led.c: New file.
3878 * config/c6x/lef.c: New file.
3879 * config/c6x/eqd.c: New file.
3880 * config/c6x/eqf.c: New file.
3881 * config/c6x/libgcc-c6xeabi.ver: New file.
3882
6aed13f1 3883 Revert
3884 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3885 PR rtl-optimization/11320
3886 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3887 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3888 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3889 current_sched_info->compute_jump_reg_dependencies. Record which
3890 registers are used and which registers are set by the jump.
3891 Clear deps->reg_conditional_sets after a barrier.
3892 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3893 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3894 (init_deps): Initialize reg_conditional_sets.
3895 (free_deps): Clear reg_conditional_sets.
3896 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3897 Mark registers live on entry of the fallthrough block and conditionally
3898 set as set by the jump. Mark registers live on entry of non-fallthrough
3899 blocks as used by the jump.
3900 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3901 Mark new parameters as unused.
3902
c2956f55 39032011-07-14 Andrew Pinski <pinskia@gmail.com>
3904
3905 PR tree-opt/49309
3906 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3907 Use fold_build2_loc instead of build2.
3908 Use the correct type for the new tree.
3909
7ea22d30 39102011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3911
3912 PR rtl-optimization/11320
3913 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3914 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3915
ac191360 39162011-07-14 Georg-Johann Lay <avr@gjlay.de>
7ea22d30 3917
ac191360 3918 PR target/49487
3919 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3920 of REG.
3921 (*rotw<mode>): Use const_int_operand for operand2.
3922 Use match_scatch for operand3.
3923 (*rotb<mode>): Ditto
3924 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3925
9dd84951 39262011-07-14 Richard Guenther <rguenther@suse.de>
3927
3928 PR tree-optimization/49651
3929 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3930 handle dereferences with subvariables.
3931
fbd25d42 39322011-07-14 Richard Guenther <rguenther@suse.de>
3933
3934 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3935 (fold_stmt_1): Do it here directly on gimple and as a first thing.
3936
1a9169ac 39372011-07-14 Richard Guenther <rguenther@suse.de>
3938
3939 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3940 not bool_var when folding bool_var != 1 or bool_var == 0.
3941
2261c559 39422011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3943
3944 * haifa-sched.c (schedule_insns): Remove outdated comment.
3945 (schedule_block): When computing a known value for TODO_SPEC,
3946 just set it rather than using logical operations.
3947 (try_ready): Likewise. Use a local variable rather than a
3948 pointer to TODO_SPEC. Reorder an if statement to move the
3949 easy case to the then block.
3950 * sched-deps.c (dep_spec_p): New static function.
3951 (update_dep): Use it to decide whether to call
3952 change_spec_dep_to_hard.
3953 (get_back_and_forw_lists): Use it.
3954 (sd_resolve_dep): Likewise.
3955 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3956 (haifa_note_mem_dep): Likewise.
3957 (check_dep): Likewise.
3958 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3959 (sched_free_deps): Free in two passes.
3960
96d4b8c5 39612011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
3962
3963 PR middle-end/49736
3964 * expr.c (all_zeros_p): Undo bogus part of last change.
3965
9f6922ba 39662011-07-14 Matthias Klose <doko@ubuntu.com>
3967
3968 * doc/extend.texi (optimize attribute): Fix typo.
3969
b19dcf9e 39702011-07-14 Richard Guenther <rguenther@suse.de>
3971
3972 * gimplify.c (gimplify_expr): Only do required conversions.
3973
853000f2 39742011-07-14 Georg-Johann Lay <avr@gjlay.de>
3975
3976 PR target/43746
3977 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3978 i.e. use default_elf_select_section.
3979 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3980 (READONLY_DATA_SECTION_ASM_OP): Remove.
3981 (TARGET_ASM_NAMED_SECTION): Move from here...
3982 * config/avr/avr.c: ...to here.
3a2befe0 3983 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
853000f2 3984 (avr_asm_named_section): Make static.
3985
9b0fef97 39862011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3987
3988 PR bootstrap/49739
3a2befe0 3989 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3990 and crtfastmath.o for Linux/x86.
9b0fef97 3991
e2f4a6ff 39922011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3993
3994 * haifa-sched.c: Include "hashtab.h"
3995 (sched_no_dce): New global variable.
3996 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3997 SHADOW_P): New macros.
3998 (last_clock_var, cycle_issued_insns): Move declarations.
3999 (must_backtrack): New static variable.
4000 (struct delay_pair): New structure.
4001 (delay_htab, delay_htab_i2): New static variables.
4002 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
4003 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
4004 functions.
4005 (dep_cost_1): If delay pairs exist, try to look up the insns and
4006 use the correct pair delay if we find them.
4007 (rank-for_schedule): Tweak priority for insns that must be scheduled
4008 soon to avoid backtracking.
4009 (queue_insn): Detect conditions which force backtracking.
4010 (ready_add): Likewise.
4011 (struct sched_block_state): Add member shadows_only_p.
4012 (struct haifa_save_data): New structure.
4013 (backtrack_queue): New static variable.
4014 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
4015 unschedule_insns_until, restore_last_backtrack_point,
4016 free_topmost_backtrack_point, free_backtrack_queue,
4017 estimate_insn_tick, estimate_shadow_tick): New functions.
4018 (prune_ready_list): New arg shadows_only_p. All callers changed.
4019 If true, remove everything that isn't SHADOW_P. Look up delay
3a2befe0 4020 pairs and estimate ticks to avoid scheduling the first insn too early.
e2f4a6ff 4021 (verify_shadows): New function.
4022 (schedule_block): Add machinery to enable backtracking.
4023 (sched_init): Take sched_no_dce into account when setting
4024 DF_LR_RUN_DCE.
4025 (free_delay_pairs): New function.
4026 (init_h_i_d): Initialize INSN_EXACT_TICK.
4027 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
4028 * sched-deps.c (sd_unresolve_dep): New function.
4029 * sched-int. (struct haifa_sched_info): New fields save_state
4030 and restore_state.
4031 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
4032 feeds_backtrack_insn and shadow_p.
4033 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
4034 (sched_no_dce): Declare variable.
4035 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
4036 sd_unresolve_dep): Declare functions.
4037 * modulo-sched.c (sms_sched_info): Clear the two new fields.
4038 * sched-rgn.c (rgn_const_sched_info): Likewise.
4039 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
4040 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
4041 (ebb_sched_info): Add them for the two new fields.
4042 (add_deps_for_risky_insns): Call add_delay_dependencies.
4043
0763918e 40442011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
4045
4046 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
4047 Rename -mr11.
4048 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
4049 (rs6000_call_indirect_aix): Ditto.
4050 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
4051 (call_indirect_aix<ptrsize>_internal): Ditto.
4052 (call_indirect_aix<ptrsize>_nor11): Ditto.
4053 (call_indirect_aix<ptrsize>_internal2): Ditto.
4054 (call_value_indirect_aix<ptrsize>): Ditto.
4055 (call_value_indirect_aix<ptrsize>_internal): Ditto.
4056 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
4057 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
4058 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
4059
36bc8a20 40602011-07-13 Jason Merrill <jason@redhat.com>
4061
4062 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
4063
4d3aeb29 40642011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4065
4066 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
4067 * config/spu/spu.md ("clrsb<mode>2"): New expander.
4068
bb6be29c 40692011-07-13 Thomas Schwinge <thomas@schwinge.name>
4070
4071 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
4072 * configure: Regenerate.
4073
a54ca889 40742011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4075
4076 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
4077 (asm_file_start): Remove.
4078 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
4079 free_bb_for_insn around code that modifies insns before
4080 restarting df analysis.
4081
867bec2c 40822011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4083
4084 PR target/49541
3a2befe0 4085 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
867bec2c 4086 (LINK_SPEC): ... here.
4087
0c775e95 40882011-07-13 Bernd Schmidt <bernds@codesourcery.com>
4089
4090 * haifa-sched.c (struct sched_block_state): New.
4091 (schedule_block): Move some local variables into such a structure.
4092
ba079bc9 40932011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4094
4095 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
4096 * config/i386/t-crtpc: Remove.
4097 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4098 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
4099 tmake_file.
4100 (x86_64-*-darwin*): Likewise.
4101 (i[34567]86-*-linux*): Likewise.
4102 (x86_64-*-linux*): Likewise.
4103
4104 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
4105 Handle -mpc32, -mpc64, -mpc80.
4106
1125ba83 41072011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4108
4109 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
4110 * config/alpha/t-crtfm: Remove.
4111 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
4112 * config/i386/t-crtfm: Remove.
4113 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
4114 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
4115 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
4116 * config/sparc/t-crtfm: Remove.
4117
4118 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
4119 (alpha*-*-freebsd*): Likewise.
4120 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
4121 (x86_64-*-darwin*): Likewise.
4122 (i[34567]86-*-linux*): Likewise.
4123 (x86_64-*-linux*): Likewise.
4124 (x86_64-*-mingw*): Likewise.
4125 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
4126 (ia64*-*-freebsd*): Likewise.
4127 (ia64*-*-linux*): Likewise.
4128 (mips64*-*-linux*): Likewise.
4129 (mips*-*-linux*): Likewise.
4130 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
4131 (sparc64-*-linux*): Likewise.
4132 (sparc64-*-freebsd*): Likewise.
4133
1a4a11f3 41342011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4135
4136 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
4137 * config/darwin-crt3.c: Move to ../libgcc/config.
4138 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4139 ($(T)crt3$(objext)): Remove.
4140 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
4141 ($(T)crt2$(objext)): Remove.
4142 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
4143 (powerpc64-*-darwin*): Likewise.
4144
b3429996 41452011-07-13 H.J. Lu <hongjiu.lu@intel.com>
4146
3a2befe0 4147 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
b3429996 4148
4149 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
4150 (addsi_1_zext): This.
4151
6e71bd21 41522011-07-13 Bernd Schmidt <bernds@codesourcery.com>
4153
4154 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
4155 * doc/tm.texi: Regenerate.
9685fb69 4156 * target.def (mergeable_rodata_prefix): New defhookpod.
6e71bd21 4157 * varasm.c (mergeable_string_section, mergeable_constant_section):
4158 Use it. Allocate name with alloca.
4159
b3142b4e 41602011-07-13 H.J. Lu <hongjiu.lu@intel.com>
4161
4162 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4163
33767455 41642011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4165
4166 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4167 overlap check.
4168
927b65fb 41692011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4170
4171 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
4172 (count_type_elements): Delete.
4173 (complete_ctor_at_level_p): Declare.
4174 * expr.c (flexible_array_member_p): New function, split out from...
4175 (count_type_elements): ...here. Make static. Replace allow_flexarr
4176 parameter with for_ctor_p. When for_ctor_p is true, return the
4177 number of elements that should appear in the top-level constructor,
4178 otherwise return an estimate of the number of scalars.
4179 (categorize_ctor_elements): Replace p_must_clear with p_complete.
4180 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
4181 (complete_ctor_at_level_p): New function, borrowing union logic
4182 from old categorize_ctor_elements_1.
4183 (mostly_zeros_p): Return true if the constructor is not complete.
4184 (all_zeros_p): Update call to categorize_ctor_elements.
4185 * gimplify.c (gimplify_init_constructor): Update call to
4186 categorize_ctor_elements. Don't call count_type_elements.
4187 Unconditionally prevent clearing for variable-sized types,
4188 otherwise rely on categorize_ctor_elements to detect
4189 incomplete initializers.
4190
5c3a6c62 41912011-07-13 Richard Guenther <rguenther@suse.de>
4192
4193 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
4194 the final type is integral.
4195
38354bb6 41962011-07-13 Bernd Schmidt <bernds@codesourcery.com>
4197
4198 * sched-int.h (struct _dep): Add member cost.
4199 (DEP_COST, UNKNOWN_DEP_COST): New macros.
4200 * sched-deps.c (init_dep_1): Initialize DEP_COST.
4201 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
4202 (sched_change_pattern): Reset it for dependent insns.
4203
ef3ab47f 42042011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4205
4206 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
4207 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
4208 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
4209 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
4210 (CRT0_S, MCRT0_S): Remove.
4211 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
4212 Remove.
4213 (s-crt0): Remove.
4214 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
4215
3c802a1e 42162011-07-12 Eric Botcazou <ebotcazou@adacore.com>
4217
4218 * cse.c (insert_with_costs): Put semi-colon after empty loop body
4219 on the next line.
4220 * emit-rtl.c (push_to_sequence): Likewise.
4221 * haifa-sched.c (max_issue): Likewise.
4222 * matrix-reorg.c (add_allocation_site): Likewise.
4223 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
4224 * reload.c (alternative_allows_const_pool_ref): Likewise.
4225 * sched-rgn.c (rgn_add_block): Likewise.
4226 (rgn_fix_recovery_cfg): Likewise.
4227 * tree.c (attribute_list_contained): Likewise.
4228
f1e45f68 42292011-07-12 Uros Bizjak <ubizjak@gmail.com>
4230
4231 * config/i386/i386.c: Tidy processor feature bitmasks.
4232 (m_P4_NOCONA): New.
4233
2f7c1e7a 42342011-07-12 Andrew Pinski <pinskia@gmail.com>
4235
4236 PR rtl-opt/49474
4237 * cprop.c (find_implicit_sets): Correct the condition.
4238
26a649dd 42392011-07-12 Richard Henderson <rth@redhat.com>
4240
4241 PR target/49713
4242 * dwarf2out.h (dwarf_frame_regnum): Remove.
4243 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
4244 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
4245 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
4246 (execute_dwarf2_frame): Initialize them.
4247 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
4248 users of the macros with the variables.
4249 (expand_builtin_dwarf_sp_column): Revert last change.
4250 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
4251 result of DWARF_FRAME_REGNUM into a local variable.
4252
68495d8b 42532011-07-12 Richard Henderson <rth@redhat.com>
4254
4255 PR target/49714
4256 * config/i386/i386.c (x86_output_mi_thunk): Use
4257 machopic_indirect_call_target instead of machopic_indirection_name
4258 directly.
4259
becb63f5 42602011-07-12 Laurent GUERBY <laurent@guerby.net>
4261 Eric Botcazou <ebotcazou@adacore.com>
4262
4263 * prefix.h: Wrap up in extern "C" block.
4264
8991ae0a 42652011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
4266
4267 AMD bdver2 Enablement
4268 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
4269 (case ${target}): Add bdver2.
4270 * config/i386/driver-i386.c (host_detect_local_cpu): Let
4271 -march=native recognize bdver2 processors.
4272 * config/i386/i386-c.c (ix86_target_macros_internal): Add
4273 bdver2 def_and_undef
4274 * config/i386/i386.c (struct processor_costs bdver2_cost): New
4275 bdver2 cost table.
4276 (m_BDVER2): New definition.
4277 (m_AMD_MULTIPLE): Includes m_BDVER2.
4278 (initial_ix86_tune_features): Add bdver2 tuning.
4279 (processor_target_table): Add bdver2 entry.
4280 (static const char *const cpu_names): Add bdver2 entry.
4281 (ix86_option_override_internal): Add bdver2 instruction sets.
4282 (ix86_issue_rate): Add bdver2.
4283 (ix86_adjust_cost): Add bdver2.
4284 (has_dispatch): Add bdver2.
4285 * config/i386/i386.h (TARGET_BDVER2): New definition.
4286 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
4287 (enum processor_type): Add PROCESSOR_BDVER2.
4288 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
4289 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
4290 description.
4291
17da02d8 42922011-07-12 Richard Henderson <rth@redhat.com>
4293
4294 PR target/49714
4295 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
4296 destination address in memory on some paths.
4297
17bfc2bc 42982011-07-12 Bernd Schmidt <bernds@codesourcery.com>
4299
4300 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
4301 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
4302 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
4303 * function.c (locate_and_pad_parm): Take it into account.
4304 * target.def (function_arg_round_boundary): New hook.
4305 * targhooks.c (default_function_arg_round_boundary): New function.
4306 * targhooks.h (default_function_arg_round_boundary): Declare.
4307 * doc/tm.texi: Regenerate.
4308
8bab8c20 43092011-07-12 Richard Guenther <rguenther@suse.de>
4310
4311 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
4312 Do not perform no-op changes.
4313
4c1dfb84 43142011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
4315
4316 * config/arm/predicates.md (neon_struct_operand): Make a normal
4317 predicate.
4318 (neon_struct_or_register_operand): New predicate.
4319 * config/arm/neon.md (movmisalign<mode>): Replace predicates
4320 with neon_struct_or_register_operand.
4321 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
4322 neon_struct_operand instead of memory_operand.
4323
7f70d5bc 43242011-07-12 Martin Jambor <mjambor@suse.cz>
4325
4326 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
4327 * cgraph.c (cgraph_get_node_or_alias): Removed.
4328 (change_decl_assembler_name): Changed all calls to
4329 cgraph_get_node_or_alias to a call to cgraph_get_node.
4330 (cgraph_make_decl_local): Likewise.
4331 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
4332 * varasm.c (default_binds_local_p_1): Likewise.
4333 (decl_binds_to_current_def_p): Likewise.
4334
58a7eead 43352011-07-12 Jakub Jelinek <jakub@redhat.com>
4336
4337 PR tree-optimization/49712
4338 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
4339
002e7d08 43402011-07-11 Bernd Schmidt <bernds@codesourcery.com>
4341
4342 * genautomata.c (add_arc): Return void. All callers changed.
4343 (make_automaton): Remove dead code.
4344
559e966b 43452011-07-11 Richard Henderson <rth@redhat.com>
4346
4347 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
4348 (DW_FRAME_POINTER_REGNUM): New.
4349 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
4350 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
4351 (dwf_regno): New.
4352 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
4353 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
4354 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
4355 Use it.
4356 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
4357 * dwarf2out.h (dwarf_frame_regnum): New.
4358 (struct cfa_loc): Document the domain of the reg member.
4359
2fe4965c 43602011-07-11 Uros Bizjak <ubizjak@gmail.com>
4361
4362 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
4363 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
4364
d89f182d 43652011-07-11 Jakub Jelinek <jakub@redhat.com>
4366
4367 PR debug/49676
4368 * dwarf2out.c (int_shift_loc_descriptor): New function.
4369 (int_loc_descriptor): If shorter, emit i as
4370 (i >> shift), shift, DW_OP_shl for suitable shift value.
4371 Similarly, try to optimize large negative values using
4372 DW_OP_neg of a positive value if shorter.
4373 (size_of_int_shift_loc_descriptor): New function.
4374 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
4375 changes.
4376 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
4377 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
4378 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
4379 is shorter.
4380 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
4381 addend as added DW_OP_plus if it is shorter.
4382
f95ce296 43832011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4384
4385 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
4386 (DTORS_SECTION_ASM_OP): Define.
4387
17aa03f5 43882011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4389
4390 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
4391 * config/t-dfprules: Move to ../libgcc/config.
4392 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4393 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4394 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
4395 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4396 Likewise.
4397 (i[34567]86-*-cygwin*): Likewise.
4398 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
4399 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
4400 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
4401 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
4402 D64PBIT_FUNCS, D128PBIT_FUNCS.
4403
b3b0dcac 44042011-07-11 Richard Guenther <rguenther@suse.de>
4405
4406 * tree-vrp.c (simplify_conversion_using_ranges): Manually
4407 translate the source value-range through the conversion chain.
4408
36eabf84 44092011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
4410
4411 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
4412
5cd72ba2 44132011-07-11 Arthur Loiret <aloiret@debian.org>
4414
4415 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
4416 a bi-arch compiler defaulting to 31-bit. In this case:
4417 (tmake_file): Add s390/t-linux64.
4418 * doc/install.texi: Add s390-linux to the list of targets supporting
4419 --enable-targets=all.
4420
b167b87f 44212011-07-11 Arthur Loiret <aloiret@debian.org>
4422 Matthias Klose <doko@debian.org>
4423
4424 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
4425 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
4426 (tm_file): Add mips/linux64.h.
4427 (tmake_file): Add mips/t-linux64.
4428 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4429 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
4430 instead of hardcoded mabi=n32.
4431 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4432 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4433 convention.
4434
b1b0dde1 44352011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4436
4437 * passes.c (init_optimization_passes): Add invariant motion pass
4438 after induction variable optimization.
4439
416181eb 44402011-07-11 Georg-Johann Lay <avr@gjlay.de>
2fe4965c 4441
416181eb 4442 PR target/39633
4443 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
4444 offsets 1..5 set cc0 in a usable way.
4445
62ab7811 44462011-07-11 Romain Geissler <romain.geissler@gmail.com>
4447
4448 * tree.h (call_expr_arg): Remove.
4449 (call_expr_argp): Likewise.
4450
b3965770 44512011-07-11 Eric Botcazou <ebotcazou@adacore.com>
4452
4453 * config/sparc/sparc.md (save_register_window_1): Rename to...
4454 (window_save): ...this.
4455 * config/sparc/sparc.c (emit_save_register_window): Rename to...
4456 (emit_window_save): ...this.
4457 (sparc_expand_prologue): Adjust to above renaming.
4458
67b000c1 44592011-07-10 H.J. Lu <hongjiu.lu@intel.com>
4460
4461 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
4462 of movabs for x32.
4463
33c5bf40 44642011-07-10 Richard Henderson <rth@redhat.com>
4465
4466 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
4467 run final, instead of emitting text directly.
4468
e75b254a 44692011-07-10 H.J. Lu <hongjiu.lu@intel.com>
4470
4471 * config/i386/i386.c (ix86_option_override_internal): Turn on
4472 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
4473 small PIC models for TARGET_X32.
4474
18425913 44752011-07-10 Hans-Peter Nilsson <hp@axis.com>
4476
807e870d 4477 PR target/49684
4478 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
4479 $(LIBGCC2_CFLAGS).
4480
18425913 4481 PR bootstrap/49680
4482 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
4483 stray notes and debug insns by using prev_nonnote_nondebug_insn
4484 instead of PREV_INSN.
4485
04dfc41a 44862011-07-09 Richard Henderson <rth@redhat.com>
4487
4488 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
4489 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
4490 * dwarf2out.c: ... here.
4491 (output_all_cfis): Remove.
4492 (dwarf2out_switch_text_section): Use output_cfis directly.
4493 (size_of_locs): Export.
4494 (output_loc_sequence, output_loc_sequence_raw): Export.
4495 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
4496 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
4497 output_cfa_loc_raw): Move to ...
4498 * dwarfcfi.c: ... here.
4499 * dwarf2out.h: Update decls.
4500
53a3f6d1 45012011-07-09 Richard Henderson <rth@redhat.com>
4502
4503 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
4504 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
4505 * dwarf2cfi.c: ... here.
4506 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
4507 (DWARF_ROUND, DWARF_CIE_ID): Remove.
4508 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
4509 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
4510 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
4511
6ca363a7 45122011-07-09 Richard Henderson <rth@redhat.com>
4513
4514 * dwarf2cfi.c (cie_return_save): New.
4515 (queue_reg_save): Use compare_reg_or_pc.
4516 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
4517 (dwarf2out_frame_debug_expr): Likewise.
4518 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
4519 (initial_return_save): Likewise.
4520 (execute_dwarf2_frame): Save and restore initial return save from
4521 the cie to the fde.
4522 * config/mips/mips.c (mips_frame_set): Remove special case for
4523 DWARF_FRAME_RETURN_COLUMN.
4524
4a7a4715 45252011-07-09 Richard Henderson <rth@redhat.com>
4526
4527 * dwarf2cfi.c (lookup_cfa): Remove.
4528 (execute_dwarf2_frame): Assert queues are empty on entry.
4529 Setup initial cfa directly, not via lookup_cfa.
4530 Don't clear args_size state here.
4531
d4898332 45322011-07-09 Richard Henderson <rth@redhat.com>
4533
4534 * dwarf2cfi.c (add_cfi_vec): New.
4535 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
4536 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
4537 (execute_dwarf2_frame): Set add_cfi_vec.
4538
2d0a9e44 45392011-07-09 Richard Henderson <rth@redhat.com>
4540
4541 * defaults.h (ASM_COMMENT_START): Move here...
4542 * dwarf2asm.c: ... from here.
4543 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
4544 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
4545 * varasm.c: Likewise.
4546
a6b622eb 45472011-07-09 Richard Henderson <rth@redhat.com>
4548
4549 PR debug/49686
4550 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
4551 (create_cfi_notes): ... do it here instead.
4552
1a6ad454 45532011-07-09 Jakub Jelinek <jakub@redhat.com>
4554
4555 PR debug/49676
4556 * dwarf2out.c (size_of_int_loc_descriptor): New function.
4557 (address_of_int_loc_descriptor): Use it.
2fe4965c 4558 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
1a6ad454 4559
870bfab4 45602011-07-09 Richard Henderson <rth@redhat.com>
4561
4562 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
4563 (prologue, epilogue): New.
4564 (return, *rts): New.
4565 (blockage, setd, seti): New.
4566 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4567 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4568 (pdp11_saved_regno): New.
4569 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
4570 generate rtl instead of text.
4571 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
4572 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
4573 * config/pdp11/pdp11-protos.h: Update.
4574
55c768a2 45752011-07-09 Richard Henderson <rth@redhat.com>
4576
4577 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
4578 try to insert an rtl prologue here.
4579 (rs6000_output_function_epilogue): Similarly.
4580 * config/rs6000/rs6000.md (prologue): Emit a barrier to
4581 satisfy !TARGET_SCHED_PROLOG.
4582 (epilogue, sibcall_epilogue): Likewise.
4583
48570de5 45842011-07-09 Eric Botcazou <ebotcazou@adacore.com>
4585
4586 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
4587 (FP_REG_P): Delete.
4588 (IN_OR_GLOBAL_P): Likewise.
4589
dabebf7e 45902011-07-08 Jason Merrill <jason@redhat.com>
4591
3115bda0 4592 PR c++/45437
4593 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
4594 compound assignment.
4595
dabebf7e 4596 * cgraph.c (cgraph_add_to_same_comdat_group): New.
4597 * cgraph.h: Declare it.
4598 * ipa.c (function_and_variable_visibility): Make sure thunks
4599 have the right visibility.
4600
6d627b5f 46012011-07-08 Richard Henderson <rth@redhat.com>
4602
4603 PR bootstrap/49680
4604 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
4605 any tablejump vector.
4606
de9b0618 4607 PR bootstrap/49680
4608 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
4609 end of the prologue.
4610
3e7a8659 46112011-07-08 Jakub Jelinek <jakub@redhat.com>
4612
4613 PR target/49621
4614 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
2fe4965c 4615 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
3e7a8659 4616 * config/rs6000/vector.md (vector_select_<mode>,
4617 vector_select_<mode>_uns): Change second operand of NE to
4618 CONST0_RTX (<MODE>mode) instead of const0_rtx.
4619 * config/rs6000/altivec.md (*altivec_vsel<mode>,
4620 *altivec_vsel<mode>_uns): Expect second operand of NE to be
4621 zero_constant of the corresponding vector mode.
4622 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
4623 Likewise.
4624
1684dcca 46252011-07-08 Sebastian Pop <sebastian.pop@amd.com>
4626
4627 * graphite-dependences.c (build_alias_set_powerset): Remove
4628 continue from loop, add one more assert.
4629
3d4d979d 46302011-07-08 Georg-Johann Lay <avr@gjlay.de>
2fe4965c 4631
3d4d979d 4632 PR target/46779
4633 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4634 In particular, allow 8-bit values in r28 and r29.
4635 (avr_hard_regno_scratch_ok): Disallow any register that might be
4636 part of the frame pointer.
4637 (avr_hard_regno_rename_ok): Same.
4638 (avr_legitimate_address_p): Don't allow SUBREGs.
4639
b46a36c7 46402011-07-08 Julian Brown <julian@codesourcery.com>
4641
4642 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
4643 big-endian mode.
4644 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
4645 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
4646 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
4647 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
4648 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
4649 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
4650 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
4651 registers in big-endian mode.
4652
7336c0af 46532011-07-08 Bernd Schmidt <bernds@codesourcery.com>
4654
4655 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
4656 in terms of another.
4657 (write_attr_value): Write a cast if necessary.
4658
76c64076 4659 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
4660 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
4661 (REG_WORDS_BIG_ENDIAN): Document.
4662 * doc/tm.texi: Regenerate.
4663 * reload.c (operands_match_p): Take it into account.
4664 (reload_adjust_reg_for_mode): Likewise.
4665 * rtlanal.c (subreg_get_info): Likewise.
4666
0b9b1b4d 46672011-07-08 Richard Guenther <rguenther@suse.de>
4668
4669 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
4670 folding.
4671
1e06ea55 46722011-07-08 Kai Tietz <ktietz@redhat.com>
4673
4674 * fold-const.c (fold_truth_andor): Factored out truth_andor
4675 label from fold_binary as function.
4676 (fold_binary_loc): Replace truth_andor lable
4677 by function fold_truth_andor.
4678
cc0595c0 46792011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
4680
4681 PR middle-end/49519
4682 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
4683 check if address is stored in register. If so - give up.
4684 (check_sibcall_argument_overlap_1): Do not perform check of
4685 overlapping when it is call to address.
4686
46161cc2 46872011-07-08 Georg-Johann Lay <avr@gjlay.de>
7336c0af 4688
46161cc2 4689 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
4690 of magic '31'.
4691
995b44f5 46922011-07-08 Bernd Schmidt <bernds@codesourcery.com>
4693
4694 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
4695 GET_MODE_BITSIZE where appropriate.
4696 (widen_leading, expand_parity, expand_ctz, expand_ffs,
4697 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
4698 expand_float, expand_fix): Likewise.
4699 * expr.c (convert_move, convert_modes, expand_expr_real_2,
4700 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4701 * stor-layout.c (get_mode_bounds): Likewise.
4702 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
4703 Likewise.
4704 * convert.c (convert_to_integer): Likewise.
4705 * expmed.c (expand_shift_1): Likewise.
4706
b0676cad 4707 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
4708 a bitsize.
4709
eb2457b0 4710 * optabs.c (expand_binop): Tighten conditions for doubleword
4711 expansions.
2fe4965c 4712 (widen_bswap): Assert that mode bitsize and precision are the same.
eb2457b0 4713 * stor-layout.c (get_best_mode): Skip modes that have lower
4714 precision than bitsize.
4715 * recog.c (simplify_while_replacing): Assert that bitsize and
4716 precision are the same.
4717
2bc72a9f 47182011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4719
4720 * Makefile.in (LIBGCOV): Remove.
4721 (libgcc.mvars): Remove LIBGCOV.
4722 * libgov.c: Move to ../libgcc.
4723
36a5227d 47242011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4725
4726 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
4727
be8f376f 47282011-07-08 Martin Jambor <mjambor@suse.cz>
4729
4730 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
4731 is too big for total scalarization.
4732
56276963 47332011-07-07 Richard Henderson <rth@redhat.com>
4734
4735 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
4736 (DBX_DEBUGGING_INFO): Undef.
4737
d53ccf7b 47382011-07-07 Richard Henderson <rth@redhat.com>
4739
4740 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
4741 Handle some opcodes specially for debugging.
4742 * print-rtl.c: Include dwarf2out.h
4743 (print_rtx): Handle NOTE_INSN_CFI.
4744 * Makefile.in (print-rtl.o): Update.
4745
fe2dc6d6 47462011-07-07 Richard Henderson <rth@redhat.com>
4747
4748 * tree-pass.h (pass_dwarf2_frame): Declare.
4749 * passes.c (init_optimization_passes): Add it.
4750 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
4751 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
4752 make static, do not call add_cfis_to_fde.
4753 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
4754 dwarf2out_frame_init): Merge into...
4755 (execute_dwarf2_frame): ... here. New function.
4756 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
4757 saved_do_cfi_asm to a tri-state variable.
4758 (gate_dwarf2_frame, pass_dwarf2_frame): New.
4759 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
4760 if it has yet to be done. Don't call dwarf2cfi_function_init.
4761 * dwarf2out.h, debug.h: Update decls.
4762 * final.c (final_start_function): Don't call
4763 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
4764 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
4765 * toplev.c (lang_dependent_init): Likewise.
4766
6033bf11 47672011-07-07 Richard Henderson <rth@redhat.com>
4768
4769 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
4770 FDE_TABLE_INCREMENT): Replace with...
4771 (fde_vec): ... this, a new vector.
4772 (current_fde): Remove. Replace all users with cfun->fde.
4773 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
4774 (size_of_aranges, dwarf2out_finish): Likewise.
4775 (dwarf2out_alloc_current_fde): Break out from ...
4776 (dwarf2out_begin_prologue): ... here.
4777 (dwarf2out_frame_init): Remove.
4778 * dwarf2cfi.c: Update all users of current_fde.
4779 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
4780 * dwarf2out.h: Update decls.
4781 (dw_fde_node): Add fde_index member.
4782 * function.h (struct function): Add fde member.
4783
c746c5c3 47842011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4785 Richard Henderson <rth@redhat.com>
4786
4787 * dwarf2cfi.c (add_cfi): Remove.
4788 (dwarf2out_cfi_label): Remove force argument. Only generate the
4789 label name.
4790 (add_fde_cfi): Simplify the different code paths.
4791 (add_cie_cfi): New.
4792 (old_cfa, old_cfa_remember): New.
4793 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
4794 (last_reg_save_label): Remove.
4795 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
4796 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4797 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4798 dwarf2out_frame_debug_cfa_expression,
4799 dwarf2out_frame_debug_cfa_restore,
4800 dwarf2out_frame_debug_cfa_window_save,
4801 dwarf2out_frame_debug_expr): Remove label parameter.
4802 (cfi_label_required_p, add_cfis_to_fde): New.
4803 (dwarf2out_frame_debug_after_prologue): New.
4804 (dwarf2cfi_frame_init): Initialize old_cfa.
4805 (dwarf2out_frame_debug_restore_state): Likewise.
4806 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
4807 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
4808 * final.c (final_start_function): Call
4809 dwarf2out_frame_debug_after_prologue.
4810
46346a52 48112011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4812 Richard Henderson <rth@redhat.com>
4813
4814 * dwarf2cfi.c (cfi_insn): New.
4815 (dwarf2out_cfi_label): Don't emit cfi label here.
4816 (add_fde_cfi): Create a NOTE_INSN_CFI.
4817 (dwarf2out_frame_debug): Setup cfi_insn.
4818 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
4819 (dwarf2out_cfi_begin_epilogue): Make static.
4820 (dwarf2out_frame_debug_restore_state): Make static.
4821 * dwarf2out.c (output_cfi_directive): Make static.
4822 (dwarf2out_emit_cfi): New.
4823 * dwarf2out.h: Update.
4824 * final.c (final): Remove CFI notes.
4825 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
4826 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
4827 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
4828 * insn-notes.def (NOTE_INSN_CFI): New.
4829 (NOTE_INSN_CFI_LABEL): New.
4830 * rtl.h (union rtunion_def): Add rt_cfi member.
4831 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
4832
dcdf448e 48332011-07-07 Richard Henderson <rth@redhat.com>
4834
4835 * dwarf2cfi.c: New file.
4836 * Makefile.in (OBJS): Add it.
4837 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
4838 * gengtype.c (open_base_files): Include dwarf2out.h.
4839 * coretypes.h (enum var_init_status): Move from ...
4840 * rtl.h: ... here.
4841 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
4842 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
4843 expand_builtin_dwarf_sp_column, init_return_column_size,
4844 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
4845 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
4846 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
4847 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
4848 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
4849 compute_barrier_args_size, dwarf2out_args_size,
4850 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
4851 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
4852 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
4853 queue_reg_save, dwarf2out_flush_queued_reg_saves,
4854 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
4855 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4856 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4857 dwarf2out_frame_debug_cfa_expression,
4858 dwarf2out_frame_debug_cfa_restore,
4859 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
4860 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
4861 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
4862 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
4863 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
4864 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
4865 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
4866 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
4867 dw_loc_descr_node): Move to dwarf2out.h.
4868 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
4869 mem_loc_descriptor): Export.
4870 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
4871 (dwarf2out_frame_init): Extract CIE generation code to
4872 dwarf2cfi_frame_init.
4873
28b9ad8f 48742011-07-07 Eric Botcazou <ebotcazou@adacore.com>
4875
4876 PR target/49660
4877 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
4878 MASK_V8PLUS, remove commented out flag and reorder.
4879
66031ea7 48802011-07-07 Jakub Jelinek <jakub@redhat.com>
4881
4882 PR c/49644
4883 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
4884 one non-complex and one complex argument, call c_save_expr on both
4885 operands.
4886
2f9d66d3 48872011-07-07 Martin Jambor <mjambor@suse.cz>
4888
4889 PR middle-end/49495
4890 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
4891 (verify_cgraph_node): Some functinality moved to
4892 verify_edge_corresponds_to_fndecl, call it.
4893
689a8077 48942011-07-07 Joseph Myers <joseph@codesourcery.com>
4895
4896 * config.gcc (*local*): Remove.
4897 * doc/install-old.texi: Don't mention local configurations.
4898
910dcf9a 48992011-07-07 Jakub Jelinek <jakub@redhat.com>
4900
4901 PR debug/49522
4902 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
4903 referencing debug insns that have been reset.
4904 (dead_debug_insert_before): Don't assert reg is non-NULL,
4905 instead return immediately if it is NULL.
4906
dc13fbf7 49072011-07-07 Joseph Myers <joseph@codesourcery.com>
4908
2fe4965c 4909 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
dc13fbf7 4910
1b727a0a 49112011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4912
4913 * hw-doloop.c: New file.
4914 * hw-doloop.h: New file.
4915 * Makefile.in (OBJS): Add hw-doloop.o.
4916 (hw-doloop.o): New rule.
4917 ($(obj_out_file)): Add hw-doloop.h dependency.
4918 * config/bfin/bfin.c: Include "hw-doloop.h".
4919 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
4920 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
4921 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
4922 type changed to hwloop_info. Return bool, true if the loop was
4923 successfully optimized. Remove code that was moved to
4924 hw-doloop.c, and adjust other parts.
4925 (hwloop_fail): New static function, containing parts that used
4926 to be in bfin_optimize_loop.
4927 (bfin_discover_loop, bfin_discover_loops, free_loops,
4928 bfin_reorder_loops): Remove.
4929 (hwloop_pattern_reg): New static function.
4930 (bfin_doloop_hooks): New variable.
4931 (bfin_reorg_loops): Remove most code, call reorg_loops.
4932 * config/bfin/bfin.md (doloop_end splitter): Also enable if
4933 loop counter is a memory_operand.
4934
596b2ba3 49352011-07-07 H.J. Lu <hongjiu.lu@intel.com>
4936
2fe4965c 4937 * config.gcc: Support --with-multilib-list for x86 Linux targets.
596b2ba3 4938
4939 * configure.ac: Mention x86-64 for --with-multilib-list.
4940 * configure: Regenerated.
4941
4942 * config/i386/gnu-user64.h (SPEC_64): Support x32.
4943 (SPEC_32): Likewise.
4944 (ASM_SPEC): Likewise.
4945 (LINK_SPEC): Likewise.
4946 (TARGET_THREAD_SSP_OFFSET): Likewise.
4947 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
4948 (SPEC_X32): New.
4949
4950 * config/i386/i386.h (TARGET_X32): New.
4951 (TARGET_LP64): New.
4952 (LONG_TYPE_SIZE): Likewise.
4953 (POINTER_SIZE): Likewise.
4954 (POINTERS_EXTEND_UNSIGNED): Likewise.
4955 (OPT_ARCH64): Support x32.
4956 (OPT_ARCH32): Likewise.
4957
4958 * config/i386/i386.opt (mx32): New.
4959
4960 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
4961 (GLIBC_DYNAMIC_LINKERX32): Likewise.
4962 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
4963 (GLIBC_DYNAMIC_LINKERX32): Likewise.
4964
4965 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
4966 (BIONIC_DYNAMIC_LINKERX32): Likewise.
4967 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
4968
4969 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
4970
2fe4965c 4971 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
596b2ba3 4972
4973 * doc/invoke.texi: Document -mx32.
4974
4d2045bb 49752011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
4976
4977 * doc/invoke.texi (mwords-little-endian): Deprecate.
4978 * config/arm/arm.opt (mwords-little-endian): Likewise.
4979 * config/arm/arm.c (arm_option_override): Warn about the deprecation
4980 of -mwords-little-endian.
4981
629bdf62 49822011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
4983
4984 * reload1.c (choose_reload_regs): Use mode sizes to check whether
4985 an old reload register completely defines the required value.
4986
ff174e5c 49872011-07-07 Richard Guenther <rguenther@suse.de>
4988
4989 * fold-const.c (fold_unary_loc): Do not strip sign-changes
4990 for NEGATE_EXPR.
4991
7430df61 49922011-07-07 Richard Guenther <rguenther@suse.de>
4993
4994 * tree-vrp.c (simplify_conversion_using_ranges): New function.
4995 (simplify_stmt_using_ranges): Call it.
4996
41913fa9 49972011-07-07 Kai Tietz <ktietz@redhat.com>
4998
4999 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
5000 (lookup_logical_inverted_value): Likewise.
5001 (simplify_bitwise_binary_1): Likewise.
5002 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
5003
88483769 50042011-07-07 Joseph Myers <joseph@codesourcery.com>
5005
5006 * gcc.c (%[Spec]): Don't document.
5007 (struct spec_list): Update comment.
5008 (do_spec_1): Don't handle %[Spec].
5009 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
5010
393a753d 50112011-07-07 Joseph Myers <joseph@codesourcery.com>
5012
5013 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
5014 default based on TARGET_ASM_NAMED_SECTION.
5015 * common/common-target.def (have_named_sections): Default to true.
5016 * common/config/default-common.c: Don't include tm.h.
5017 * common/config/picochip/picochip-common.c
5018 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
5019 * common/config/m32c/m32c-common.c: Remove.
5020 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
2fe4965c 5021 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5022 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5023 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
393a753d 5024 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
2fe4965c 5025 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5026 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
393a753d 5027
85b059d7 50282011-07-07 Jakub Jelinek <jakub@redhat.com>
5029
5030 PR middle-end/49640
2fe4965c 5031 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
5032 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
85b059d7 5033
1043205d 50342011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5035
5036 PR libmudflap/49550
5037 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
5038
14f27bc6 50392011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5040
5041 PR target/39150
5042 * configure.ac (gcc_cv_as_hidden): Also accept
5043 x86_64-*-solaris2.1[0-9]*.
5044 (gcc_cv_as_cfi_directive): Likewise.
5045 (gcc_cv_as_comdat_group_group): Likewise.
5046 (set_have_as_tls): Likewise.
5047 * configure: Regenerate.
5048 * config.gcc (i[34567]86-*-solaris2*): Also handle
5049 x86_64-*-solaris2.1[0-9]*.
5050 * config.host (i[34567]86-*-solaris2*): Likewise.
5051 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
5052 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
5053 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
5054 (TARGET_LD_EMULATION): Use it.
5055 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
5056 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
5057 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
5058 (ASM_CPU64_DEFAULT_SPEC): Define.
5059 (ASM_CPU_SPEC): Use %(asm_cpu_default).
5060 (ASM_SPEC): Redefine.
5061 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
5062 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
2fe4965c 5063 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
14f27bc6 5064 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
5065 configuration.
5066 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
5067
cc3f74e8 50682011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5069
5070 * config/sol2.h (ASM_SPEC): Split into ...
5071 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
5072 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
5073 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
5074 (ASM_SPEC): Use ASM_SPEC_BASE.
5075 * config/sparc/sol2.h (ASM_SPEC): Redefine.
5076
9ce2d202 50772011-07-07 Georg-Johann Lay <avr@gjlay.de>
2fe4965c 5078
9ce2d202 5079 * config/avr/avr.md (*reload_insi): Change predicate #1 to
5080 const_int_operand. Ditto for peep2 producing this insn.
5081 Add argument to output_reload_insisf call.
5082 (*movsi,*movsf): Add argument to output_movsisf call.
5083 (*reload_insf): New insn and new peep2 to produce it.
5084 * config/avr/avr-protos.h (output_movsisf): Change prototype.
5085 (output_reload_insisf): Change prototype.
5086 * config/avr/avr.c (avr_asm_len): New function.
5087 (output_reload_insisf): Rewrite.
5088 (output_movsisf): Change prototype. output_reload_insisf for
5089 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
5090 (adjust_insn_length): Add argument to output_movsisf and
5091 output_reload_insisf call.
5092
b537bfdb 50932011-07-07 Bernd Schmidt <bernds@codesourcery.com>
5094
5095 * emit-rtl.c (paradoxical_subreg_p): New function.
5096 * rtl.h (paradoxical_subreg_p): Declare.
5097 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
5098 apply_distributive_law, simplify_comparison, simplify_set): Use it.
5099 * cse.c (record_jump_cond, cse_insn): Likewise.
5100 * expr.c (force_operand): Likewise.
5101 * rtlanal.c (num_sign_bit_copies1): Likewise.
5102 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
5103 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
5104 (push_reload): Use precision to check for paradoxical subregs.
5105 * expmed.c (extract_bit_field_1): Likewise.
5106
f179ee60 5107 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
5108 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
5109 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
5110 simplify_set, simplify_logical, expand_compound_operation,
5111 make_extraction, force_to_mode, if_then_else_cond, extended_count,
5112 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
5113 record_value_for_reg): Likewise.
5114 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
5115 * simplify-rtx. c (simplify_unary_operation_1,
5116 simplify_binary_operation_1, simplify_const_relational_operation):
5117 Likewise.
5118
ded805e6 5119 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
5120 instead of GET_MODE_BITSIZE where appropriate.
5121 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
5122 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
5123 init_num_sign_bit_copies_in_rep): Likewise.
5124 * cse.c (fold_rtx, cse_insn): Likewise.
5125 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
5126 * simplify-rtx.c (simplify_unary_operation_1,
5127 simplify_const_unary_operation, simplify_binary_operation_1,
5128 simplify_const_binary_operation, simplify_ternary_operation,
5129 simplify_const_relational_operation, simplify_subreg): Likewise.
5130 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
5131 simplify_if_then_else, simplify_set, expand_compound_operation,
5132 expand_field_assignment, make_extraction, if_then_else_cond,
5133 make_compound_operation, force_to_mode, make_field_assignment,
5134 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
5135 extended_count, try_widen_shift_mode, simplify_shift_const_1,
5136 simplify_comparison, record_promoted_value, simplify_compare_const,
5137 record_dead_and_set_regs_1): Likewise.
5138
b3003238 5139 Revert:
5140 * simplify-rtx.c (simplify_const_binary_operation): Use the
2fe4965c 5141 shift_truncation_mask hook instead of performing modulo by width.
5142 Compare against mode precision, not bitsize.
b3003238 5143 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2fe4965c 5144 Use shift_truncation_mask instead of constructing the value manually.
b3003238 5145
e2502ff1 51462011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
5147
5148 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
5149 declaration.
5150 (rs6000_save_toc_in_prologue_p): Ditto.
5151
5152 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
5153 up the static chain (r11) during indirect function calls.
5154 (-msave-toc-indirect): New undocumented debug switch.
5155
5156 * config/rs6000/rs6000.c (struct machine_function): Add
5157 save_toc_in_prologue field to note whether the prologue needs to
5158 save the TOC value in the reserved stack location.
5159 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
5160 to save the TOC in the prologue, do so.
5161 (rs6000_trampoline_init): Don't allow creating AIX style
5162 trampolines if -mno-r11 is in effect.
5163 (rs6000_call_indirect_aix): New function to create AIX style
5164 indirect calls, adding support for -mno-r11 to suppress loading
5165 the static chain, and saving the TOC in the prologue instead of
5166 the call body.
5167 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
5168 TOC in the prologue.
5169
5170 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
5171 register numbers.
5172 (TOC_REGNUM): Ditto.
5173 (STATIC_CHAIN_REGNUM): Ditto.
5174 (ARG_POINTER_REGNUM): Ditto.
5175 (SFP_REGNO): Delete, unused.
5176 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
5177 function descriptor offsets.
5178 (TOC_SAVE_OFFSET_64BIT): Ditto.
5179 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
5180 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
5181 (AIX_FUNC_DESC_SC_32BIT): Ditto.
5182 (AIX_FUNC_DESC_SC_64BIT): Ditto.
2fe4965c 5183 (ptrload): New mode attribute for the appropriate load of a pointer.
5184 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
e2502ff1 5185 (call_indirect_aix64): Ditto.
5186 (call_value_indirect_aix32): Ditto.
5187 (call_value_indirect_aix64): Ditto.
5188 (call_indirect_nonlocal_aix32_internal): Ditto.
5189 (call_indirect_nonlocal_aix32): Ditto.
5190 (call_indirect_nonlocal_aix64_internal): Ditto.
5191 (call_indirect_nonlocal_aix64): Ditto.
5192 (call): Rewrite AIX indirect function calls. Add support for
5193 eliminating the static chain, and for moving the save of the TOC
5194 to the function prologue.
5195 (call_value): Ditto.
5196 (call_indirect_aix<ptrsize>): Ditto.
5197 (call_indirect_aix<ptrsize>_internal): Ditto.
5198 (call_indirect_aix<ptrsize>_internal2): Ditto.
5199 (call_indirect_aix<ptrsize>_nor11): Ditto.
5200 (call_value_indirect_aix<ptrsize>): Ditto.
5201 (call_value_indirect_aix<ptrsize>_internal): Ditto.
5202 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5203 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5204 (call_nonlocal_aix32): Relocate in the rs6000.md file.
5205 (call_nonlocal_aix64): Ditto.
5206
5207 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
5208 -mno-r11 documentation.
5209
f3b11bf1 52102011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
5211
5212 PR other/49658
5213 * doc/extend.texi (Compound Literals): Fix typo.
5214
9c8421d8 52152011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
5216
2fe4965c 5217 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
9c8421d8 5218
7fed55f3 52192011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
5220
5221 * configure.ac (plugin-version.h): Generate
5222 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
5223 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
5224 macros.
5225
5226 * configure: Regenerate.
5227
5228 * doc/plugins.texi (Building GCC plugins): Mention
5229 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
5230
396f2130 52312011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5232
5233 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
5234 * combine.c (make_extraction, gen_lowpart_or_truncate,
5235 apply_distributive_law, simplify_comparison,
5236 reg_truncated_to_mode, record_truncated_value): Use it.
5237 * cse.c (notreg_cost): Likewise.
5238 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
5239 * expr.c (convert_move, convert_modes): Likewise.
5240 * optabs.c (expand_binop, expand_unop): Likewise.
5241 * postreload.c (move2add_last_label): Likewise.
5242 * regmove.c (optimize_reg_copy_3): Likewise.
5243 * rtlhooks.c (gen_lowpart_general): Likewise.
5244 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5245
b60af16f 52462011-07-06 Joseph Myers <joseph@codesourcery.com>
5247
5248 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
5249
f92430e0 52502011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5251
5252 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
5253 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
5254 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
5255 (simplify_const_unary_operation, simplify_binary_operation_1,
2fe4965c 5256 simplify_const_binary_operation, simplify_const_relational_operation):
5257 Use them. Use GET_MODE_MASK for masking and sign-extensions.
f92430e0 5258 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
5259 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
5260 simplify_shift_const_1, simplify_comparison): Likewise.
5261 * expr.c (convert_modes): Likewise.
5262 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
2fe4965c 5263 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
f92430e0 5264 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
5265
e4b69506 5266 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
5267
2be90eed 52682011-07-06 Richard Guenther <rguenther@suse.de>
5269
5270 PR tree-optimization/49645
5271 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
5272 register variables.
5273 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
5274 in type qualification here ...
5275 (copy_reference_ops_from_ref): ... not here.
5276 (vn_reference_lookup_3): ... or here.
5277 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
5278 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
5279
c2ac7afd 52802011-07-06 Ian Lance Taylor <iant@google.com>
5281
5282 * doc/install.texi (Configuration): It's
5283 --enable-gnu-indirect-function, not --enable-indirect-function.
5284
6f061208 52852011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5286
5287 * simplify-rtx.c (simplify_const_binary_operation): Use the
2fe4965c 5288 shift_truncation_mask hook instead of performing modulo by width.
5289 Compare against mode precision, not bitsize.
6f061208 5290 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
2fe4965c 5291 Use shift_truncation_mask instead of constructing the value manually.
6f061208 5292
321583cb 52932011-07-06 H.J. Lu <hongjiu.lu@intel.com>
5294
5295 PR middle-end/47383
5296 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
5297 address computation and convert to address_mode if needed.
5298
c38a75b7 52992011-07-06 Richard Guenther <rguenther@suse.de>
5300
5301 * tree.c (build_common_tree_nodes_2): Merge with
5302 build_common_tree_nodes.
5303 * tree.h (build_common_tree_nodes): Adjust prototype.
5304 (build_common_tree_nodes_2): Remove.
5305 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
5306 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
5307
7e49f1a1 53082011-07-05 Jakub Jelinek <jakub@redhat.com>
5309
5310 PR tree-optimization/49618
5311 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
5312 t recurse on the decl.
5313 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
5314 return true if expr isn't known to be defined in current
5315 TU or some other LTO partition.
5316
7e0c8808 53172011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
5318
5319 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
5320 override CASE_VALUES_THRESHOLD.
5321
5322 * stmt.c (toplevel): Include params.h.
5323 (case_values_threshold): Use the --param case-values-threshold
5324 value if non-zero, otherwise use machine dependent value.
5325 (expand_case): Use case_values_threshold.
5326
5327 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
5328
5329 * doc/invoke.texi (--param case-values-threshold): Document.
5330
7a73b217 53312011-07-05 Richard Henderson <rth@redhat.com>
5332
5333 * dwarf2out.c (dwarf2out_cfi_label): Make static.
5334 (dwarf2out_flush_queued_reg_saves): Make static.
5335 (dwarf2out_reg_save): Remove.
5336 (dwarf2out_return_save): Remove.
5337 (dwarf2out_return_reg): Remove.
5338 (dwarf2out_reg_save_reg): Remove.
5339 (dwarf2out_def_cfa): Merge into ...
5340 (dwarf2out_frame_init): ... here.
5341 * dwarf2out.h, tree.h: Remove declarations as necessary.
5342
19641ccb 53432011-07-05 Richard Henderson <rth@redhat.com>
5344
42198dc2 5345 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
5346 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5347 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
5348 the alloc insn.
5349
8b2d95d2 5350 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
5351 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
5352 (process_epilogue): Don't call dwarf2out_def_cfa.
5353
4a5b1b88 5354 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
5355 indicate the return address save.
5356 (process_cfa_register): Likewise.
5357
dd5e3746 5358 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
5359 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
5360
19641ccb 5361 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
5362 for ar.pfs save at alloc insn.
5363
07216fdf 53642011-07-05 Richard Henderson <rth@redhat.com>
5365
5366 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
5367 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5368 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
5369 stack pointer save.
5370 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
5371 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
5372 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
5373 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
5374
e1c4f0fb 53752011-07-05 Richard Henderson <rth@redhat.com>
5376
5377 * config/vax/vax.md (define_c_enum unspecv): New. Define the
5378 VUNSPEC_* constants here instead of via define_constants.
5379 (VUNSPEC_PEM): New constant.
5380 (procedure_entry_mask): New insn.
5381 (prologue): New expander.
5382 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
5383 (vax_expand_prologue): Rename from vax_output_function_prologue;
5384 emit rtl instead of text.
5385 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
5386 (print_operand): Add 'x' prefix.
5387
5e050fa1 53882011-07-05 H.J. Lu <hongjiu.lu@intel.com>
5389
5390 PR middle-end/47715
5391 * calls.c (precompute_register_parameters): Promote the function
5392 argument before checking non-legitimate constant.
5393
a6ccb398 53942011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5395
5396 PR tree-optimization/47654
5397 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
5398 (lst_do_strip_mine_loop): Return an int.
5399 (lst_do_strip_mine): Same.
5400 (scop_do_strip_mine): Same.
5401 (scop_do_block): Loop blocking should strip-mine at least two loops.
5402 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
5403 (scop_do_interchange): Same.
5404 * graphite-poly.h (scop_do_interchange): Update declaration.
5405 (scop_do_strip_mine): Same.
5406
75663c96 54072011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5408
5409 * graphite-clast-to-gimple.c (precision_for_value): Removed.
5410 (precision_for_interval): Removed.
5411 (gcc_type_for_interval): Use mpz_sizeinbase.
5412
679a3ec7 54132011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5414
5415 * graphite-ppl.h (value_max): Correct computation of max.
5416
451d3b40 54172011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5418
5419 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
5420
e593356b 54212011-07-05 Richard Guenther <rguenther@suse.de>
5422
5423 * c-decl.c (c_init_decl_processing): Defer building common
5424 tree nodes to c_common_nodes_and_builtins.
5425
2a556654 54262011-07-05 Razya Ladelsky <razya@il.ibm.com>
5427
5428 PR tree-optimization/49580
2fe4965c 5429 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
2a556654 5430 the loop's number of iterations.
2fe4965c 5431 * tree-parloops.c (transform_to_exit_first_loop): Add the
5432 handling of the loop's number of iterations before the call
2a556654 5433 to gimple_duplicate_sese_tail.
55c768a2 5434 Insert the stmt caclculating the new rhs of the loop's
2a556654 5435 condition stmt to the preheader instead of iters_bb.
5436
3014ed2c 54372011-07-05 H.J. Lu <hongjiu.lu@intel.com>
5438
5439 PR rtl-optimization/47449
5440 * fwprop.c (forward_propagate_subreg): Don't propagate hard
5441 register nor zero/sign extended hard register.
5442
b04940e7 54432011-07-05 Richard Guenther <rguenther@suse.de>
5444
5445 PR tree-optimization/49518
5446 PR tree-optimization/49628
5447 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
5448 irrelevant and invariant data-references.
5449 (vect_analyze_data_ref_access): For invariant loads clear the
5450 group association.
5451
824651eb 54522011-07-04 Jakub Jelinek <jakub@redhat.com>
5453
9a1ba33e 5454 PR rtl-optimization/49619
5455 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
5456 pass VOIDmode as op0_mode to recursive call, and return temp even
5457 when different from tor, just if it is not IOR of the original
5458 PLUS arguments.
5459
0ed407e4 5460 PR rtl-optimization/49472
5461 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
5462 negating MULT, negate the second operand instead of first.
5463 (simplify_binary_operation_1) <case MULT>: If one operand is
2fe4965c 5464 a NEG and the other is MULT, don't attempt to optimize by negation
5465 of the MULT operand if it only moves the NEG operation around.
0ed407e4 5466
824651eb 5467 PR debug/49602
5468 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
5469 get_current_def return value if it can't be trusted to be
5470 the current value of the variable in the current bb.
5471
c57e3563 54722011-07-04 Uros Bizjak <ubizjak@gmail.com>
5473
5474 PR target/49600
5475 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
5476 general register to memory for !TARGET_INTER_UNIT_MOVES.
5477
c47985a0 54782011-07-04 Georg-Johann Lay <avr@gjlay.de>
5479
5480 PR target/44643
5481 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
5482 instead of TREE_READONLY.
5483
12596ea7 54842011-07-04 Georg-Johann Lay <avr@gjlay.de>
5485
5486 * doc/extend.texi (AVR Built-in Functions): Update documentation
5487 of __builtin_avr_fmul*.
c57e3563 5488 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
12596ea7 5489 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
5490 * config/avr/avr.md (fmul): Rename to fmul_insn.
5491 (fmuls): Rename to fmuls_insn.
5492 (fmulsu): Rename to fmulsu_insn.
5493 (fmul,fmuls,fmulsu): New expander.
5494 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
5495 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
5496 * config/avr/libgcc.S (__fmul): New function.
5497 (__fmuls): New function.
5498 (__fmulsu,__fmulsu_exit): New function.
5499
bd9ba7ad 55002011-07-04 Richard Guenther <rguenther@suse.de>
5501
5502 PR tree-optimization/49615
5503 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
5504 basic-block index check.
5505
934ca5fd 55062011-07-04 Georg-Johann Lay <avr@gjlay.de>
5507
5508 * longlong.h (count_leading_zeros, count_trailing_zeros,
5509 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
5510 resp. 64.
5511
aada78b6 55122011-07-03 Ira Rosen <ira.rosen@linaro.org>
5513
5514 PR tree-optimization/49610
5515 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
5516 a basic block.
5517
5bf971ee 55182011-07-02 Eric Botcazou <ebotcazou@adacore.com>
5519 Olivier Hainque <hainque@adacore.com>
5520 Nicolas Setton <setton@adacore.com>
5521
5522 * tree.h (TYPE_ARTIFICIAL): New flag.
5523 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
5524 the DIE of the type if it is artificial.
5525 (gen_array_type_die): Likewise.
5526 (gen_enumeration_type_die): Likewise.
5527 (gen_struct_or_union_type_die): Likewise.
5528 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
5529 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
5530
9373e454 55312011-07-01 Jakub Jelinek <jakub@redhat.com>
5532
5533 * tree-object-size.c (pass_through_call): Handle
5534 BUILT_IN_ASSUME_ALIGNED.
5535
ff9029e2 55362011-07-01 Martin Jambor <mjambor@suse.cz>
5537
5538 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
5539
21dc8b2b 55402011-07-01 H.J. Lu <hongjiu.lu@intel.com>
5541
5542 PR middle-end/48016
5543 * explow.c (update_nonlocal_goto_save_area): Use proper mode
5544 for stack save area.
5545 * function.c (expand_function_start): Likewise.
5546
66b400f9 55472011-07-01 Richard Guenther <rguenther@suse.de>
5548
5549 PR middle-end/49596
5550 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
5551 may have unknown refs.
5552
105fc895 55532011-07-01 Kai Tietz <ktietz@redhat.com>
5554
5555 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
5556
7b160af0 55572011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5558
5559 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
5560 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
5561 (Specific, mips-sgi-irix6): Likewise.
5562
f796b57e 55632011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5564
5565 PR libmudflap/49549
5566 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
5567
fe1fdd37 55682011-07-01 Jakub Jelinek <jakub@redhat.com>
5569
5570 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
5571 [idx]= and [idx1 ... idx2]= before initializers if needed for
5572 array initializers.
5573
8988d424 55742011-07-01 Chen Liqin <liqin.gcc@gmail.com>
5575
5576 * config.gcc (score-*-elf): Remove score7.o.
5577 * config/score/t-score-elf: Likewise.
5578 * config/score/score.c: Merge score7 to score.c and
5579 remove forwarding functions.
5580 * config/score/score7.c: Deleted.
5581 * config/score/score7.h: Deleted.
5582
22be5c85 55832011-07-01 Richard Guenther <rguenther@suse.de>
5584
5585 PR tree-optimization/49603
c57e3563 5586 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
22be5c85 5587
c27041c0 55882011-06-30 Martin Jambor <mjambor@suse.cz>
5589
5590 * tree-sra.c (struct access): Rename total_scalarization to
5591 grp_total_scalarization
5592 (completely_scalarize_var): New function.
5593 (sort_and_splice_var_accesses): Set total_scalarization in the
5594 representative access.
5595 (analyze_access_subtree): Propagate total scalarization accross the
5596 tree, no holes in totally scalarized trees, simplify coverage
5597 computation.
5598 (analyze_all_variable_accesses): Call completely_scalarize_var instead
5599 of completely_scalarize_record.
5600
6d33b762 56012011-06-30 Richard Henderson <rth@redhat.com>
5602
5603 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
5604 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
5605 * config/i386/i386.c: Don't include dwarf2out.h.
5606 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
5607 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
5608 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
5609 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
5610 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
5611
ae237de7 56122011-06-30 Richard Henderson <rth@redhat.com>
5613
5614 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
5615 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5616 * final.c (final_scan_insn): Look for it, and invoke
5617 dwarf2out_frame_debug before the insn if found.
5618
61ff493e 56192011-06-30 Richard Henderson <rth@redhat.com>
5620
5621 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
5622 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
5623
1fb0df80 56242011-06-30 Richard Henderson <rth@redhat.com>
5625
5626 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
5627 Define a vector of this type.
5628 (regs_saved_in_regs): Use a VEC.
5629 (num_regs_saved_in_regs): Remove.
5630 (compare_reg_or_pc): New.
5631 (record_reg_saved_in_reg): Split out from...
5632 (dwarf2out_flush_queued_reg_saves): ... here.
5633 (clobbers_queued_reg_save): Update for VEC.
5634 (reg_saved_in): Likewise.
5635 (dwarf2out_frame_debug_init): Likewise.
5636 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
5637 (dwarf2out_frame_debug_cfa_register): Likewise.
5638
6140195d 56392011-06-30 Eric Botcazou <ebotcazou@adacore.com>
5640
5641 PR tree-optimization/49572
5642 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
5643 type of the RHS instead of that of the LHS for the expression type.
5644
61eae24d 56452011-06-30 Eric Botcazou <ebotcazou@adacore.com>
5646
5647 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
5648 unconditionally.
5649
841e98fa 56502011-06-30 Richard Guenther <rguenther@suse.de>
5651
5652 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
5653 * tree-ssa-structalias.c (create_variable_info_for): Do not
5654 add initial constraints for non-var-decls. Properly handle
5655 globals in other ltrans partitions.
5656 (intra_create_variable_infos): Manually create constraints for
5657 the fake no-alias parameter.
5658 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
5659 and assert there are no clones.
5660
b5ba3316 56612011-06-30 Richard Guenther <rguenther@suse.de>
5662
5663 PR tree-optimization/46787
5664 * tree-data-ref.c (dr_address_invariant_p): Remove.
5665 (find_data_references_in_stmt): Invariant accesses are ok now.
c57e3563 5666 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
b5ba3316 5667 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
5668 invariant loads.
5669
9a6e4cc1 56702011-06-30 Martin Jambor <mjambor@suse.cz>
5671
5672 PR tree-optimization/49094
5673 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
5674 (build_accesses_from_assign): Use it.
5675
6a231230 56762011-06-30 Jakub Jelinek <jakub@redhat.com>
5677
da923e9c 5678 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5679 handling of BUILT_IN_ASSUME_ALIGNED.
5680
6a231230 5681 PR debug/49364
5682 * dwarf2out.c (output_abbrev_section): Don't return early
5683 if abbrev_die_table_in_use is 1.
5684 (dwarf2out_finish): Instead don't call output_abbrev_section
5685 nor emit abbrev_section_label in that case.
5686
06b7f22d 56872011-06-30 Nick Clifton <nickc@redhat.com>
5688
5689 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
5690 for the V850E.
5691
c53a3b4b 56922011-06-30 Jakub Jelinek <jakub@redhat.com>
5693
5694 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5695 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
5696
8bf58742 56972011-06-30 Ira Rosen <ira.rosen@linaro.org>
5698
5699 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
5700 both pattern and original statements if necessary.
5701 (vect_transform_loop): Likewise.
5702 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
5703 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
5704 Mark the pattern statement only if the original statement doesn't
5705 have its own uses.
5706 (process_use): Call vect_mark_relevant with additional parameter.
5707 (vect_mark_stmts_to_be_vectorized): Likewise.
5708 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
5709 (vect_analyze_stmt): Handle both pattern and original statements
5710 if necessary.
5711 (vect_transform_stmt): Don't store vectorized pattern statement
5712 in the original statement.
5713 (vect_is_simple_use_1): Use related pattern statement only if the
5714 original statement is irrelevant.
5715 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
5716
61eae24d 57172011-06-29 Changpeng Fang <changpeng.fang@amd.com>
2aba8c96 5718
61eae24d 5719 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
5720 option.
5721 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
5722 entry.
2aba8c96 5723 (TARGET_AVX128_OPTIMAL): New definition.
5724 * config/i386/i386.c (initial_ix86_tune_features): Initialize
5725 X86_TUNE_AVX128_OPTIMAL entry.
5726 (ix86_option_override_internal): Enable the generation
5727 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
5728 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
5729 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
5730
32cdcc42 57312011-06-29 Eric Botcazou <ebotcazou@adacore.com>
5732
5733 PR tree-optimization/49539
5734 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
5735 names by means of stmt_references_abnormal_ssa_name.
5736 (associate_plusminus): Call can_propagate_from before propagating
5737 from definition statements.
5738 (ssa_forward_propagate_and_combine): Remove superfluous newline.
5739
487a9bc1 57402011-06-29 Richard Guenther <rguenther@suse.de>
5741
5742 * doc/invoke.texi: Document -scev dump modifier.
5743 * tree-pass.h (TDF_SCEV): New dump flag.
5744 * tree-dump.c (dump_option_value_in): Add scev.
5745 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
5746 * tree-scalar-evolution.c: Likewise.
5747
bed2e260 57482011-06-29 Nathan Sidwell <nathan@codesourcery.com>
5749
5750 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
5751 (cxa_type_match): Correct declaration.
c57e3563 5752 (__gnu_unwind_pr_common): Reconstruct additional indirection
5753 when __cxa_type_match returns succeeded_with_ptr_to_base.
bed2e260 5754
41356f5a 57552011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5756
5757 PR rtl-optimization/49114
5758 * reload.c (struct replacement): Remove SUBREG_LOC member.
5759 (push_reload): Do not set it.
5760 (push_replacement): Likewise.
5761 (subst_reload): Remove dead code.
5762 (copy_replacements): Remove assertion.
5763 (copy_replacements_1): Do not handle SUBREG_LOC.
5764 (move_replacements): Likewise.
5765 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
5766 Detect subregs via recursive descent instead of via SUBREG_LOC.
5767
abf2a68d 57682011-06-29 Georg-Johann Lay <avr@gjlay.de>
c57e3563 5769
abf2a68d 5770 * config/avr/avr.c (avr_encode_section_info): Dispatch to
5771 default_encode_section_info.
5772
0d8f7716 57732011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
5774
5775 PR tree-optimization/49545
5776 * builtins.c (get_object_alignment_1): Update function comment.
5777 Do not use DECL_ALIGN for functions, but test
5778 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
5779 * fold-const.c (get_pointer_modulus_and_residue): Don't check
5780 for functions here.
5781 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5782
7b07f8e5 57832011-06-29 Jakub Jelinek <jakub@redhat.com>
5784
5785 PR debug/49567
c57e3563 5786 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
5787 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
7b07f8e5 5788
b44e24e6 57892011-06-29 Georg-Johann Lay <avr@gjlay.de>
c57e3563 5790
b44e24e6 5791 PR target/34734
c57e3563 5792 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
b44e24e6 5793 about uninitialized data attributed 'progmem' from here...
5794 (avr_encode_section_info): ...to this new function.
5795 (TARGET_ENCODE_SECTION_INFO): New define.
5796 (avr_section_type_flags): For data in ".progmem.data", remove
5797 section flag SECTION_WRITE.
5798
8e8584fd 57992011-06-29 Georg-Johann Lay <avr@gjlay.de>
c57e3563 5800
8e8584fd 5801 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
5802 _xmulhisi3_exit.
5803 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
5804 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
5805 (__umulhisi3): Ditto.
5806 * config/avr/avr.md (mulhisi3): New insn expender.
5807 (umulhisi3): New insn expender.
5808 (*mulhisi3_call): New insn.
5809 (*umulhisi3_call): New insn.
5810
41b4dba1 58112011-06-28 Joseph Myers <joseph@codesourcery.com>
5812
5813 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
5814
bff379da 58152011-06-28 Richard Henderson <rth@redhat.com>
5816
5817 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
5818 all code and arguments that handled pushes. Update all callers.
5819
7571d3f7 58202011-06-28 Richard Henderson <rth@redhat.com>
5821
5822 * config/arm/arm.c (arm_output_function_prologue): Don't call
5823 thumb1_output_function_prologue.
5824 (arm_expand_prologue): Avoid dead store.
5825 (number_of_first_bit_set): Use ctz_hwi.
5826 (thumb1_emit_multi_reg_push): New.
5827 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
5828 to emit the entire prologue as rtl.
5829 (thumb1_output_interwork): Split out from
5830 thumb1_output_function_prologue.
5831 (thumb1_output_function_prologue): Remove.
5832 (arm_attr_length_push_multi): Handle thumb1.
5833 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
5834 (prologue_thumb1_interwork): New.
5835 (*push_multi): Allow thumb1; use push_mult_memory_operand.
5836 * config/arm/predicates.md (push_mult_memory_operand): New.
5837
0e2a34c6 58382011-06-28 Eric Botcazou <ebotcazou@adacore.com>
5839
5840 * config/sparc/sync.md (*stbar): Delete.
5841 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
5842
f387b493 58432011-06-28 Eric Botcazou <ebotcazou@adacore.com>
5844
5845 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
5846
94bbf495 58472011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5848
5849 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
5850 (TARGET_64BIT_DEFAULT): Define.
5851 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
5852 of tm_file.
5853 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
5854
90336809 58552011-06-28 Joseph Myers <joseph@codesourcery.com>
5856
5857 * common.opt (in_lto_p): New Variable entry.
5858 * flags.h (in_lto_p): Move to common.opt.
5859 * gcc.c: Include params.h.
5860 (set_option_handlers): Also use common_handle_option and
5861 target_handle_option.
c57e3563 5862 (main): Call global_init_params, finish_params and init_options_struct.
90336809 5863 * opts.c (debug_type_names): Move from toplev.c.
5864 (print_filtered_help): Access quiet_flag through opts pointer.
c57e3563 5865 (common_handle_option): Return early in the driver for some options.
5866 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
5867 opts pointer.
90336809 5868 * toplev.c (in_lto_p): Move to common.opt.
5869 (debug_type_names): Move to opts.c.
5870 * Makefile.in (OBJS): Remove opts.o.
5871 (OBJS-libcommon-target): Add opts.o.
5872 (gcc.o): Update dependencies.
5873
25ce0d90 58742011-06-28 Kai Tietz <ktietz@redhat.com>
5875
c57e3563 5876 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
25ce0d90 5877
9513f46e 58782011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5879
5880 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
5881 with '=' constraint modifier.
5882 (*divdf3_vfp): Likewise.
5883 ("*mulsf3_vfp"): Likewise.
5884 ("*muldf3_vfp"): Likewise.
5885 ("*mulsf3negsf_vfp"): Likewise.
5886 ("*muldf3negdf_vfp"): Likewise.
5887
1710ebef 58882011-06-28 Nick Clifton <nickc@redhat.com>
5889
5890 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
5891 relaxation when performing an incremental link.
5892
0ec31268 58932011-06-28 Kai Tietz <ktietz@redhat.com>
5894
5895 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
5896 within BB from last to first.
5897
808674b1 58982011-06-28 Joseph Myers <joseph@codesourcery.com>
5899
5900 * genattr-common.c: New. Based on genattr.c.
5901 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
5902 (MOSTLYCLEANFILES): Add insn-attr-common.h.
5903 (opts.o): Update dependencies.
5904 (.PRECIOUS): Add insn-attr-common.h.
5905 (simple_rtl_generated_h): Add insn-attr-common.h.
5906 (build/genattr-common.o): New.
5907 (genprogrtl): Add attr-common.
5908 * genattr.c (main): Include insn-attr-common.h. Don't generate
5909 definitions of DELAY_SLOTS or INSN_SCHEDULING.
c57e3563 5910 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
808674b1 5911
21440ca3 59122011-06-28 Georg-Johann Lay <avr@gjlay.de>
5913
1710ebef 5914 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
21440ca3 5915 avr-*-* and avr-*-rtems* targets.
1710ebef 5916
21440ca3 5917 * config/avr/elf.h: New file.
5918 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
5919 (TARGET_ASM_SELECT_SECTION): Define.
5920 (INIT_SECTION_ASM_OP): Undefine.
5921 (FINI_SECTION_ASM_OP): Undefine.
5922 (READONLY_DATA_SECTION_ASM_OP): Undefine.
5923 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
5924 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
5925 * config/avr/avr.h:
5926 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
5927 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
5928 (MAX_OFILE_ALIGNMENT): Move to elf.h.
5929 (STRING_LIMIT): Move to elf.h.
5930 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
5931 (ASM_DECLARE_OBJECT_NAME): Remove.
5932 (ESCAPES): Remove.
5933 (ASM_OUTPUT_SKIP): Remove.
5934 (DWARF2_DEBUGGING_INFO): Remove.
5935 (OBJECT_FORMAT_ELF): Remove.
5936 (USER_LABEL_PREFIX): Remove.
5937 (ASM_OUTPUT_EXTERNAL): Remove.
5938 (ASM_OUTPUT_ASCII): Remove.
5939 (TYPE_ASM_OP): Remove.
5940 (SIZE_ASM_OP): Remove.
5941 (WEAK_ASM_OP): Remove.
5942 (STRING_ASM_OP): Remove.
5943 (SET_ASM_OP): Remove.
5944 (ASM_WEAKEN_LABEL): Remove.
5945 (TYPE_OPERAND_FMT): Remove.
5946 (ASM_DECLARE_FUNCTION_SIZE): Remove.
5947 (ASM_FINISH_DECLARE_OBJECT): Remove.
5948 (NO_DOLLAR_IN_LABEL): Remove.
5949 (ASM_GENERATE_INTERNAL_LABEL): Remove.
5950 (ASM_OUTPUT_CASE_LABEL): Remove.
5951 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
5952 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
5953 (gas_output_ascii): Remove.
5954 (gas_output_limited_string): Remove.
5955 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
5956 * config/avr/avr-protos.h
5957 (gas_output_ascii): Remove prototye.
5958 (gas_output_limited_string): Remove prototype.
5959
4f560079 59602011-06-27 Richard Earnshaw <rearnsha@arm.com>
5961
5962 PR target/48637
5963 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
5964 asm operands.
5965
f224bf89 59662011-06-27 Jan Hubicka <jh@suse.cz>
5967
f387b493 5968 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
5969 node instead of references in node.
f224bf89 5970
044f30d8 59712011-06-27 Richard Henderson <rth@redhat.com>
5972
5973 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
5974 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
5975 inside ifdef.
5976
ada07b0d 59772011-06-27 Jakub Jelinek <jakub@redhat.com>
5978
a68f7a8d 5979 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
5980
fca0886c 5981 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
5982 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
5983 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
5984 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
5985 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
5986 (evaluate_stmt, execute_fold_all_builtins): Handle
5987 BUILT_IN_ASSUME_ALIGNED.
5988 * tree-ssa-dce.c (propagate_necessity): Likewise.
5989 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5990 call_may_clobber_ref_p_1): Likewise.
5991 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
5992 (expand_builtin_assume_aligned): New function.
5993 * doc/extend.texi (__builtin_assume_aligned): Document.
5994
ada07b0d 5995 PR debug/49544
5996 * cselib.c (promote_debug_loc): If cselib_preserve_constants
5997 and l has two DEBUG_INSN owned locs instead of just one, adjust
5998 the second location's setting_insn too.
5999
589807f4 60002011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6001
6002 PR libmudflap/38738
6003 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
6004
71438495 60052011-06-27 Nick Clifton <nickc@redhat.com>
6006
c57e3563 6007 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
6008 bit position of highest bit set into a count of the high zero bits.
71438495 6009
21c932b9 60102011-06-27 Eric Botcazou <ebotcazou@adacore.com>
6011
6012 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
6013
6dc056e4 60142011-06-27 Eric Botcazou <ebotcazou@adacore.com>
6015
6016 PR lto/48492
6017 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
6018 to a NULL parent.
6019
10392c0e 60202011-06-27 Richard Guenther <rguenther@suse.de>
6021
6022 PR tree-optimization/49394
6023 * passes.c (execute_one_pass): Restore current_pass after
6024 applying IPA transforms.
6025
0f09ed00 60262011-06-27 Kai Tietz <ktietz@redhat.com>
6027
6028 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
6029 out of type precision after operation.
c57e3563 6030 (find_bswap): Take for limit value the integer auto-promotion
6031 into account.
0f09ed00 6032
2bb76f12 60332011-06-27 Eric Botcazou <ebotcazou@adacore.com>
6034
6035 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
6036 forward scan as well.
6037
ded97e77 60382011-06-27 Tristan Gingold <gingold@adacore.com>
6039
6040 PR target/44241
6041 * config/vms/vms-protos.h: New file.
6042 * config/vms/vms-crtlmap.map: New file.
6043 * config/vms/vms.c: New file.
6044 * config/vms/make-crtlmap.awk: New file.
6045 * config/vms/vms-crtl.h: File removed.
6046 * config/vms/vms-crtl-64.h: File removed.
6047 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
6048 * config/alpha/vms64.h: Do not include vms-crtl-64.h
6049 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
6050 clear some builtins on VMS. Calls vms_patch_builtins.
6051 (avms_asm_output_external): Remove.
6052 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
6053 (struct crtl_name_spec): Remove
6054 (DO_CTRL_NAMES): Remove.
6055 * config/ia64/vms.h (struct crtl_name_spec): Remove
6056 (DO_CTRL_NAMES): Remove.
6057 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
6058 clear some builtins on VMS. Calls vms_patch_builtins.
6059 (ia64_asm_output_external): Remove DO_CRTL_NAME.
6060 * config/ia64/vms64.h: Do not include vms-crtl-64.h
c57e3563 6061 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
ded97e77 6062
38021748 60632011-06-27 Tristan Gingold <gingold@adacore.com>
6064
6065 * config/alpha/alpha.c (alpha_end_function): Always generate .end
6066 directive on VMS.
6067
ca8ad03f 60682011-06-27 Eric Botcazou <ebotcazou@adacore.com>
6069
6070 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
6071 the function receives nonlocal gotos.
6072
33c20fdf 60732011-06-27 Richard Guenther <rguenther@suse.de>
6074
6075 PR tree-optimization/49536
6076 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6077 For non-scalar inner types use a scalar type according to
6078 the scalar inner mode.
6079
cd0925e2 60802011-06-27 Richard Guenther <rguenther@suse.de>
6081
6082 PR tree-optimization/49365
6083 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
6084
212999c0 60852011-06-27 Richard Guenther <rguenther@suse.de>
6086
6087 PR tree-optimization/49169
6088 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
6089 the alignment of function decls.
6090
137a63e0 60912011-06-26 Iain Sandoe <iains@gcc.gnu.org>
1991f4fd 6092
6093 PR target/47997
6094 * config/darwin.c (darwin_mergeable_string_section): Place string
6095 constants in '.cstring' rather than '.const' when CF/NSStrings are
6096 active.
6097
4eb8e8b5 60982011-06-26 Eric Botcazou <ebotcazou@adacore.com>
6099
6100 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
6101 (emit_save_register_window): Likewise.
6102 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
6103 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
6104 Swap back %o7/%i7 in register naming.
6105
b7d1dec3 61062011-06-25 Iain Sandoe <iains@gcc.gnu.org>
6107
6108 PR driver/49371
6109 * config/darwin.c (darwin_override_options): Improve warning when
6110 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
6111 is given with fpie/fPIE.
6112 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
6113 * config/darwin9.h (PIE_SPEC): New.
c495ccca 6114
4eb8e8b5 61152011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
c495ccca 6116
6117 * timevar.c (timevar_print): Increase width for display of timevar
6118 name.
6119
7c6c82b1 61202011-06-24 Jakub Jelinek <jakub@redhat.com>
6121
6122 PR c++/46400
6123 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
6124 instead of TYPE_CHAIN for chain_next for types.
6125
5b2251a5 61262011-06-24 Richard Henderson <rth@redhat.com>
6127
6128 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
6129 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
6130 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
6131 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
6132 (sparc_flat_expand_prologue): Emit individual instructions
6133 instead of one of the above.
6134
006e2d5a 61352011-06-24 Easwaran Raman <eraman@google.com>
6136
6137 PR rtl-optimization/49429
6138 PR target/49454
6139 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
6140 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
6141 used to copy y into x.
6142 * calls.c (initialize_argument_information): Mark
6143 an argument addressable if it is passed by invisible reference.
6144 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
6145 if it is passed by reference.
6146
dae6fb2f 61472011-06-24 H.J. Lu <hongjiu.lu@intel.com>
6148
6149 PR rtl-optimization/49504
6150 * rtlanal.c (nonzero_bits1): Properly handle addition or
18c26dbf 6151 subtraction of a pointer in Pmode if pointers extend unsigned.
6152 (num_sign_bit_copies1): Likewise.
dae6fb2f 6153
e5ae889e 61542011-06-24 Martin Jambor <mjambor@suse.cz>
6155
6156 PR tree-optimizations/49516
6157 * tree-sra.c (sra_modify_assign): Choose the safe path for
6158 aggregate copies if we also did scalar replacements.
6159
7392680c 61602011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6161
6162 PR target/49335
6163 * config/arm/predicates.md (add_operator): New.
c57e3563 6164 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
7392680c 6165
cc984dd6 61662011-06-24 Andi Kleen <ak@linux.intel.com>
6167
6168 * tree-sra.c (type_internals_preclude_sra_p): Add msg
6169 parameter. Split up ifs and report reason in *msg.
6170 (reject): Add.
6171 (find_var_candiate): Add msg variable.
6172 Split up ifs and report reason to reject.
6173 (find_param_candidates): Add msg variable.
6174 Pass msg to type_internals_preclude_sra_p.
6175
3de5b8d7 61762011-06-23 Jeff Law <law@redhat.com>
4aa81fa6 6177
731fe0f7 6178 PR middle-end/48770
6179 * reload.h (reload): Change to return a bool.
6180 * ira.c (ira): If requested by reload, run a fast DCE pass after
6181 reload has completed. Fix comment typo.
6182 * reload1.c (need_dce): New file scoped static.
6183 (reload): Set reload_completed here. Return whether or not a DCE
6184 pass after reload is needed.
6185 (delete_dead_insn): Set need_dce as needed.
6186
4aa81fa6 6187 PR middle-end/49465
6188 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
6189 to detect threading through joiner block. If there was already
6190 an edge to the new target, then do not change the PHI nodes.
6191
607ce623 61922011-06-23 Jakub Jelinek <jakub@redhat.com>
6193
6194 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
6195 get_pointer_alignment to see if base isn't sufficiently aligned.
6196
657e3a56 61972011-06-23 Jan Hubicka <jh@suse.cz>
6198
6199 PR tree-optimize/49373
6200 * tree-pass.h (all_late_ipa_passes): Declare.
6201 * cgraphunit.c (init_lowered_empty_function): Fix properties.
f387b493 6202 (cgraph_optimize): Execute late passes; remove unreachable funcions
6203 after materialization.
6204 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
6205 LTOing.
657e3a56 6206 * passes.c (all_late_ipa_passes): Declare.
6207 (dump_passes, register_pass): Handle late ipa passes.
f387b493 6208 (init_optimization_passes): Move ipa_pta to late passes; schedule
6209 fixup_cfg at beggining of all_passes.
657e3a56 6210 (apply_ipa_transforms): New function.
6211 (execute_one_pass): When doing simple ipa pass, apply all transforms.
6212
6a2fc14e 62132011-06-23 Joseph Myers <joseph@codesourcery.com>
6214
6215 * params.c: Include common/common-target.h. Don't include tm.h.
6216 (lang_independent_params): Move from toplev.c.
6217 (global_init_params): New.
6218 * params.h (global_init_params): Declare.
6219 * target.def (default_params): Move to common-target.def.
6220 * toplev.c (lang_independent_options): Remove.
6221 (lang_independent_params): Move to params.c.
6222 (general_init): Use global_init_params.
6223 * common/common-target.def (option_default_params): Move from
6224 target.def.
6225 * common/config/ia64/ia64-common.c: Include params.h.
6226 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6227 from ia64.c.
6228 * common/config/rs6000/rs6000-common.c: Include params.h.
6229 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6230 from rs6000.c.
6231 * common/config/sh/sh-common.c: Include params.h.
6232 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6233 from sh.c.
6234 * common/config/spu/spu-common.c: Include params.h.
6235 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6236 from spu.c.
6237 * config/ia64/ia64.c (ia64_option_default_params,
6238 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
6239 * config/rs6000/rs6000.c (rs6000_option_default_params,
6240 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
6241 * config/sh/sh.c (sh_option_default_params,
6242 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
6243 * config/spu/spu.c (spu_option_default_params,
6244 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
6245 * Makefile.in (OBJS): Remove params.o.
6246 (OBJS-libcommon-target): Add params.o.
6247 (params.o, $(common_out_object_file)): Update dependencies.
6248 * doc/tm.texi: Regenerate.
6249
27013bce 62502011-06-23 Alan Modra <amodra@gmail.com>
6251
6252 PR bootstrap/49383
6253 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
6254 invocation for 2011-06-09 changes.
6255
777e6799 62562011-06-22 Jakub Jelinek <jakub@redhat.com>
6257
31712e83 6258 PR libgomp/49490
6259 * omp-low.c (expand_omp_for_static_nochunk): Only
c57e3563 6260 use n ceil/ nthreads size for the first n % nthreads threads in the
6261 team instead of all threads except for the last few ones which
31712e83 6262 get less work or none at all.
6263
777e6799 6264 PR debug/49496
6265 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
6266 uses.
6267
8c4a7fb7 62682011-06-22 Richard Guenther <rguenther@suse.de>
6269
6270 PR tree-optimization/49493
6271 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
6272 Refer to the alias target of variables.
6273 (associate_varinfo_to_alias_1): Remove.
6274 (ipa_pta_execute): Do not associate aliases with anything.
6275 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
6276 (cgraph_function_node): Likewise.
6277 (cgraph_function_or_thunk_node): Likewise.
6278 (varpool_variable_node): Likewise.
6279
bb10d7b5 62802011-06-22 Nathan Sidwell <nathan@codesourcery.com>
6281
c57e3563 6282 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
bb10d7b5 6283 * config.gcc (arm*-*-linux*): Default to gnu tls.
6284 (arm*-*-*): Add --with-tls option.
6285 (all_defaults): Add 'tls'.
6286
e0a0aad2 62872011-06-22 Richard Henderson <rth@redhat.com>
6288
6289 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
6290 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6291 (dwarf2out_frame_debug_cfa_window_save): Rename from
6292 dwarf2out_window_save; make static.
6293 * tree.h (dwarf2out_window_save): Don't declare.
6294
6295 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
6296 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
6297 (emit_save_register_window): Rename from gen_save_register_window;
6298 emit the insn and add REG_CFA_* notes.
6299 (sparc_expand_prologue): Update to match.
6300 * config/sparc/sparc.md (save_register_window_1): Simplify from
6301 save_register_window<P:mode>.
6302
cd452f14 63032011-06-22 H.J. Lu <hongjiu.lu@intel.com>
6304
6305 PR target/49497
6306 * config/i386/i386.md (*lea_general_2): Always allow SImode.
6307 (*lea_general_2_zext): Likewise.
6308 (imul to lea peepholes): Use const359_operand and check
6309 TARGET_PARTIAL_REG_STALL.
6310
6311 * config/i386/predicates.md (const359_operand): New.
6312
28b2c6a7 63132011-06-22 Michael Matz <matz@suse.de>
6314
6315 * cgraphunit.c (assemble_thunk): Use correct return type.
6316
73f20323 63172011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
c57e3563 6318 Dmitry Melnik <dm@ispras.ru>
73f20323 6319
6320 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
6321 (neon_output_shift_immediate): Ditto.
6322 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
6323 prototype.
6324 (neon_output_shift_immediate): Ditto.
6325 * config/arm/neon.md (vashl<mode>3): Modified constraint.
6326 (vashr<mode>3_imm): New insn pattern.
6327 (vlshr<mode>3_imm): Ditto.
6328 (vashr<mode>3): Modified constraint.
6329 (vlshr<mode>3): Ditto.
6330 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
6331 predicate.
6332 (imm_for_neon_rshift_operand): Ditto.
6333 (imm_lshift_or_reg_neon): Ditto.
6334 (imm_rshift_or_reg_neon): Ditto.
6335
6336 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
6337
841424cc 63382011-06-22 Jakub Jelinek <jakub@redhat.com>
6339
939514e9 6340 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
6341 builtin calls even if likelyvalue is not CONSTANT.
6342 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
6343 Return get_value_for_expr of first operand
6344 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
6345 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6346 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
6347 their non-checking counterparts.
6348 (call_may_clobber_ref_p_1): Likewise.
6349 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
6350 like their non-checking counterparts.
6351 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6352 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
6353 like their non-checking counterparts.
6354 (find_func_clobbers): Likewise.
6355 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
6356 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
6357
d771c9b2 6358 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
6359 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
6360 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
6361 of base type reference as argument.
6362 (resolve_addr_in_expr): Likewise. Fix keep computation.
6363 (convert_descriptor_to_signed): Renamed to...
c57e3563 6364 (convert_descriptor_to_mode): ... this. For wider types convert to
6365 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
d771c9b2 6366 (typed_binop): New function.
6367 (scompare_loc_descriptor, ucompare_loc_descriptor,
6368 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
6369 default to unsigned type instead of signed.
6370
841424cc 6371 PR debug/47858
6372 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
6373 (gimple_build_debug_source_bind_stat): New prototype.
6374 (gimple_build_debug_source_bind): Define.
6375 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
6376 gimple_debug_source_bind_get_value,
6377 gimple_debug_source_bind_get_value_ptr,
6378 gimple_debug_source_bind_set_var,
6379 gimple_debug_source_bind_set_value): New inlines.
6380 * gimple.c (gimple_build_debug_source_bind_stat): New function.
6381 * gimple-pretty-print.c (dump_gimple_debug): Handle
6382 GIMPLE_DEBUG_SOURCE_BIND.
6383 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
6384 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6385 * tree-parloops.c (eliminate_local_variables,
6386 separate_decls_in_region): Likewise.
6387 (separate_decls_in_region_debug): Renamed from
6388 separate_decls_in_region_debug_bind. Handle
6389 gimple_debug_source_bind_p.
6390 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
6391 prototypes.
6392 (DECL_HAS_DEBUG_ARGS_P): Define.
6393 (struct tree_function_decl): Add has_debug_args_flag field.
6394 * tree.c (debug_args_for_decl): New variable.
6395 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
6396 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
6397 (rewrite_debug_stmt_uses): New function.
6398 (rewrite_stmt): Use it to rewrite debug stmt uses.
6399 * rtl.def (DEBUG_PARAMETER_REF): New.
6400 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
6401 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
6402 DEBUG_PARAMETER_REF.
6403 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
6404 * print-rtl.c (print_rtx): Likewise.
6405 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
6406 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
6407 debug stmts in the first bb.
6408 * tree-inline.c (remap_ssa_name): If remapping default def
6409 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
6410 a source bind debug stmt.
6411 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
6412 (maybe_move_debug_stmts_to_successors): Likewise.
6413 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
6414 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
6415 debug args vector from old_decl to new_decl.
6416 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
6417 or modified parameters, add debug bind stmts before call
c57e3563 6418 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
841424cc 6419 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
6420 on DECL_DEBUG_EXPRs from debug args vector.
6421 (expand_debug_source_expr): New function.
6422 (expand_debug_locations): Use it for source bind insns.
6423 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
6424 * var-tracking.c (prepare_call_arguments): Add debug args
6425 to call_arguments if any.
6426 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
c57e3563 6427 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
6428 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
841424cc 6429 (get_ref_die_offset, parameter_ref_descriptor): New functions.
6430 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
6431 (gen_subprogram_die): Handle parameters identified by
6432 DEBUG_PARAMETER_REF.
6433
f41e4452 64342011-06-22 Nathan Sidwell <nathan@codesourcery.com>
6435
6436 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
6437 * doc/install.texi (Configuration): Document --with-tls.
f41e4452 6438 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
6439 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
6440 (arm_tls_descseq_addr): New.
6441 (legitimize_tls_address): Add tlsdesc support.
6442 (arm_cannot_copy_insn_p): Check for tlscall.
6443 (arm_emit_tls_decoration): Likewise.
6444 * config/arm/arm.h (TARGET_GNU2_TLS): New.
6445 (OPTION_DEFAULT_SPECS): Add with-tls support.
6446 * config/arm/arm.md (R1_REGNUM): Define.
6447 (tlscall): New.
6448 * config/arm/arm.opt (tls_type): New enumeration type and values.
6449 (mtls-dialect): New switch.
6450 * config/arm/arm-opts.h (enum tls_type): New.
6451
c55c785f 64522011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
6453
6454 * attribs.c (register_attribute): Added assert to check that all
6455 attribute specs are registered with a name that is not empty and
6456 does not start with '_'.
6457 (decl_attributes): Avoid the lookup of the "naked" attribute spec
6458 if the function has no attributes.
6459 * tree.c (is_attribute_with_length_p): Removed.
6460 (is_attribute_p): Removed.
c57e3563 6461 (private_is_attribute_p): New.
c55c785f 6462 (private_lookup_attribute): New.
6463 (lookup_attribute): Removed.
6464 (lookup_ident_attribute): New.
6465 (remove_attribute): Require the first argument to be in the form
6466 'text', not '__text__'. Updated asserts.
6467 (merge_attributes): Use lookup_ident_attributes instead of
6468 lookup_attribute.
6469 (merge_dllimport_decl_attributes): Use remove_attribute.
6470 (attribute_list_contained): Likewise.
6471 (attribute_list_equal): Immediately return 1 if the arguments are
6472 identical pointers.
6473 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
6474 'int'. Require the first argument to be in the form 'text', not
6475 '__text__'. Require the second argument to be an identifier.
6476 (lookup_attribute): Made inline. Require the first argument to be
6477 in the form 'text', not '__text__'.
6478 (private_is_attribute_p, private_lookup_attribute): New.
6479 Updated comments.
c57e3563 6480
2797f13a 64812011-06-21 Andrew MacLeod <amacleod@redhat.com>
6482
6483 * builtins.c: Add sync_ or SYNC__ to builtin names.
6484 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
6485 * omp-low.c: Add sync_ or SYNC__ to builtin names.
6486
0f713cc8 64872011-06-21 Georg-Johann Lay <avr@gjlay.de>
dab5a239 6488
0f713cc8 6489 PR target/33049
6490 * config/avr/avr.md (extzv): New expander.
6491 (*extzv): New insn.
6492 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
6493 * config/avr/constraints.md (C04): New constraint.
6494 * doc/md.texi (Machine Constraints): Document it.
6495
6aaa1f9e 64962011-06-21 Jakub Jelinek <jakub@redhat.com>
6497
6498 PR middle-end/49489
6499 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
6500 unsignedp argument instead of 1 for clrsb_optab.
6501 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
6502 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
6503 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
6504 * optabs.c (widen_leading): Call widen_operand and expand_unop
6505 with 0 as unsignedp argument instead of 1 for clrsb_optab.
dab5a239 6506 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
6aaa1f9e 6507
d2d40339 65082011-06-21 Georg-Johann Lay <avr@gjlay.de>
6509
6510 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
6511
d8492bd3 65122011-06-21 Bernd Schmidt <bernds@codesourcery.com>
6513
fbcf166e 6514 * gensupport.c (add_define_attr): New static function.
6515 (is_predicable): Allow multi-alternative lists for the "predicable"
6516 attribute.
6517 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
6518 (process_one_cond_exec): Call alter_attrs_for_insn.
6519 * doc/md.texi (Defining Attributes): Mention some standard names.
6520 (Conditional Execution): Update documentation for "predicable".
6521
d8492bd3 6522 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
6523 __builtin_clrsbll): Document.
6524 * doc/rtl.texi (clrsb): New entry.
6525 * optabs.c (widen_leading): Renamed from widen_clz. New argument
6526 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
6527 (expand_unop): Handle clrsb_optab.
6528 (init_optabs): Initialize it.
6529 * optabs.h (enum optab_index): New entry OTI_clrsb.
6530 (clrsb_optab): Define.
6531 * genopinit.c (optabs): Add an entry for it.
6532 * builtins.c (expand_builtin): Handle clrsb builtin functions.
6533 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
6534 BUILT_IN_CLRSBLL): New.
6535 * rtl.def (CLRSB): New code.
6536 * dwarf2out.c (mem_loc_descriptor): Handle it.
6537 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6538 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
6539 and popcount.
6540 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
6541 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
6542 (__ctzDI2): Move declaration.
6543 * config/bfin/bfin.md (clrsbsi2): New expander.
6544 (signbitssi2): Use the CLRSB rtx.
6545 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
6546 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
6547
4b0e0420 65482011-06-21 Richard Guenther <rguenther@suse.de>
6549
dab5a239 6550 * ipa-inline-transform.c (inline_transform): Fix previous change.
4b0e0420 6551
f0c50415 65522011-06-21 Ira Rosen <ira.rosen@linaro.org>
6553
6554 PR tree-optimization/49478
6555 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
6556 with constant operand.
6557
3b73a809 65582011-06-21 Richard Guenther <rguenther@suse.de>
6559
6560 * ipa-inline-transform.c (inline_transform): Fix typo.
dab5a239 6561
fecf066a 65622011-06-21 Richard Guenther <rguenther@suse.de>
6563
6564 PR tree-optimization/49483
6565 * tree-vect-stmts.c (vectorizable_assignment): Also handle
6566 VIEW_CONVERT_EXPR conversions.
6567
c1535dd2 65682011-06-21 Joseph Myers <joseph@codesourcery.com>
6569
6570 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
6571 * config/avr/avr-tables.opt: New file (generated).
6572 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
6573 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
6574 avr-mcus.def.
6575 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
6576 (avr_option_override): Don't process -mmcu= argument here. Set
6577 avr_current_device using avr_mcu_index.
dab5a239 6578 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
c1535dd2 6579 * config/avr/avr.opt (mmcu=): Use Enum.
6580 * config/avr/t-avr (avr-devices.o): Update dependencies.
6581 ($(srcdir)/config/avr/avr-tables.opt): New.
6582 * target.def (help): Remove.
6583 * doc/tm.texi.in (TARGET_HELP): Remove.
6584 * doc/tm.texi: Regenerate.
6585 * opts.c: Don't include target.h.
6586 (common_handle_option): Don't call targetm.help.
6587 * system.h (TARGET_HELP): Poison.
6588 * Makefile.in (opts.o): Update dependencies.
6589
c2e7ebeb 65902011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6591
6592 * config/usegld.h: New file.
6593 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
6594 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
dab5a239 6595 (LIB_SPEC): Likewise. Search /lib.
c2e7ebeb 6596 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
6597 (RDYNAMIC_SPEC): Handle GNU ld.
dab5a239 6598 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
6599 Define.
c2e7ebeb 6600 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
6601 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
6602 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
6603 (STACK_CHECK_STATIC_BUILTIN): Define.
6604 * config/sol2.opt (compat-bsd): Remove.
6605 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
6606 * config/sol2-bi.h: New file.
6607 * config/sol2-gld.h: Remove.
6608 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
6609 (NO_DBX_BNSYM_ENSYM): Remove.
6610 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6611 (STACK_CHECK_STATIC_BUILTIN): Remove.
6612 Test USE_GLD instead of TARGET_GNU_LD.
6613 * config/i386/sol2-10.h: Rename to ...
6614 * config/i386/sol2-bi.h .. this.
6615 (SUBTARGET_EXTRA_SPECS): Redefine.
6616 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
6617 (MULTILIB_DEFAULTS): Remove.
6618 (DEFAULT_ARCH32_P): Define.
6619 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
6620 (ARCH64_SUBDIR): Define.
6621 Test USE_GLD instead of TARGET_GNU_LD.
6622 (I386_EMULATION): Rename to ...
6623 (ARCH32_EMULATION): ... this.
6624 (X86_64_EMULATION): Rename to ...
6625 (ARCH64_EMULATION): ... this.
6626 (TARGET_LD_EMULATION): Remove.
6627 (LINK_ARCH_SPEC): Remove.
6628 * config/i386/sol2-gas.h: Remove.
6629 * config/i386/t-sol2-10: Rename to ...
6630 * config/i386/t-sol2-64: ... this.
6631 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
6632 (AS_SPARC64_FLAG): Define.
6633 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
6634 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
6635 depending on TARGET_CPU_DEFAULT.
6636 (CPP_CPU_SPEC): Redefine.
6637 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
6638 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
6639 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
6640 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
6641 ASM_ARCH_DEFAULT_SPEC): Redefine.
6642 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6643 LINK_ARCH_DEFAULT_SPEC.
6644 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
6645 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
6646 (ARCH64_SUBDIR): Define.
6647 (LINK_ARCH64_SPEC): Redefine.
6648 (CC1_SPEC): Redefine.
6649 (OPTION_DEFAULT_SPECS): Redefine.
6650 (MULTILIB_DEFAULTS): Define.
6651 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
6652 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
6653 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
6654 (NO_DBX_BNSYM_ENSYM): Remove.
6655 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6656 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
6657 (TARGET_ASM_NAMED_SECTION): Likewise.
6658 (STACK_CHECK_STATIC_BUILTIN): Remove.
6659 * config/sparc/sol2-bi.h: Remove.
6660 * config/sparc/sol2-gas-bi.h: Remove.
6661 * config/sparc/sol2-gas.h: Remove.
6662 * config/sparc/sol2-gld-bi.h: Remove.
6663 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
6664 common parts ...
6665 (*-*-solaris2*): ... here.
6666
438719a9 66672011-06-21 Christian Bruel <christian.bruel@st.com>
dab5a239 6668
438719a9 6669 PR other/43564
dab5a239 6670 * ipa-inline.c (can_inline_edge_p): Check
6671 !DECL_DISREGARD_INLINE_LIMITS.
6672
da8b372e 66732011-06-21 Christian Bruel <christian.bruel@st.com>
dab5a239 6674
da8b372e 6675 PR middle-end/49139
6676 * cgraphunit.c (process_function_and_variable_attributes): warn when
6677 always_inline functions that are not inline.
dab5a239 6678 * ipa-inline-transform.c (inline_transform): Always call
6679 optimize_inline.
6680 * tree-inline.c (tree_inlinable_function_p): Use error instead
6681 of sorry.
da8b372e 6682 (expand_call_inline): Likewise.
dab5a239 6683
03cf39fc 66842011-06-21 Jakub Jelinek <jakub@redhat.com>
6685
6686 * Makefile.in (dg_target_exps): Set.
6687 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
6688 instead of 7, try to divide it more evenly.
6689
66902011-06-20 Changpeng Fang <changpeng.fang@amd.com>
5d3dcdb8 6691
32cdcc42 6692 PR target/49089
5d3dcdb8 6693 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
6694 (avx256_split_unaligned_store): New definition.
6695 (ix86_option_override_internal): Enable avx256 unaligned load/store
6696 splitting only when avx256_split_unaligned_load/store is set.
6697
38e1b753 66982011-06-20 Bernd Schmidt <bernds@codesourcery.com>
6699
6700 * regrename.c (scan_rtx_reg): Handle the case where we write to an
6701 open chain in a smaller mode without failing the entire block.
6702
0ced0ab8 67032011-06-21 Alan Modra <amodra@gmail.com>
6704
6705 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
6706 CONST high part large-toc address.
6707 (rs6000_tls_referenced_p): Make static.
6708 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
6709
6bc30f28 67102011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6711
6712 PR target/49385
6713 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
6714 one of the operands is a register.
6715
860651b1 67162011-06-20 Kai Tietz <ktietz@redhat.com>
6717
dab5a239 6718 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
6719 operations in combination with binary and.
860651b1 6720
3790d8bf 67212011-06-20 Bernd Schmidt <bernds@codesourcery.com>
6722
6723 * regrename.c (do_replace): Don't update notes.
6724
ef244509 67252011-06-20 Alan Modra <amodra@gmail.com>
6726
6727 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
6728 of toc-relative address in CONST.
6729 (rs6000_delegitimize_address): Recognize changed address.
6730 (rs6000_legitimize_reload_address): Likewise.
6731 (rs6000_emit_move): Don't force these constants to memory.
6732 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
6733 toc-relative address in CONST.
6734 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
6735 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
6736
ed7d4a79 67372011-06-18 H.J. Lu <hongjiu.lu@intel.com>
6738
dab5a239 6739 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
ed7d4a79 6740 (count_trailing_zeros): Likewise.
6741
36267cc4 67422011-06-18 H.J. Lu <hongjiu.lu@intel.com>
6743
6744 PR other/49325
6745 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
6746 .init_array can be used with .ctors on targets.
6747 * configure: Regenerated.
6748
c6bab882 67492011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6750
6751 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
6752 if the element type is volatile.
6753
e0eaac80 67542011-06-18 Jan Hubicka <jh@suse.cz>
6755
6756 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
6757 extra name aliases.
6758 (lto_symtab_resolve_can_prevail_p): Likewise.
6759 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
6760 * cgraphbuild.c (record_reference): Remove extra body alias code.
6761 (mark_load): Likewise.
6762 (mark_store): Likewise.
6763 * cgraph.h (varpool_node): Remove extra_name filed;
6764 add alias_of and extraname_alias.
6765 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
6766 (varpool_alias_aliased_node): New inline function.
6767 (varpool_variable_node): New function.
6768 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
6769 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
6770 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
6771 (input_varpool_node): Likewise.
6772 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
6773 (varpool_externally_visible_p): Remove extra body alias code.
6774 (function_and_variable_visibility): Likewise.
6775 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
6776 (ipa_pta_execute): Use it.
6777 * varpool.c (varpool_remove_node): Remove extra name alias code.
6778 (varpool_mark_needed_node): Likewise.
6779 (varpool_analyze_pending_decls): Analyze aliases.
6780 (assemble_aliases): New functoin.
6781 (varpool_assemble_decl): Use it.
6782 (varpool_create_variable_alias): New function.
6783 (varpool_extra_name_alias): Rewrite.
6784 (varpool_for_node_and_aliases): New function.
6785
e16e10c8 67862011-06-18 Jakub Jelinek <jakub@redhat.com>
6787
6788 PR target/49411
6789 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
6790 last_arg_constant and last argument doesn't match its predicate,
6791 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
6792 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
6793 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
6794 spelling of error message.
6795 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
6796 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
6797 const_0_to_255_operand instead of const_int_operand.
6798
6799 Revert:
6800 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
6801
6802 * config/i386/sse.md (blendbits): Remove mode attribute.
6803 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
6804 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
6805 Check integer value of operand 3 in insn constraint.
6806
fd7a154d 68072011-06-17 Hans-Peter Nilsson <hp@axis.com>
6808
6809 PR rtl-optimization/48542
6810 * reload.c (find_equiv_reg): Stop looking when finding a
6811 setjmp-type call.
6812 * reload1.c (reload_as_needed): Invalidate all reload
6813 registers when crossing a setjmp-type call.
6814
da81e0c5 68152011-06-16 Jeff Law <law@redhat.com>
6816
6817 * tree-ssa-threadupdate.c (struct redirection_data): New field
6818 intermediate_edge.
6819 (THREAD_TARGET2): Define.
dab5a239 6820 (redirection_data_eq): Also check that the intermediate edge is equal.
da81e0c5 6821 (lookup_redirection_data): Drop useless argument. Extract the
6822 outgoing_edge and intermediate edge from E. Callers updated.
6823 (copy_phi_args, update_destination_phis): New functions.
6824 (fix_duplicate_block_edges): Likewise.
6825 (create_edge_and_update_destination_phis): Duplicate all the edges
6826 hung off e->aux. Use copy_phi_args.
6827 (create_duplicates): Use fix_duplicate_block_edges.
6828 (fixup_template_block): Likewise.
6829 (redirect_edges): If necessary, redirect the joiner block's incoming
6830 edge to the duplicate of the joiner block.
6831 (thread_block): Don't muck up loops when threading through a joiner
6832 block.
dab5a239 6833 (thread_through_loop_header): Handle threading through a joiner block.
da81e0c5 6834 (mark_threaded_blocks, register_jump_thread): Likewise.
6835 * tree-flow.h (register_jump_thread): Add new argument. Callers
6836 updated.
6837 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
6838 (thread_across_edge): Handle threading through a joiner block.
dab5a239 6839
31f1c0f0 68402011-06-16 Martin Jambor <mjambor@suse.cz>
6841
6842 PR tree-optimization/49343
6843 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
6844 calculate offset, provide 2nd operand for the new COMPONENT_REF.
6845
707e574b 68462011-06-16 Iain Sandoe <iains@gcc.gnu.org>
6847
6848 * config/darwin-protos.h (machopic_select_rtx_section): Move to
6849 inside RTX_CODE ifdef.
6850
8767ae9c 68512011-06-16 Tom de Vries <tom@codesourcery.com>
6852
6853 PR target/45098
dab5a239 6854 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
6855 Disallow NULL pointer for pointer arithmetic.
8767ae9c 6856
43d05bf0 68572011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6858
6859 PR target/49398
6860 Revert.
6861 2011-06-10 Wei Guozhi <carrot@google.com>
6862
6863 PR target/45335
6864 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6865 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6866 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6867 related peephole2.
6868 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6869 related peephole2.
6870 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6871 (arm_legitimate_ldrd_p): New prototype.
6872 (arm_output_ldrd): New prototype.
6873 * config/arm/arm.c (arm_check_ldrd_operands): New function.
6874 (arm_legitimate_ldrd_p): New function.
6875 (arm_output_ldrd): New function.
6876
c6bab882 68772011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
39cba157 6878
6879 PR middle-end/46500
6880 * doc/tm.texi.in: Update Copyright date.
6881 * doc/tm.texi: Regenerate.
6882 * targhooks.c (default_setup_incoming_varargs): Replace
6883 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6884 (default_pretend_outgoing_varargs_named): Likewise.
6885 (hook_pass_by_reference_must_pass_in_stack): Likewise.
6886 (hook_callee_copies_named): Likewise.
6887 (default_function_arg_advance): Likewise.
6888 (default_function_arg): Likewise.
6889 (default_function_incoming_arg): Likewise.
6890 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6891 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6892 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6893 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6894 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6895 * targhooks.h (default_setup_incoming_varargs): Likewise.
6896 (default_pretend_outgoing_varargs_named): Likewise.
6897 (hook_pass_by_reference_must_pass_in_stack): Likewise.
6898 (hook_callee_copies_named): Likewise.
6899 (default_function_arg_advance): Likewise.
6900 (default_function_arg): Likewise.
6901 (default_function_incoming_arg): Likewise.
6902 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6903 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6904 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6905 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6906 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6907 * target.def (pass_by_reference): Likewise.
6908 (setup_incoming_varargs, strict_argument_naming): Likewise.
6909 (pretend_outgoing_varargs_named, callee_copies): Likewise.
6910 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
6911 (function_incoming_arg): Likewise.
6912 * target.h: Don't include "tm.h" .
6913 (cumulative_args_t): New typedef.
6914 [GCC_TM_H] (get_cumulative_args): New static inline function.
6915 [GCC_TM_H] (pack_cumulative_args): Likewise.
6916 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
6917 argument type with cumulative_args_t.
6918 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
6919 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
6920 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
6921 (frv_arg_partial_bytes, frv_function_arg): Likewise.
6922 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
6923 (frv_function_arg_1): Likewise.
6924 * config/s390/s390.c (s390_pass_by_reference): Likewise.
6925 (s390_function_arg_advance, s390_function_arg): Likewise.
6926 * config/m32c/m32c.c (m32c_function_arg): Likewise.
6927 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
6928 (m32c_strict_argument_naming): Likewise.
6929 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
6930 (spu_function_arg_advance): Likewise.
6931 (spu_setup_incoming_varargs): Likewise. Make static.
6932 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
6933 Remove prototype.
6934 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
6935 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6936 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
6937 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
6938 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
6939 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
6940 (mep_pass_by_reference, mep_function_arg): Likewise.
6941 (mep_function_arg_advance): Likewise.
6942 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
6943 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
6944 (m32r_function_arg, m32r_function_arg_advance): Likewise.
6945 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
6946 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
6947 (ix86_function_arg, ix86_pass_by_reference): Likewise.
6948 (ix86_setup_incoming_varargs): Likewise.
6949 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
6950 (sh_strict_argument_naming): Likewise.
6951 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
6952 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
6953 (sh_function_arg_advance, sh_function_arg): Likewise.
6954 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
6955 (pdp11_function_arg_advance): Likewise.
6956 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
6957 Likewise.
6958 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
6959 * config/avr/avr.c (avr_function_arg): Likewise.
6960 (avr_function_arg_advance): Likewise.
6961 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
6962 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
6963 (xtensa_function_arg_1): Likewise.
dab5a239 6964 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
6965 Likewise.
39cba157 6966 (xstormy16_function_arg): Likewise.
6967 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
6968 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
6969 (fr30_function_arg_advance): Likewise.
6970 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6971 (lm32_function_arg, lm32_function_arg_advance): Likewise.
6972 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
6973 (moxie_function_arg, moxie_function_arg_advance): Likewise.
6974 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
6975 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
6976 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
6977 (cris_function_arg, cris_function_incoming_arg): Likewise.
6978 (cris_function_arg_advance, cris_function_arg_1): Likewise.
6979 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
6980 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
6981 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
6982 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
6983 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
6984 (mn10300_arg_partial_bytes): Likewise.
6985 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
6986 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
6987 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
6988 (ia64_function_arg_1): Likewise.
6989 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
6990 (m68k_function_arg): Likewise.
6991 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
6992 (rs6000_function_arg, setup_incoming_varargs): Likewise.
6993 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
6994 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
6995 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
6996 (picochip_arg_advance): Likewise.
6997 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
6998 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
6999 (mcore_function_arg_advance): Likewise.
7000 * config/score/score.c (score_pass_by_reference): Likewise.
7001 (score_function_arg_advance): Likewise.
7002 (score_arg_partial_bytes): Likewise. Make static.
7003 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
7004 * config/arm/arm.c (arm_arg_partial_bytes): Replace
7005 CUMULATIVE_ARGS* argument type with cumulative_args_t.
7006 (arm_function_arg, arm_function_arg_advance): Likewise.
7007 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
7008 * config/pa/pa.c (pa_pass_by_reference): Likewise.
7009 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
7010 (pa_function_arg): Likewise.
7011 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
7012 (mips_function_arg, mips_function_arg_advance): Likewise.
7013 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
7014 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
7015 * config/vax/vax.c (vax_function_arg): Likewise.
7016 (vax_function_arg_advance): Likewise.
7017 * config/h8300/h8300.c (h8300_function_arg): Likewise.
7018 (h8300_function_arg_advance): Likewise.
7019 * config/v850/v850.c (v850_pass_by_reference): Likewise.
7020 (v850_strict_argument_naming, v850_function_arg): Likewise.
7021 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
7022 (v850_setup_incoming_varargs): Likewise.
7023 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
7024 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
7025 (mmix_function_arg, mmix_pass_by_reference): Likewise.
7026 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
7027 with const void *.
7028 * config/bfin/bfin.c (setup_incoming_varargs): Replace
7029 CUMULATIVE_ARGS* argument type with cumulative_args_t.
7030 (bfin_function_arg_advance, bfin_function_arg): Likewise.
7031 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
7032 * calls.c (emit_call_1): Change type of args_so_far to
7033 cumulative_args_t. Changed all callers.
7034 (initialize_argument_information): Likewise.
7035 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
7036 * dse.c (get_call_args): Likewise.
7037 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
7038 * function.c (pass_by_reference, reference_callee_copied): Likewise.
7039 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
7040 New member args_so_far_v. Changed all users.
7041 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
7042 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
7043 * config/mips/mips.c (mips_output_args_xfer): Likewise.
7044 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
7045 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
dab5a239 7046 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7047 Likewise.
39cba157 7048 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
7049 m32r_pass_by_reference.
7050
0187b74e 70512011-06-16 Ira Rosen <ira.rosen@linaro.org>
7052
7053 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
7054 argument to be a VEC of statements.
dab5a239 7055 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
7056 assert that pattern statements have to have their vector type set.
0187b74e 7057 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
7058 Change the first argument to be a VEC of statements. Update
7059 documentation.
7060 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
7061 (vect_handle_widen_mult_by_const): New function.
dab5a239 7062 (vect_recog_widen_mult_pattern): Change the first argument to be a
7063 VEC of statements. Update documentation. Check that the constant is
7064 INTEGER_CST. Support multiplication by a constant that fits an
7065 intermediate type - call vect_handle_widen_mult_by_const.
0187b74e 7066 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
7067 call. Handle additional pattern statements if necessary.
7068
c5b0bf72 70692011-06-16 Nick Clifton <nickc@redhat.com>
7070
7071 PR target/49427
7072 * config.gcc: Set cpu_type to v850 for any V850 architecture.
7073 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
7074 md_file, extra_modes, out_file and extra_options are these are all
7075 deduced from cpu_type.
7076
10b585ac 70772011-06-16 Georg-Johann Lay <avr@gjlay.de>
7078
7079 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
7080 truncation mask to 63.
7081
fa72efb7 70822011-06-16 Georg-Johann Lay <avr@gjlay.de>
7083
7084 PR target/49313
7085 PR target/29524
7086 * longlong.h: Add AVR support:
7087 (count_leading_zeros): New macro.
7088 (count_trailing_zeros): New macro.
7089 (COUNT_LEADING_ZEROS_0): New macro.
dab5a239 7090 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
7091 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
7092 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
7093 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
fa72efb7 7094 (LIB2FUNCS_EXCLUDE): Add _clz.
7095 * config/avr/libgcc.S (XCALL): Move up in file.
7096 (XJMP): New C Macro.
7097 (DEFUN): New asm macro.
7098 (ENDF): New asm macro.
7099 (__ffssi2): New function.
7100 (__ffshi2): New function.
7101 (__loop_ffsqi2): New function.
7102 (__ctzsi2): New function.
7103 (__ctzhi2): New function.
7104 (__clzdi2): New function.
7105 (__clzsi2): New function.
7106 (__clzhi2): New function.
7107 (__paritydi2): New function.
7108 (__paritysi2): New function.
7109 (__parityhi2): New function.
ae3813d4 7110 (__parityqi2): New function.
fa72efb7 7111 (__popcounthi2): New function.
7112 (__popcountsi2): New function.
7113 (__popcountdi2): New function.
7114 (__popcountqi2): New function.
7115 (__bswapsi2): New function.
7116 (__bswapdi2): New function.
7117 (__ashldi3): New function.
7118 (__ashrdi3): New function.
7119 (__lshrdi3): New function.
7120 Fix suspicous lines.
7121
71b5c25e 71222011-06-16 Richard Guenther <rguenther@suse.de>
7123
7124 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
7125 the same as x != 0.
dab5a239 7126 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
7127 to (bool) X & 1.
71b5c25e 7128 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
7129 equality compares against zero for the lower bit.
7130
593f9380 71312011-06-16 Jakub Jelinek <jakub@redhat.com>
7132
7133 PR tree-optimization/49419
7134 * tree-vrp.c (execute_vrp): Call init_range_assertions
7135 before estimate_numbers_of_iterations, call
7136 free_number_of_iterations_estimates before calling
7137 remove_range_assertions.
7138
4815ed0c 71392011-06-16 Revital Eres <revital.eres@linaro.org>
7140
7141 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
7142 (struct partial_schedule): Add rows_length field.
7143 (verify_partial_schedule): Check rows_length.
7144 (ps_insert_empty_row): Handle rows_length.
7145 (create_partial_schedule): Likewise.
7146 (free_partial_schedule): Likewise.
7147 (reset_partial_schedule): Likewise.
7148 (create_ps_insn): Remove rest_count argument.
7149 (remove_node_from_ps): Update rows_length.
7150 (add_node_to_ps): Update rows_length and call create_ps_insn
7151 without passing row_rest_count.
7152 (rotate_partial_schedule): Update rows_length.
7153
ce13e133 71542011-06-16 Revital Eres <revital.eres@linaro.org>
7155
7156 * ddg.c (add_intra_loop_mem_dep): New function.
7157 (build_intra_loop_deps): Call it.
7158
da81e0c5 71592011-06-13 Jeff Law <law@redhat.com>
89bc53e2 7160
7161 * df-problems.c (df_lr_local_compute): Manually CSE
7162 PIC_OFFSET_TABLE_REGNUM.
7163 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
7164 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
7165
3a849bc1 71662011-06-13 Jan Hubicka <jh@suse.cz>
7167
7168 * cgraphunit.c (handle_alias_pairs): New function.
7169 (cgraph_finalize_compilation_unit): Use it.
7170 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
7171 as externally visible.
7172
c3c9a9f3 71732011-06-15 Richard Guenther <rguenther@suse.de>
7174
7175 * expr.c (expand_expr_real_2): Reduce all integral types to
7176 bitfield precision.
7177 (expand_expr_real_1): Likewise.
7178
0a0b4924 71792011-06-15 Martin Jambor <mjambor@suse.cz>
7180
7181 PR tree-optimization/48613
7182 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
7183 ipa_node_params_vector is NULL.
c5b0bf72 7184
aaec0525 71852011-06-15 Jakub Jelinek <jakub@redhat.com>
7186
7187 PR debug/49382
7188 * dwarf2out.c (dw_loc_list_node): Add force field.
dab5a239 7189 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
7190 location in the list, even if it is modified before first real insn.
aaec0525 7191 (output_loc_list): Emit empty ranges with force flag set.
dab5a239 7192 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
aaec0525 7193
f550c9b3 71942011-06-15 Alexander Monakov <amonakov@ispras.ru>
7195
7196 PR target/49349
7197 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
7198 (fence_to_rewind). Use it to notice when bookkeeping will be placed
7199 above a fence. Update comments.
7200 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
7201 placed just above it. Do not allow NULL place_to_insert.
7202
cfdcf183 72032011-06-15 Ira Rosen <ira.rosen@linaro.org>
7204
7205 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
7206 (slpeel_tree_peel_loop_to_edge): Don't call
7207 remove_dead_stmts_from_loop.
7208 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
7209 remove irrelevant pattern statements. For irrelevant statements
7210 check if it is the last statement of a detected pattern, use
7211 corresponding pattern statement instead.
7212 (destroy_loop_vec_info): No need to remove pattern statements,
7213 only free stmt_vec_info.
7214 (vect_transform_loop): For irrelevant statements check if it is
7215 the last statement of a detected pattern, use corresponding
7216 pattern statement instead.
7217 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
7218 pattern statements. Set basic block for the new statement.
7219 (vect_pattern_recog): Update documentation.
7220 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
7221 operands of pattern statements.
7222 (vectorizable_call): Fix printing. In case of a pattern statement
7223 use the lhs of the original statement when creating a dummy
7224 statement to replace the original call.
7225 (vect_analyze_stmt): For irrelevant statements check if it is
7226 the last statement of a detected pattern, use corresponding
7227 pattern statement instead.
7228 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
7229 statements use gsi of the original statement.
7230
218e3e4e 72312011-06-14 Joseph Myers <joseph@codesourcery.com>
7232
7233 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
7234 common/common-target-def.h.
7235 * target.def (default_target_flags, handle_option,
7236 supports_split_stack, optimization_table, init_struct,
7237 except_unwind_info, unwind_tables_default, have_named_sections):
7238 Move to common/common-target.def.
7239 * target.h (enum opt_levels, struct default_options): Move to
7240 common/common-target.h.
7241 * targhooks.c (default_except_unwind_info,
7242 dwarf2_except_unwind_info, sjlj_except_unwind_info,
7243 default_target_handle_option, empty_optimization_table): Move to
7244 common/common-targhooks.c.
7245 * targhooks.h (default_except_unwind_info,
7246 dwarf2_except_unwind_info, sjlj_except_unwind_info,
7247 default_target_handle_option, empty_optimization_table): Move to
7248 common/common-targhooks.h.
7249 * common/common-target-def.h: Include common/common-targhooks.h.
7250 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
7251 defined.
7252 * common/common-target.def (handle_option, option_init_struct,
7253 option_optimization_table, default_target_flags,
7254 except_unwind_info, supports_split_stack, unwind_tables_default,
7255 have_named_sections): Move from target.def.
7256 (HOOK_PREFIX): Undefine at end of file.
7257 * common/common-target.h: Include input.h.
7258 (enum opt_levels, struct default_options): Move from target.h.
7259 * common/common-targhooks.c, common/common-targhooks.h: New.
7260 * config.gcc (target_has_targetm_common): Default to yes.
7261 (moxie*): Set target_has_targetm_common=no.
7262 (hppa*-*-*): Don't set target_has_targetm_common=yes.
7263 * doc/tm.texi: Regenerate.
7264 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
7265 (C_TARGET_DEF_H): Add common/common-targhooks.h.
7266 (GCC_OBJS): Remove vec.o.
7267 (OBJS): Remove hooks.o and vec.o.
7268 (OBJS-libcommon-target): Add vec.o, hooks.o and
7269 common/common-targhooks.o.
7270 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
7271 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
7272 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
7273 cfglayout.o, $(out_object_file), $(common_out_object_file)):
7274 Update dependencies.
7275 (common/common-targhooks.o): New.
dab5a239 7276 * common/config/default-common.c: Include tm.h. Add FIXME comment.
218e3e4e 7277 * common/config/pa/pa-common.c: Include more headers. Take
7278 copyright dates from pa.c.
7279 (pa_option_optimization_table, pa_handle_option,
7280 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
7281 TARGET_HANDLE_OPTION): Move from pa.c.
7282 * common/config/alpha/alpha-common.c,
7283 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
7284 common/config/bfin/bfin-common.c,
7285 common/config/cris/cris-common.c,
7286 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
7287 common/config/h8300/h8300-common.c,
7288 common/config/i386/i386-common.c,
7289 common/config/ia64/ia64-common.c,
7290 common/config/iq2000/iq2000-common.c,
7291 common/config/lm32/lm32-common.c,
7292 common/config/m32c/m32c-common.c,
7293 common/config/m32r/m32r-common.c,
7294 common/config/m68k/m68k-common.c,
7295 common/config/mcore/mcore-common.c,
7296 common/config/mep/mep-common.c,
7297 common/config/microblaze/microblaze-common.c,
7298 common/config/mips/mips-common.c,
7299 common/config/mmix/mmix-common.c,
7300 common/config/mn10300/mn10300-common.c,
7301 common/config/pdp11/pdp11-common.c,
7302 common/config/picochip/picochip-common.c,
7303 common/config/rs6000/rs6000-common.c,
7304 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
7305 common/config/score/score-common.c, common/config/sh/sh-common.c,
7306 common/config/sparc/sparc-common.c,
7307 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
7308 common/config/vax/vax-common.c,
7309 common/config/xstormy16/xstormy16-common.c,
7310 common/config/xtensa/xtensa-common.c: New.
7311 * config/alpha/alpha.c: Include common/common-target.h.
7312 (alpha_option_optimization_table, alpha_handle_option,
7313 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7314 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
7315 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
7316 * config/arm/arm.c (arm_option_optimization_table,
7317 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7318 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
7319 arm-common.c.
7320 * config/avr/avr.c (avr_option_optimization_table,
7321 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7322 to avr-common.c.
7323 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
7324 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
7325 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
7326 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
7327 * config/cris/cris.c (cris_option_optimization_table,
7328 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7329 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
7330 cris-common.c.
7331 * config/fr30/fr30.c (fr30_option_optimization_table,
7332 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
7333 to fr30-common.c.
7334 * config/frv/frv.c (frv_option_optimization_table,
7335 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
7336 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
7337 * config/h8300/h8300.c (h8300_option_optimization_table,
7338 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7339 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
7340 * config/i386/i386-protos.h (ix86_handle_option): Declare.
7341 * config/i386/i386.c: Include common/common-target.h.
7342 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
7343 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
7344 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
7345 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
7346 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
7347 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
7348 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
7349 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
7350 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
7351 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
7352 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
7353 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
7354 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
7355 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
7356 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
7357 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
7358 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
7359 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
7360 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
7361 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
7362 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
7363 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
7364 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
7365 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
7366 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
7367 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
7368 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
7369 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
7370 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
7371 ix86_option_optimization_table, ix86_option_init_struct,
7372 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
7373 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7374 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
7375 i386-common.c.
7376 * config/i386/t-i386 (i386.o): Update dependencies.
7377 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
7378 * config/ia64/ia64.c (ia64_option_optimization_table,
7379 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7380 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7381 ia64_handle_option): Move to ia64-common.c.
7382 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7383 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
7384 * config/lm32/lm32.c (lm32_option_optimization_table,
7385 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7386 to lm32-common.c.
7387 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
7388 m32c-common.c.
7389 * config/m32r/m32r.c (m32r_option_optimization_table,
7390 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7391 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7392 m32r_handle_option): Move to m32r-common.c.
7393 (m32r_memory_move_cost): Remove comment referring to
7394 TARGET_HANDLE_OPTION.
7395 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
7396 Move to m68k-common.c.
7397 * config/mcore/mcore.c (mcore_option_optimization_table,
7398 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7399 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
7400 * config/mep/mep.c (mep_option_optimization_table,
7401 mep_handle_option, TARGET_HANDLE_OPTION,
7402 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
7403 Move to mep-common.c.
7404 * config/microblaze/microblaze.c
7405 (microblaze_option_optimization_table,
7406 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7407 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
7408 * config/mips/mips.c (mips_handle_option,
7409 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7410 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
7411 mips-common.c.
7412 * config/mmix/mmix.c (mmix_option_optimization_table,
7413 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7414 Move to mmix-common.c.
7415 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7416 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
7417 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7418 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
7419 * config/pa/pa.c: Include common/common-target.h.
7420 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7421 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7422 pa_handle_option): Move to pa-common.c.
7423 (pa_option_override): Use targetm_common.except_unwind_info.
7424 (pa_asm_output_mi_thunk, pa_function_section): Use
7425 targetm_common.have_named_sections.
7426 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
7427 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7428 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7429 pdp11_handle_option, pdp11_option_init_struct): Move to
7430 pdp11-common.c.
7431 * config/picochip/picochip.c (picochip_option_optimization_table,
7432 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
7433 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
7434 * config/rs6000/rs6000.c: Include common/common-target.h.
7435 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
7436 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
7437 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
7438 rs6000_handle_option): Move to rs6000-common.c.
7439 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7440 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
7441 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7442 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
7443 * config/s390/s390.c (processor_flags_table,
7444 s390_option_optimization_table, s390_option_init_struct,
7445 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
7446 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7447 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
7448 * config/s390/s390.h (processor_flags_table): Declare.
7449 * config/score/score.c (score_option_optimization_table,
7450 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7451 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
7452 score_handle_option): Move to score-common.c.
7453 * config/sh/sh.c (sh_option_optimization_table,
7454 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7455 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7456 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
7457 * config/sparc/sparc.c: Include common/common-target.h.
7458 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7459 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
7460 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
7461 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
7462 spu_option_init_struct): Move to spu-common.c.
7463 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7464 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
7465 * config/v850/v850.c (small_memory_physical_max,
7466 v850_handle_memory_optionn v850_handle_option,
7467 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7468 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
7469 v850-common.c.
dab5a239 7470 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
218e3e4e 7471 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
7472 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7473 Move to xtensa-common.c.
7474 * cfglayout.c: Include common/common-target.h.
7475 (fixup_reorder_chain): Use targetm_common.have_named_sections.
7476 * cfgrtl.c: Include common/common-target.h.
7477 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
7478 targetm_common.have_named_sections.
7479 * dbxout.c: Include common/common-target.h.
7480 (dbxout_function_end): Use targetm_common.have_named_sections.
7481 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
7482 targetm_common.except_unwind_info.
7483 * dwarf2out.c: Include common/common-target.h.
7484 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
7485 dwarf2out_begin_prologue, dwarf2out_frame_init,
7486 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
7487 targetm_common.except_unwind_info.
7488 * except.c: Include common/common-target.h.
7489 (init_eh, finish_eh_generation,
7490 output_one_function_exception_table): Use
7491 targetm_common.except_unwind_info.
dab5a239 7492 (switch_to_exception_section): Use targetm_common.have_named_sections.
218e3e4e 7493 * explow.c: Include common/common-target.h.
7494 * expr.c: Include common/common-target.h.
dab5a239 7495 (build_personality_function): Use targetm_common.except_unwind_info.
218e3e4e 7496 * function.c: Include common/common-target.h.
7497 (expand_function_end): Use targetm_common.except_unwind_info.
7498 * haifa-sched.c: Include common/common-target.h.
dab5a239 7499 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
218e3e4e 7500 * lto-opts.c: Include common/common-target.h instead of target.h.
7501 (lto_reissue_options): Use targetm_common.handle_option.
7502 * opts.c: Include common/common-target.h.
7503 (target_handle_option): Use targetm_common.handle_option.
7504 (init_options_struct): Update comment referring to
7505 targetm.target_option.optimization. Use
7506 targetm_common.default_target_flags,
7507 targetm_common.unwind_tables_default and
7508 targetm_common.option_init_struct.
7509 (default_options_optimization): Use
7510 targetm_common.option_optimization_table.
7511 (finish_options): Use targetm_common.except_unwind_info,
7512 targetm_common.unwind_tables_default,
7513 targetm_common.have_named_sections and
7514 targetm_common.supports_split_stack.
7515 * toplev.c: Include common/common-target.h.
7516 (process_options): Use targetm_common.have_named_sections.
7517 * tree-tailcall.c: Include common/common-target.h.
dab5a239 7518 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
218e3e4e 7519 * tree.c: Include common/common-target.h.
dab5a239 7520 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
218e3e4e 7521 * varasm.c: Include common/common-target.h.
7522 (resolve_unique_section, hot_function_section,
7523 default_function_section): Use targetm_common.have_named_sections.
7524
b4a708fb 75252011-06-14 Easwaran Raman <eraman@google.com>
7526
7527 PR rtl-optimization/44194
7528 * dse.c: Include tree-flow.h
7529 (insn_info): Add new field non_frame_wild_read.
7530 (group_info): Add new fields escaped_n and escaped_p.
7531 (kill_on_calls): New variable.
7532 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
7533 (dse_step0): Initialize kill_on_calls.
7534 (can_escape): New function.
7535 (set_usage_bits): Add additional parameter; record information
7536 about escaped locations.
dab5a239 7537 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
b4a708fb 7538 (dse_step2_nospill): Set kill_on_calls based on
7539 group->escaped_n and group->escaped_n.
7540 (add_wild_read): Refactor into...
7541 (reset_active_stores): ... New function, and
7542 (free_read_records): ... New function.
7543 (add_non_frame_wild_read): New function.
7544 (scan_insn): Call add_non_frame_wild_read on non-const calls.
dab5a239 7545 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
b4a708fb 7546 (dse_step5_nospill): Call scan_reads_nospill for instructions
7547 marked as non_frame_wild_read.
dab5a239 7548 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
b4a708fb 7549
3e87b980 75502011-06-14 Joseph Myers <joseph@codesourcery.com>
7551
7552 * common/common-target-def.h, common/common-target.def,
7553 common/common-target.h, common/config/default-common.c,
7554 common/config/pa/pa-common.c: New files.
7555 * Makefile.in (common_out_file, common_out_object_file,
7556 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
7557 (OBJS-libcommon-target): Include $(common_out_object_file).
7558 (prefix.o): Update dependencies.
7559 ($(common_out_object_file), common/common-target-hooks-def.h,
7560 s-common-target-hooks-def-h): New.
7561 (s-tm-texi): Also check timestamp on common-target.def.
7562 (build/genhooks.o): Update dependencies.
7563 * config.gcc (common_out_file, target_has_targetm_common): Define.
7564 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
7565 TARGET_ALWAYS_STRIP_DOTDOT.
7566 * configure.ac (common_out_object_file): Define.
7567 (common_out_file, common_out_object_file): Substitute.
7568 (common): Create directory.
7569 * configure: Regenerate.
7570 * doc/tm.texi.in (targetm_common): Document.
7571 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
7572 * doc/tm.texi: Regenerate.
7573 * genhooks.c (hook_array): Also include common/common-target.def.
7574 * prefix.c (tm.h): Don't include.
7575 (common/common-target.h): Include.
7576 (ALWAYS_STRIP_DOTDOT): Don't define.
7577 (update_path): Use targetm_common.always_strip_dotdot instead of
7578 ALWAYS_STRIP_DOTDOT.
7579 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
7580
771e2890 75812011-06-14 David Li <davidxl@google.com>
7582
7583 * passes.c (execute_function_todo): Remove TODO_dump_func.
7584 (execute_one_pass): Remove TODO_dump_func.
7585 (execute_function_dump): New function.
7586 * tree-vrp.c: Remove TODO_dump_func.
7587 * regrename.c: Remove TODO_dump_func.
7588 * fwprop.c: Remove TODO_dump_func.
7589 * tree-into-ssa.c: Remove TODO_dump_func.
7590 * tree-complex.c: Remove TODO_dump_func.
7591 * tracer.c: Remove TODO_dump_func.
7592 * tree-loop-distribution.c: Remove TODO_dump_func.
7593 * postreload-gcse.c: Remove TODO_dump_func.
7594 * postreload.c: Remove TODO_dump_func.
7595 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
7596 * tree-tailcall.c: Remove TODO_dump_func.
7597 * ipa-cp.c: Remove TODO_dump_func.
7598 * final.c: Remove TODO_dump_func.
7599 * tree-emutls.c: Remove TODO_dump_func.
7600 * omp-low.c: Remove TODO_dump_func.
7601 * tree-ssa-dse.c: Remove TODO_dump_func.
7602 * tree-ssa-uncprop.c: Remove TODO_dump_func.
7603 * auto-inc-dec.c: Remove TODO_dump_func.
7604 * reorg.c: Remove TODO_dump_func.
7605 * tree-ssa-copyrename.c: Remove TODO_dump_func.
7606 * tree-ssa-ccp.c: Remove TODO_dump_func.
7607 * compare-elim.c: Remove TODO_dump_func.
7608 * mode-switching.c: Remove TODO_dump_func.
7609 * modulo-sched.c: Remove TODO_dump_func.
7610 * tree-call-cdce.c: Remove TODO_dump_func.
7611 * cse.c: Remove TODO_dump_func.
7612 * web.c: Remove TODO_dump_func.
7613 * tree-stdarg.c: Remove TODO_dump_func.
7614 * lto-streamer-out.c: Remove TODO_dump_func.
7615 * tree-ssa-math-opts.c: Remove TODO_dump_func.
7616 * tree-ssa-dom.c: Remove TODO_dump_func.
7617 * tree-nrv.c: Remove TODO_dump_func.
7618 * loop-init.c: Remove TODO_dump_func.
7619 * gimple-low.c: Remove TODO_dump_func.
7620 * ipa-inline.c: Remove TODO_dump_func.
7621 * tree-ssa-sink.c: Remove TODO_dump_func.
7622 * jump.c: Remove TODO_dump_func.
7623 * ifcvt.c: Remove TODO_dump_func.
7624 * tree-ssa-loop.c: Remove TODO_dump_func.
7625 * recog.c: Remove TODO_dump_func.
7626 * dse.c: Remove TODO_dump_func.
7627 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
7628 * matrix-reorg.c: Remove TODO_dump_func.
7629 * tree-eh.c: Remove TODO_dump_func.
7630 * regmove.c: Remove TODO_dump_func.
7631 * function.c: Remove TODO_dump_func.
7632 * tree-vectorizer.c: Remove TODO_dump_func.
7633 * ipa-split.c: Remove TODO_dump_func.
7634 * gcse.c: Remove TODO_dump_func.
7635 * tree-if-conv.c: Remove TODO_dump_func.
7636 * init-regs.c: Remove TODO_dump_func.
7637 * tree-ssa-phiopt.c: Remove TODO_dump_func.
7638 * implicit-zee.c: Remove TODO_dump_func.
7639 * lower-subreg.c: Remove TODO_dump_func.
7640 * bt-load.c: Remove TODO_dump_func.
7641 * tree-dfa.c: Remove TODO_dump_func.
7642 * except.c: Remove TODO_dump_func.
7643 * emit-rtl.c: Remove TODO_dump_func.
7644 * store-motion.c: Remove TODO_dump_func.
7645 * cfgexpand.c: Remove TODO_dump_func.
7646 * tree-cfgcleanup.c: Remove TODO_dump_func.
7647 * cfgcleanup.c: Remove TODO_dump_func.
7648 * tree-ssa-pre.c: Remove TODO_dump_func.
7649 * tree-sra.c: Remove TODO_dump_func.
7650 * tree-mudflap.c: Remove TODO_dump_func.
7651 * tree-ssa-copy.c: Remove TODO_dump_func.
7652 * cfglayout.c: Remove TODO_dump_func.
7653 * tree-ssa-forwprop.c: Remove TODO_dump_func.
7654 * tree-ssa-dce.c: Remove TODO_dump_func.
7655 * ira.c: Remove TODO_dump_func.
7656 * tree-ssa.c: Remove TODO_dump_func.
7657 * integrate.c: Remove TODO_dump_func.
7658 * tree-optimize.c: Remove TODO_dump_func.
7659 * tree-ssa-phiprop.c: Remove TODO_dump_func.
7660 * tree-object-size.c: Remove TODO_dump_func.
7661 * combine.c: Remove TODO_dump_func.
7662 * bb-reorder.c: Remove TODO_dump_func.
7663 * cprop.c: Remove TODO_dump_func.
7664 * var-tracking.c: Remove TODO_dump_func.
7665 * tree-profile.c: Remove TODO_dump_func.
7666 * tree-vect-generic.c: Remove TODO_dump_func.
7667 * reg-stack.c: Remove TODO_dump_func.
7668 * sched-rgn.c: Remove TODO_dump_func.
7669 * tree-ssa-structalias.c: Remove TODO_dump_func.
7670 * tree-switch-conversion.c: Remove TODO_dump_func.
7671 * tree-cfg.c: Remove TODO_dump_func.
7672 * tree-ssa-reassoc.c: Remove TODO_dump_func.
7673 * combine-stack-adj.c: Remove TODO_dump_func.
7674 * dce.c: Remove TODO_dump_func.
7675 * tree-ssanames.c: Remove TODO_dump_func.
7676 * regcprop.c: Remove TODO_dump_func.
7677
499eee58 76782011-06-14 H.J. Lu <hongjiu.lu@intel.com>
7679
7680 PR middle-end/47364
7681 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
7682 and properly handle result not in Pmode.
7683
a306f2da 76842011-06-14 Robert Millan <rmh@gnu.org>
7685
7686 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
7687 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
7688 `config/linux.h'.
7689
7690 * config/i386/kfreebsd-gnu64.h: New file.
7691 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
7692 with `i386/kfreebsd-gnu64.h'.
7693
7694 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
7695 (GNU_USER_LINK_EMULATION64): New macros.
7696 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
7697 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
7698 of hardcoding `elf_i386' and `elf_x86_64'.
7699
3f6c197f 77002011-06-14 Nick Clifton <nickc@redhat.com>
7701
7702 PR target/49403
7703 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
7704
7705 PR target/49402
7706 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
7707
a79761ff 77082011-06-14 Jakub Jelinek <jakub@redhat.com>
7709
c7c68014 7710 PR fortran/49103
7711 * tree.h (DECL_NONSHAREABLE): Define.
7712 (struct tree_decl_common): Change decl_common_unused to
7713 decl_nonshareable_flag.
7714 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
7715 Ignore vars with DECL_NONSHAREABLE bit set.
7716 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
7717 on stores to automatic aggregate vars.
7718
a79761ff 7719 PR rtl-optimization/49390
7720 Revert:
7721 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
7722
7723 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
7724 MEM_ALIAS_SET.
7725
8fe79ba5 77262011-06-14 Zdenek Dvorak <ook@ucw.cz>
7727 Tom de Vries <tom@codesourcery.com>
7728
7729 PR target/45098
7730 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
7731 Document changed semantics.
7732 (max_stmt_executions, max_stmt_executions_int): Declare.
7733 * tree-data-ref.c (estimated_loop_iterations)
7734 (estimated_loop_iterations_int): Move functions...
7735 * tree-ssa-loop-niter.c (estimated_loop_iterations)
7736 (estimated_loop_iterations_int): here.
7737 (record_estimate): Change nb_iterations_upper_bound and
7738 nb_iterations_estimate semantics.
7739 (max_stmt_executions, max_stmt_executions_int): New function.
7740 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
7741 (max_stmt_executions_tree): this.
7742 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
7743 estimated_loop_iterations_tree.
7744 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
7745 max_stmt_executions_int instead of estimated_loop_iterations_int.
7746 * predict.c (predict_loops): Idem.
7747 * tree-parloops.c (parallelize_loops): Idem.
7748 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
7749 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
7750 (init_omega_for_ddr_1): Idem.
7751 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
7752 (loop_prefetch_arrays): Idem
7753 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
7754 max_stmt_executions instead of estimated_loop_iterations.
7755 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
7756 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
7757 instead of nb_iterations_upper_bound.
7758
9ff0849c 77592011-06-13 Jan Hubicka <jh@suse.cz>
7760
7761 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
7762
e2fd48f3 77632011-06-14 Richard Henderson <rth@redhat.com>
7764
7765 PR debug/48459
7766 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
7767 (based_loc_descr): Assert it's true.
7768 (compute_frame_pointer_to_fb_displacement): Set it, rather than
7769 aborting immediately.
7770
c02b4679 77712011-06-14 Sanjin Liu <scliu@faraday-tech.com>
7772 Mingfeng Wu <mingfeng@faraday-tech.com>
7773
7774 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
7775
7fc881cc 77762011-06-13 Jan Hubicka <jh@suse.cz>
7777
7778 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
7779
89bf5ca9 77802011-06-13 Jan Hubicka <jh@suse.cz>
7781
7782 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
7783 similarly to DECL_COMDAT.
7784 * cgraphunit.c (cgraph_analyze_function): Likewise.
7785 * ipa.c (function_and_variable_visibility): Likewise.
7786
3b368b8f 77872011-06-13 Jan Hubicka <jh@suse.cz>
7788
7789 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
7790 BINFO_VIRTUALS when streaming for ltrans unit.
7791
6fcacb47 77922011-06-13 David Edelsohn <dje.gcc@gmail.com>
7793
7794 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
7795 (movdi_internal64): Same.
7796
77972011-06-13 Edmar Wienskoski <edmar@freescale.com>
7798
2d7063ae 7799 PR target/44618
a306f2da 7800 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
7801 a set of similar patterns, where the MATCH_OPERAND for the function
7802 argument is replaced with individual references to hardware registers.
6fcacb47 7803 (save_fpregs_<mode>): Ditto
7804 (restore_gpregs_<mode>): Ditto
7805 (return_and_restore_gpregs_<mode>): Ditto
7806 (return_and_restore_fpregs_<mode>): Ditto
7807 (return_and_restore_fpregs_aix_<mode>): Ditto
7808
ee5e516b 78092011-06-13 Jan Hubicka <jh@suse.cz>
7810
7811 * ipa-utils.c (postorder_stack): New structure.
7812 (ipa_reverse_postorder): Handle aliases.
7813
78142011-06-13 Jan Hubicka <jh@suse.cz>
7815
7816 * ipa-inline.c (reset_edge_caches): Walk aliases.
7817 (update_caller_keys): Do not test inlinability of aliases.
7818 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
7819 (do_estimate_growth): Fix typo.
7820
7791b0eb 78212011-06-13 Jan Hubicka <jh@suse.cz>
7822
7823 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
7824 (can_remove_node_now_p): ... here; handle same comdat groups.
7825 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
7826 (inline_call): Update use of can_remove_node_now_p.
7827
eda83832 78282011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
b5f36b75 7829
eda83832 7830 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
b5f36b75 7831 condition to disallow non-identical memory locations.
7832 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
7833 preference to bit manipulation instructions.
b5f36b75 7834
794fd282 78352011-06-13 Jan Hubicka <jh@suse.cz>
7836
7837 * cgraph.c (cgraph_for_node_thunks_and_aliases,
7838 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
7839 (nonremovable_p): New function.
7840 (cgraph_can_remove_if_no_direct_calls_p): New function.
7841 (used_from_object_file_p): New functoin.
eda83832 7842 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
7843 references from aliases.
794fd282 7844 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
7845 * ipa-inline.c (check_caller_edge): New function.
eda83832 7846 (want_inline_function_called_once_p): Use it; accept aliases called
7847 once, too.
794fd282 7848 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
7849
11371434 78502011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7851
7852 PR target/48454
7853 * config/arm/neon.md (vec_pack_trunc): Set the lengths
7854 correctly for the case with Quad vectors.
7855
85078181 78562011-06-13 Jakub Jelinek <jakub@redhat.com>
7857 Ira Rosen <ira.rosen@linaro.org>
7858
7859 PR tree-optimization/49352
7860 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
7861 all, make sure loop_use_stmt after the loop is a def stmt of a used
7862 SSA_NAME that is the only one defined inside of the loop. Don't
7863 check for COND_EXPR and GIMPLE_BINARY_RHS.
7864 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
7865 check_reduction is true.
7866
37ec4be4 78672011-06-11 Jan Hubicka <jh@suse.cz>
7868
7869 PR middle-end/49373
7870 * ipa.c (cgraph_externally_visible_p): Check resolution info.
7871
77486e4a 78722011-06-11 Jan Hubicka <jh@suse.cz>
7873
7874 PR middle-end/48836
7875 * ipa-inline-transform.c: Include tree-pass.h
7876 (inline_transform): Set TODO_update_ssa_only_virtuals.
7877 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
7878
8a472e4d 78792011-06-11 Jan Hubicka <jh@suse.cz>
7880
7881 PR middle-end/49378
7882 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
7883 aliases and thunks.
7884
593fa4d1 78852011-06-12 Ira Rosen <ira.rosen@linaro.org>
7886
7887 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
7888 Take number of iterations to peel into account for equally frequent
7889 misalignment values.
7890
8cdd3a7e 78912011-06-11 Jan Hubicka <jh@suse.cz>
7892
dab5a239 7893 * lto-streamer-out.c (produce_symtab): Stream out the newly
7894 represented aliases.
8cdd3a7e 7895
691292c5 78962011-06-11 Jan Hubicka <jh@suse.cz>
7897
dab5a239 7898 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
7899 varying args.
691292c5 7900 (ipa_update_after_lto_read): Likewise.
7901 (ipa_write_node_info): Do not sream call_with_var_arguments.
7902 (ipa_read_node_info): Likewise.
7903
177759c9 79042011-06-11 Jan Hubicka <jh@suse.cz>
7905
7906 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
7907
c70f46b0 79082011-06-11 Jan Hubicka <jh@suse.cz>
7909
7910 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
7911 (lto_symtab_resolve_can_prevail_p): Likewise.
7912 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
7913 * cgraph.c (same_body_aliases_done): New global var.
7914 (cgraph_same_body_alias_1): Rename to ...
7915 (cgraph_create_function_alias): ... this one; reorg to new
7916 representation.
7917 (cgraph_same_body_alias): Use cgraph_create_function_alias;
7918 record references when asked to.
7919 (cgraph_add_thunk): Fix formating.
7920 (cgraph_get_node): Kill same body alias code.
7921 (cgraph_node_for_asm): Likewise.
7922 (cgraph_remove_same_body_alias): Remove.
7923 (cgraph_remove_node): Kill same body alias code.
7924 (cgraph_mark_address_taken_node): Mark also the aliased function
7925 as having address taken.
7926 (dump_cgraph_node): Dump same body aliases.
7927 (cgraph_for_node_thunks_and_aliases): Update for new alias
7928 representation.
7929 (cgraph_for_node_and_aliases): Likewise.
7930 * cgraph.h (same_body): Kll pointer.
7931 (same_body_alias): Update comment.
7932 (same_body_aliases_done): Declare.
7933 (cgraph_remove_same_body_alias): Remove declaration.
7934 (cgraph_create_function_alias): Declare.
7935 (cgraph_process_same_body_aliases): Declare.
7936 (cgraph_function_with_gimple_body_p): Check for alias.
7937 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
7938 (cgraph_alias_aliased_node): New function.
7939 (cgraph_function_node): Update for new aliases.
7940 (cgraph_function_or_thunk_node): Likewise.
7941 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
7942 (inline_call): Remove dead aliases.
eda83832 7943 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
7944 name hack for same body aliases.
c70f46b0 7945 (clone_of_p): Look through aliases.
7946 (verify_cgraph_node): Verify aliases.
7947 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
7948 (cgraph_process_same_body_aliases): New function.
7949 (process_function_and_variable_attributes): Disable weakref warning on
7950 alias.
7951 (cgraph_analyze_functions): Handle aliases.
7952 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
7953 (assemble_thunks): Rename to ...
7954 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
7955 (cgraph_expand_function): Remove alias output code.
7956 (cgraph_output_in_order): Skip aliases.
7957 (cgraph_preserve_function_body_p): Aliases don't need preserving.
7958 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
7959 (ipa_record_reference): Do not assert on alias references.
7960 (ipa_ref_has_aliases_p): New function.
7961 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
7962 (ipa_ref_has_aliases_p): Declare.
7963 * lto-cgraph.c (lto_output_node): Handle aliases.
7964 (input_node): Likewise.
7965 * lto-streamer-out.c (lto_output): Skip aliases.
7966 (produce_symtab): Kill same_body_alias code.
7967 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
7968 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
7969 * ipa-inline.c (update_caller_keys): Walk aliases.
7970 (inline_small_functions): Fix thinko in previous patch.
7971 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
7972 (function_and_variable_visibility): Do not walk same body aliases.
7973 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
7974 (ipa_pta_execute): Use it.
7975
a17124a0 79762011-06-11 Uros Bizjak <ubizjak@gmail.com>
7977
7978 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
7979 (*vec_dupv2df): Rename from vec_dupv2df.
7980 (vec_dupv2df): New expander.
7981
79822011-06-11 Uros Bizjak <ubizjak@gmail.com>
7983
7984 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
7985
79862011-06-11 Uros Bizjak <ubizjak@gmail.com>
7987
7988 * config/i386/i386.md: Use default value in "isa" attribute.
7989 * config/i386/sse.md: Ditto.
7990 * config/i386/mmx.md: Ditto.
7991
a71b0c8e 79922011-06-10 Wei Guozhi <carrot@google.com>
7993
7994 PR target/45335
7995 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
7996 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
7997 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
7998 related peephole2.
7999 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
8000 related peephole2.
8001 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
8002 (arm_legitimate_ldrd_p): New prototype.
8003 (arm_output_ldrd): New prototype.
8004 * config/arm/arm.c (arm_check_ldrd_operands): New function.
8005 (arm_legitimate_ldrd_p): New function.
8006 (arm_output_ldrd): New function.
8007
ec4791a8 80082011-06-10 David Li <davidxl@google.com>
8009
8010 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8011 * passes.c (passr_eq): New function.
8012 (create_pass_tab): New function.
8013 (pass_traverse): New function.
8014 (dump_one_pass): New function.
8015 (dump_pass_list): New function.
8016 (dump_passes): New function.
8017
8c1fce46 80182011-06-10 Jan Hubicka <jh@suse.cz>
8019
8020 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
8021 setting the nothrow flag.
8022 * ipa-reference.c (propagate): Skip aliases.
8023 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
8024 (propagate_nothrow): Skip aliases; do not update cgraph.
8025 (local_pure_const): Do not update cgraph.
8026 * tree-profile.c (tree_profiling): Do fixup_cfg.
8027
36a32361 80282011-06-10 Jan Hubicka <jh@suse.cz>
8029
8030 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
8031 (cgraph_local_node_p): ... here; handle aliases.
8032 (has_addr_references_p): Break out from ...;
8033 (cgraph_remove_unreachable_nodes) ... here.
8034
055af069 80352011-06-10 Jan Hubicka <jh@suse.cz>
8036
8037 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
a17124a0 8038 * common.opt (flag_inline_functions_called_once): Do not
8039 initialize to 1.
055af069 8040
eae7682a 80412011-06-10 Jan Hubicka <jh@suse.cz>
8042
8043 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
a17124a0 8044 (ipcp_initialize_node_lattices): Do not deal with aliases;
8045 Do not try to propagate through thunks.
eae7682a 8046 (ipcp_change_tops_to_bottom): Do not deal with aliases.
8047
d6731c65 80482011-06-10 Jan Hubicka <jh@suse.cz>
8049
a17124a0 8050 * ipa-prop.c (ipa_write_node_info): Stream jump functions
8051 for indirect calls.
d6731c65 8052 (ipa_read_node_info): Likewise.
8053
a5c384c1 80542011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8055
8056 PR lto/49302
8057 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
8058 (build_and_insert_call): Likewise.
8059 (build_and_insert_ref): New.
8060 (gimple_expand_builtin_pow): Minor cleanup.
8061 (gimple_expand_builtin_cabs): New.
8062 (execute_cse_sincos): Add case for BUILT_IN_CABS.
a17124a0 8063
4855a75d 80642011-06-10 Jan Hubicka <jh@suse.cz>
8065
8066 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
8067 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
8068 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
8069 (ipcp_propagate_stage): Skip aliases when propagating.
8070 (ipcp_need_redirect_p): Skip aliases.
8071 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
8072 collect_callers_of_node.
8073 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
8074 for aliases.
8075 (ipa_compute_jump_functions): Look through aliases.
8076
5c799286 80772011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8078
8079 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
8080
d12ecbda 80812011-06-10 Hans-Peter Nilsson <hp@axis.com>
8082
8083 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
8084 Adjust comments.
8085 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
8086
b21cfa64 80872011-06-10 Jan Hubicka <jh@suse.cz>
8088
8089 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
8090 Update call of gimple_get_virt_method_for_binfo.
8091 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
8092 refuse_thunks parameter.
8093 (gimple_fold_call): Update.
8094 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
8095
1dd91a19 80962011-06-10 Jan Hubicka <jh@suse.cz>
8097
8098 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
8099 (not_all_callers_have_enough_arguments_p): ... this one; turn into
8100 worker for cgraph_for_node_and_aliases.
8101 (convert_callers_for_node): Break out from ...
8102 (convert_callers): ... here.
8103 (modify_function): Use collect_callers_of_node.
8104 (ipa_early_sra): Use cgraph_for_node_and_aliases.
8105
3050df3e 81062011-06-10 Richard Guenther <rguenther@suse.de>
8107
8108 PR tree-optimization/49361
8109 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
8110 when not already in gimple form.
8111
5715c09b 81122011-06-10 Richard Guenther <rguenther@suse.de>
8113
8114 PR bootstrap/49344
8115 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
8116 FOR_EACH_PHI_OR_STMT_USE.
8117
82626cb0 81182011-06-10 Jan Hubicka <jh@suse.cz>
8119
8120 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
8121 (clone_inlined_nodes): ... here.
8122 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
8123 to real destination prior inlining.
8124 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
8125 can_early_inline_edge_p, want_early_inline_function_p,
8126 want_early_inline_function_p, want_inline_small_function_p,
8127 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
8128 edge_badness, update_all_callee_keys, lookup_recursive_calls,
8129 add_new_edges_to_heap, inline_small_functions, flatten_function,
8130 inline_always_inline_functions, early_inline_small_functions): Use
8131 cgraph_function_or_thunk_node.
8132 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
8133 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
8134 (do_estimate_edge_growth_1): Break out from ...
8135 (do_estimate_growth) ... here; walk aliases.
8136 (inline_generate_summary): Skip aliases.
8137
a7107e58 81382011-06-10 Richard Guenther <rguenther@suse.de>
8139
a17124a0 8140 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
8141 forward when combining, visit inserted stmts when a stmt was changed.
a7107e58 8142
da579dbb 81432011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
8144
8145 * tree.h (error_operand_p): Add.
8146 * dbxout.c (dbxout_type_fields): Use the latter.
8147 * c-decl.c (add_stmt): Likewise.
8148 * gimplify.c (omp_add_variable, omp_notice_variable,
8149 gimplify_scan_omp_clauses): Likewise.
8150
e46ab6d3 81512011-06-10 Georg-Johann Lay <avr@gjlay.de>
da579dbb 8152
e46ab6d3 8153 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
8154 when a value is actually passed in regs.
8155
47529489 81562011-06-10 Eric Botcazou <ebotcazou@adacore.com>
165d480a 8157 Laurent Rougé <laurent.rouge@menta.fr>
47529489 8158
8159 * doc/invoke.texi (SPARC options): Add -mflat.
8160 * config/sparc/sparc.opt: Likewise.
8161 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
8162 (sparc_flat_expand_prologue): Declare.
8163 (sparc_flat_expand_epilogue): Likewise.
8164 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
8165 (CPP_ENDIAN_SPEC): Replace with...
8166 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
8167 (CPP_SPEC): Adjust to above change.
8168 (EXTRA_SPECS): Likewise.
8169 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
8170 (INCOMING_REGNO): Likewise.
8171 (OUTGOING_REGNO): Likewise.
8172 (LOCAL_REGNO): Likewise.
8173 (SETUP_FRAME_ADDRESSES): Likewise.
8174 (FIXED_REGISTERS): Set 0 for %fp.
8175 (CALL_USED_REGISTERS): Likewise.
8176 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
8177 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
8178 (RETURN_ADDR_REGNUM): Define.
8179 (RETURN_ADDR_RTX): Use it.
8180 (INCOMING_RETURN_ADDR_REGNUM): Define.
8181 (INCOMING_RETURN_ADDR_RTX): Use it.
8182 (DWARF_FRAME_RETURN_COLUMN): Likewise.
8183 (EH_RETURN_REGNUM): Define.
8184 (EH_RETURN_STACKADJ_RTX): Use it.
8185 (EH_RETURN_HANDLER_RTX): Delete.
8186 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
8187 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
8188 Delete.
8189 (struct machine_function): Add frame_size, apparent_frame_size,
8190 frame_base_reg, frame_base_offset, n_global_fp_regs and
8191 save_local_in_regs_p fields.
8192 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
8193 sparc_frame_base_offset, sparc_n_global_fp_regs,
8194 sparc_save_local_in_regs_p): New macros.
8195 (sparc_option_override): Error out if -fcall-saved-REG is specified
8196 for Out registers.
8197 (eligible_for_restore_insn): Fix formatting.
8198 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
8199 (eligible_for_sibcall_delay): Likewise.
8200 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
8201 (sparc_legitimate_address_p): Adjust to above change.
8202 (save_global_or_fp_reg_p): New predicate.
8203 (return_addr_reg_needed_p): Likewise.
8204 (save_local_or_in_reg_p): Likewise.
8205 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
8206 (SORR_SAVE, SORR_RESTORE): Delete.
8207 (sorr_pred_t): New typedef.
8208 (sorr_act_t): New enum.
8209 (save_or_restore_regs): Rename to...
8210 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
8211 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
8212 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
8213 mechanism. Add CFI information for double-word saves in 32-bit mode.
8214 (emit_adjust_base_to_offset): New function extracted from...
8215 (emit_save_or_restore_regs): ...this. Rename the rest to...
8216 (emit_save_or_restore_regs_global_fp_regs): ...this.
8217 (emit_save_or_restore_regs_local_in_regs): New function.
8218 (gen_create_flat_frame_[123]): New functions.
8219 (sparc_expand_prologue): Use SIZE local variable. Adjust.
8220 (sparc_flat_expand_prologue): New function.
8221 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
8222 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
8223 (sparc_flat_expand_epilogue): New function.
8224 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
8225 (output_return): Likewise.
8226 (output_sibcall): Likewise.
8227 (sparc_output_mi_thunk): Likewise.
8228 (sparc_frame_pointer_required): Likewise.
8229 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
8230 function optimization.
8231 * config/sparc/sparc.md (flat): New attribute.
8232 (prologue): Add TARGET_FLAT handling.
8233 (save_register_window): Disable if TARGET_FLAT.
8234 (create_flat_frame_[123]): New patterns.
8235 (epilogue): Add TARGET_FLAT handling.
8236 (sibcall_epilogue): Likewise.
8237 (eh_return): New expander.
8238 (eh_return_internal): New insn and splitter.
8239 (return_internal): Add TARGET_FLAT handling.
8240 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
8241 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
8242 (nonlocal_goto): Add TARGET_FLAT handling.
8243 * config/sparc/t-elf: Add -mflat multilib.
8244 * config/sparc/t-leon: Likewise.
8245
b2c2e188 82462011-06-10 Jan Hubicka <jh@suse.cz>
8247
8248 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
8249 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
8250 (self_recursive_p): Use cgraph_function_node.
8251 (propagate_pure_const): Likewise.
8252 (propagate_nothrow): Likewise.
8253 * ipa-reference.c (ipa_reference_get_not_read_global): Use
8254 cgraph_function_node.
8255 (propagate_bits): Likewise.
8256 (propagate): Likewise.
8257
463d6a35 82582011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8259 Richard Earnshaw <rearnsha@arm.com>
8260
a17124a0 8261 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
463d6a35 8262 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
8263 (*thumb2_movdi_vfp): Delete.
8264 (*arm_movdi_vfp_cortexa8): Delete.
8265 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
8266 (*movdi_vfp_cortexa8): Likewise.
8267
f1444979 82682011-06-10 Richard Guenther <rguenther@suse.de>
8269
8270 * stor-layout.c (initialize_sizetypes): Give names to all
8271 sizetype kinds.
8272
67eea82d 82732011-06-10 Ira Rosen <ira.rosen@linaro.org>
8274
8275 PR tree-optimization/49318
8276 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
8277 irrelevant pattern statements.
8278
5bac2f8b 82792011-06-10 Hans-Peter Nilsson <hp@axis.com>
8280
db01fad0 8281 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
8282
5bac2f8b 8283 PR bootstrap/49354
8284 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
8285 to last assignment.
8286
443089c1 82872011-06-09 Jan Hubicka <jh@suse.cz>
8288
8289 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
8290 do not recompute reachable flag.
8291 (cgraph_finalize_function, cgraph_analyze_functions): Set
8292 redefined_extern_inline here.
8293
74fa5f1c 82942011-06-09 Jan Hubicka <jh@suse.cz>
8295
8296 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
8297 (cgraph_only_called_directly_p): ... this one; bring offline.
8298 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8299 varpool_used_from_object_file_p): Drop names from the declaratoin.
8300 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
8301 collect_callers_of_node): New.
8302 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
8303 (cgraph_edge_recursive_p): Use cgraph_function_node.
8304 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
8305 (cgraph_node_cannot_be_local_p_1): Break out from ...
8306 (cgraph_node_can_be_local_p): ... here; walk aliases.
8307 (cgraph_for_node_thunks_and_aliases): New function.
8308 (cgraph_for_node_and_aliases): New function.
8309 (cgraph_make_node_local_1): Break out from ...
a17124a0 8310 (cgraph_make_node_local) ... here; use
8311 cgraph_for_node_thunks_and_aliases.
74fa5f1c 8312 (cgraph_set_nothrow_flag_1): Break out from ...
a17124a0 8313 (cgraph_set_nothrow_flag) ... here;
8314 use cgraph_for_node_thunks_and_aliases.
74fa5f1c 8315 (cgraph_set_const_flag_1): Break out from ...
a17124a0 8316 (cgraph_set_const_flag) ... here;
8317 use cgraph_for_node_thunks_and_aliases.
74fa5f1c 8318 (cgraph_set_pure_flag_1): Break out from ...
a17124a0 8319 (cgraph_set_pure_flag) ... here;
8320 use cgraph_for_node_thunks_and_aliases.
74fa5f1c 8321 (cgraph_propagate_frequency_1): Break out from ...
a17124a0 8322 (cgraph_propagate_frequency) ... here; use
8323 cgraph_for_node_thunks_and_aliases.
74fa5f1c 8324 (cgraph_used_from_object_file_p): Do not care about aliases.
a17124a0 8325 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
8326 New functions.
74fa5f1c 8327 (collect_callers_of_node_1, collect_callers_of_node): New functions.
8328
34569717 83292011-06-10 Hans-Peter Nilsson <hp@axis.com>
8330
8331 PR rtl-optimization/49154
8332 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
8333 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
8334 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8335 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
8336 * config/cris/cris.h (cris_register_move_cost): Remove
8337 !TARGET_V32 code. Tweak comments.
8338
9be42e8c 83392011-06-09 Jan Hubicka <jh@suse.cz>
8340
8341 * cgraphbuild.c (record_eh_tables): Mark personality function as having
8342 address taken.
8343
a4621139 83442011-06-10 Hans-Peter Nilsson <hp@axis.com>
8345
fa715e07 8346 PR rtl-optimization/49154
a17124a0 8347 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
8348 is a matching slot in the hashtable, assign it to classes_ptr.
fa715e07 8349
24cedde8 8350 PR rtl-optimization/49154
a4621139 8351 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
8352 register classes.
8353 * doc/tm.texi: Regenerate.
8354
93289d7e 83552011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
8356
8357 PR target/49307
8358 * config/sh/sh.md (UNSPEC_CHKADD): New.
8359 (chk_guard_add): New define_insn_and_split.
8360 (symGOT_load): Use chk_guard_add instead of blockage.
8361
b7404024 83622011-06-09 Kai Tietz <ktietz@redhat.com>
8363
8364 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
8365
eb430f9f 83662011-06-09 Eric Botcazou <ebotcazou@adacore.com>
8367
8368 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
8369
922b6913 83702011-06-09 Wei Guozhi <carrot@google.com>
8371
8372 PR target/46975
8373 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
8374 (peephole2 for conditional move): Generate 16 bit instructions.
8375
c50e6579 83762011-06-09 Uros Bizjak <ubizjak@gmail.com>
8377
8378 * config/i386/i386.md (*movdi_internal_rex64): Merge
8379 alternatives 6 and 8.
8380
55dabf9b 83812011-06-09 David Li <davidxl@google.com>
8382
8383 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8384 * passes.c (passr_eq): New function.
8385 (create_pass_tab): New function.
8386 (pass_traverse): New function.
8387 (dump_one_pass): New function.
8388 (dump_pass_list): New function.
8389 (dump_passes): New function.
8390
10e20ba5 83912011-06-09 David Li <davidxl@google.com>
8392
8393 * tree-complex.c (tree_lower_complex): Gate cleanup.
8394 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
8395 (execute_optimize_stdarg): Ditto.
8396 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
8397 (execute_cleanup_eh_1): Ditto.
8398 (execute_cleanup_eh): Ditto.
8399 * gcse.c (gate_rtl_pre): Ditto.
8400 (execute_rtl_pre): Ditto.
8401 * except.c (finish_eh_generation): Ditto.
8402 (convert_to_eh_region_ranges): Ditto.
8403 * cprop.c (one_cprop_pass): Ditto.
8404
b3923b22 84052011-06-09 Bernd Schmidt <bernds@codesourcery.com>
8406
8407 PR target/48673
8408 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
8409 in all basic blocks.
8410
a6f06169 84112011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8412
8413 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
8414 (HAVE_ENABLE_EXECUTE_STACK): Define.
8415 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
8416 (HAVE_ENABLE_EXECUTE_STACK): Define.
8417 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
8418 (HAVE_ENABLE_EXECUTE_STACK): Define.
8419 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
8420 (ENABLE_EXECUTE_STACK): Remove.
8421 (HAVE_ENABLE_EXECUTE_STACK): Define.
8422 [IN_LIBGCC2]: Don't include <windows.h>.
8423 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8424 (HAVE_ENABLE_EXECUTE_STACK): Define.
8425 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
8426 (HAVE_ENABLE_EXECUTE_STACK): Define.
8427 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
8428 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
8429 (HAVE_ENABLE_EXECUTE_STACK): Define.
8430 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
8431 (HAVE_ENABLE_EXECUTE_STACK): Define.
8432 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
8433 (HAVE_ENABLE_EXECUTE_STACK): Define.
8434 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8435 (HAVE_ENABLE_EXECUTE_STACK): Define.
8436 * config/alpha/alpha.c (alpha_trampoline_init): Test
8437 HAVE_ENABLE_EXECUTE_STACK.
8438 * config/i386/i386.c (ix86_trampoline_init): Likewise.
8439 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
8440 (sparc64_initialize_trampoline): Likewise.
8441 * libgcc2.c [L_enable_execute_stack]: Remove.
8442 * system.h (ENABLE_EXECUTE_STACK): Poison.
8443 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
8444 * doc/tm.texi: Regenerate.
8445 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
8446
5af2c7fc 84472011-06-09 Jakub Jelinek <jakub@redhat.com>
8448
8449 PR middle-end/49308
8450 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
8451 variable. After resetting and rescanning insn continue with previous
8452 statement.
8453
b9099475 84542011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8455
8456 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
8457 (gcc_cv_ld_hidden): Likewise.
8458 * configure: Regenerate.
8459 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
8460 (ix86_stack_protect_fail): Mark unused.
8461 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
8462 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
8463 [TARGET_MACHO]: Don't define.
8464 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
8465 (TARGET_STACK_PROTECT_FAIL): Likewise.
8466 (rs6000_stack_protect_fail): Mark unused.
8467 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
c50e6579 8468 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
b9099475 8469
b74d9e7a 84702011-06-08 Andi Kleen <ak@linux.intel.com>
8471
8472 * varasm.c (get_section): Print location of other conflict
8473 for section conflicts.
8474
9eae7f95 84752011-06-08 Andi Kleen <ak@linux.intel.com>
8476
8477 * config/i386/driver-i386.c (host_detect_local_cpu):
8478 Add model 0x2d Intel CPU.
8479
ca2d5ca1 84802011-06-08 Andi Kleen <ak@linux.intel.com>
8481
8482 * reginfo.c (global_regs_decl): Add.
c50e6579 8483 (globalize_reg): Add decl parameter. Compute location. Pass location
8484 to warnings and add inform. Store decl in global_regs_decl.
ca2d5ca1 8485 * rtl.h (globalize_reg): Update prototype.
8486 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
8487
f2e5df9c 84882011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
8489
8490 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
8491
0c68c6cd 84922011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
8493
8494 PR target/49305
8495 * config/sh/predicates.md (general_movsrc_operand): Check
8496 mode for memory with indexed address for QI and HImode.
8497 (general_movdst_operand): Likewise.
8498
ba3f7241 84992011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
8500
c50e6579 8501 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
ba3f7241 8502
7115a510 85032011-06-08 Alexandre Oliva <aoliva@redhat.com>
8504
8505 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
8506 (num_ssa_operands): Likewise.
8507 (op_iter_init_phiuse): Forward-declare.
8508 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
8509
437e93d2 85102011-06-08 Nick Clifton <nickc@redhat.com>
8511
8512 * doc/invoke.texi (ARM Options): Update description of
8513 -mthumb-interwork.
8514
59e32513 85152011-06-08 H.J. Lu <hongjiu.lu@intel.com>
8516
8517 * config/i386/driver-i386.c (host_detect_local_cpu): Support
8518 unknown Intel family 0x6 CPUs.
8519
6a05dfa4 85202011-06-08 Martin Jambor <mjambor@suse.cz>
8521
8522 * tree-sra.c (mark_rw_status): Removed.
8523 (analyze_access_subtree): New parameter parent instead of
8524 mark_read and mark_write, propagate from that.
8525
4c39d4f7 85262011-06-08 Julian Brown <julian@codesourcery.com>
8527
8528 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
8529 for double-precision helper functions in hard-float mode if only
8530 single-precision arithmetic is supported in hardware.
8531
93457441 85322011-06-08 Alexander Monakov <amonakov@ispras.ru>
8533
8534 PR rtl-optimization/49303
8535 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
8536 code_motion_path_driver returned 0 or 1.
8537 (sel_region_finish): Clear h_d_i_d.
8538
eadf7d4b 85392011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
8540
8541 * config/sh/sh.c (prepare_move_operands): Set pic register
8542 appropriately for global and local dynamic tls models even
8543 if flag_pic is unset.
8544
1ea9269b 85452011-06-07 Jason Merrill <jason@redhat.com>
8546
8547 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
8548
901a9d42 85492011-06-07 Xinliang David Li <davidxl@google.com>
8550 * passes.c (enable_disable_pass): Handle assembler name.
8551 (is_pass_explicitly_enabled_or_disabled): Ditto.
8552
4c81323a 85532011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8554
8555 PR tree-optimization/48497
8556 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
8557
0b7ad900 85582011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8559
8560 PR tree-optimization/46728
8561 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
8562 to use gimple_val_nonnegative_real_p.
8563 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
8564 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
437e93d2 8565
e4701ee9 85662011-06-07 H.J. Lu <hongjiu.lu@intel.com>
8567
8568 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
8569
a02a9ea5 85702011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
8571
8572 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
8573 constant vectors.
8574
7907db97 85752011-06-07 Richard Guenther <rguenther@suse.de>
8576
8577 * stor-layout.c (initialize_sizetypes): Initialize all
8578 sizetypes based on target definitions.
8579 (set_sizetype): Remove.
8580 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
8581 * tree.h (set_sizetype): Remove.
8582
f5ec6516 85832011-06-07 Nick Clifton <nickc@redhat.com>
8584
8585 * config.gcc: Unify V850 architecture options and add support for
8586 newer V850 architectures.
8587 * config/v850/t-v850e: Delete.
8588
1af0124d 85892011-06-07 Richard Guenther <rguenther@suse.de>
8590
8591 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
8592 Call set_sizetype from here.
8593
9a92f368 85942011-06-07 Andrew Stubbs <ams@codesourcery.com>
8595
8596 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
8597 (*maddhisi4tb, *maddhisi4tt): New define_insns.
8598
9f9356e0 85992011-06-07 Bernd Schmidt <bernds@codesourcery.com>
8600 Andrew Stubbs <ams@codesourcery.com>
8601
8602 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
8603 multiplies.
8604 * doc/md.texi (Canonicalization of Instructions): Document widening
8605 multiply canonicalization.
8606
25ae05af 86072011-06-07 Jakub Jelinek <jakub@redhat.com>
8608
8609 PR gcov-profile/49299
c50e6579 8610 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
25ae05af 8611
0eee81bc 86122011-06-07 Ira Rosen <ira.rosen@linaro.org>
8613
8614 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
8615 a pointer.
8616 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
8617 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
8618 vect_recog_pow_pattern): Likewise.
8619 (vect_pattern_recog_1): Remove declaration.
8620 (widened_name_p): Remove declaration. Add new argument to specify
8621 whether to check that both types are either signed or unsigned.
8622 (vect_recog_widen_mult_pattern): Update documentation. Handle
8623 unsigned patterns and multiplication by constants.
8624 (vect_pattern_recog_1): Update vect_recog_func references. Use
8625 statement information from the statement returned from pattern
8626 detection functions.
8627 (vect_pattern_recog): Update vect_recog_func reference.
8628 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
8629 multiplication by a constant use the type of the other operand.
8630
17748811 86312011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
8632
8633 PR rtl-optimization/49145
8634 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
8635
bb4322f9 86362011-06-06 Jakub Jelinek <jakub@redhat.com>
8637
aca32d80 8638 PR debug/49262
8639 * dwarf2out.c (native_encode_initializer): Decrement count in each
8640 iteration.
8641
7938df80 8642 PR debug/49294
8643 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
8644 non-MODE_INT modes.
8645
bb4322f9 8646 PR c++/49264
8647 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
8648 if stmt folded into nothing.
c50e6579 8649 * tree-inline.c (fold_marked_statements): If a builtin at the end of
8650 a bb folded into nothing, just update cgraph edges and move to next bb.
bb4322f9 8651 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
8652 to be NULL. Don't compute count and frequency if new_call is NULL.
8653
a0605d65 86542011-06-04 Diego Novillo <dnovillo@google.com>
8655
8656 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
8657 (cgraph.o): Likewise.
8658 (cgraphunit.o): Likewise.
8659 * cgraphunit.c: Include lto-streamer.h
8660 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
8661 if LTO is enabled.
8662 * lto-streamer-in.c (unpack_value_fields): Call
8663 streamer_hooks.unpack_value_fields if set.
8664 (lto_materialize_tree): For unhandled nodes, first try to
8665 call lto_streamer_hooks.alloc_tree, if it exists.
8666 (lto_input_ts_decl_common_tree_pointers): Move reading of
8667 DECL_INITIAL to lto_streamer_read_tree.
8668 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
8669 (lto_streamer_read_tree): New.
8670 (lto_reader_init): Rename from lto_init_reader.
8671 Move initialization code to lto/lto.c.
8672 * lto-streamer-out.c (pack_value_fields): Call
8673 streamer_hooks.pack_value_fields if set.
c50e6579 8674 (lto_output_tree_ref): For tree nodes that are not normally indexable,
8675 call streamer_hooks.indexable_with_decls_p before giving up.
a0605d65 8676 (lto_output_ts_decl_common_tree_pointers): Move handling
c50e6579 8677 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
8678 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
8679 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
8680 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
a0605d65 8681 (lto_streamer_write_tree): New.
8682 (lto_output): Call lto_streamer_init directly.
8683 (lto_writer_init): Remove.
8684 * lto-streamer.c (streamer_hooks): New.
8685 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
8686 instead of lto_preload_common_nodes.
8687 (lto_is_streamable): Move from lto-streamer.h
8688 (lto_streamer_hooks_init): New.
8689 (streamer_hooks): New.
8690 (streamer_hooks_init): New.
8691 * lto-streamer.h (struct output_block): Forward declare.
8692 (struct lto_input_block): Likewise.
8693 (struct data_in): Likewise.
8694 (struct bitpack_d): Likewise.
8695 (struct streamer_hooks): Declare.
8696 (streamer_hooks): Declare.
8697 (lto_streamer_hooks_init): Declare.
8698 (lto_streamer_write_tree): Declare.
8699 (lto_streamer_read_tree): Declare.
8700 (streamer_hooks_init): Declare.
8701 (lto_is_streamable): Move to lto-streamer.c
8702
83a875e9 87032011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8704
8705 * longlong.h (smul_ppmm): The resulting register pair contains the
8706 higher order word first.
8707
0810ff17 87082011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8709
8710 PR tree-optimization/46728
8711 * builtins.c (powi_table): Remove.
8712 (powi_lookup_cost): Remove.
8713 (powi_cost): Remove.
8714 (expand_powi_1): Remove.
8715 (expand_powi): Remove.
8716 (expand_builtin_pow_root): Remove.
8717 (expand_builtin_pow): Remove.
8718 (expand_builtin_powi): Eliminate handling of constant exponent.
8719 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
c50e6579 8720
4446c883 87212011-06-06 Alexandre Oliva <aoliva@redhat.com>
8722
8723 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
8724
a6aa49aa 87252011-06-06 Alexandre Oliva <aoliva@redhat.com>
8726
8727 * dce.c (reset_unmarked_insns_debug_uses): New.
8728 (delete_unmarked_insns): Skip debug insns.
8729 (prescan_insns_for_dce): Likewise.
8730 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
8731 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
8732 active reg can be found.
8733 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
8734 (convert_regs_1): Use it.
8735
55b028fe 87362011-06-06 Alexandre Oliva <aoliva@redhat.com>
8737
8738 * tree-pretty-print.c (dump_function_header): Add flags.
8739 Don't dump decl_uid with nouid.
8740 * tree-pretty-print.h (dump_function_header): Adjust.
8741 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
8742 * passes.c (pass_init_dump_file): Pass dump_flags on.
8743 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
8744
72cb6720 87452011-06-06 Alexandre Oliva <aoliva@redhat.com>
8746
8747 PR bootstrap/49270
8748 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
8749
69010134 87502011-06-06 Mikael Pettersson <mikpe@it.uu.se>
8751
8752 PR tree-optimization/49243
8753 * calls.c (setjmp_call_p): Also check if fndecl has the
8754 returns_twice attribute.
8755
ee884cfb 87562011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8757
8758 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
8759 -ffast-math etc.
8760
8cb3a87f 87612011-06-06 Richard Henderson <rth@redhat.com>
8762 Georg-Johann Lay <avr@gjlay.de>
8763
8764 PR target/42210
8765 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
8766 New predicates.
8767 * config/avr/avr.md ("insv"): New insn expander.
8768 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
8769 "*insv.not.io", "*insv.reg"): New insns.
8770
5141388f 87712011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
8772
8773 PR target/49285
c50e6579 8774 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
8775 to nonimmediate_operand from memory_operand for the operand that is to
8776 be forced to memory by the expander. Lose the constraints.
5141388f 8777
3a88a70b 87782011-06-05 Eric Botcazou <ebotcazou@adacore.com>
8779
8780 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
8781 EH return when delayed branches are disabled.
8782
f45e47e6 87832011-06-05 Uros Bizjak <ubizjak@gmail.com>
8784
8785 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
8786 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
8787 calculation.
8788 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
8789 Simplify MODE_V1DF and MODE_V2SF handling.
8790 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
8791 Simplify MODE_SF handling.
8792
92ceb887 87932011-06-04 Jan Hubicka <jh@suse.cz>
8794
8795 PR tree-optimization/48893
8796 PR tree-optimization/49091
8797 PR tree-optimization/49179
8798 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
8799 Bounds check.
8800
29413d70 88012011-06-04 Jan Hubicka <jh@suse.cz>
8802
8803 PR lto/48954
c50e6579 8804 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
8805 bitmaps.
29413d70 8806
90b40725 88072011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
8808
8809 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
8810
2d72f3cf 88112011-06-04 Jakub Jelinek <jakub@redhat.com>
8812
8813 PR target/49281
8814 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
8815 to be strictly smaller than 1 << shiftcount.
8816
144eea3a 88172011-06-04 Jan Hubicka <jh@suse.cz>
8818
8819 PR tree-optimize/48929
8820 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
8821 of empty predicate.
8822
854aa6aa 88232011-06-04 Alexandre Oliva <aoliva@redhat.com>
8824
8825 PR debug/48333
8826 * calls.c (emit_call_1): Prefer the __builtin declaration of
8827 builtin functions.
8828
71ecfb7c 88292011-06-03 Diego Novillo <dnovillo@google.com>
8830
8831 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
8832 (lto_input_tree_pointers): Likewise.
8833 * lto-streamer-out.c (pack_value_fields): Likewise.
8834 (lto_output_tree_pointers): Likewise.
8835 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
8836 and OPTIMIZATION_NODE.
8837
1e53920f 88382011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8839
8840 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
8841 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
8842 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
8843 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
8844 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
8845 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
8846 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
8847 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
8848 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
8849 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
8850 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
8851 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
8852 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
8853 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
8854 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
8855 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
8856 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
8857 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
8858 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
8859 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
8860 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
8861 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
8862 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
8863 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
8864 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
8865 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
8866 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
8867 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
8868 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
8869 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
8870 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
8871 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
8872 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
8873 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
8874 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
8875 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
8876 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
8877 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
8878 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
8879 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
8880 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
8881 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
8882 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
8883 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
8884 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
8885 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
8886 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
8887 * system.h (MD_UNWIND_SUPPORT): Poison.
8888 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
8889 * doc/tm.texi: Regenerate.
8890 * unwind-dw2.c: Include md-unwind-support.h instead of
8891 MD_UNWIND_SUPPORT.
8892 * config/ia64/unwind-ia64.c: Likewise.
8893 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8894
eda83832 88952011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
4bcd2e07 8896
8897 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
8898
31510e9d 88992011-06-03 Richard Henderson <rth@redhat.com>
8900 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8901
8902 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
8903 (sigill_hdlr): Correct insn, insn size.
8904 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
8905
8087ae75 89062011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8907
8908 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
8909 t-slibgcc-dummy.
8910 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
8911 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
8912 * config/mips/t-iris: Remove.
8913 * config/mips/t-irix6: New file.
8914 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
8915
506cfbc8 89162011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8917
8918 * Makefile.in (LIB2ADDEHDEP): Remove.
8919 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
8920 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
8921 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
8922 * config/t-darwin (LIB2ADDEHDEP): Remove.
8923 * config/t-freebsd (LIB2ADDEHDEP): Remove.
8924 * config/t-linux (LIB2ADDEHDEP): Remove.
8925
f05c9dfb 89262011-06-03 Diego Novillo <dnovillo@google.com>
8927
8928 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
8929 (lto_register_var_decl_in_symtab): Likewise.
8930 (lto_register_function_decl_in_symtab): Likewise.
8931 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
7ba0cb54 8932 logic to uniquify_nodes.
f05c9dfb 8933
541346b9 89342011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8935
8936 * config/alpha/t-osf5: Remove.
8937 * config/alpha/t-osf-pthread: Remove.
8938 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
8939 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
8940
290a6dcf 89412011-06-03 Julian Brown <julian@codesourcery.com>
8942
8943 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
8944 (strongarm1110): Use strongarm tuning.
f45e47e6 8945 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
290a6dcf 8946 * config/arm/arm.c (arm_strongarm_tune): New.
8947 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8948 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
8949 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
8950 setting, using previous defaults or 1 for Cortex-A5.
8951 (arm_option_override): Set max_insns_skipped from current tuning.
8952
9453bfe4 89532011-06-03 Nathan Sidwell <nathan@codesourcery.com>
8954
8955 * doc/install.texi (Options specification): Document --with-specs.
8956
2eb9782e 89572011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8958
8959 * config/arm/neon.md (orndi3_neon): Actually split it.
8960
66d42724 89612011-06-02 Alexandre Oliva <aoliva@redhat.com>
8962
8963 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
8964 * var-tracking.c (reverse_op): Limite recurse depth to 5.
8965
8a42230a 89662011-06-02 Alexandre Oliva <aoliva@redhat.com>
8967
8968 PR debug/47590
8969 * target.def (delay_sched2, delay_vartrack): New.
8970 * doc/tm.texi.in: Update.
8971 * doc/tm.texi: Rebuild.
8972 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
8973 * var-tracking.c (gate_handle_var_tracking): Likewise.
8974 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
8975 (bfin_flag_var_tracking): Drop.
8976 (output_file_start): Don't save and override flag_var_tracking.
8977 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
8978 (bfin_reorg): Test original variables.
8979 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8980 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
8981 (ia64_flag_var_tracking): Drop.
8982 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8983 (ia64_file_start): Don't save and override flag_var_tracking.
8984 (ia64_override_options_after_change): Ditto
8985 flag_schedule_insns_after_reload.
8986 (ia64_reorg): Test original variables.
8987 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
8988 (picochip_flag_var_tracking): Drop.
8989 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8990 (picochip_option_override): Don't save and override
8991 flag_schedule_insns_after_reload.
8992 (picochip_asm_file_start): Ditto flag_var_tracking.
8993 (picochip_reorg): Test original variables.
8994 * config/spu/spu.c (spu_flag_var_tracking): Drop.
8995 (TARGET_DELAY_VARTRACK): Define.
8996 (spu_var_tracking): New.
8997 (spu_machine_dependent_reorg): Call it.
8998 (asm_file_start): Don't save and override flag_var_tracking.
8999
cb022464 90002011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
9001
9002 PR target/49163
9003 * config/sh/predicates.md (general_movsrc_operand): Return 0
9004 for memory and memory subreg of which address is an invalid
9005 indexed address for QI and HImode.
9006 (general_movdst_operand): Likewise.
9007
4c43a998 90082011-06-02 Eric Botcazou <ebotcazou@adacore.com>
9009
9010 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
9011 edges only, when there is a non-local label in the function.
9012 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
9013
01624f90 90142011-06-02 Uros Bizjak <ubizjak@gmail.com>
9015
9016 * config/i386/constraints.md (Y3): New register constraint.
9017 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
9018 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
9019 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
9020 *sse2_interleave_lowv2df.
9021
08969866 90222011-06-02 Julian Brown <julian@codesourcery.com>
9023
9024 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
9025 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
9026 (arm_cortex_a5_tune): New.
9027
37565543 90282011-06-02 Julian Brown <julian@codesourcery.com>
9029
285a01fc 9030 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
9031 * config/arm/arm.c (arm_default_branch_cost): New.
9032 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
9033 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
9034 (arm_fa726_tune): Set branch_cost field using
9035 arm_default_branch_cost.
9036 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
9037 current_tune structure.
9038 * dojump.c (tm_p.h): Include file.
9039
90402011-06-02 Julian Brown <julian@codesourcery.com>
9041
9042 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
9043 tuning.
37565543 9044 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
9045 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
9046 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
9047 field.
9048 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
9049 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
9050 (arm_fa726te_tune): Add prefer_constant_pool setting.
9051 (arm_v6t2_tune, arm_cortex_tune): New.
9052 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
9053 prefer_constant_pool setting.
9054
1e541240 90552011-06-02 Uros Bizjak <ubizjak@gmail.com>
9056
01624f90 9057 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
9058 switch statement.
1e541240 9059 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
9060 (*movdf_internal) <case 6,7,8>: Ditto.
9061
01624f90 9062 * config/i386/constraints.md (Y4): New register constraint.
1e541240 9063 * config/i386/sse.md (vec_set<mode>_0): Merge with
9064 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
9065 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
9066 *vec_extractv2di_1_sse.
9067 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
9068 and *vec_concatv2di_rex64_sse.
9069
f0090234 90702011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
9071
9072 PR target/48807
9073 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
9074 of cgraph_local_info for null before attempting to use it.
9075
d1ff492e 90762011-06-02 Eric Botcazou <ebotcazou@adacore.com>
9077
9078 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
9079 (current_function_dynamic_alloc_count): Delete.
9080 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
9081 (expand_builtin_nonlocal_goto): Remove obsolete comment.
9082 (expand_builtin_update_setjmp_buf): Remove dead code.
9083 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
9084 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
9085 support.
9086 * function.c (instantiate_virtual_regs): Likewise.
9087 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
9088 for a block with a single abnormal incoming edge.
9089 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
460390cf 9090 (SETJMP_VIA_SAVE_AREA): Delete.
d1ff492e 9091 * config/sparc/sparc-protos.h (load_got_register): Declare.
9092 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9093 (load_got_register): Make global.
9094 (sparc_frame_pointer_required): Add 'static'.
9095 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
9096 (sparc_builtin_setjmp_frame_value): New function.
9097 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
9098 (save_stack_nonlocal): New expander.
9099 (restore_stack_nonlocal): Likewise.
9100 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
9101 (nonlocal_goto_internal): New insn.
9102 (goto_handler_and_restore): Delete.
9103 (builtin_setjmp_setup): Likewise.
9104 (do_builtin_setjmp_setup): Likewise.
9105 (setjmp): Likewise.
9106 (builtin_setjmp_receiver): New expander.
9107
523a6ae3 91082011-06-01 David Li <davidxl@google.com>
9109
9110 PR middle-end/49261
9111 * tree-pretty-print.c (dump_function_header): Format cleanup.
9112
73e5edb6 91132011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
9114
9115 PR target/49238
9116 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
9117 needed when original operands are used for msw_skip comparison.
9118
4951f89f 91192011-06-01 Jakub Jelinek <jakub@redhat.com>
9120
9121 PR debug/49250
9122 * var-tracking.c (add_uses, add_stores): Don't call
9123 cselib_subst_to_values on ENTRY_VALUE.
9124
bb35cf1e 91252011-06-01 Diego Novillo <dnovillo@google.com>
9126
9127 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
9128 output_record_start with LTO_null instead of output_zero.
9129 (lto_output_ts_binfo_tree_pointers): Likewise.
9130 (lto_output_tree): Likewise.
9131 (output_eh_try_list): Likewise.
9132 (output_eh_region): Likewise.
9133 (output_eh_lp): Likewise.
9134 (output_eh_regions): Likewise.
9135 (output_bb): Likewise.
9136 (output_function): Likewise.
9137 (output_unreferenced_globals): Likewise.
9138 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
9139 instead of NUM_TREE_CODES.
9140 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
9141 (lto_output_int_in_range): Change << to >> when shifting VAL.
9142
35d04dfc 91432011-06-01 Diego Novillo <dnovillo@google.com>
9144
9145 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
9146 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
9147
e09c2930 91482011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
9149
9150 PR target/45074
9151 * optabs.h (valid_multiword_target_p): Declare.
9152 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
9153 doing multi-word operations.
9154 * optabs.c (expand_binop): Likewise.
9155 (expand_doubleword_bswap): Likewise.
9156 (expand_absneg_bit): Likewise.
9157 (expand_unop): Likewise.
9158 (expand_copysign_bit): Likewise.
9159 (multiword_target_p): New function.
9160
b128b22f 91612011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
9162
9163 PR rtl-optimization/48830
9164 PR rtl-optimization/48808
9165 PR rtl-optimization/48792
9166 * reload.c (push_reload): Check contains_reg_of_mode.
9167 * reload1.c (strip_paradoxical_subreg): New function.
9168 (gen_reload_chain_without_interm_reg_p): Use it to handle
9169 paradoxical subregs.
9170 (emit_output_reload_insns, gen_reload): Likewise.
9171
855c9b82 91722011-06-01 David Li <davidxl@google.com>
9173
9174 * predict.c : Change pass name
9175 * ipa.c: Ditto.
9176 * dce.c: Ditto.
9177 * tree-profile.c: Ditto.
9178 * except.c: Ditto.
9179
7009b7bd 91802011-06-01 David Li <davidxl@google.com>
9181
9182 * tree-pretty-print.c (dump_function_header): New function.
9183 * final.c (rest_of_clean_state): Use header dumper.
9184 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
9185 * passes.c (pass_init_dump_file): Use header dumper.
9186
236e4c9e 91872011-06-01 Jakub Jelinek <jakub@redhat.com>
9188
e2ed6265 9189 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
9190 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
9191 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
9192 New functions.
9193 (mem_loc_descriptor): Use them.
9194
236e4c9e 9195 * var-tracking.c (create_entry_value): New function.
9196 (vt_add_function_parameter): Use it.
9197
43ae7603 91982011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9199
9200 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
9201 Include <signal.h>, <ucontext.h>.
9202 (sigill_caught): Define.
9203 (sigill_hdlr): New function.
9204 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
9205 insns can be executed.
1e541240 9206 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
43ae7603 9207 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
9208
63abf89e 92092011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9210
9211 * config/t-slibgcc-darwin: Move to ...
1e541240 9212 * config/t-slibgcc-dummy: ... this. Clarify comments.
63abf89e 9213 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
9214 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
9215 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
1e541240 9216 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
63abf89e 9217 Remove i386/t-crtstuff from tmake_file.
9218 (i[34567]86-*-solaris2*): Remove t-svr4,
9219 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
9220 t-slibgcc-dummy.
9221 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
9222 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
9223 sparc/t-crtfm from tmake_file.
9224 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
9225 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
9226 Remove extra_parts.
9227 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
9228 * config/i386/t-nwld (SHLIB_LINK): Remove.
9229 * config/i386/t-rtems-i386: Rename to ...
9230 * config/i386/t-rtems: ... this.
9231 ($(T)crti.o, $(T)crtn.o): Remove.
9232 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
9233 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
9234 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
9235 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
9236 EXTRA_MULTILIB_PARTS): Remove.
9237 * config/sparc/t-sol2-64: Likewise.
9238 * config/sparc/t-sol2: Remove.
9239 * config/sparc/t-crtin: Remove.
9240 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
9241 * config/i386/gmon-sol2.c: Remove.
9242 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
9243 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
9244 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
9245 * config/i386/sol2-gc1.asm: Remove.
9246 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
9247 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
9248 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
9249 * config/t-slibgcc-sld: Remove.
9250
61d45baf 92512011-06-01 Jakub Jelinek <jakub@redhat.com>
9252
9253 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
9254 base_type_for_mode with op_mode instead of mode.
9255
7d3cda8c 92562011-06-01 Paul Brook <paul@cpodesourcery.com>
9257
9258 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
9259 Cortex-A15.
9260 * config/arm/arm-tune.md: Regenerate.
9261 * config/arm/arm-tables.opt: Regenerate.
9262 * config/arm/arm.c (FL_DIV): Rename...
9263 (FL_THUMB_DIV): ... to this.
9264 (FL_ARM_DIV): Define.
9265 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
9266 (arm_arch_hwdiv): Remove.
9267 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
9268 (arm_issue_rate): Add cortexr5.
9269 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
9270 __ARM_ARCH_EXT_IDIV__.
9271 (TARGET_IDIV): Define.
9272 (arm_arch_hwdiv): Remove.
9273 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
9274 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
9275 (divsi3, udivsi3): New patterns.
9276 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
9277 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
9278
572635a5 92792011-06-01 Martin Jambor <mjambor@suse.cz>
9280
9281 * ipa-utils.c (ipa_dfs_info): New field scc_no.
9282 * ipa-utils.c (searchc): Set scc_no.
9283
c336a49e 92842011-06-01 Martin Jambor <mjambor@suse.cz>
9285
9286 * ipa-utils.c (searchc_env): New field allow_overwritable.
9287 (searchc): do not ignore edges to overwritable nodes if indicated
9288 by env->allow_overwritable.
9289 (ipa_reduced_postorder): Set env.allow_overwritable.
9290
ed61b909 92912011-06-01 Richard Guenther <rguenther@suse.de>
9292
9293 * tree.c (free_lang_data): Do not reset boolean_type_node nor
9294 char_type_node.
9295 * lto-streamer.c (lto_record_common_node): Take node pointer,
9296 do not register types.
9297 (lto_preload_common_nodes): Explicitly skip preloading nodes
9298 that differ between frontends.
9299
7d2c0823 93002011-05-31 Pat Haugen <pthaugen@us.ibm.com>
3c9df09e 9301
9302 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
9303 NON_FLOAT_REGS.
9304
7d2c0823 93052011-05-31 Pat Haugen <pthaugen@us.ibm.com>
29d2973b 9306
9307 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
9308 parameter value for dump. Dump cost on outermost call only.
9309 (rs6000_memory_move_cost): Dump cost on outermost call only.
9310
1bd906a3 93112011-05-31 Jakub Jelinek <jakub@redhat.com>
9312
6a3c8c39 9313 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
9314 DW_OP_GNU_convert ops.
9315
0ee5bf3c 9316 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
9317 cselib_preserve_constants.
9318 (cselib_lookup_1): If cselib_preserve_constants,
9319 a new VALUE is being created for REG and there is a VALUE for the
9320 same register in wider mode, add another loc with lowpart SUBREG of
9321 the wider VALUE.
9322 (cselib_subst_to_values): Handle ENTRY_VALUE.
9323 * var-tracking.c (replace_expr_with_values): Return NULL for
9324 ENTRY_VALUE too.
9325 * dwarf2out.c (convert_descriptor_to_signed): New function.
9326 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
9327 instead of two shifts.
9328 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
9329 the right mode if needed.
9330 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
9331 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
9332 convert_descriptor_to_signed.
9333 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
9334 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
9335
1bd906a3 9336 PR target/48688
9337 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
9338
c6a47dd3 93392011-05-31 Uros Bizjak <ubizjak@gmail.com>
9340
9341 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
9342 of X87MODEI12 and SWI48x instead of SSEMODEI24.
9343 (SWI248x): New mode iterator, rename from X87MODEI.
9344 (X87MODEI): Remove mode iterator.
9345 (X87MODEI12): Ditto.
9346 (SSEMODEI24): Ditto.
9347
b5c80997 93482011-05-31 Alexandre Oliva <aoliva@redhat.com>
9349
9350 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
9351 * doc/invoke.texi: Document max-vartrack-expr-depth.
9352 * var-tracking.c (EXPR_DEPTH): New.
9353 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
9354
c42ab3cf 93552011-05-31 Alexandre Oliva <aoliva@redhat.com>
9356
9357 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
9358 * config/i386/sse.md: Add n to negated FMA pattern names.
9359
400b18e7 93602011-05-31 Alexandre Oliva <aoliva@redhat.com>
9361
9362 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
9363
5479358a 93642011-05-31 Alexandre Oliva <aoliva@redhat.com>
9365
c6a47dd3 9366 * gengtype-state.c (read_state_params_structs): Initialize previous.
5479358a 9367
b928b0b2 93682011-05-31 Uros Bizjak <ubizjak@gmail.com>
9369
9370 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
9371 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
9372
93732011-05-31 Uros Bizjak <ubizjak@gmail.com>
9374
9375 * config/i386/i386.md (*movtf_internal): Avoid allocating general
9376 registers. Penalize F*r->o alternative to prevent partial memory
9377 stalls. Slightly penalize *roF->*r alternative. Generate SSE
9378 CONST_DOUBLE immediates when optimizing function for size. Do not move
9379 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9380 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
9381 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
9382 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
9383 alternatives.
9384 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
9385
9386 (fp_register_operand splitters): Use fp_register_operand
9387 constraint. Do not use FP_REG_P in insn condition.
9388 (any_fp_register_operand splitters): Use any_fp_register_operand
9389 constraint. Do not use ANY_FP_REG_P in insn condition.
9390
7857a7b7 93912011-05-31 Jan Hubicka <jh@suse.cz>
9392
9393 * cgraph.h (cgraph_inline_failed_t): Give enum a name
9394 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
9395 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
9396 (lto_output_edge): Use output_enum and var_len_unsigned.
9397 (lto_output_varpool_node): Likewise.
9398 (input_overwrite_node): Do not take resolution parameter;
9399 extract it from a bitpack.
9400 (input_node): Do not read resolution; use input_enum and
9401 var_len_unsigned.
9402 (input_varpool_node): Likewise.
9403 (input_edge): Likewise.
9404 (input_cgraph_1): Likewise.
9405
f0e8bbbc 94062011-05-31 Richard Guenther <rguenther@suse.de>
9407
9408 * gimple.c (gimple_register_canonical_type): Do not register
9409 any types via gimple_register_type.
9410
58d2f5dd 94112011-05-31 Jan Hubicka <jh@suse.cz>
9412
9413 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
9414 of thunks.
9415
8525edb5 94162011-05-31 Jakub Jelinek <jakub@redhat.com>
9417
9418 PR rtl-optimization/49235
9419 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
9420 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
9421
83ec4165 94222011-05-31 Ira Rosen <ira.rosen@linaro.org>
9423
9424 PR tree-optimization/49093
9425 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
9426 data references.
9427
eb255359 94282011-05-31 Dodji Seketeli <dodji@redhat.com>
9429
9430 PR debug/49047
9431 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
b928b0b2 9432 for concrete functions containing the code of cloned functions.
eb255359 9433
678b2f5b 94342011-05-31 Richard Guenther <rguenther@suse.de>
9435
9436 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
9437 to ...
9438 (forward_propagate_into_comparison_1): ... this.
9439 (forward_propagate_comparison): Rename to ...
9440 (forward_propagate_into_comparison): ... this. Split out
9441 real forward propagation code to ...
9442 (forward_propagate_comparison): ... this.
9443 (forward_propagate_into_gimple_cond): Remove looping.
9444 (forward_propagate_into_cond): Likewise.
9445 (simplify_not_neg_expr): Return whether we have done something.
9446 (simplify_gimple_switch): Likewise.
9447 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
9448 (ssa_forward_propagate_and_combine): ... this. Re-structure
9449 to do a forward forward-propagation walk on BBs and a backward
b928b0b2 9450 stmt combining walk on BBs. Consistently re-scan changed statements.
678b2f5b 9451 (pass_forwprop): Adjust.
9452
84e176ba 94532011-05-30 Ian Lance Taylor <iant@google.com>
9454
9455 * godump.c (go_format_type): Correct length of name added to
9456 obstack for anonymous field.
9457
35e3c1ad 94582011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
9459
9460 PR target/49186
9461 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
9462 part of the second operand is 0.
9463
7d13df59 94642011-05-30 Uros Bizjak <ubizjak@gmail.com>
9465
9466 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
9467 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
9468 to memory for !TARGET_MEMORY_MISMATCH_STALL.
9469 (*movdf_internal_rex64): Do not penalize F->r alternative.
b928b0b2 9470 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
7d13df59 9471 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
9472 when optimizing function for size. Do not move CONST_DOUBLEs
9473 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
b928b0b2 9474 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
9475 SUBREGs. Do not check for MEM_P operands in the insn condition,
7d13df59 9476 check for ANY_FP_REGNO_P instead.
9477 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
9478 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
9479 function for speed.
9480 * config/i386/i386.c (ix86_option_override_internal): Do not
9481 set TARGET_INTEGER_DFMODE_MOVES here.
9482
9e4cf85e 94832011-05-30 H.J. Lu <hongjiu.lu@intel.com>
9484
9485 PR target/49168
1e541240 9486 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
9e4cf85e 9487
f9ef3c37 94882011-05-30 Jakub Jelinek <jakub@redhat.com>
9489
9490 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
9491 DW_TAG_rvalue_reference_type even for
9492 -gdwarf-4 -fno-debug-types-section.
9493
ca12eb68 94942011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9495
9496 PR tree-optimization/46728
9497 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
9498 (build_and_insert_binop): New.
9499 (gimple_expand_builtin_pow): Reorder args for
9500 build_and_insert_call; use build_and_insert_binop; add more
9501 optimizations for fractional exponents.
7d13df59 9502
fc9c9e87 95032011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
9504
9505 PR bootstrap/49190
9506
9507 Revert:
9508 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9509
9510 * tree.h (struct tree_identifier): Inherit from tree_typed, not
9511 tree_common.
9512 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9513 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9514 TS_BASE instead of TS_COMMON.
9515 * varasm.c (assemble_name): Remove assert.
9516
f7e59ca4 95172011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
9518
9519 * config.gcc: Keep obselete list sorted.
9520
04c9ad62 95212011-05-30 Jakub Jelinek <jakub@redhat.com>
9522 Eric Botcazou <ebotcazou@adacore.com>
9523
9524 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
9525 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
9526 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
9527 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
9528 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
9529
26256e53 95302011-05-30 Richard Guenther <rguenther@suse.de>
9531
9532 * gimple.c (gimple_types_compatible_p_1): Compare record
9533 and union type members properly.
9534
9ece8f57 95352011-05-30 Richard Guenther <rguenther@suse.de>
9536
9537 PR tree-optimization/49210
b928b0b2 9538 * ipa-split.c (split_function): Care for the case where the call
9539 result is not trivially convertible to the result holding variable.
9ece8f57 9540
29b71b9c 95412011-05-30 Richard Guenther <rguenther@suse.de>
9542
9543 PR tree-optimization/49218
9544 * tree-vrp.c (adjust_range_with_scev): Properly check whether
9545 overflow occured.
9546
c8126d25 95472011-05-30 Richard Guenther <rguenther@suse.de>
9548
9549 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
9550 New function split out from ...
9551 (forward_propagate_into_gimple_cond): ... here. Adjust.
9552 (forward_propagate_into_cond): Likewise.
9553 (forward_propagate_comparison): Also propagate into
9554 comparisons on assignment RHS. Change return value to
9555 behave similar to forward_propagate_into_cond.
9556 (tree_ssa_forward_propagate_single_use_vars): Handle
9557 strict-overflow warnings properly for forward_propagate_comparison.
9558
1dc619a1 95592011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9560
9561 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
9562 from plugin linker.
9563 * configure: Regenerate.
9564
eb3a666e 95652011-05-30 Ira Rosen <ira.rosen@linaro.org>
9566
9567 PR tree-optimization/49199
9568 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
7d13df59 9569 non-reduction operands are either defined in the loop or by induction.
eb3a666e 9570
c3087ce0 95712011-05-29 Xinliang David Li <davidxl@google.com>
9572
9573 * opts-global.c (handle_common_deferred_options): Handle new options.
9574 * passes.c (register_one_dump_file): Call register_pass_name.
9575 (execute_one_pass): Check explicit enable/disable flag.
9576 (passr_hash): New function.
9577 (passr_eq): Ditto.
9578 (register_pass_name): Ditto.
9579 (get_pass_by_name): Ditto.
9580 (pass_hash): Ditto.
9581 (pass_eq): Ditto.
9582 (enable_pass): Ditto.
9583 (disable_pass): Ditto.
9584 (is_pass_explicitly_enabled_or_disabled): Ditto.
9585
30677884 95862011-05-29 Uros Bizjak <ubizjak@gmail.com>
9587
9588 * config/i386/i386.md (*movoi_internal_avx): Use
9589 standard_sse_constant_opcode for alternative 0.
9590 (*movti_internal_sse): Ditto.
9591 (*movti_internal_rex64): Use standard_sse_constant_opcode for
9592 alternative 2.
9593 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
9594 sselog1 type moves.
9595 (*movsi_internal): Ditto.
9596 (*movdi_internal): Ditto. Add ssecvt type moves.
9597
7cb63246 95982011-05-29 Eric Botcazou <ebotcazou@adacore.com>
9599
9600 PR target/48830
9601 * rtlanal.c (simplify_subreg_regno): Adjust comment.
9602
4ca75988 96032011-05-29 Jakub Jelinek <jakub@redhat.com>
9604
9605 PR rtl-optimization/49095
9606 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
9607 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
9608
df81f4db 96092011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
9610
9611 PR target/43995
9612 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
9613 recurse_p argument. Only follow register copies if it is set,
9614 and prevent mips_find_pic_call_symbol from recursing.
9615 (mips_find_pic_call_symbol): Add a recurse_p argument.
9616 Pass it to mips_pic_call_symbol_from_set.
9617 (mips_annotate_pic_calls): Update accordingly.
9618
47e1410d 96192011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
9620
9621 * emit-rtl.c (try_split): Use a loop to search for
9622 NOTE_INSN_CALL_ARG_LOCATIONs.
9623
451e322a 96242011-05-29 Richard Guenther <rguenther@suse.de>
9625
9626 PR tree-optimization/49217
9627 * ipa-pure-const.c (propagate_pure_const): Fix typos.
9628
894593c8 96292011-05-28 Jan Hubicka <jh@suse.cz>
9630
9631 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
9632 length.
9633 (string_slot_free): Remove
9634 (create_output_block): Initialize obstack.
9635 (destroy_output_block): Free obstack.
9636 (lto_string_index): Add PERSISTENT parameter; do not duplicate
9637 the string unless it needs to be added into the hash.
9638 (lto_output_string_with_length): Add persistent attribute;
9639 handle NULL strings.
9640 (lto_output_string): Add PERSISTENT parameter.
9641 (output_string_cst, output_identifier): Simplify.
9642 (lto_output_location_bitpack): Update.
9643 (lto_output_builtin_tree): Update.
9644 * lto-streamer.h (struct output_block): Add obstack.
30677884 9645 (lto_output_string, lto_output_string_with_length): Remove
9646 declarations; functions are static now.
894593c8 9647
34c4d8ed 96482011-05-28 Jan Hubicka <jh@suse.cz>
9649
9650 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
9651 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
9652 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
9653 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
9654 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
9655 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
9656 unpack_ts_decl_with_vis_value_fields,
9657 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
9658 lto_get_builtin_tree): Use enum and variable length i/o.
9659 * basic-block.h (profile_status_d): Add PROFILE_LAST.
9660 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
9661 New functions.
9662 (bp_pack_enum, bp_unpack_enum): New macros.
9663
792d374c 96642011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9665
9666 * genrecog.c: Remove redundant forward declarations.
9667
6142f56e 96682011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9669
9670 * config.gcc: Deprecate mips*-*-openbsd*.
9671
a83211d6 96722011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9673
9674 PR bootstrap/49195
9675 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
9676 for match_op_dup.
9677
72e5da43 96782011-05-27 Andrew Pinski <pinskia@gmail.com>
9679
9680 PR middle-end/48981
9681 * gengtype.c (vec_prefix_type): New function.
9682 (note_def_vec): Use vec_prefix_type and change the length
9683 attribute to be based on the prefix.
9684 * vec.c: Include coretypes.h before vec.h.
9685 (struct vec_prefix): Remove.
9686 (vec_gc_p_reserve): Change the offsetof to sizeof.
9687 (vec_gc_p_reserve_exact): Likewise.
9688 (vec_heap_p_reserve): Likewise.
9689 (vec_heap_p_reserve_exact): Likewise.
9690 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
9691 (vec_stack_p_reserve): Change the offsetof to sizeof.
9692 (vec_stack_p_reserve_exact): Likewise.
9693 * vec.h (struct vec_prefix): New struct definition.
9694 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
9695 (VEC_T_GTY(T,B)): Likewise.
9696 (DEF_VEC_FUNC_P(T)): Use prefix field.
9697 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
9698 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
9699
ae43b05e 97002011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9701
9702 PR tree-optimization/46728
9703 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
9704 (powi_as_mults): Add gimple_set_location.
9705 (build_and_insert_call): New.
9706 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
9707 0.5, 0.25, 0.75, 1./3., or 1./6.
30677884 9708
a2145c8f 97092011-05-27 Alexander Monakov <amonakov@ispras.ru>
9710
9711 * doc/contrib.texi: Update copyright years.
9712 (Contributors): Add Zdenek Sojka.
9713
cacfdc02 97142011-05-27 Nathan Froyd <froydnj@codesourcery.com>
9715
9716 * c-decl.c (c_push_function_context): Copy the current statement
9717 list stack.
9718 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
9719 (finish_struct): Call building_stmt_list_p instead of checking
9720 cur_stmt_list.
9721 * c-parser.c (c_parser_postfix_expression): Likewise.
9722 * c-typeck.c (c_end_compound_stmt): Likewise.
9723 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
9724 * tree-iterator.c (stmt_list_cache): Change to a VEC.
9725 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
9726 (free_stmt_list): Likewise.
9727 * tree.h (struct tree_statement_list): Include typed_tree instead
9728 of tree_common.
9729 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
9730 as TS_TYPED instead of TS_COMMON.
9731
04a4c50e 97322011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7d2c0823 9733 Uros Bizjak <ubizjak@gmail.com>
04a4c50e 9734
9735 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
9736 (HAVE_AS_IX86_TLSGDPTL): Define.
9737 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
9738 (HAVE_AS_IX86_TLSLDMPLT): Define.
9739 * configure: Regenerate.
9740 * config.in: Regenerate.
9741 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
9742 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
9743 TARGET_SUN_TLS, use @tlsgdplt or @plt.
9744 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
9745 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
9746 @tlsldmplt or @plt.
9747 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
9748
6c2d9e41 97492011-05-27 Bernd Schmidt <bernds@codesourcery.com>
9750
9751 * sched-int.h (struct _haifa_deps_insn_data): New members cond
9752 and reverse_cond.
9753 (INSN_COND, INSN_REVERSE_COND): New macros.
9754 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
9755 once.
9756 (sched_get_condition_with_rev): Cache the results, and look them up
9757 if possible.
9758 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
9759 are clobbered by the current insn.
9760 * target.def (exposed_pipline): New sched data hook.
9761 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
9762 * doc/tm.texi: Regenerate.
9763
d312d7df 97642011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9765
9766 PR tree-optimization/49170
9767 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
9768 sincos or cexp.
6c2d9e41 9769
ca356add 97702011-05-27 Richard Guenther <rguenther@suse.de>
9771
9772 PR middle-end/49189
9773 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
9774 of comparisons.
9775
52d7e28c 97762011-05-27 Bernd Schmidt <bernds@codesourcery.com>
9777
9778 * haifa-sched.c (sched_scan_info): Remove.
9779 (schedule_block): Call sched_extend_luids rather than sched_init_luids
9780 with NULL args.
9781 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
9782 Remove functions.
9783 (sched_scan): Remove.
9784 (sched_extend_luids): Renamed from luids_extend_insn and no longer
9785 static. All callers changed.
9786 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
9787 static. All callers changed.
9788 (sched_init_luids): Remove all arguments except the first. All
9789 callers changed. Don't use sched_scan.
9790 (haifa_init_h_i_d): Likewise.
9791 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
9792 manually rather than using sched_init_luids. Likewise with
9793 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
9794 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
9795 rather than sched_init_luids with NULL args.
9796 * sel-sched-ir.c (new_insns): Remove variable.
9797 (sched_scan): New static function, previously in haifa-sched.c. Remove
9798 all arguments but the first two; all callers changed.
9799 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
9800 rather than sched_init_luids.
9801 (sel_init_bbs): Remove second argument. All callers changed.
9802 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
9803 with NULL arguments.
9804 (create_insn_rtx_from_pattern): Likewise.
9805 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
9806 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
9807 (sched_init_insn_luid, sched_extend_luids): Declare.
9808 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
9809 declarations.
9810
76288c9a 98112011-05-27 Richard Guenther <rguenther@suse.de>
9812
9813 PR middle-end/49177
9814 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
9815 A CMP B ? (T) true : (T) false for non-integral types T again.
9816
a12c2487 98172011-05-27 Jan Hubicka <jh@suse.cz>
9818
9819 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
9820 so 0 means NULL string.
9821 (lto_output_string_with_length): ... here.
76288c9a 9822 (lto_output_string, output_string_cst, output_identifier): Update
9823 handling of NULL strings.
a12c2487 9824 (lto_output_location_bitpack): New function.
9825 (lto_output_location): Use it.
9826 (lto_output_tree_ref): Use output_record_start.
76288c9a 9827 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
9828 len values.
9829 * lto-streamer-in.c (string_for_index): Break out from ...; offset
9830 values by 1.
30677884 9831 (input_string_internal): ... here;
76288c9a 9832 (input_string_cst, input_identifier, lto_input_string): Update handling
9833 of NULL strings.
a12c2487 9834 (lto_input_location_bitpack): New function
9835 (lto_input_location): Use it.
76288c9a 9836 (unpack_ts_type_common_value_fields): Pack align & alias in var len
9837 values.
a12c2487 9838 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
9839 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
9840 (bp_pack_value): Sanity check the value range.
9841 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
9842 New functions.
9843 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
9844 New functions.
9845
7d2c0823 98462011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
0b80d316 9847
9848 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
9849 call_arg_location instructions down the floor.
9850
bc694d56 98512011-05-26 Vladimir Makarov <vmakarov@redhat.com>
9852
9853 PR rtl-optimization/49154
9854 * ira.c (setup_pressure_classes): Process class without sublcasses
9855 as a candidate for pressure classes.
9856
2494d261 98572011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
9858
9859 PR rtl-optimization/48575
9860 * genrecog.c (position_type): New enum.
9861 (position): New structure.
9862 (decision): Use position structure instead of a string.
9863 (root_pos, peep2_insn_pos_list): New variables.
9864 (next_position, compare_positions): New functions.
9865 (new_decision): Use position structures instead of strings.
9866 (maybe_both_true): Likewise.
9867 (change_state): Likewise.
9868 (write_tree): Likewise.
9869 (make_insn_sequence): Likewise.
9870
027fc6ef 98712011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9872
9873 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
9874 TS_BASE instead of TS_COMMON.
9875 (find_decls_types_r): Check for TS_TYPED structure before looking at
9876 TREE_TYPE.
9877 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
9878 Add chain field.
9879 (BLOCK_CHAIN): Use new chain field.
9880
7d2c0823 98812011-05-26 Pat Haugen <pthaugen@us.ibm.com>
0dfaa5df 9882
9883 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
9884 moves expensive on Power7 also.
9885
cea0b915 98862011-05-26 Richard Guenther <rguenther@suse.de>
9887
9888 * fold-const.c (fold_unary_loc): Remove bogus code.
9889
f21317a1 98902011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9891
9892 * tree.h (struct tree_identifier): Inherit from tree_typed, not
9893 tree_common.
9894 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9895 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9896 TS_BASE instead of TS_COMMON.
9897 * varasm.c (assemble_name): Remove assert.
9898
04d1e93a 98992011-05-26 Bernd Schmidt <bernds@codesourcery.com>
9900
9901 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
9902 substituted first.
9903 * libgcc-std.ver: Delete file.
9904
a07f6629 99052011-05-26 Richard Guenther <rguenther@suse.de>
9906
9907 PR tree-optimization/48702
9908 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
9909 only when we know the base address is within bounds.
9910 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
9911 assume the base address of TARGET_MEM_REFs is in bounds.
9912
c37ec47f 99132011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9914
9915 PR target/49099
9916 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
9917 declaration in TARGET_SOLARIS.
9918
7d2c0823 99192011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
77af1486 9920
9921 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
30677884 9922 The instruction is then expanded explicitly.
77af1486 9923 (supported_compare): Callable instruction.
9924 (compare): Likewise.
9925
ae22319c 99262011-05-26 Jakub Jelinek <jakub@redhat.com>
9927
9928 PR c++/49165
9929 * gimplify.c (shortcut_cond_r): Don't special case
9930 COND_EXPRs if they have void type on one of their arms.
9931
8a83ab3e 99322011-05-26 Bernd Schmidt <bernds@codesourcery.com>
9933
9934 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
9935 to reduce duplication, and to achieve a slightly more logical order
9936 of operations.
9937
8b318348 99382011-05-26 Jakub Jelinek <jakub@redhat.com>
9939
9940 PR tree-optimization/49161
9941 * tree-vrp.c (struct case_info): New type.
9942 (compare_case_labels): Sort case_info structs instead of
9943 trees, and not primarily by CASE_LABEL uids but by
9944 label_for_block indexes.
9945 (find_switch_asserts): Put case labels into struct case_info
9946 array instead of TREE_VEC, adjust sorting, compare label_for_block
9947 values instead of CASE_LABELs.
9948
04931b44 99492011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9950
9951 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
9952 ("orndi3_neon"): Likewise.
9953 ("bic<mode>3_neon"): Likewise.
9954
a4ee7fac 99552011-05-26 Ira Rosen <ira.rosen@linaro.org>
9956
9957 PR tree-optimization/49038
9958 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
9959 Ensure at least one epilogue iteration if required by data
9960 accesses with gaps.
9961 * tree-vectorizer.h (struct _loop_vec_info): Add new field
9962 to mark loops that require peeling for gaps.
9963 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
9964 (vect_get_known_peeling_cost): Take peeling for gaps into
9965 account.
9966 (vect_transform_loop): Generate epilogue if required by data
9967 access with gaps.
9968 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
9969 loop as requiring an epilogue if there are gaps in the end of
9970 the strided group.
9971
85bd2ab6 99722011-05-25 Ian Lance Taylor <iant@google.com>
9973
9974 * godump.c (go_format_type): Output the first field with a usable
9975 Go type, if any.
9976
24cb5f0e 99772011-05-25 Ian Lance Taylor <iant@google.com>
9978
9979 * godump.c (go_format_type): Check for invalid type names, pointer
9980 target types, and struct field types.
9981
58ee5a30 99822011-05-25 Jason Merrill <jason@redhat.com>
9983
9984 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
9985
dd1f4650 99862011-05-25 Uros Bizjak <ubizjak@gmail.com>
9987
9988 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
9989
56911ddb 99902011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9991
9992 * config/i386/i386.md (*movqi_extv_1)): Put back
9993 "register_operand" check in "type" calculation.
9994 (*movqi_extzv_2): Likewise.
9995
4d7a5fd9 99962011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9997
dd1f4650 9998 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
4d7a5fd9 9999
7be359e3 100002011-05-25 Bernd Schmidt <bernds@codesourcery.com>
10001
10002 PR bootstrap/49160
10003 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
10004 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
10005 __divxc3, __divtc3): Wrap definitions in #ifndef.
10006
c5256590 100072011-05-25 H.J. Lu <hongjiu.lu@intel.com>
10008
10009 PR target/49142
10010 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
10011 "register_operand" check and replace q_regs_operand with
10012 QIreg_operand in "type" calculation.
10013 (*movqi_extv_1): Likewise.
10014 (*movqi_extzv_2_rex64): Likewise.
10015 (*movqi_extzv_2): Likewise.
10016
10017 * config/i386/predicates.md (QIreg_operand): New.
10018
061b1263 100192011-05-25 Richard Guenther <rguenther@suse.de>
10020
10021 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
10022 type-based offset disambiguation, streamline MEM_REF and
10023 TARGET_MEM_REF handling.
10024
1c0d1529 100252011-05-25 H.J. Lu <hongjiu.lu@intel.com>
10026
10027 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
10028 (bdesc_special_args): Add pause intrinsic.
10029
10030 * config/i386/i386.md (UNSPEC_PAUSE): New.
10031 (pause): Likewise.
10032 (*pause): Likewise.
10033 * config/i386/ia32intrin.h (__pause): Likewise.
10034
10035 * doc/extend.texi (X86 Built-in Functions): Add documentation for
10036 pause intrinsic.
10037
e78306af 100382011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10039
10040 PR tree-optimization/46728
10041 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
10042 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
dd1f4650 10043
1e184c62 100442011-05-25 Nathan Froyd <froydnj@codesourcery.com>
10045
10046 * tree.h (struct tree_exp): Inherit from struct tree_typed.
10047 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
10048 instead of TS_COMMON.
10049
f308a9b2 100502011-05-25 Bernd Schmidt <bernds@codesourcery.com>
10051
10052 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
10053 LIBGCC2_GNU_PREFIX is defined.
10054 (__N): New macro.
10055 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
10056 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
10057 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
10058 __clz_tab): Define using __N.
10059 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
10060 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
10061 * target.def (libfunc_gnu_prefix): New hook.
10062 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
10063 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
10064 * doc/tm.texi: Regenerate.
10065 * system.h (LIBGCC2_GNU_PREFIX): Poison.
10066 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
10067 account.
10068 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
10069 (init_optabs): Likewise for the bswap libfuncs.
10070 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
10071 and divide.
10072 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
10073 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
10074 * libgcc-std.ver: Remove.
10075 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
10076 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
10077 libgcc-std.ver.
10078 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10079 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
10080 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
10081 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
10082 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
10083 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10084 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10085 * config/fixed-bit.h (FIXED_OP): Define differently depending on
10086 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
10087 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
10088
5f8d4adf 100892011-05-25 Jan Hubicka <jh@suse.cz>
10090
10091 * lto-streamer-out.c (output_record_start): Use lto_output_enum
10092 (lto_output_tree): Use output_record_start.
10093 * lto-streamer-in.c (input_record_start): Use lto_input_enum
10094 (lto_get_pickled_tree): Use input_record_start.
10095 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
10096 (lto_value_range_error): New function.
10097 * lto-streamer.h (lto_value_range_error): Declare.
10098 (lto_output_int_in_range, lto_input_int_in_range): New functions.
10099 (lto_output_enum, lto_input_enum): New macros.
10100
8c0dd614 101012011-05-25 Eric Botcazou <ebotcazou@adacore.com>
10102
10103 * common.opt (flag_stack_usage_info): New variable.
10104 (-Wstack-usage): New option.
10105 * doc/invoke.texi (Warning options): Document -Wstack-usage.
10106 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
10107 <OPT_fstack_usage>: Likewise.
10108 * toplev.c (output_stack_usage): Handle -Wstack-usage.
10109 * calls.c (expand_call): Test flag_stack_usage_info variable instead
10110 of flag_stack_usage.
10111 (emit_library_call_value_1): Likewise.
10112 * explow.c (allocate_dynamic_stack_space): Likewise.
10113 * function.c (instantiate_virtual_regs ): Likewise.
10114 (prepare_function_start): Likewise.
10115 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
10116 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
10117 * config/arm/arm.c (arm_expand_prologue): Likewise.
10118 (thumb1_expand_prologue): Likewise.
10119 * config/avr/avr.c (expand_prologue): Likewise.
10120 * config/i386/i386.c (ix86_expand_prologue): Likewise.
10121 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
10122 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
10123 * config/mips/mips.c (mips_expand_prologue): Likewise.
10124 * config/pa/pa.c (hppa_expand_prologue): Likewise.
10125 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
10126 * config/s390/s390.c (s390_emit_prologue): Likewise.
10127 * config/sh/sh.c (sh_expand_prologue): Likewise.
10128 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
10129 * config/spu/spu.c (spu_expand_prologue): Likewise.
10130
ebb9e48b 101312011-05-25 Richard Guenther <rguenther@suse.de>
10132
10133 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
10134 (gimple_canonical_types_compatible_p): Likewise.
10135
841f7bf1 101362011-05-25 Jan Hubicka <jh@suse.cz>
10137
10138 PR middle-end/49062
10139 * ipa.c (function_and_variable_visibility): Only add to same
10140 comdat group list if DECL_ONE_ONLY.
10141
680bc122 101422011-05-25 Andrey Belevantsev <abel@ispras.ru>
10143
10144 PR rtl-optimization/49014
10145 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
10146
5042e3a4 101472011-05-25 Jakub Jelinek <jakub@redhat.com>
10148
10149 PR target/49128
10150 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
10151
a977d63f 101522011-05-24 Vladimir Makarov <vmakarov@redhat.com>
10153
10154 PR rtl-optimization/48757
10155 * ira-build.c (loop_with_eh_edge_p): Rename to
10156 loop_with_complex_edge_p, check edges on complexity, make function
10157 conditional.
10158 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
10159 conditional.
10160
7d102c18 101612011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10162
10163 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
10164 force flag_ira_share_save_slots to 0.
10165
c69a7a6b 101662011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10167
10168 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
10169 (vt_initialize): Set PROLOGUE_BB unconditionally.
10170 Add block comment about CFA_BASE_RTX machinery.
10171 Reset FP_CFA_OFFSET to -1 on all invalid paths.
10172 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
10173
7ef1fa91 101742011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
10175
10176 PR objc/48187
10177 * c-parser.c (c_parser_objc_class_instance_variables): More robust
10178 parsing of syntax error in ObjC instance variable lists. In
10179 particular, avoid an infinite loop if there is a stray ']'.
10180 Updated error message.
10181
654a2463 101822011-05-24 Ian Lance Taylor <iant@google.com>
10183
10184 * godump.c (go_define): Don't accept a string immediately after
10185 another operand.
10186
4eac1d96 101872011-05-24 Ian Lance Taylor <iant@google.com>
10188
10189 * godump.c (struct godump_container): Add invalid_hash field.
10190 (go_format_type): Return false if type is found in invalid_hash.
10191 (go_output_typedef): Add invalid type to invalid_hash.
10192 (go_finish): Create and delete invalid_hash.
10193
e78306af 101942011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
dd1f4650 10195
e9a6c4bc 10196 PR tree-optimization/46728
10197 * tree-ssa-math-opts.c (powi_table): New.
10198 (powi_lookup_cost): New.
10199 (powi_cost): New.
10200 (powi_as_mults_1): New.
10201 (powi_as_mults): New.
10202 (gimple_expand_builtin_powi): New.
10203 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
10204 (gate_cse_sincos): Remove sincos/cexp restriction.
4eac1d96 10205
a0bd86eb 102062011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10207
10208 PR target/3746
10209 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
10210 mips-tdump native.
10211 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
10212 * mips-tdump.c: Likewise.
10213
93294988 102142011-05-24 H.J. Lu <hongjiu.lu@intel.com>
10215
10216 PR target/49128
10217 * config/i386/driver-i386.c (host_detect_local_cpu): Always
10218 add -mno-XXX. Handle FMA.
10219
c199e49c 102202011-05-24 Vladimir Makarov <vmakarov@redhat.com>
10221
10222 PR rtl-optimization/48633
10223 * ira-build.c (loop_with_eh_edge_p): New function.
10224 (mark_loops_for_removal): Use it.
10225
102262011-05-24 Vladimir Makarov <vmakarov@redhat.com>
59813b40 10227
10228 PR rtl-optimization/48971
10229 * ira.c (setup_pressure_classes): Don't check register move cost
10230 for classes with one registers. Don't add pressure class if there
10231 is a pressure class with the same available hard registers.
10232 Check contains_reg_of_mode. Fix a typo in collecting
10233 temp_hard_regset. Ignore hard registers not belonging to a class.
10234
23372c6e 102352011-05-24 Uros Bizjak <ubizjak@gmail.com>
10236
10237 PR target/49133
10238 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
10239
50f35d2e 102402011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10241 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10242
10243 PR gcov-profile/48845
10244 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
10245
1ca0809c 102462011-05-24 Richard Guenther <rguenther@suse.de>
10247
10248 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
10249 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
10250 (gimple_types_compatible_p_1): Adjust.
10251 (iterative_hash_canonical_type): Do not bother about complete vs.
10252 incomplete types.
10253 (gimple_canonical_types_compatible_p): Likewise.
10254
a89638b3 102552011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10256
10257 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
10258
45014c84 102592011-05-24 Richard Guenther <rguenther@suse.de>
10260
10261 PR bootstrap/49078
10262 * gimple.c (gimple_register_canonical_type): Revert
10263 previous change.
10264 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
10265 does not for a tree for the case where it matters. Cache
10266 pointer-type alias-sets.
10267
eb65953e 102682011-05-24 Joseph Myers <joseph@codesourcery.com>
10269
10270 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
10271 (OBJS): Remove options.o, opts-common.o and prefix.o.
10272 (OBJS-libcommon-target): New.
10273 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
10274 (BACKEND): Include libcommon-target.a.
10275 (MOSTLYCLEANFILES): Include libcommon-target.a.
10276 (libcommon-target.a): New.
10277 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
10278 prefix.o.
10279
0bfbe373 102802011-05-23 Joseph Myers <joseph@codesourcery.com>
10281
10282 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
10283 parts of output shared with the driver.
10284 * optc-gen.awk: Don't generate parts of output not shared with the
10285 driver.
10286 * opth-gen.awk: Remove GCC_DRIVER conditionals.
10287 * doc/options.texi (SourcerInclude): Mention options-save.c.
10288 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
10289 (OBJS): Add options-save.o.
10290 (options-save.c, options-save.o): New.
10291 (options.o): Update dependencies.
10292 (gcc-options.o): Remove.
10293 (mostlyclean): Remove options-save.c.
10294
c6333c6e 102952011-05-23 Jakub Jelinek <jakub@redhat.com>
10296
dc0bd85b 10297 PR debug/49032
10298 * dbxout.c: Include cgraph.h.
10299 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
10300 and without value expr, return NULL if no varpool node exists for
10301 it or if it is not needed.
10302 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
10303
c6333c6e 10304 PR c/49120
10305 * c-decl.c (start_decl): Convert expr to void_type_node.
10306
b0bd0491 103072011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
10308
10309 PR rtl-optimization/48826
10310 * emit-rtl.c (try_split): When splitting a call that is followed
10311 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
10312
5f28ce61 103132011-05-23 Jakub Jelinek <jakub@redhat.com>
10314
10315 * cfgexpand.c (expand_debug_expr): For unused non-addressable
10316 parameters passed in memory prefer using DECL_INCOMING_RTL over
10317 the pseudos it will be copied into.
10318
0b70e1e3 103192011-05-23 H.J. Lu <hongjiu.lu@intel.com>
10320
10321 PR target/47315
10322 * config/i386/i386.c (ix86_option_override_internal): Save the
10323 initial options after checking vzeroupper.
10324
658c2e37 103252011-05-23 David Li <davidxl@google.com>
10326
10327 PR tree-optimization/48988
10328 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
10329 Initialize has_valid_pred for each pred chain.
10330
9c759c0a 103312011-05-23 Richard Guenther <rguenther@suse.de>
10332
10333 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
10334 (iterative_hash_gimple_type): Always hash type names.
10335
774e9d58 103362011-05-23 Nathan Froyd <froydnj@codesourcery.com>
10337
10338 * c-typeck.c (build_function_call_vec): Tweak call to
10339 check_function_arguments.
10340
e54d36c4 103412011-05-23 Richard Guenther <rguenther@suse.de>
10342
10343 PR tree-optimization/49115
10344 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
10345 is not necessarily carried out, do not claim it kills the ref.
10346 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
10347
e07c7898 103482011-05-23 Richard Guenther <rguenther@suse.de>
10349
10350 PR middle-end/15419
10351 * builtins.c (fold_builtin_memory_op): Be less restrictive about
10352 what pointer types we accept for folding.
10353
c177b341 103542011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10355
10356 * gthr-gnat.c: Remove.
10357 * gthr-gnat.h: Remove.
10358 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
10359 * config/t-freebsd (LIB2ADDEH): Likewise.
10360 * config/t-linux (LIB2ADDEH): Likewise.
10361 * config/t-sol2 (LIB2ADDEH): Likewise.
10362 * config/ia64/t-vms (LIB2ADDEH): Likewise.
10363 * configure.ac (target_thread_file): Remove gnat handling.
10364 * configure: Regenerate.
10365 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
10366
ea1e6352 103672011-05-23 Tristan Gingold <gingold@adacore.com>
10368 Eric Botcazou <ebotcazou@adacore.com>
10369
10370 * gcov.c (create_file_names): If no object directory is specified,
10371 keep the directory of the file.
10372
3f25492e 103732011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10374
10375 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
10376 * configure: Regenerate.
10377
d430af93 103782011-05-23 Jakub Jelinek <jakub@redhat.com>
10379
10380 PR middle-end/48973
10381 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
10382 failed and the comparison has a single bit signed type, use
10383 constm1_rtx instead of const1_rtx for true value.
10384 (do_store_flag): If ops->type is single bit signed type, disable
10385 signel bit test optimization and pass -1 instead of 1 as last
10386 parameter to emit_store_flag_force.
10387
dba7464a 103882011-05-23 Tom de Vries <tom@codesourcery.com>
10389
10390 PR target/45098
10391 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
10392 function.
10393 (infer_loop_bounds_from_undefined): Use new function.
10394
dd71e058 103952011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
10396
10397 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
10398 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
10399 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
10400 and -O0 otherwise.
10401 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
10402
50f4aeca 104032011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10404
10405 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
10406 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
10407 returns true.
10408
6c035750 104092011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
10410
10411 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
10412
ebbcbb93 104132011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10414
10415 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
10416 UNSPEC_MOVE_PIC pattern.
10417
91464496 104182011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10419
10420 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
10421 (sparc-*-rtems*): Likewise.
10422 (sparc64-*-elf*): Likewise.
10423 (sparc64-*-rtems*): Likewise.
10424 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
10425 * config/sparc/t-crtin: New file.
10426 * config/sparc/t-sol2 (crti.o): Delete rule.
10427 (crtn.o): Likewise.
10428 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
10429 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
10430 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
10431 (ENDFILE_SPEC): Add crtn.o.
10432
478263cb 104332011-05-22 Tom de Vries <tom@codesourcery.com>
10434
10435 PR middle-end/48689
10436 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
10437 CODE_CONTAINS_STRUCT (TS_COMMON).
10438
fcae9057 104392011-05-22 Jakub Jelinek <jakub@redhat.com>
10440
10441 PR middle-end/49029
10442 * expmed.c (extract_fixed_bit_field): Test whether target can be used
10443 only after deciding which mode to use.
10444
5d24f4be 104452011-05-22 Tom de Vries <tom@codesourcery.com>
10446
10447 PR target/45098
b01acfb8 10448 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
5d24f4be 10449 for call to get_shiftadd_cost.
10450
cef70b8a 104512011-05-22 Uros Bizjak <ubizjak@gmail.com>
10452
10453 PR target/49104
10454 * config/i386/cpuid.h (bit_MMXEXT): New define.
10455
89a2af15 104562011-05-22 Nick Clifton <nickc@redhat.com>
10457
10458 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
10459 initialisation of non-existant args[2] element. Use args[] array
10460 not arg[] array to pass arguments to build_function_type_list.
10461
ca8206e4 104622011-05-22 Ira Rosen <ira.rosen@linaro.org>
10463
10464 PR tree-optimization/49087
cef70b8a 10465 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
ca8206e4 10466
b622b5f5 104672011-05-21 Jason Merrill <jason@redhat.com>
10468
10469 PR c++/49092
10470 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
10471 static storage duration.
10472
d74fda7a 104732011-05-21 Eric Botcazou <ebotcazou@adacore.com>
10474
10475 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
10476 frame pointer.
10477
9ddcf03c 104782011-05-21 Eric Botcazou <ebotcazou@adacore.com>
10479
10480 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
10481 false if there are call-saved registers here...
10482 (sparc_can_use_return_insn_p): ...but here instead.
10483 (save_or_restore_regs): Fix thinko.
10484 (sparc_expand_prologue): Use current_function_is_leaf.
10485 (sparc_frame_pointer_required): Likewise.
10486
3e8d9684 104872011-05-21 Nick Clifton <nickc@redhat.com>
10488
10489 PR target/49098
10490 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
10491
248c24dd 104922011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
10493
10494 * gengtype.c (walk_type): Implemented "atomic" GTY option.
10495 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
10496
1e127302 104972011-05-21 Joseph Myers <joseph@codesourcery.com>
10498
10499 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
10500 * optc-gen.awk: Move common code to opt-read.awk.
10501 * opth-gen.awk: Likewise.
cef70b8a 10502 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1e127302 10503
f2af597c 105042011-05-20 Nathan Froyd <froydnj@codesourcery.com>
10505
10506 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
10507
e0ae2fe2 105082011-05-20 Tom de Vries <tom@codesourcery.com>
10509
10510 PR target/45098
10511 * tree-ssa-loop-ivopts.c: Include expmed.h.
10512 (get_shiftadd_cost): New function.
10513 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
10514
ae4330d7 105152011-05-20 Jakub Jelinek <jakub@redhat.com>
10516
10517 PR bootstrap/49086
10518 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
10519 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
10520
f0246315 105212011-05-20 Joseph Myers <joseph@codesourcery.com>
10522
10523 * Makefile.in: Update comment referring to $(OBJS-common).
10524
32874486 105252011-05-20 Ian Lance Taylor <iant@google.com>
10526
10527 * godump.c (go_output_typedef): Put enum constants in the macro
10528 hash table to avoid duplicate Go const definitions.
10529
0b4f4daf 105302011-05-20 Joseph Myers <joseph@codesourcery.com>
10531
10532 * Makefile.in (LIBDEPS): Add libcommon.a.
10533 (LIBS): Likewise.
10534 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
10535 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
10536 pretty-print.o and version.o.
10537 (OBJS-libcommon): New.
10538 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
10539 (BACKEND): Add libcommon.a.
10540 (MOSTLYCLEANFILES): Likewise.
10541 (libcommon.a): New.
10542 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
10543 (cpp$(exeext)): Likewise.
10544 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
10545 pretty-print.o and input.o.
10546 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
10547 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
10548 (errors.o): Remove.
10549 (mips-tfile): Don't explicitly use version.o.
10550 (mips-tdump): Likewise.
10551 (gcov.o): Depend on $(DIAGNOSTIC_H).
10552 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
10553 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
10554 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
10555 * gcov-dump.c: Include intl.h and diagnostic.h.
10556 (main): Initialize diagnostics.
10557 * gcov.c: Include diagnostic.h.
10558 (fnotice): Remove.
10559 (main): Initialize diagnostics.
10560 * lto-wrapper.c: Include diagnostic.h.
10561 (main): Initialize diagnostics.
10562
aef23a85 105632011-05-20 Michael Matz <matz@suse.de>
10564
10565 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
10566
02b9b70b 105672011-05-20 Michael Matz <matz@suse.de>
10568 Richard Guenther <rguenther@suse.de>
10569
10570 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
10571 use lto_streamer_cache_append directly instead of returning a VEC.
10572 (preload_common_node): Remove.
10573 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
10574 track seen nodes.
10575 (lto_streamer_cache_create): Call lto_preload_common_nodes.
10576
06ec5ac4 105772011-05-20 Richard Guenther <rguenther@suse.de>
10578
10579 PR tree-optimization/49079
10580 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
10581 MEM_REFs correctly for the trailing array access detection.
10582 Special case constants the same way as decls for overall size
10583 constraining.
10584
6ae2c051 105852011-05-20 Uros Bizjak <ubizjak@gmail.com>
10586
10587 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
10588 argument expansion.
10589
8a245b9d 105902011-05-20 Jakub Jelinek <jakub@redhat.com>
10591
10592 PR tree-optimization/49073
6ae2c051 10593 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
10594 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
8a245b9d 10595 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
10596
c9819bb0 105972011-05-20 Richard Guenther <rguenther@suse.de>
10598
10599 PR middle-end/48849
10600 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
10601 of pointer types the same way the middle-end does.
10602
4d83607a 106032011-05-20 Richard Guenther <rguenther@suse.de>
10604
6ae2c051 10605 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
10606 or pointer-to chains. Delay all fixup to uniquify_nodes.
4d83607a 10607
ad33e6a8 106082011-05-19 Quentin Neill <quentin.neill@amd.com>
10609
10610 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
10611 (fma4_fmaddsub): Likewise
10612
b2640e03 106132011-05-19 Jan Hubicka <jh@suse.cz>
10614
10615 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
10616 (GIMPLE_TYPE_PAIR_SIZE): New macro.
10617 (type_pair_cache): New static var.
10618 (lookup_type_pair): Use fixed sized custom hash; make inline.
10619 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
10620 calls of lookup_type_pair.
10621 (print_gimple_types_stats): Remove cache stats.
10622 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
10623 and gtc_ob.
10624
d9973cb4 106252011-05-19 Uros Bizjak <ubizjak@gmail.com>
10626
10627 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
10628 when TARGET_RDRND is active.
10629 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
10630 Generate dummy SImode target register when target is NULL.
10631
bcbb3950 106322011-05-19 Joseph Myers <joseph@codesourcery.com>
10633
10634 * config/arm/arm-fpus.def: New.
10635 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
10636 arm-fpus.def.
10637 * config/arm/arm-tables.opt: Regenerate.
10638 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
10639 (arm_option_override): Don't decode FPU name to string here.
10640 * config/arm/arm.opt (mfpu=): Use Enum.
10641 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
10642 Update dependencies.
10643
11091b4d 106442011-05-19 Joseph Myers <joseph@codesourcery.com>
10645
10646 * collect2.c: Include diagnostic.h.
10647 (fatal_perror, fatal, error, fancy_abort): Remove.
10648 (main): Set progname. Call xmalloc_set_program_name and
10649 diagnostic_initialize.
10650 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
10651 scan_libraries, resolve_lib_name): Call fatal_error instead of
10652 fatal and fatal_perror.
10653 * collect2.h (error, fatal, fatal_perror): Don't declare.
10654 * tlink.c: Include diagnostic-core.h.
10655 (recompile_files): Call fatal_error instead of fatal_perror.
10656 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
10657 pretty-print.o and input.o.
10658 (collect2.o, tlink.o): Update dependencies.
10659
c2b88971 106602011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10661
10662 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
10663
3468b0d6 106642011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10665
10666 PR target/40483
10667 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
10668 COMDAT group syntax, both SPARC and x86 variants.
10669 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
10670 * configure: Regenerate.
10671 * config/sol2.h (TARGET_SOLARIS): Define.
10672 (PUSHSECTION_FORMAT): Remove.
10673 (SECTION_NAME_FORMAT): Define.
10674 * config/sol2.c: Include hashtab.h.
10675 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
10676 expansion, using SECTION_NAME_FORMAT.
10677 (solaris_comdat_htab): New variable.
10678 (struct comdat_entry): Define.
10679 (comdat_hash): New function.
10680 (comdat_eq): New function.
10681 (solaris_elf_asm_comdat_section): New function.
10682 (solaris_define_comdat_signature): New function.
10683 (solaris_code_end): New function.
10684 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
10685 (solaris_code_end): Declare.
10686 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
10687 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
10688 solaris_code_end.
10689 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
10690 Remove ATTRIBUTE_UNUSED.
10691 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
10692 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
d9973cb4 10693 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
3468b0d6 10694 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
10695 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
10696 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
10697 (PUSHSECTION_FORMAT): Remove.
10698 (SECTION_NAME_FORMAT): Redefine.
10699
d515ee79 107002011-05-19 Kai Tietz <ktietz@redhat.com>
10701
10702 * tree-cfg.c (verify_gimple_assign_binary): Barf on
10703 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
10704 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
10705
8d1c633d 107062011-05-19 Anatoly Sokolov <aesok@post.ru>
f5030be1 10707 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10708
10709 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
10710
dda02ea2 107112011-05-19 Richard Guenther <rguenther@suse.de>
10712
10713 PR middle-end/48985
10714 * tree-object-size.c (addr_object_size): If the pointed-to
10715 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
10716
bddb3763 107172011-05-19 Richard Guenther <rguenther@suse.de>
10718
10719 * gimple.c (gimple_types_compatible_p_1): Compare names of
10720 the types themselves.
10721 (iterative_hash_gimple_type): And hash them that way.
10722 (gimple_register_type_1): If we register a main variant properly
10723 initialize the leader to ourselves.
10724
055d6bb2 107252011-05-19 Tom de Vries <tom@codesourcery.com>
10726
10727 PR target/45098
10728 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
10729 get_loop_invariant_expr_id.
10730 (get_loop_invariant_expr_id): Use get_expr_id.
10731 (parm_decl_cost): New function.
10732 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
10733 Improve bound cost estimation. Use different inv_expr_id for elim and
10734 express cases.
10735
ee36045b 107362011-05-19 Tom de Vries <tom@codesourcery.com>
10737
10738 PR target/45098
10739 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
10740 cost_base.cost == 0.
10741
03f65847 107422011-05-18 H.J. Lu <hongjiu.lu@intel.com>
10743
10744 PR target/49002
7d2c0823 10745 * config/i386/sse.md
10746 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
10747 load cast.
03f65847 10748
556a56dd 107492011-05-18 Jakub Jelinek <jakub@redhat.com>
10750
10751 PR tree-optimization/49039
10752 * tree-vrp.c (extract_range_from_binary_expr): For
10753 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
10754 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
10755
9881cd2d 107562011-05-18 Tom de Vries <tom@codesourcery.com>
10757
10758 PR target/45098
10759 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
10760
b26e9e37 107612011-05-18 Uros Bizjak <ubizjak@gmail.com>
10762
10763 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
10764 (*tls_global_dynamic_64): Ditto.
10765 (*tls_local_dynamic_base_32_gnu): Ditto.
10766 (*tls_local_dynamic_base_64): Ditto.
10767 (tls_initial_exec_64_sun): Ditto.
10768
0d7700ef 107692011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
10770
10771 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
10772 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
10773 bf592-none.
10774 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
10775 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
10776 * config/bfin/bfin.c (bfin_cpus): Add bf592.
10777 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
b26e9e37 10778 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
0d7700ef 10779 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
10780 * config/bfin/elf.h (LIB_SPEC): Add bf592.
10781
8bbee4a9 107822011-05-18 Joseph Myers <joseph@codesourcery.com>
10783
10784 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
b26e9e37 10785 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
8bbee4a9 10786 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
10787 target_thread_pointer, arm_structure_size_boundary, struct
10788 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
10789 struct abi_name, arm_all_abis): Remove.
b26e9e37 10790 (arm_option_override) Don't process most enumerated option values here.
10791 Don't process target_fpe_name here. Work with integer not string for
10792 structure size boundary; use separate diagnostics for each case.
8bbee4a9 10793 * config/arm/arm.h (enum float_abi_type, enum
10794 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
10795 to arm-opts.h.
10796 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
10797 arm_structure_size_boundary): Remove.
10798 * config/arm/arm.opt (mabi=): Use Enum and Init.
10799 (arm_abi_type): New Enum and EnumValue entries.
10800 (mfloat-abi=): Use Enum and Init.
10801 (float_abi_type): New Enum and EnumValue entries.
b26e9e37 10802 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
8bbee4a9 10803 (mfp16-format=): Use Enum and Init.
10804 (arm_fp16_format_type): New Enum and EnumValue entries.
10805 (mstructure-size-boundary=): Use UInteger and Init.
10806 (mtp=): Use Enum and Init.
10807 (arm_tp_type): New Enum and EnumValue entries.
10808
b523dd6d 108092011-05-18 Richard Guenther <rguenther@suse.de>
10810
10811 PR tree-optimization/49018
10812 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
10813 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
10814 gimple_has_side_effects.
10815
ce89f696 108162011-05-18 Richard Guenther <rguenther@suse.de>
10817
10818 * gimple.c (gimple_register_type_1): New function, split out from ...
10819 (gimple_register_type): ... here. Avoid infinite recursion.
10820
39a5d6b1 108212011-05-18 Ira Rosen <ira.rosen@linaro.org>
10822
10823 PR tree-optimization/41881
10824 * tree-vectorizer.h (struct _loop_vec_info): Add new field
10825 reduction_chains along with a macro for its access.
10826 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
10827 (destroy_loop_vec_info): Free reduction chains.
10828 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
10829 (vect_is_slp_reduction): New function.
10830 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
10831 (vect_create_epilog_for_reduction): Support SLP reduction chains.
10832 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
10833 definition types for reduction chains.
10834 (vect_supported_load_permutation_p): Don't allow permutations for
10835 reduction chains.
10836 (vect_analyze_slp_instance): Support reduction chains.
10837 (vect_analyze_slp): Try to build SLP instance from reduction chains.
10838 (vect_get_constant_vectors): Handle reduction chains.
10839 (vect_schedule_slp_instance): Mark the first statement of the
10840 reduction chain as reduction.
10841
21009880 108422011-05-18 Ira Rosen <ira.rosen@linaro.org>
10843
10844 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
10845 names for group elements access.
10846 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
10847 reduction chains as well. Remove data reference and interleaving
10848 related words from the fields names.
10849 * tree-vect-loop.c (vect_transform_loop): Use new names for group
10850 elements access.
10851 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
10852 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
10853 vect_update_interleaving_chain, vect_same_range_drs,
10854 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
10855 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
10856 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
10857 vect_analyze_group_access, vect_analyze_data_ref_access,
10858 vect_create_data_ref_ptr, vect_transform_strided_load,
10859 vect_record_strided_load_vectors): Likewise.
10860 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
10861 vect_model_load_cost, vectorizable_store, vectorizable_load,
10862 vect_remove_stores, new_stmt_vec_info): Likewise.
10863 * tree-vect-slp.c (vect_build_slp_tree,
10864 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
10865
9ad3a576 108662011-05-18 Richard Guenther <rguenther@suse.de>
10867
10868 PR middle-end/48989
10869 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
10870 operand verification.
10871 (verify_gimple_assign_binary): Likewise.
10872 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
10873 to non-1-precision BOOLEAN_TYPEs.
10874
4fb583ad 108752011-05-18 Tom de Vries <tom@codesourcery.com>
10876
10877 PR target/45098
10878 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
10879
fd2b4bf0 108802011-05-18 Jakub Jelinek <jakub@redhat.com>
10881
10882 PR tree-optimization/49000
10883 * tree-ssa.c (execute_update_addresses_taken): Call
10884 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
10885 be rewritten and decl has been marked for renaming, reset
10886 the debug stmt.
10887
0ea4d98d 108882011-05-17 Joseph Myers <joseph@codesourcery.com>
10889
10890 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
10891 enum_opts_set when testing if attributes have set -mfpmath=.
10892
3eb76ba5 108932011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
10894
10895 * config/mips/mips.c (mips_handle_option): Remove unused variable.
10896
839c5aac 108972011-05-17 Uros Bizjak <ubizjak@gmail.com>
10898
10899 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
10900 info->entry with 0
10901 * tree-inline.c (maybe_inline_call_in_expr): Initialize
10902 id.transform_lang_insert_block with NULL.
10903
109042011-05-17 Uros Bizjak <ubizjak@gmail.com>
ca242583 10905
10906 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
10907 (output_fp_compare): Change args 3 and 4 to bool.
10908 (ix86_expand_call): Change arg 6 to bool.
10909 (ix86_attr_length_immediate_default): Change arg 2 to bool.
10910 (ix86_attr_length_vex_default): Change arg 3 to bool.
10911 * config/i386/i386.md: Update all uses.
10912 * config/i386/i386.c: Ditto.
10913 (ix86_flags_dependent): Change return type to bool.
10914
e8dcede0 109152011-05-17 Richard Guenther <rguenther@suse.de>
10916
10917 * gimple.c (type_hash_pair_compare): Fix comparison.
10918
f5e139e8 109192011-05-17 Richard Guenther <rguenther@suse.de>
10920
10921 * gimple.c (iterative_hash_gimple_type): Simplify singleton
10922 case some more, fix final hash value of the non-singleton case.
10923
e47af1f1 109242011-05-17 Richard Guenther <rguenther@suse.de>
10925
10926 PR bootstrap/49013
10927 Revert
10928 2011-05-16 Richard Guenther <rguenther@suse.de>
10929
10930 * gimple.c (gimple_types_compatible_p_1): Use names of the
10931 type itself, not its main variant.
10932 (iterative_hash_gimple_type): Likewise.
10933
46237a73 109342011-05-17 Richard Guenther <rguenther@suse.de>
10935
10936 * gimple.c (gimple_register_canonical_type): Use the main-variant
10937 leader for computing the canonical type.
10938
7e6e7156 109392011-05-17 Nick Clifton <nickc@redhat.com>
10940
6145a46d 10941 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
10942 moves.
10943
7e6e7156 10944 * config/rx/rx.md: Add peephole to remove redundant extensions
10945 after loads.
5341fa53 10946 (bitset_in_memory): Use rx_restricted_mem_operand.
10947 (bitinvert_in_memory): Likewise.
10948 (bitclr_in_memory): Likewise.
7e6e7156 10949
5c07e5ac 109502011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
10951 Nick Clifton <nickc@redhat.com>
10952
10953 * config/rx/rx.md: Add peepholes to match a register move followed
10954 by a comparison of the moved register. Replace these with an
10955 addition of zero that does both actions in one instruction.
10956
feb218cb 109572011-05-17 Jakub Jelinek <jakub@redhat.com>
10958
10959 PR target/48986
10960 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
10961 predicate to allow CONST_INT.
10962 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
10963
9105695c 109642011-05-16 Joseph Myers <joseph@codesourcery.com>
10965
10966 * opts-common.c (opt_enum_arg_to_value): New.
10967 * opts.h (opt_enum_arg_to_value): Declare.
10968 * config/i386/i386.opt (fpmath): Remove.
10969 (mfpmath=): Use Enum, Init and Save.
10970 (fpmath_unit): New Enum and EnumValue entries.
10971 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
10972 name for function fpmath state.
10973 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
10974 * config/i386/i386.c: Include diagnostic.h.
10975 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
ca242583 10976 (ix86_target_string): Take enum fpmath_unit value instead of string.
9105695c 10977 (ix86_debug_options): Update call to ix86_target_string.
ca242583 10978 (ix86_option_override_internal): Don't process fpmath strings here.
9105695c 10979 (x86_function_specific_save, ix86_function_specific_restore):
10980 Don't handle fpmath state specially.
10981 (ix86_function_specific_print): Pass fpmath state to
10982 ix86_target_string instead of printing in this function.
10983 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
10984 Handle enum attributes.
10985 (IX86_ATTR_ENUM, ix86_opt_enum): New.
10986 (ix86_valid_target_attribute_tree): Update option_strings
10987 handling. Handle fpmath as enum option.
10988 (ix86_can_inline_p): Update field names for function fpmath state.
10989 (ix86_expand_builtin): Update call to ix86_target_string.
10990 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
10991 (ix86_fpmath): Remove.
10992 * config/i386/t-i386 (i386.o): Update dependencies.
10993
e9a7bf99 109942011-05-16 Joseph Myers <joseph@codesourcery.com>
10995
10996 PR preprocessor/48677
10997 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
10998 from decoded_options[0], not from itself.
10999
25d5a263 110002011-05-16 Uros Bizjak <ubizjak@gmail.com>
11001
11002 * config/i386/constraints.md (z): New constraint.
11003 * config/i386/i386.c (c): New mode attribute.
11004 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
11005 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
11006 constraint for operand 0.
11007 (*call_vzeroupper): Ditto.
11008 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
11009 (*call_rex64_ms_sysv_vzeroupper): Ditto.
11010 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
11011 Use "lzm" constraint for operand 0.
11012 (*call_pop_vzeroupper): Ditto.
11013 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
11014 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
11015 constraint for operand 0.
11016 (*sibcall_vzeroupper): Ditto.
11017 (*sibcall_rex64_ms_sysv): Ditto.
11018 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
11019 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
11020 *sibcall_pop_1. Use "Uz" constraint for operand 0.
11021 (*sibcall_pop_vzeroupper): Ditto.
11022 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
11023 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
11024 mode iterator. Use "<c>zm" constraint for operand 1.
11025 (*call_value_vzeroupper): Ditto.
11026 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
ca242583 11027 for operand 1.
25d5a263 11028 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
11029 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
11030 *call_value_pop_1. Use "lzm" constraint for operand 1.
11031 (*call_value_pop_vzeroupper): Ditto.
11032 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
11033 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
11034 mode iterator. Use "Uz" constraint for operand 1.
11035 (*sibcall_value_vzeroupper): Ditto.
11036 (*sibcall_value_rex64_ms_sysv): Ditto.
11037 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
11038 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
11039 constraint for operand 1.
11040 (*sibcall_value_pop_vzeroupper): Ditto.
11041 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
11042 and "z" constraint for operand 2.
11043 (*tls_global_dynamic_32_gnu): Ditto.
11044 (*tls_local_dynamic_base_32_gnu): Ditto.
11045 (*tls_local_dynamic_base_64): Ditto.
11046 (*tls_local_dynamic_32_once): Ditto.
11047 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
11048 Update all callers.
11049 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
11050
9351e6d9 110512011-05-16 Richard Guenther <rguenther@suse.de>
11052
11053 * gimple.c (gimple_types_compatible_p_1): Use names of the
11054 type itself, not its main variant.
11055 (iterative_hash_gimple_type): Likewise.
11056
dc9aeee0 110572011-05-16 Richard Guenther <rguenther@suse.de>
11058
25d5a263 11059 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
11060 always visit pointer target and function result and argument types.
dc9aeee0 11061
18642e81 110622011-05-16 Jason Merrill <jason@redhat.com>
11063
11064 PR c++/48999
11065 * tree-inline.c (copy_statement_list): Put back recursion.
11066
db19f75e 110672011-05-16 Georg-Johann Lay <avr@gjlay.de>
11068
11069 PR target/27663
11070 PR target/41076
11071 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
11072 * config/avr/avr.md ("*ior<mode>qi.byte0",
11073 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
11074
04f600bb 110752011-05-16 Georg-Johann Lay <avr@gjlay.de>
11076
11077 PR target/45099
11078 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
11079 register is needed for a function argument.
11080
9532776c 110812011-05-16 Richard Guenther <rguenther@suse.de>
11082
11083 * gimple.c (struct type_hash_pair): New type.
11084 (type_hash_pair_compare): New function.
25d5a263 11085 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
9532776c 11086
9973add0 110872011-05-16 Revital Eres <revital.eres@linaro.org>
11088
25d5a263 11089 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
9973add0 11090
6a1210e5 110912011-05-15 Uros Bizjak <ubizjak@gmail.com>
11092
11093 * config/i386/i386.md (floating point move splitters): Fix
11094 usage of standard_80387_constant_p.
25d5a263 11095 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
6a1210e5 11096
751f709b 110972011-05-15 Uros Bizjak <ubizjak@gmail.com>
11098
11099 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
11100
2fd20c29 111012011-05-14 Eric Botcazou <ebotcazou@adacore.com>
11102
11103 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
11104 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
11105 (tree_ssa_lim_finalize): Likewise.
11106
ec679bd0 111072011-05-14 Uros Bizjak <ubizjak@gmail.com>
11108
11109 * config/i386/constraint.md (Yd, Yx): New register constraints.
11110 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
11111 Yd conditional register constraint.
11112 (*movtf_internal): Use standard_sse_constant_opcode.
11113 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
11114 Yx conditional register constraint.
11115 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
11116 Yd conditional register constraint. Use standard_sse_constant_p to
11117 check for valid SSE constants and call standard_sse_constant_opcode to
11118 output SSE insn.
11119 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
11120 constants and call standard_sse_constant_opcode to output SSE insn.
11121 * config/i386/i386.c (ix86_option_ovverride_internal): Set
11122 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
11123 optimize_size is set.
11124 (standard_sse_constant_opcode): Output conditional AVX insn templates.
11125
9e412fd2 111262011-05-14 Tobias Burnus <burnus@net-b.de>
11127
11128 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
11129
93f713da 111302011-05-13 Martin Jambor <mjambor@suse.cz>
11131
11132 * ipa-prop.c (ipa_cst_from_jfunc): New function.
11133 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
11134 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
11135 (evaluate_conditions_for_ipcp_clone): Removed.
11136 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
11137 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
11138 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
11139
6d31b223 111402011-05-13 Eric Botcazou <ebotcazou@adacore.com>
11141
11142 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
11143 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
11144 lieu of MAY_HAVE_DEBUG_STMTS.
11145 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
11146 debug statements if !MAY_HAVE_DEBUG_STMTS.
11147
e95cac88 111482011-05-13 Martin Thuresson <martint@google.com>
11149
11150 PR gcov-profile/47793
11151 * libgcov.c (gcov_exit): Support relative profile paths.
11152 * doc/invoke.texi (-fprofile-dir): Update for above change.
11153
8b55830c 111542011-05-13 Richard Guenther <rguenther@suse.de>
11155
11156 * gimple.c (gimple_canonical_types_compatible_p): Do not use
11157 type-pair caching, do not compare hashes.
11158
afec0a77 111592011-05-13 Nathan Froyd <froydnj@codesourcery.com>
11160
11161 PR middle-end/48965
11162 * tree-cfg.c (edge_to_cases_cleanup): Return true.
11163 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
11164
d994b25f 111652011-05-13 Kai Tietz <ktietz@redhat.com>
11166
11167 * gimplify.c (gimplify_expr): Make sure operand is boolified.
11168 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
11169 compatible type for TRUTH_NOT_EXPR.
11170
2db1a5bf 111712011-05-13 H.J. Lu <hongjiu.lu@intel.com>
11172
6d31b223 11173 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2db1a5bf 11174 (ix86_hard_regno_mode_ok): Change return value to bool. Use
11175 can_create_pseudo_p ().
11176
1f51cf89 111772011-05-13 Richard Guenther <rguenther@suse.de>
11178
11179 PR lto/48978
11180 * gimple.c (iterative_hash_gimple_type): Revert change in
11181 pointer target and function result and argument hashing.
11182
6e079bbc 111832011-05-13 Uros Bizjak <ubizjak@gmail.com>
11184
11185 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
11186 (*movxf_internal_nointeger): Ditto.
11187 (*movdf_internal_rex64): Ditto.
11188 (*movdf_internal): Ditto.
11189 (*movdf_internal_nointeger): Ditto.
11190 (*movsf_internal): Ditto.
11191 (sincos splitters): Use can_create_pseudo ().
11192
c16ca027 111932011-05-13 Joseph Myers <joseph@codesourcery.com>
11194
11195 * config/i386/i386-opts.h: New.
11196 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
11197 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
11198 ix86_section_threshold): Remove.
11199 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
11200 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
11201 OPT_mbranch_cost_.
11202 (ix86_option_override_internal): Don't decode strings for options
11203 other than -march=, -mtune= and -mfpmath=. Don't allow for
11204 __attribute__ uses in remaining diagnostics for options with
6e079bbc 11205 string arguments. Don't check for integer arguments being negative.
c16ca027 11206 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
6e079bbc 11207 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
c16ca027 11208 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
11209 ix86_branch_cost, ix86_section_threshold): Remove.
11210 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
11211 HeaderInclude.
11212 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
11213 but not Var.
11214 (masm=): Use Enum and Init.
11215 (asm_dialect): New Enum and EnumValue entries.
11216 (mbranch-cost=): Use UInteger.
11217 (mlarge-data-threshold=): Use UInteger and Init.
11218 (mcmodel=): Use Enum and Init.
11219 (cmodel): New Enum and EnumValue entries.
11220 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
11221 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
11222 mregparm=): Use UInteger.
11223 (mstringop-strategy=): Use Enum and Init.
11224 (stringop_alg): New Enum and EnumValue entries.
11225 (mtls-dialect=): Use Enum and Init.
11226 (tls_dialect): New Enum and EnumValue entries.
11227 (mabi=): Use Enum and Init.
11228 (calling_abi): New Enum and EnumValue entries.
11229 (mveclibabi=): Use Enum and Init.
11230 (ix86_veclibabi): New Enum and EnumValue entries.
11231
710e2b30 112322011-05-13 Nick Clifton <nickc@redhat.com>
11233
6e079bbc 11234 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
11235 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
710e2b30 11236
008eaf24 112372011-05-13 Kai Tietz <ktietz@redhat.com>
11238
11239 PR middle-end/48984
11240 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
11241 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
11242 (gimple_boolify): Check for cast for boolean_type_node instead for
11243 BOOLEAN_TYPE.
11244
b43efa05 112452011-05-13 Richard Guenther <rguenther@suse.de>
11246
11247 PR tree-optimization/48172
11248 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
11249 multiplying by number of iterations for equal step.
11250 (vect_create_cond_for_alias_checks): Likewise.
11251
bc6c87c1 112522011-05-13 Andreas Schwab <schwab@redhat.com>
11253
11254 * configure.ac: Use AS_HELP_STRING throughout.
11255 * configure: Regenerate.
11256
7da01271 112572011-05-12 H.J. Lu <hongjiu.lu@intel.com>
11258
6e079bbc 11259 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
7da01271 11260 (ix86_emit_restore_regs_using_mov): Likewise.
11261 (ix86_emit_restore_sse_regs_using_mov): Likewise.
11262
5d57e68b 112632011-05-12 Anatoly Sokolov <aesok@post.ru>
11264
11265 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
11266 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
11267 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
11268 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
11269 RTX_OK_FOR_OLO10_P): ...here.
11270 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
11271 SYMBOLIC_CONST.
11272
4c7817e5 112732011-05-12 Kai Tietz <ktietz@redhat.com>
11274
11275 * gimplify.c (gimple_boolify): Re-boolify expression
11276 arguments even if expression type is of kind BOOLEAN_TYPE.
11277 (gimplify_boolean_expr): Removed.
11278 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
11279 and XOR. Additional take care that we keep expression's type.
11280 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
11281 of TRUTH_AND|OR|XOR_EXPR.
11282
39760a87 112832011-05-12 Jakub Jelinek <jakub@redhat.com>
11284
11285 PR tree-optimization/48975
11286 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
11287 on all bbs here and free and clear ifc_bbs at the end.
11288
488a4664 112892011-05-12 Richard Guenther <rguenther@suse.de>
11290
11291 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
11292 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
11293 until after simple checks.
11294 (gimple_types_compatible_p): Likewise.
11295 (iterative_hash_gimple_type): Always hash pointer targets
11296 and function return and argument types.
11297 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
11298 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
11299 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
11300 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
11301 completely in the simple compare section.
11302 (gimple_register_canonical_type): Query the cache again after
11303 registering.
11304
76d8ef3b 113052011-05-12 Richard Guenther <rguenther@suse.de>
11306
11307 PR tree-optimization/48172
11308 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
11309 the number of iterations from the segment size calculation.
11310 (vect_create_cond_for_alias_checks): Adjust.
11311
ca88a6ea 113122011-05-12 Jakub Jelinek <jakub@redhat.com>
11313
11314 PR debug/48967
11315 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
11316 if validate_subreg fails.
11317
113182011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
861b8aab 11319
11320 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
11321 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
11322 early.
11323
103700c7 113242011-05-12 DJ Delorie <dj@redhat.com>
11325
92514c2f 11326 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
103700c7 11327 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
11328 created builtin into rx_builtins array.
11329 (rx_builtin_decl): New function.
6e079bbc 11330 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
103700c7 11331
f7fcec1a 113322011-05-12 DJ Delorie <dj@redhat.com>
11333 Nick Clifton <nickc@redhat.com>
11334
11335 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
11336 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
11337 (rx_is_legitimate_address): Add pre-decrement and post-increment
11338 addressing in HImode and QImode. Fix test for out of range
11339 REG+INT addressing.
103700c7 11340 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
6e079bbc 11341 (rx_align_for_label): Test label before extracting its usage count.
f7fcec1a 11342 (rx_adjust_insn_lengths): Fix selection of insn codes.
103700c7 11343 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
f7fcec1a 11344
381824bd 113452011-05-11 Jason Merrill <jason@redhat.com>
11346
11347 * tree.c (type_hash_canon): Use struct tree_type_non_common.
11348
53105d88 113492011-05-11 Eric Botcazou <ebotcazou@adacore.com>
11350
11351 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
11352 reindent the subsequent block.
11353
3cb9bbfa 113542011-05-11 Satoru Takabayashi <satorux@google.com>
11355 Paul Pluzhnikov <ppluzhnikov@google.com>
11356
6e079bbc 11357 * doc/install.texi (Configuration): Document --with-linker-hash-style.
c1c901bf 11358 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
11359 * config.in: Add LINKER_HASH_STYLE.
11360 * configure.ac: Add --with-linker-hash-style.
11361 * configure: Regenerate.
3cb9bbfa 11362
4088c72c 113632011-05-11 Richard Guenther <rguenther@suse.de>
11364
11365 PR middle-end/48964
11366 * gimple.c (iterative_hash_canonical_type): Fix typo.
11367
a5421f96 113682011-05-11 Uros Bizjak <ubizjak@gmail.com>
11369
11370 * config/i386/i386.c (legitimize_tls_address)
ec679bd0 11371 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
a5421f96 11372 expanders directly for TARGET_GNU2_TLS. Determine pic and
11373 __tls_get_addr symbol reference here. Update call to
11374 gen_tls_global_dynamic_{32,64} for added arguments.
ec679bd0 11375 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
a5421f96 11376 expanders directly for TARGET_GNU2_TLS. Determine
11377 __tls_get_addr symbol reference here. Update call to
11378 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
11379 unique UNSPEC REG_EQUIV to libcall block.
11380 (ix86_tls_get_addr): Declare static.
11381 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
11382 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
11383 Do not determine pic and __tls_get_addr symbol reference here. Do not
11384 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
11385 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
11386 (tls_global_dynamic_64): Add operand 2. Do not determine
11387 __tls_get_addr symbol reference here. Do not call
11388 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
11389 (tls_local_dynamic_base64): Ditto for operand 1.
11390
f8c438a1 113912011-05-11 Eric Botcazou <ebotcazou@adacore.com>
11392
11393 * function.c (expand_function_start): Initialize stack_check_probe_note
11394 only if the generic stack checking mechanism is used.
11395
26f54bd0 113962011-05-11 Richard Guenther <rguenther@suse.de>
11397
11398 PR tree-optimization/15256
11399 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
11400 (A & B) | C, combine (A op CST1) op CST2.
11401 (tree_ssa_forward_propagate_single_use_vars): Only bother to
11402 visit assigns that have uses.
11403
8f2eb9e1 114042011-05-11 Nathan Froyd <froydnj@codesourcery.com>
11405
a5421f96 11406 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
8f2eb9e1 11407 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
11408 (unpack_ts_type_common_value_fields): ...this. Update comment.
11409 (unpack_value_fields): Adjust for renaming.
11410 (lto_input_ts_type_tree_pointers): Split into...
11411 (lto_input_ts_type_common_tree_pointer): ...this and...
11412 (lto_input_ts_type_non_common_tree_pointers): ...this.
11413 (lto_input_tree_pointers): Adjust for above split.
11414 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
11415 (pack_ts_type_common_value_fields): ...this. Update comment.
11416 (lto_output_ts_type_tree_pointers): Split into...
11417 (lto_output_ts_type_common_tree_pointers): ...this and...
11418 (lto_output_ts_type_non_common_tree_pointers): ...this.
11419 (lto_output_tree_pointers): Adjust for above split.
11420 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
11421 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
11422 * stor-layout.c (vector_type_mode): Adjust location of mode field.
11423 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
11424 Define.
11425 (struct tree_type): Split into...
11426 (struct tree_type_common: ...this and...
11427 (struct tree_type_with_lang_specific): ...this and...
11428 (struct tree_type_non_common): ...this. Adjust accessor macros
11429 accordingly.
11430 (TYPE_VALUES_RAW): Define.
11431 (union tree_node): Update for above changes.
11432 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
11433 TS_TYPE_NON_COMMON.
11434 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
11435 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
11436 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
11437 * treestructu.def (TS_TYPE): Remove.
11438 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
11439 Define.
11440
8ebd8f29 114412011-05-11 Jakub Jelinek <jakub@redhat.com>
11442
11443 PR debug/48159
11444 * tree-ssa.c (reset_debug_uses): New function.
11445 * tree-flow.h (reset_debug_uses): New prototype.
11446 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
11447 * tree-loop-distribution.c (generate_loops_for_partition): Call
11448 reset_debug_uses on the stmts that will be removed. Keep around
11449 all debug stmts, don't count them as bits in partition bitmap.
11450 (generate_builtin): Don't count debug stmts or labels as bits in
11451 partition bitmap.
11452
564cba5f 114532011-05-11 Richard Guenther <rguenther@suse.de>
11454
11455 * gimple.c (gimple_type_hash_1): Merge with ...
11456 (gimple_type_hash): ... this.
11457 (gtc_visit): Remove mode parameter and simplify accordingly.
11458 (gimple_types_compatible_p_1): Likewise.
11459 (gimple_types_compatible_p): Likewise.
11460 (iterative_hash_gimple_type): Likewise.
11461 (visit): Likewise.
11462 (gimple_type_eq): Adjust.
11463
6f7f081f 114642011-05-11 Revital Eres <revital.eres@linaro.org>
11465
11466 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
11467 enters the branch create an anti edge in the opposite direction
11468 to prevent the creation of reg-moves.
11469 * modulo-sched.c: Adjust comment to reflect the fact we are
11470 scheduling closing branch.
11471 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
11472 (stage_count): New field in struct partial_schedule.
11473 (calculate_stage_count): New function.
11474 (normalize_sched_times): Rename to reset_sched_times and handle
11475 incrementing the sched time of the nodes by a constant value
11476 passed as parameter.
11477 (duplicate_insns_of_cycles): Skip closing branch.
11478 (sms_schedule_by_order): Schedule closing branch.
11479 (ps_insn_find_column): Handle closing branch.
11480 (sms_schedule): Call reset_sched_times and adjust the code to
11481 support scheduling of the closing branch.
11482 (ps_insert_empty_row): Update calls to normalize_sched_times
11483 and rotate_partial_schedule functions.
11484
a37d97a5 114852011-05-11 Richard Guenther <rguenther@suse.de>
11486
11487 PR middle-end/48953
11488 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
11489
20c2121a 114902011-05-11 Joseph Myers <joseph@codesourcery.com>
11491
a5421f96 11492 * opts.c (finish_options): Move warning settings from process_options.
11493 * toplev.c (process_options): Move warning settings to finish_options.
20c2121a 11494
300da094 114952011-05-11 Richard Guenther <rguenther@suse.de>
11496
11497 PR tree-optimization/18041
11498 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
11499 (simplify_bitwise_binary): ... this. Handle operand conversions
11500 by applying them to the result instead.
11501 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
11502
e27d9de9 115032011-05-11 Richard Guenther <rguenther@suse.de>
11504
11505 * gimple.c (gimple_canonical_types_compatible_p): Split out
11506 from gimple_types_compatible_p and friends. Do not recurse
11507 to pointed-to types.
11508 (gimple_canonical_type_eq): Use it.
11509 (iterative_hash_canonical_type): Split out from
11510 iterative_hash_gimple_type and friends. Do not recurse
11511 to pointed-to types.
11512 (gimple_canonical_type_hash): Use it, allocate the hash here.
11513
cf961a94 115142011-05-11 Revital Eres <revital.eres@linaro.org>
11515
11516 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
11517 recognizing doloop.
11518
29dc3c19 115192011-05-11 Revital Eres <revital.eres@linaro.org>
11520
11521 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
11522 instead of PREV_INSN.
11523
90c2bcf0 115242011-05-11 Revital Eres <revital.eres@linaro.org>
11525
11526 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
11527 * loop-doloop.c (doloop_condition_get): Likewise.
11528 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
11529 (doloop_end): New.
11530 * config/arm/arm.md (*addsi3_compare0): Remove "*".
11531
315119c9 115322011-05-10 Nathan Froyd <froydnj@codesourcery.com>
11533
11534 * tree.def (CASE_LABEL_EXPR): Add an operand.
11535 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
11536
b354cec8 115372011-05-10 Joseph Myers <joseph@codesourcery.com>
11538
11539 * c-decl.c (c_override_global_bindings_to_false): Remove.
11540 (global_bindings_p): Don't check
11541 c_override_global_bindings_to_false.
11542 * c-tree.h (c_override_global_bindings_to_false): Remove.
11543 * c-typeck.c (composite_type): Don't set
11544 c_override_global_bindings_to_false.
11545
2cf72ba5 115462011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
11547
11548 PR target/48857, 48495
11549 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
11550 (VSX_MODE): Ditto.
11551 (VSX_MOVE_MODE): Ditto.
11552 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
11553 VSX vector types. Add V2DImode.
11554 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
11555 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
11556 (MODES_TIEABLE_P): Ditto.
11557
11558 * config/rs6000/rs6000.c (rs6000_emit_move): Use
11559 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
11560 VSX_VECTOR_MODE.
11561 (init_cumulative_args): Ditto.
11562 (rs6000_function_arg_boundary): Ditto.
11563 (rs6000_function_arg_advance_1): Ditto.
11564 (rs6000_function_arg): Ditto.
11565 (rs6000_function_ok_for_sibcall): Ditto.
11566 (emit_frame_save): Ditto.
11567 (rs6000_function_value): Ditto.
11568 (rs6000_libcall_value): Ditto.
11569
8633828c 115702011-05-10 Joseph Myers <joseph@codesourcery.com>
11571
11572 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11573 i386/darwin-lib.h to $libgcc_tm_file.
11574 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
11575
73905b5d 115762011-05-10 Joseph Myers <joseph@codesourcery.com>
11577
11578 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
11579
d41a5879 115802011-05-10 Joseph Myers <joseph@codesourcery.com>
11581
a5421f96 11582 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
d41a5879 11583 * config/rs6000/rs6000-tables.opt: New file (generated).
11584 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
11585 rs6000/rs6000-tables.opt to extra_options.
11586 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
11587 * config/rs6000/rs6000.c (rs6000_select): Remove.
11588 (processor_target_table): Move contents to rs6000-cpus.def.
11589 (darwin_rs6000_override_options): Check
11590 global_options_set.x_rs6000_cpu_index instead of
11591 rs6000_select[1].string.
11592 (rs6000_option_override_internal): Likewise.
11593 (rs6000_handle_option): Don't assert that global structures are in
11594 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
11595 (rs6000_default_cpu): New variable.
11596 (rs6000_file_start): Set it instead of local default_cpu. Check
11597 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
11598 global_options_set.x_rs6000_tune_index instead of rs6000_select.
11599 (rs6000_darwin_file_start): Check rs6000_default_cpu and
11600 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
11601 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
11602 rs6000_select): Remove.
11603 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
11604 Remove.
11605 (mcpu=, mtune=): Use Var, Init, Enum and Save.
11606 * config/rs6000/t-rs6000
11607 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
11608 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11609 global_options_set.x_rs6000_cpu_index instead of
11610 rs6000_select[1].string.
11611 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11612 global_options_set.x_rs6000_cpu_index instead of
11613 rs6000_select[1].string.
11614
3be74046 116152011-05-10 Joseph Myers <joseph@codesourcery.com>
11616
11617 * config.gcc (libgcc_tm_file): Define instead of including files
11618 from ../../libgcc/config/ in tm_file.
a5421f96 11619 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
3be74046 11620 * configure: Regenerate.
11621 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
11622 libgcc_tm.h, cs-libgcc_tm.h): New.
11623 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
11624 (clean): Remove libgcc_tm.h.
11625 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
11626 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
11627 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
11628
1086ba15 116292011-05-10 Georg-Johann Lay <avr@gjlay.de>
11630
11631 PR target/48896
11632 * config/avr/avr.c (avr_ret_register): Return unsigned int
11633 instead of int.
11634 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
11635 it to avr_libcall_value.
11636 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
11637 expand_expr.
11638 (avr_expand_binop_builtin): Ditto.
11639 (avr_expand_unop_builtin): Ditto.
11640
001afa63 116412011-05-10 DJ Delorie <dj@redhat.com>
11642
11643 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
11644 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
11645 * config/rx/rx.c (rx_align_for_label): Add label and
11646 uses_threshold parameters. Do not align when the label is not
11647 used enough.
11648 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
11649
6afd0544 116502011-05-10 Richard Guenther <rguenther@suse.de>
11651
11652 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
11653 a series of conversions and apply foldings similar to what
11654 fold-const does.
11655 (tree_ssa_forward_propagate_single_use_vars): Call it.
11656
36637ccf 116572011-05-10 Jakub Jelinek <jakub@redhat.com>
11658
4e392ca1 11659 PR tree-optimization/48611
11660 PR tree-optimization/48794
11661 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
11662 referenced from RESX or EH_DISPATCH arguments.
11663
36637ccf 11664 PR debug/48928
11665 * dfp.c (decimal_to_decnumber): Handle conversion from
11666 dconst{1,2,m1,half}.
11667
e1626ed3 116682011-05-09 Uros Bizjak <ubizjak@gmail.com>
11669
11670 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
11671 for !flag_prefer_avx128.
11672 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
11673
05539e47 116742011-05-09 Eric Botcazou <ebotcazou@adacore.com>
11675
11676 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
11677 (fold_ternary_loc): Use expr_location_or.
11678
85413a3c 116792011-05-09 H.J. Lu <hongjiu.lu@intel.com>
11680
11681 PR debug/48853
11682 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
11683 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
11684 Pmode and mem_mode is not VOIDmode.
11685
05539e47 116862011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
ece7f9e3 11687
05539e47 11688 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
11689 TYPE_QUAL_RESTRICT): Convert to enum.
ece7f9e3 11690
d3d379e7 116912011-05-09 Uros Bizjak <ubizjak@gmail.com>
11692
11693 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
11694 (const_pow2_1_to_8_operand): Ditto.
11695 (const_pow2_1_to_128_operand): Ditto.
11696 (const_pow2_1_to_32768_operand): Ditto.
11697 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
11698 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
11699 in insn constraint to check integer value of operand 3.
11700 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
11701
11702 (PINSR_MODE): New mode iterator.
11703 (sse2p4_1): New mode attribute.
11704 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
11705 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
11706 iterator. Use const_int_operand instead of
11707 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
11708 exact_log2 in insn constraint to check integer value of operand 3.
11709
117102011-05-09 Uros Bizjak <ubizjak@gmail.com>
11711
11712 * config/i386/sse.md (blendbits): Remove mode attribute.
11713 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
11714 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
11715 Check integer value of operand 3 in insn constraint.
11716
79e191db 117172011-05-09 Richard Guenther <rguenther@suse.de>
11718
11719 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
11720 for diagnostics.
11721 (lto_symtab_merge): Likewise. Do not register types here.
11722 (lto_symtab_merge_decls_2): Likewise.
11723 (lto_symtab_merge_decls_1): Likewise.
11724 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
11725 * gimple.c (enum gtc_mode): Declare.
11726 (gimple_types_compatible_p): Make static.
11727
5b225bb2 117282011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11729
11730 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
11731 temporary register to match Pmode.
11732
18c3cd78 117332011-05-09 Uros Bizjak <ubizjak@gmail.com>
11734
11735 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
11736 and *vec_concatv4si_1_avx.
11737
34347cd4 117382011-05-09 Uros Bizjak <ubizjak@gmail.com>
11739
11740 PR rtl-optimization/48927
11741 * ira-conflicts.c (commutative_constraint_p): Use
11742 recog_data.alternative_enabled_p to disable alternatives where
11743 "enabled" attribute is false.
11744 (get_dup_num): Ditto.
11745 * ira-lives.c (single_reg_class): Ditto.
11746 (ira_implicitly_set_insn_hard_regs): Ditto.
11747
d0a639c4 117482011-05-09 Eric Botcazou <ebotcazou@adacore.com>
11749
11750 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
11751 (dataflow_set_preserve_mem_locs): Likewise.
11752
117532011-05-09 Philipp Thomas <pth@suse.de>
11754
516bc58f 11755 * config/mep/mep.c (mep_validate_vliw): Syntax description
11756 should not be translated.
11757
64bd95e1 117582011-05-09 Joseph Myers <joseph@codesourcery.com>
11759
11760 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
11761 * config/mips/mips-tables.opt: New file (generated).
34347cd4 11762 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
64bd95e1 11763 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
11764 MIPS_ARCH_OPTION_NATIVE): Define.
11765 * config/mips/mips.c (mips_cpu_info_table): Move contents to
11766 mips-cpus.def.
11767 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
11768 mips_parse_cpu): Remove.
11769 (mips_cpu_info_from_opt, mips_default_arch): New.
11770 (mips_handle_option): Don't assert that global structures are in
11771 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
11772 (mips_option_override): Use new variables and functions to set
34347cd4 11773 state of these options. Use strcmp to check for individual CPU names.
64bd95e1 11774 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
11775 definition.
11776 * config/mips/mips.opt (march=): Use ToLower and Enum.
11777 (mips): Use ToLower, Enum and Var.
11778 (mtune=): Use ToLower and Enum.
11779 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
11780
4075ce4a 117812011-05-08 Jan Hubicka <jh@suse.cz>
11782
11783 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
11784 Arrange type pairs to be UID ordered.
11785 (gimple_lookup_type_leader): Make inline.
11786
81705807 117872011-05-09 Nick Clifton <nickc@redhat.com>
11788
fcbb2025 11789 PR target/48899
11790 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
11791 PROCESSOR_DEFAULT.
11792
81705807 11793 PR target/48897
11794 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
11795 variable 's'.
11796
9a86832e 117972011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
11798
11799 * combine.c (simplify_comparison): Abstract out parts into...
11800 (simplify_compare_const): ... new function.
11801 (try_combine): Generalize parallel arithmetic/compare combining
11802 to call simplify_compare_const() and CANONICALIZE_COMPARE().
11803
8bae3ea4 118042011-05-08 Jan Hubicka <jh@suse.cz>
11805
11806 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
34347cd4 11807 (cgraph_create_virtual_clone): Call hooks once virtual clone
11808 is finished.
8bae3ea4 11809 * cgraph.h (cgraph_clone_node): Update prototype.
34347cd4 11810 * ipa-cp.c (ipcp_estimate_growth): Use
11811 estimate_ipcp_clone_size_and_time.
8bae3ea4 11812 * ipa-inline-transform.c (clone_inlined_nodes): Update.
11813 * lto-cgraph.c (input_node): Update.
11814 * ipa-inline.c (recursive_inlining): Update.
11815 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
11816 (evaluate_conditions_for_known_args): Break out from ...
11817 (evaluate_conditions_for_edge): ... here.
11818 (evaluate_conditions_for_ipcp_clone): New function.
11819 (inline_node_duplication_hook): Update clone summary based
11820 on parameter map.
11821 (estimate_callee_size_and_time): Rename to ...
11822 (estimate_node_size_and_time): take NODE instead of EDGE;
11823 take POSSIBLE_TRUTHS as argument.
11824 (estimate_callee_size_and_time): Update.
11825 (estimate_ipcp_clone_size_and_time): New function.
11826 (do_estimate_edge_time): Update.
11827
714e9434 118282011-05-08 Richard Guenther <rguenther@suse.de>
11829
11830 PR middle-end/48908
11831 PR middle-end/48905
11832 * expmed.c (expand_shift_1): Compute adjusted constant shift
11833 amount manually.
11834
163e62fb 118352011-05-08 Eric Botcazou <ebotcazou@adacore.com>
11836
11837 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
11838
381b6dc3 118392011-05-08 Eric Botcazou <ebotcazou@adacore.com>
11840
11841 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
11842
43d19b74 118432011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
11844
11845 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
11846
0656d247 118472011-05-07 Jan Hubicka <jh@suse.cz>
11848
56bef313 11849 * ipa-inline-transform.c (inline_call): Account when program size
11850 decreases.
0656d247 11851 * ipa-inline.c (relative_time_benefit): New function.
56bef313 11852 (edge_badness): Reorganize to be power 2 based; fix thinko when
11853 computing badness for negative growth; update comments to match
11854 reality; better dumps.
0656d247 11855
1d2bb655 118562011-05-07 Eric Botcazou <ebotcazou@adacore.com>
11857
11858 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
11859 type to bool and adjust comment.
11860 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
11861 (fold_mathfn_compare): Remove calls to global_bindings_p.
11862 (fold_inf_compare): Likewise.
11863 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
11864 * c-tree.h (global_bindings_p): Adjust prototype.
11865 * c-decl.c (global_bindings_p): Return bool and simplify.
11866
f09431f1 118672011-05-07 Zdenek Dvorak <ook@ucw.cz>
11868
11869 PR tree-optimization/48837
11870 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
11871 when accumulator transformation is performed.
11872
ffe461d9 118732011-05-06 Jan Hubicka <jh@suse.cz>
11874
56bef313 11875 * i386.h (ix86_tune_indices): Add
11876 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
34347cd4 11877 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
56bef313 11878 * i386.c (initial_ix86_tune_features): Add
11879 X86_SOFTARE_PREFETCHING_BENEFICIAL.
ffe461d9 11880 (software_prefetching_beneficial_p): Remove predicate.
11881 (ix86_option_override_internal): Use new macro.
11882
e825447c 118832011-05-06 Jan Hubicka <jh@suse.cz>
11884
11885 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
11886
91bf9d9a 118872011-05-06 Jan Hubicka <jh@suse.cz>
11888
11889 * cgraph.c (cgraph_add_thunk): Create real function node instead
11890 of alias node; finalize it and mark needed/reachale; arrange visibility
11891 to be right and add it into the corresponding same comdat group list.
11892 (dump_cgraph_node): Dump thunks.
11893 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
56bef313 11894 cgraph_function_with_gimple_body_p,
11895 cgraph_first_function_with_gimple_body,
91bf9d9a 11896 cgraph_next_function_with_gimple_body): New functions.
11897 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
11898 New macros.
11899 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
11900 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11901 * cgraphunit.c (cgraph_finalize_function): Only look into possible
11902 devirtualization when optimizing.
11903 (verify_cgraph_node): Verify thunks.
11904 (cgraph_analyze_function): Analyze thunks.
11905 (cgraph_mark_functions_to_output): Output thunks only in combination
11906 with function they are assigned to.
11907 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
11908 alias into normal node.
11909 (assemble_thunks): New functoin.
11910 (cgraph_expand_function): Use it.
11911 * lto-cgraph.c (lto_output_node): Stream thunks.
11912 (input_overwrite_node): Stream in thunks.
11913 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
11914 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
11915 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
11916 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
11917 (inline_analyze_function): Do not care about thunk jump functions.
11918 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
56bef313 11919 * ipa-prop.c (ipa_prop_write_jump_functions): Use
11920 cgraph_function_with_gimple_body_p.
11921 * passes.c (do_per_function_toporder): Use
11922 cgraph_function_with_gimple_body_p.
91bf9d9a 11923 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11924 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
11925 (function_called_by_processed_nodes_p): Likewise.
11926
b9f8199f 119272011-05-06 Joseph Myers <joseph@codesourcery.com>
11928
11929 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
11930 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
11931 entries.
11932 (mabi=): Replace with separate entries for mabi=altivec,
11933 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
11934 mabi=ieeelongdouble and mabi=ibmlongdouble.
11935 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
11936 check for -mabi=spe without SPE ABI support here.
11937 (rs6000_handle_option): Replace OPT_mabi_ handling with
11938 OPT_mabi_altivec and OPT_mabi_spe handling.
11939
779ad5d0 119402011-05-06 Cary Coutant <ccoutant@google.com>
11941
11942 * dwarf2out.c (contains_subprogram_definition): New function.
11943 (should_move_die_to_comdat): Call it.
11944
06a81e3f 119452011-05-06 Jeff Law <law@redhat.com>
11946
11947 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
11948 remove_ctrl_stmt_and_useless_edges.
11949 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
11950 (fixup_template_block, thread_single_edge): Likewise.
11951 (mark_threaded_blocks): Use THREAD_TARGET.
11952
61f51476 119532011-05-06 Alan Modra <amodra@gmail.com>
11954
11955 PR target/48900
11956 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11957 const0_rtx as the arg to the dummy __tls_get_addr libcall.
11958
41f4c13a 119592011-05-06 Uros Bizjak <ubizjak@gmail.com>
11960
11961 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
11962 constraint modifier to "r".
11963
83f34ac5 119642011-05-06 Joseph Myers <joseph@codesourcery.com>
11965
11966 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
11967 fall through for OPT_mcmodel_.
11968
29335855 119692011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11970
11971 * config/s390/s390.c (s390_asm_trampoline_template): Comment
11972 instruction sizes.
41f4c13a 11973 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
29335855 11974
d6d485a9 119752011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11976
34347cd4 11977 PR target/47930
11978 * config/arm/arm.opt (marm): Document it.
11979 (mthumb): Reject negative variant.
d6d485a9 11980
80a05cde 119812011-05-06 Uros Bizjak <ubizjak@gmail.com>
11982
11983 PR target/48898
11984 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
11985 Fix typo in "ccvt" variable name.
11986
c2881874 119872011-05-06 Tristan Gingold <gingold@adacore.com>
11988
11989 PR target/48895
11990 * config/vms/vms-ar.c (main): Remove cwd variable.
11991
bc40ee90 119922011-05-06 Jakub Jelinek <jakub@redhat.com>
11993
11994 PR debug/48902
11995 * var-tracking.c (prepare_call_arguments): Move else before #endif.
11996
b6e3dd65 119972011-05-05 Nathan Froyd <froydnj@codesourcery.com>
11998
11999 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
12000 * gimplify.c (gimplify_switch_expr): Likewise.
12001 * omp-low.c (expand_omp_sections): Likewise.
12002 * tree-eh.c (lower_try_finally_switch): Likewise.
12003 (lower_eh_dispatch): Likewise.
12004 * tree.h (build_case_label): Declare.
12005 * tree.c (build_case_label): Define.
12006
17476aac 120072011-05-05 Jason Merrill <jason@redhat.com>
12008
12009 PR c++/40975
12010 * tree-inline.c (copy_tree_r): Use copy_statement_list.
12011 (copy_statement_list): Don't recurse.
12012 * stor-layout.c (copy_self_referential_tree_r): Don't allow
12013 STATEMENT_LIST.
12014
b444e5be 120152011-05-05 Joseph Myers <joseph@codesourcery.com>
12016
12017 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
12018 through from -mfpu= handling.
12019 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
12020
fbc27330 120212011-05-05 Bernd Schmidt <bernds@codesourcery.com>
12022
12023 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
12024 POST_MODIFY.
12025
637c9296 120262011-05-05 Steve Ellcey <sje@cup.hp.com>
12027
12028 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
12029 for 11.31.
12030 (hppa[12]*-*-hpux11*): Ditto.
12031 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
12032 * config/ia64/hpux-unix2003.h: New.
12033 * config/pa/pa-hpux1131.opt: New.
12034 * config/pa/pa-hpux1131.h: New.
12035 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
12036 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
48054c99 12037 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
637c9296 12038
a9b10eec 120392011-05-05 Jakub Jelinek <jakub@redhat.com>
12040
12041 PR debug/48853
12042 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
12043 instead of mode as 3rd argument to recursive call.
12044 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
12045 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
12046 VOIDmode.
12047 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
12048 don't give up if mode is Pmode and mem_mode is not VOIDmode.
12049 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
12050 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
12051
e3c4ab51 120522011-05-05 Julian Brown <julian@codesourcery.com>
12053
12054 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
12055 parenthesis in D-register case.
12056
a4a5a0e9 120572011-05-05 Joseph Myers <joseph@codesourcery.com>
12058
12059 * opt-functions.awk (var_type_struct): Handle Enum options.
12060 * optc-gen.awk: Don't check range of variables of character type.
12061 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
12062 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
12063 rs6000_sdata_name, rs6000_explicit_options): Remove.
12064 (rs6000_option_override_internal): Check for -malign-power here.
12065 Use global_options_set instead of rs6000_explicit_options.
12066 (rs6000_parse_fpu_option): Remove.
12067 (rs6000_handle_option): Access variables via opts and opts_set
12068 pointers. Use error_at and warning_at. Add fall-through
12069 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
12070 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
12071 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
12072 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
12073 here. Don't use rs6000_parse_fpu_option.
12074 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
12075 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
12076 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
12077 (mrecip=): Use Var.
12078 (mspe): Use Var and Save.
12079 (mtraceback=): Use Enum and Var.
12080 (rs6000_traceback_type): New Enum and EnumValue entries.
12081 (mfloat-gprs=): Use Enum, Var and Save.
12082 (rs6000_float_gprs): New Enum and EnumValue entries.
12083 (mlong-double-): use Var and Save.
12084 (msched-costly-dep=, minsert-sched-nops=): Use Var.
12085 (malign-): Use Enum and Var.
12086 (rs6000_alignment_flags): New Enum and EnumValue entries.
12087 (mfpu=): Use Enum.
12088 (fpu_type_t): New Enum and EnumValue entries.
12089 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12090 global_options_set instead of rs6000_explicit_options.
12091 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12092 global_options_set instead of rs6000_explicit_options.
12093 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12094 global_options_set instead of rs6000_explicit_options.
12095 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12096 global_options_set instead of rs6000_explicit_options.
12097 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
12098 global_options_set instead of rs6000_explicit_options.
12099 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12100 global_options_set instead of rs6000_explicit_options.
12101 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
12102 definition.
12103 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12104 global_options_set instead of rs6000_explicit_options.
12105 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
12106 (rs6000_cmodel): New Enum and EnumValue entries.
12107 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12108 global_options_set instead of rs6000_explicit_options.
12109 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
12110 (mtls-size=): Use Enum and Var.
12111 (rs6000_tls_size): New Enum and EnumValue entries.
12112
5820f58d 121132011-05-05 Michael Matz <matz@suse.de>
12114
12115 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
12116 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
12117 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
12118 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
12119 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
12120 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
12121 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
12122 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
12123 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
12124 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
12125 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
12126 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
12127 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
12128 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
12129 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
12130 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
12131
32d37219 121322011-05-05 Richard Guenther <rguenther@suse.de>
12133
12134 * expmed.c (expand_variable_shift): Rename to ...
12135 (expand_shift_1): ... this. Take an expanded shift amount.
12136 For rotates recurse directly not building trees for the shift amount.
12137 (expand_variable_shift): Wrap around expand_shift_1.
12138 (expand_shift): Adjust.
12139
bb0794f9 121402011-05-05 Jakub Jelinek <jakub@redhat.com>
12141
12142 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
12143
a5aff672 121442011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12145
12146 * tree.h (get_pending_sizes): Remove prototype.
12147 (put_pending_size): Likewise.
12148 (put_pending_sizes): Likewise.
12149 * stor-layout.c (pending_sizes): Delete.
12150 (get_pending_sizes): Likewise.
12151 (put_pending_size): Likewise.
12152 (put_pending_sizes): Likewise.
12153 (variable_size): Do not call put_pending_size and tidy up.
12154 * function.h (struct function): Remove dont_save_pending_sizes_p.
12155 * lto-streamer-in.c (input_function): Do not stream it.
12156 * lto-streamer-out.c (output_function): Likewise.
12157 * tree-inline.c (initialize_cfun): Do not copy it.
12158 * c-decl.c (store_parm_decls): Do not set it.
12159 * omp-low.c (create_task_copyfn): Likewise.
12160 * tree-optimize.c (tree_rest_of_compilation): Likewise.
12161
d56eb220 121622011-05-05 Uros Bizjak <ubizjak@gmail.com>
12163
12164 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
12165 conditions.
12166 (*movdf_internal): Ditto.
12167 (*movdf_internal_nointeger): Ditto.
12168 (*movsf_internal): Ditto.
12169
4232a958 121702011-05-05 Joseph Myers <joseph@codesourcery.com>
12171
12172 * c-decl.c (finish_decl): Don't call get_pending_sizes.
12173 (grokparm): Add parameter expr. Pass it to grokdeclarator.
12174 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
12175 (c_variable_size): Remove.
12176 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
12177 call put_pending_sizes.
12178 (get_parm_info): Add parameter expr. Use it to set
12179 arg_info->pending_sizes.
12180 (store_parm_decls): Use arg_info->pending_sizes instead or calling
12181 get_pending_sizes.
12182 * c-parser.c (c_parser_parms_declarator): Update call to
12183 c_parser_parms_list_declarator.
12184 (c_parser_parms_list_declarator): Take parameter expr. Update
12185 call to push_parm_decl. Update recursive call. Don't call
12186 get_pending_sizes. Update calls to get_parm_info.
12187 (c_parser_objc_method_definition): Update calls to
12188 c_parser_objc_method_decl and objc_start_method_definition.
d56eb220 12189 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
4232a958 12190 (c_parser_objc_method_decl): Add parameter expr. Update call to
12191 grokparm.
d56eb220 12192 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
4232a958 12193 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
12194 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
12195
c275616e 121962011-05-05 Michael Hope <michael.hope@linaro.org>
12197
d56eb220 12198 PR pch/45979
12199 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
12200 __ARM_EABI__ hosts.
c275616e 12201
f17d2d13 122022011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12203
12204 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12205 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
12206 (spu_output_mi_thunk): New function.
12207
b82b45b4 122082011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12209
12210 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
12211 targetm.asm_out.print_operand.
12212 * config/sol2.c: Include target.h.
12213
ba5b0608 122142011-05-04 Jan Hubicka <jh@suse.cz>
12215
12216 * ipa-inline.c (reset_edge_caches): New function.
12217 (update_caller_keys): Add check_inlinablity_for; do not
12218 reset edge caches; remove now unnecesary loop.
d56eb220 12219 (update_callee_keys): Add comments; reset node_growth_cache of callee.
ba5b0608 12220 (update_all_callee_keys): Likewise.
12221 (inline_small_functions): Sanity check cache; update code
12222 recomputing it.
12223
8c936e55 122242011-05-04 Bernd Schmidt <bernds@codesourcery.com>
12225
12226 PR rtl-optimization/47612
12227 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
12228 as the last insn of the sequence to be moved.
12229
9d4ede2c 122302011-05-04 Tobias Burnus <burnus@net-b.de>
12231
12232 PR fortran/48864
12233 * doc/invoke.texi (Ofast): Document that it
12234 enables Fortran's -fno-protect-parens.
12235
343f07cb 122362011-05-04 Uros Bizjak <ubizjak@gmail.com>
12237
12238 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
12239
f682b737 122402011-05-04 Eric Botcazou <ebotcazou@adacore.com>
12241
12242 * stor-layout.c (variable_size): Do not issue errors.
12243
2c46738d 122442011-05-04 Richard Guenther <rguenther@suse.de>
12245
12246 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
12247 for array-ref indices.
12248 (tree_coverage_counter_addr): Likewise.
12249 (build_fn_info_type): Use size_int for index types.
12250 (build_gcov_info): Likewise.
12251
ceb7b692 122522011-05-04 Richard Guenther <rguenther@suse.de>
12253
12254 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
12255 to build_int_cst.
12256 * c-typeck.c (really_start_incremental_init): Use bitsize_int
12257 for constructor indices.
12258 (push_init_level): Likewise.
12259
49130e9a 122602011-05-04 Richard Guenther <rguenther@suse.de>
12261
12262 * explow.c (promote_mode): Move variable declarations before code.
12263
5edc3af9 122642011-05-04 Nathan Froyd <froydnj@codesourcery.com>
12265
12266 * tree.h (build_function_type_array): Declare.
12267 (build_varargs_function_type_array): Declare.
12268 (build_function_type_vec, build_varargs_function_type_vec): Define.
12269 * tree.c (build_function_type_array_1): New function.
12270 (build_function_type_array): New function.
12271 (build_varargs_function_type_array): New function.
12272
2814125e 122732011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
12274
12275 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
12276 before setting STMT_VINFO_TYPE.
12277
27a82950 122782011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12279
12280 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
12281 instead of spu_pass_by_reference.
12282
adaf4ef0 122832011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12284
12285 * calls.c (emit_library_call_value_1): Invoke
12286 promote_function_mode hook on libcall arguments.
12287 * explow.c (promote_function_mode, promote_mode): Handle TYPE
12288 argument being NULL.
12289 * targhooks.c (default_promote_function_mode): Lisewise.
12290 * config/s390/s390.c (s390_promote_function_mode): Likewise.
12291 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
12292
12293 * doc/tm.texi: Document that TYPE argument might be NULL.
12294
9282cadb 122952011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12296
12297 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
12298
55ed3ae7 122992011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12300
12301 From Bernd Schmidt
12302 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
12303
a3702d5e 123042011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12305
12306 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
12307 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
12308 Move ...
12309 * mips-tfile.c: ... here.
12310 Don't include coretypes.h, tm.h, filenames.h.
12311 (saber_stop): Remove definition and all calls.
12312 [__SABER__]: Remove.
12313 (__LINE__): Remove default.
12314 (Size_t, Ptrdiff_t): Remove definitions.
12315 Replace by size_t, ptrdiff_t.
12316 [!MIPS_DEBUGGING_INFO]: Remove.
12317 (SHASH_SIZE, THASH_SIZE): Remove defaults.
12318 (progname): Add const.
12319 (STATIC): Remove.
12320 Replace all uses by static.
12321 (ALIGN_SYMTABLE_OFFSET): Remove default.
12322 * mips-tdump.c: Don't include coretypes.h, tm.h.
12323 Remove !MIPS_IS_STAB guard.
12324 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
12325 $(TM_H), filenames.h dependencies.
12326 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
12327
08d2cf2d 123282011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12329
12330 From Jie Zhang
12331 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
12332 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12333
edf1112c 123342011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12335
12336 From Bernd Schmidt
12337 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
12338 account and save/restore RETS.
12339 (PROFILE_BEFORE_PROLOGUE): Define.
12340 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
12341 the push insn to use predecrement.
12342
6d8651b5 123432011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12344
12345 From Jie Zhang
12346 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
12347
f9b3e8f5 123482011-05-04 Nick Clifton <nickc@redhat.com>
12349
12350 * config/mn10300/mn10300.c: Include cfgloop.h.
12351 (DUMP): New macro.
12352 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
12353 Lcc or a FLcc insn into the instruction stream.
12354 (mn10300_block_contains_call): New function. Returns true if the
12355 given basic block contains a CALL insn.
12356 (mn10300_loop_contains_call_insn): New function. Returns true if
12357 the given loop contains a CALL insn.
12358 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
12359 to use the SETLB and Lcc or FLcc insns.
12360 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
12361 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
12362 * config/mn10300/mn10300.opt (msetlb): New option. Used to
12363 disable the SETLB optimization.
12364 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
12365 __SETLB__ or __NO_SETLB__.
12366 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
12367 (movsf_internal): Handle MDR register.
12368 (cmpsi): Make visible.
12369 (setlb): New pattern.
12370 (Lcc): New pattern.
12371 (FLcc): New pattern.
12372
dd196988 123732011-05-04 Uros Bizjak <ubizjak@gmail.com>
12374
12375 PR target/48860
12376 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
12377 for reg<->xmm moves.
12378 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
12379 (vec_concatv2di_rex64_sse): Ditto.
12380 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
12381 (*vec_extractv2di_1_rex64): Ditto.
12382
12383 Revert:
12384 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
12385
12386 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12387 reg<->xmm moves.
12388 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
12389
317e2a67 123902011-05-04 Richard Guenther <rguenther@suse.de>
12391
12392 * tree.h (int_const_binop): Remove notrunc argument.
12393 * fold-const.c (int_const_binop): Remove notrunc argument. Always
12394 create integer constants that are properly truncated.
12395 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
12396 (const_binop): Remove zero notrunc argument to int_const_binop.
12397 (size_binop_loc): Likewise.
12398 (fold_div_compare): Likewise.
12399 (maybe_canonicalize_comparison_1): Likewise.
12400 (fold_comparison): Likewise.
12401 (fold_binary_loc): Likewise.
12402 (multiple_of_p): Likewise.
12403 * expr.c (store_constructor): Likewise.
12404 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
12405 (maybe_fold_stmt_addition): Likewise.
12406 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
12407 * stor-layout.c (layout_type): Likewise.
12408 * tree-data-ref.c (tree_fold_divides_p): Likewise.
12409 * tree-sra.c (build_ref_for_offset): Likewise.
12410 (build_user_friendly_ref_for_offset): Likewise.
12411 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
12412 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12413 * tree-ssa-loop-niter.c (inverse): Likewise.
12414 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12415 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
12416 * tree-switch-conversion.c (check_range): Likewise.
12417 (build_constructors): Likewise.
12418 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
12419 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
12420 (extract_range_from_assert): Likewise.
12421 (vrp_int_const_binop): Likewise.
12422 (extract_range_from_binary_expr): Likewise.
12423 (extract_range_from_unary_expr): Likewise.
12424 (check_array_ref): Likewise.
12425 (find_case_label_range): Likewise.
12426 (simplify_div_or_mod_using_ranges): Likewise.
12427 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
12428 comparing case labels for merging.
12429
4b665711 124302011-05-03 Mark Wielaard <mjw@redhat.com>
12431
12432 * dwarf2out.c (debug_str_hash_forced): Removed.
12433 (gen_label_for_indirect_string): Removed.
12434 (get_debug_string_label): Removed.
12435 (AT_string_form): Generate label directly.
12436 (output_indirect_string): Test indirect_string_node for
12437 DW_FORM_strp instead of checking label and refcount.
12438 (prune_indirect_string): Removed.
12439 (prune_unused_types): Don't check debug_str_hash_forced or
12440 call prune_indirect_string.
12441
7cdcc48d 124422011-05-04 Alexandre Oliva <aoliva@redhat.com>
12443
12444 PR other/48093
12445 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
12446
ad971558 124472011-05-04 Alexandre Oliva <aoliva@redhat.com>
12448
12449 PR debug/47994
12450 PR debug/47919
12451 * combine.c (try_combine): Skip debug insns at m_split tests.
12452
fb512453 124532011-04-26 Mark Wielaard <mjw@redhat.com>
12454
12455 PR42288
12456 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
12457 when info_section_emitted.
12458
498fed4e 124592011-05-03 Joseph Myers <joseph@codesourcery.com>
12460
12461 * config/mips/mips-opts.h: New.
12462 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
12463 to mips-opts.h.
12464 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
12465 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
12466 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
12467 via opts pointer.
12468 * config/mips/mips.h (enum mips_code_readable_setting): Move to
12469 mips-opts.h.
12470 (mips_abi, mips_code_readable): Don't declare.
dd196988 12471 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
498fed4e 12472 (mabi=): Use Enum and Var.
12473 (mips_abi): New Enum and EnumValue entries.
12474 (mcode-readable=): Use Enum and Var.
12475 (mips_code_readable_setting): New Enum and EnumValue entries.
12476 (mr10k-cache-barrier=): Use Enum and Var.
12477 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
12478
19ad01f7 124792011-05-03 Jan Hubicka <jh@suse.cz>
12480
12481 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
12482 replace hash by pointer map.
12483 (cgraph_node_set_element_def, cgraph_node_set_element,
12484 const_cgraph_node_set_element, varpool_node_set_element_def,
12485 varpool_node_set_element, const_varpool_node_set_element): Remove.
12486 (free_cgraph_node_set, free_varpool_node_set): New function.
12487 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
12488 * tree-emutls.c: Free varpool node set.
12489 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
12490 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12491 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
12492 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12493 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
12494 Move here from ipa.c; implement using pointer_map
12495 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
12496 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12497 debug_cgraph_node_set, varpool_node_set_new,
12498 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12499 dump_varpool_node_set, debug_varpool_node_set):
12500 Move to ipa-uitls.c.
12501 * passes.c (ipa_write_summaries): Update.
12502
8c09c40e 125032011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12504
343f07cb 12505 From Mike Frysinger:
12506 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
12507 bf542/bf544/bf547/bf548/bf549.
8c09c40e 12508
6eecb88e 125092011-05-03 Uros Bizjak <ubizjak@gmail.com>
12510
12511 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
12512
61b8983f 125132011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12514
12515 From Bernd Schmidt:
12516 * config/bfin/bfin.md (MOVCC): New mode_macro.
12517 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
12518 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
12519 comments from generated assembly.
12520
1c4dac4c 125212011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12522
12523 From Bernd Schmidt
12524 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
12525 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
12526 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
12527 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
12528 * config/bfin/lib1funcs.asm (___muldi3): New function.
12529
2a3cbbd4 125302011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12531
12532 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
12533 build_function_type_list instead of build_function_type.
12534 Rearrange initialization of `args' to do so.
12535
646d20a3 125362011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12537
12538 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
12539 instead of build_function_type.
12540
7f5e75d2 125412011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12542
12543 * config/rs6000/rs6000.c (spe_init_builtins): Call
12544 build_function_type_list instead of build_function_type.
12545 (paired_init_builtins, altivec_init_builtins): Likewise.
12546 (builtin_function_type): Likewise.
12547
03e08c98 125482011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12549
12550 * config/sh/sh.c (sh_media_init_builtins): Call
12551 build_function_type_list instead of build_function_type.
12552
130631cc 125532011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12554
12555 * config/sparc/sparc.c (sparc_file_end): Call
12556 build_function_type_list instead of build_function_type.
12557
3fecf4a0 125582011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12559
12560 * config/alpha/alpha.c (alpha_init_builtins): Call
12561 build_function_type_list instead of build_function_type.
12562
b4e90796 125632011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12564
12565 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
12566 build_function_type_list instead of build_function_type.
12567
5753b57e 125682011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12569
12570 * config/iq2000/i2000.c (iq2000_init_builtins): Call
12571 build_function_type_list instead of build_function_type.
12572 Delete `endlink' variable.
12573
c0010db9 125742011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12575
12576 * config/avr/avr.c (avr_init_builtins): Call
12577 build_function_type_list instead of build_function_type.
12578
740c08af 125792011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12580
12581 * config/picochip/picochip.c (picochip_init_builtins): Call
12582 build_function_type_list instead of build_function_type.
12583 Delete `endlink' variable.
12584
9989d11e 125852011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12586
12587 * config/bfin/bfin.c (bfin_init_builtins): Call
12588 build_function_type_list instead of build_function_type.
12589
5e3eb736 125902011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12591
12592 From Bernd Schmidt
12593 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
12594 that's not CONST_INT. Seemingly redundant check is due to PR39768.
12595
35bd123e 125962011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12597
12598 From Jie Zhang:
12599 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
12600 libbffastfp overrides libgcc when -mfast-fp.
12601
6a0cacf9 126022011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
a581fd25 12603
12604 Originally from Bernd Schmidt
12605 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
12606 * config/bfin/bfin.c (override_options): Test it and error if
12607 TARGET_FDPIC.
12608
274c4c98 126092011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12610
12611 Originally From Bernd Schmidt
12612 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
12613 FD-PIC.
12614
eb31063a 126152011-05-03 Jeff Law <law@redhat.com>
12616
12617 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
12618 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
12619 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
6eecb88e 12620 than accessing AUX field directly. Free the AUX field before
12621 clearing it.
eb31063a 12622 (thread_block, thread_through_loop_header): Likewise.
12623 (thread_single_edge, mark_threaded_blocks): Likewise.
12624 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
12625 (register_jump_thread): Do not attempt to thread to a NULL edge.
6eecb88e 12626
756dcd13 126272011-05-03 Bernd Schmidt <bernds@codesourcery.com>
12628
12629 * function.c (init_function_start): Call decide_function_section.
12630 * varasm.c (decide_function_section): New function.
12631 (assemble_start_function): When not using
12632 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
12633 or first_function_block_is_cold.
12634 * rtl.h (decide_function_section): Declare.
12635
d99e41e8 126362011-05-03 Uros Bizjak <ubizjak@gmail.com>
12637 Jakub Jelinek <jakub@redhat.com>
12638
12639 PR target/48774
12640 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
12641 only succeed if req_mode is the same as set_mode.
12642
1a860023 126432011-05-03 Bernd Schmidt <bernds@codesourcery.com>
12644
12645 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
12646 * genemit.c (gen_exp): Handle RETURN.
12647 * emit-rtl.c (verify_rtx_sharing): Likewise.
12648 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
12649 * rtl.c (copy_rtx): RETURN is shared.
12650 * rtl.h (enum global_rtl_index): Add GR_RETURN.
12651 (ret_rtx): New.
12652 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
12653 * config/s390/s390.c (s390_emit_epilogue): Likewise.
12654 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
12655 * config/cris/cris.c (cris_expand_return): Likewise.
12656 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
12657 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
12658 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
12659 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
12660 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
12661 Likewise.
12662 * config/v850/v850.c (expand_epilogue): Likewise.
12663 * config/bfin/bfin.c (bfin_expand_call): Likewise.
12664 * config/arm/arm.md (epilogue): Likewise.
12665 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
12666 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
12667 variable to ret_reg.
12668
3efe00ad 126692011-05-03 Richard Guenther <rguenther@suse.de>
12670
12671 PR lto/48846
12672 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
12673 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
12674 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
12675
8f49133b 126762011-05-03 Richard Guenther <rguenther@suse.de>
12677
12678 * c-decl.c (grokdeclarator): Instead of looking at
12679 TREE_OVERFLOW check if the constant fits in the index type.
12680
672b3f5b 126812011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12682
12683 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
12684 (vec_store_lanes<mode><mode>): Likewise.
12685
94b7b4dd 126862011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12687
12688 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
12689 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
12690 convert_optab_index values.
12691 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
12692 * genopinit.c (optabs): Initialize the new optabs.
12693 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
12694 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
12695 (expand_STORE_LANES): New functions.
12696 * tree.h (build_array_type_nelts): Declare.
12697 * tree.c (build_array_type_nelts): New function.
12698 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
12699 (vect_model_load_cost): Likewise.
12700 (vect_store_lanes_supported, vect_load_lanes_supported)
12701 (vect_record_strided_load_vectors): Declare.
12702 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
12703 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
12704 (vect_transform_strided_load): Split out statement recording into...
12705 (vect_record_strided_load_vectors): ...this new function.
12706 * tree-vect-stmts.c (create_vector_array, read_vector_array)
12707 (write_vector_array, create_array_ref): New functions.
12708 (vect_model_store_cost): Add store_lanes_p argument.
12709 (vect_model_load_cost): Add load_lanes_p argument.
12710 (vectorizable_store): Try to use store-lanes functions for
12711 interleaved stores.
12712 (vectorizable_load): Likewise load-lanes and loads.
12713 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
12714 to vect_model_store_cost.
12715 (vect_build_slp_tree): Likewise vect_model_load_cost.
12716
13d3ceb9 127172011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12718
12719 * hooks.h (hook_bool_mode_uhwi_false): Declare.
12720 * hooks.c (hook_bool_mode_uhwi_false): New function.
12721 * target.def (array_mode_supported_p): New hook.
12722 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
12723 * doc/tm.texi: Regenerate.
12724 * stor-layout.c (mode_for_array): New function.
12725 (layout_type): Use it.
12726 * config/arm/arm.c (arm_array_mode_supported_p): New function.
12727 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
12728
51d5dcac 127292011-05-03 Eric Botcazou <ebotcazou@adacore.com>
12730
12731 PR target/48723
12732 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
12733 for -fstack-check if the size to allocate is negative.
12734
6198e8f6 127352011-05-02 Lawrence Crowl <crowl@google.com>
12736
12737 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
12738 (timevar_cond_start): New for starting a timer only when it is not
12739 already running.
12740 (timevar_cond_stop): New for stopping a timer when it was not already
12741 running.
12742
12743 * timevar.c (timevar_stop): Enable start/stop timers to start again.
12744 (timevar_cond_start): New as above.
12745 (timevar_cond_stop): New as above.
12746
12747 * timevar.def: Add start/stop timers for compiler phases,
12748 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
12749 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
12750 and TV_PHASE_FINALIZE.
12751 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
12752 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
12753 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
12754 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
12755 Make unused TV_OVERLOAD into a start/stop timer.
12756
12757 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
12758 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
12759 to indicate that they are start/stop timers.
12760
12761 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
12762 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
12763 Move initialization to do_compile.
12764 (do_compile): Add initialization from above.
12765 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
12766
12767 * c-decl.c (c_write_global_declarations): Add start/stop of
12768 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
12769
12770 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
12771 or TV_PARSE_INLINE, as appropriate.
12772 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
12773 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
12774
d55ebb6a 127752011-05-02 Jason Merrill <jason@redhat.com>
12776
12777 PR c++/40975
12778 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
12779
74a1cbcf 127802011-05-02 Simon Martin <simartin@users.sourceforge.net>
12781
12782 PR c/35445
12783 * c-decl.c (finish_decl): Only create a composite if the types are
12784 compatible.
12785
4bccad5e 127862011-05-02 Joseph Myers <joseph@codesourcery.com>
12787
12788 * config/fr30/fr30-protos.h (Mmode): Don't define.
12789 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
12790 definition where used.
12791 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
12792 define. Expand definitions where used.
12793 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
12794 Expand definitions where used.
12795 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
12796 rx_function_arg, rx_function_arg_advance,
12797 rx_function_arg_boundary): Expand definitions of those macros.
12798 * config/v850/v850-protos.h (Mmode): Don't define. Expand
12799 definition where used.
12800
31b44162 128012011-05-02 Uros Bizjak <ubizjak@gmail.com>
12802
12803 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12804 reg<->xmm moves.
12805 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
12806 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
12807 with *movv2sf_internal_rex64_avx.
12808 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
12809 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
12810 Use %v prefix in insn mnemonic to handle TARGET_AVX.
12811 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
12812 "vex" in "prefix" attribute calculation.
12813 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
12814
fa0aee40 128152011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
12816
343f07cb 12817 PR target/47951
12818 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
12819 inputs match the output.
fa0aee40 12820
611b3016 128212011-05-02 Andreas Schwab <schwab@linux-m68k.org>
12822
12823 PR target/47955
12824 * config/m68k/m68k.c (m68k_expand_prologue): Set
12825 current_function_static_stack_size.
12826
3ed05fdb 128272011-05-02 Jan Hubicka <jh@suse.cz>
12828
12829 * lto-streamer.c (lto_streamer_cache_insert_1,
12830 lto_streamer_cache_lookup, lto_streamer_cache_create,
12831 lto_streamer_cache_delete): Use pointer map instead of hashtable.
12832 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
12833
d078aadd 128342011-05-02 Joseph Myers <joseph@codesourcery.com>
12835
12836 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
12837 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
12838 config/m68k/t-opts: New files.
12839 * config/m68k/m68k-tables.opt: New file (generated).
12840 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
12841 extra_options and m68k/t-opts to tmake_file.
12842 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
12843 (all_isas): Initialize using m68k-isas.def.
12844 (all_microarchs): Initialize using m68k-microarchs.def.
12845 (m68k_find_selection): Remove.
12846 (m68k_handle_option): Don't assert that global structures are in
12847 use. Use error_at. Access variables via opts pointer. Don't
12848 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
12849 directly for -m68020-40 and -m68020-60.
12850 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
12851 m68k_tune_entry here.
12852 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
12853 to m68k-opts.h.
12854 (m68k_library_id_string): Remove declaration.
31b44162 12855 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
d078aadd 12856 (m68k_library_id_string): New Variable.
12857 (march=, mcpu=, mtune=): Use Enum and Var.
12858
a3f07b52 128592011-05-02 Richard Guenther <rguenther@suse.de>
12860
12861 * varasm.c (output_constructor_regular_field): Compute zero-based
12862 index with double-ints. Make sure to ICE instead of producing
12863 wrong code.
12864 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
12865 in asserts. Properly use a signed type.
12866
6fe5844b 128672011-05-02 Uros Bizjak <ubizjak@gmail.com>
12868
12869 * config/i386/sse.md (V): New mode iterator.
12870 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
12871 TARGET_SSE2.
12872 (V_256): Rename from AVX256MODE.
12873 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
12874 condition to all users.
12875 (VF1): Ditto.
12876 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
12877 condition to all users.
12878 (VF_128): Make V4SF mode unconditional.
12879 (VF_256): Rename from AVX256MODEF2P.
12880 (VI4F_128): Rename from SSEMODE4S.
12881 (VI8F_128): Rename from SSEMODE2D.
12882 (VI4F_256): Rename from AVX256MODE8P.
12883 (VI8F_256): Rename from AVX256MODE4P.
12884 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
12885 (ssescalarmodesuffix): Remove SF and DF modes.
12886 (SSEMODE124): Remove.
12887 (SSEMODE1248): Ditto.
12888 (SSEMODEF2P): Ditto.
12889 (AVXMODEF2P): Ditto.
12890 (AVXMODEFDP): Ditto.
12891 (AVXMODEFSP): Ditto.
12892 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
12893 unconditional.
12894 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
12895 unconditional.
12896 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
12897 xop_pcmov_<mode>256. Use V mode iterator.
12898
12899 Adjust RTX patterns globally for renamed mode attributes.
12900
c03ae898 129012011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12902
12903 * haifa-sched.c (sched_emit_insn): Emit insn before first
12904 non-scheduled insn. Inform back-end about new insn. Add
12905 new insn to scheduled_insns list.
12906
b81ffaee 129072011-05-02 Richard Guenther <rguenther@suse.de>
12908
12909 PR tree-optimization/48822
12910 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
12911 (process_scc): Indicate which iteration we start.
12912
673ca05f 129132011-05-02 Jan Hubicka <jh@suse.cz>
12914
12915 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
12916 (lto_section_overrun): New.
12917 * lto-section-out.c (append_block): Rename to ...
12918 (lto_append_block): ... this one; export.
12919 (lto_output_1_stream): Move lto lto-streamer.h
12920 (lto_output_data_stream): Update.
12921 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
12922 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
12923 functions.
12924
4aa24247 129252011-05-02 Richard Guenther <rguenther@suse.de>
12926
12927 * tree.c (tree_code_counts): New global array.
12928 (record_node_allocation_statistics): Count individual tree codes.
12929 (dump_tree_statistics): Dump individual code stats.
12930
0a0ca4d6 129312011-05-01 Jan Hubicka <jh@suse.cz>
12932
12933 * ipa-inline.c (caller_growth_limits): Fix thinko when
12934 looking for largest stack frame.
12935 * ipa-inline.h (dump_inline_summary): Declare.
12936 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
12937 on stack usage.
12938 (dump_inline_summary): Export.
12939 (debug_inline_summary): Declare as DEBUG_FUNCTION.
12940
ade444a4 129412011-05-01 Anatoly Sokolov <aesok@post.ru>
12942
12943 * reginfo.c (memory_move_cost): Change rclass argument type form
12944 'enum reg_class' to reg_class_t.
12945 * reload.h (memory_move_cost): Update prototype.
12946 * postreload.c reload_cse_simplify_set): Change type dclass var to
12947 reg_class_t.
12948 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
12949 Update prototype.
12950 (ira_allocate_and_set_costs): Change aclass argument type form
12951 'enum reg_class' to reg_class_t.
6fe5844b 12952 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
ade444a4 12953 Change aclass argument type to reg_class_t.
12954 (update_conflict_hard_reg_costs): Change type aclass and pref vars
12955 to reg_class_t.
12956 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
12957 memory_move_cost call.
12958
12959 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
12960 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
12961 Change type tmp var to reg_class_t.
12962
6f60f0b6 129632011-04-30 Jan Hubicka <jh@suse.cz>
12964
12965 * ipa-inline.c (can_inline_edge_p): Disregard limits when
12966 inlining into function with flatten attribute.
12967 (want_inline_small_function_p): Be more realistic about inlining
12968 cold calls where callee size grows.
12969
06240b6f 129702011-04-30 Jan Hubicka <jh@suse.cz>
12971
12972 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
12973 flags.
12974
028b4ba2 129752011-04-30 Anatoly Sokolov <aesok@post.ru>
12976
12977 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
12978 PRINT_OPERAND_PUNCT_VALID_P): Remove.
12979 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
12980 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
12981 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12982 (print_operand): Rename to...
12983 (sparc_print_operand): ...this. Make static. Adjust
12984 sparc_print_operand function call.
12985 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
12986 functions.
12987
9da15f94 129882011-04-30 Jan Hubicka <jh@suse.cz>
12989
6fe5844b 12990 PR middle-end/48752
9da15f94 12991 * ipa-inline.c (early_inliner): Disable when doing late
12992 addition of function.
12993
8853d378 129942011-04-30 Jakub Jelinek <jakub@redhat.com>
12995
e86bbaee 12996 * dwarf2out.c (get_address_mode): New inline.
12997 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
12998 if not dwarf_strict emit
12999 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
13000 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
13001 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
13002 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
13003 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
13004 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
13005 mem_loc_descriptor callers.
13006 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
13007 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
13008 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
13009 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
13010 (base_types): New variable.
13011 (get_base_type_offset, calc_base_type_die_sizes,
13012 base_type_for_mode, mark_base_types, base_type_cmp,
13013 move_marked_base_types): New functions.
13014 (calc_die_sizes): Assert that die_offset is 0 or equal to
13015 next_die_offset.
13016 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
13017 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
13018 callers. If not dwarf_strict, call mem_loc_descriptor even for
13019 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
13020 (gen_subprogram_die): Don't give up on call site parameters
13021 with non-integral or large integral modes. Adjust
13022 mem_loc_descriptor callers.
13023 (prune_unused_types): Call prune_unused_types_mark on base_types
13024 vector entries.
13025 (resolve_addr): Call mark_base_types.
13026 (dwarf2out_finish): Call move_marked_base_types.
13027
8853d378 13028 PR tree-optimization/48809
13029 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
13030 type.
13031 (gen_inbound_check): Don't compute index_expr - range_min in utype
13032 again, instead reuse SSA_NAME initialized in build_arrays.
13033 Remove two useless gsi_for_stmt calls.
13034
444e6845 130352011-04-29 Jeff Law <law@redhat.com>
13036
13037 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
13038
7771d558 130392011-04-29 Martin Jambor <mjambor@suse.cz>
13040
13041 * cgraph.h (cgraph_postorder): Remove declaration.
13042 * ipa-utils.h (ipa_free_postorder_info): Declare.
13043 (ipa_reverse_postorder): Likewise.
13044 * cgraphunit.c: Include ipa-utils.h.
13045 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
13046 * ipa-inline.c: Include ipa-utils.h.
13047 (ipa_inline): Update call to ipa_reverse_postorder.
13048 * ipa-pure-const.c (propagate_pure_const): Update call to
13049 ipa_reduced_postorder and ipa_print_order. Call
13050 ipa_free_postorder_info to clean up.
13051 (propagate_nothrow): Likewise.
13052 * ipa-reference.c (propagate): Removed a useless call to
13053 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
13054 and ipa_print_order. Call ipa_free_postorder_info to clean up.
13055 * ipa.c: Include ipa-utils.h.
13056 (ipa_profile): Update call to ipa_reverse_postorder.
13057 (cgraph_postorder): Moved to...
13058 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
13059 (ipa_utils_print_order): Renamed to ipa_print_order.
13060 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
13061 comments.
13062 (ipa_free_postorder_info): New function.
13063 * passes.c: Include ipa-utils.h.
13064 (do_per_function_toporder): Update call to ipa_reverse_postorder.
13065 (ipa_write_summaries): Likewise.
13066 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
13067 (cgraphunit.o): Likewise.
13068 (ipa.o): Likewise.
13069 (ipa-inline.o): Likewise.
13070
905aa3bd 130712011-04-29 Jan Hubicka <jh@suse.cz>
13072
13073 * gcc.dg/tree-ssa/inline-10.c: New testcase.
13074 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
13075 * ipa-inline.h (clause_t): Turn into unsigned int.
13076 * ipa-inline-analysis.c (add_clause): Do more simplification.
13077 (and_predicates): Shortcut more cases.
13078 (predicates_equal_p): Move forward; check that clauses are properly
13079 ordered.
13080 (or_predicates): Shortcut more cases.
13081 (edge_execution_predicate): Rewrite as...
13082 (set_cond_stmt_execution_predicate): ... this function; handle
13083 __builtin_constant_p.
13084 (set_switch_stmt_execution_predicate): New .
13085 (compute_bb_predicates): New.
13086 (will_be_nonconstant_predicate): Update TODO.
13087 (estimate_function_body_sizes): Use compute_bb_predicates
13088 and free them later, always try to estimate if stmt is constant.
13089 (estimate_time_after_inlining, estimate_size_after_inlining):
13090 Gracefully handle optimized out edges.
13091 (read_predicate): Fix off by one error.
13092
141d02d1 130932011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
13094
13095 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
13096
109cfbe4 130972011-04-27 Xinliang David Li <davidxl@google.com>
13098
13099 * tree-profile.c (init_ic_make_global_vars): Set
13100 tls attribute on ic vars.
13101 * coverage.c (coverage_end_function): Initialize
13102 function_list with zero.
13103
7002a1c8 131042011-04-29 Richard Guenther <rguenther@suse.de>
13105
13106 * builtins.c (fold_builtin_classify_type): Use integer_type_node
13107 for the type of the result.
13108 (fold_builtin_isascii): Likewise.
13109 (fold_builtin_toascii): Use integer_type_node where appropriate.
13110 (fold_builtin_logb): Likewise.
13111 (fold_builtin_frexp): Likewise.
13112 (fold_builtin_strstr): Likewise.
13113 (fold_builtin_strpbrk): Likewise.
13114 (fold_builtin_fputs): Likewise.
13115 (fold_builtin_sprintf): Likewise.
13116 (fold_builtin_snprintf): Likewise.
13117 (fold_builtin_printf): Likewise.
13118 (do_mpfr_remquo): Use a proper type for the assigned constant.
13119 (do_mpfr_lgamma_r): Likewise.
13120 * dwarf2out.c (resolve_one_addr): Use size_int.
13121 * except.c (init_eh): Likewise.
13122 (assign_filter_values): Use integer_type_node for filter values.
13123 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
13124 indices.
13125 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
13126 for EH region numbers.
13127 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
13128 for the shift amount.
13129
f5ff0b21 131302011-04-29 Richard Guenther <rguenther@suse.de>
13131
13132 * expr.h (expand_shift): Rename to ...
13133 (expand_variable_shift): ... this.
13134 (expand_shift): Take a constant shift amount.
13135 * expmed.c (expand_shift): Rename to ...
13136 (expand_variable_shift): ... this.
13137 (expand_shift): New wrapper around expand_variable_shift.
13138 * expr.c (convert_move, emit_group_load_1, emit_group_store,
13139 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
13140 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
13141 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
13142 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
13143 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
13144 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
13145 emit_store_flag_1, emit_store_flag): Likewise.
13146 * builtins.c (expand_builtin_signbit): Likewise.
13147 * calls.c (load_register_parameters): Likewise.
13148 * function.c (assign_parm_setup_block): Likewise.
13149 * lower-subreg.c (resolve_shift_zext): Likewise.
13150 * optabs.c (widen_bswap, expand_abs_nojump,
13151 expand_one_cmpl_abs_nojump, expand_float): Likewise.
13152 * spu/spu.c (spu_expand_extv): Likewise.
13153 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
13154
b3d480fb 131552011-04-29 Richard Guenther <rguenther@suse.de>
13156
13157 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
13158 for the remapped region number.
13159 * predict.c (build_predict_expr): Use integer_type_node for the
13160 predict kind.
13161 * fold-const.c (fold_binary_loc): Use integer_type_node for
13162 the shift amount. Use a proper type for the PLUS_EXPR operand.
13163
d534cab0 131642011-04-29 Michael Matz <matz@suse.de>
13165
13166 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
13167 other trees that just builtins.
13168 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
13169
bad12c62 131702011-04-29 Richard Guenther <rguenther@suse.de>
13171
13172 * tree-nested.c (get_trampoline_type): Use size_int.
13173 (get_nl_goto_field): Likewise.
13174 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
13175 for all indexes.
13176 (lower_eh_constructs_2): Likewise.
13177 (lower_resx): Likewise.
13178 (lower_eh_dispatch): Likewise.
13179 * tree-mudflap.c (mf_build_string): Use size_int.
13180 (mudflap_register_call): Use integer_type_node for the flag.
13181 (mudflap_enqueue_constant): Use size_int.
13182 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
13183 instead of rebuilding it.
13184
cb755135 131852011-04-29 Richard Guenther <rguenther@suse.de>
13186
13187 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
13188 Handle OBJ_TYPE_REF.
13189 (find_func_aliases_for_call): Use it more consistently.
13190
d0aa45d0 131912011-04-29 Alexandre Oliva <aoliva@redhat.com>
13192
13193 * haifa-sched.c (last_nondebug_scheduled_insn): New.
13194 (rank_for_schedule): Use it.
13195 (schedule_block): Set it.
13196
06306fd3 131972011-04-28 David Li <davidxl@google.com>
13198
13199 * tree.c (crc32_string): Use crc32_byte.
13200 (crc32_byte): New function.
13201 * tree.h (crc32_byte): New function.
13202 * gcov.c (read_graph_file): Handle new cfg_cksum.
13203 (read_count_file): Ditto.
13204 * profile.c (instrument_values): Ditto.
13205 (get_exec_counts): Ditto.
13206 (read_profile_edge_counts): Ditto.
13207 (compute_branch_probabilities): Ditto.
13208 (compute_value_histograms): Ditto.
13209 (branch_prob): Ditto.
13210 (end_branch_prob): Ditto.
13211 * coverage.c (read_counts_file): Ditto.
13212 (get_coverage_counts): Ditto.
13213 (tree_coverage_counter_addr): Ditto.
13214 (coverage_checksum_string): Ditto.
13215 (coverage_begin_output): Ditto.
13216 (coverage_end_function): Ditto.
13217 (build_fn_info_type): Ditto.
13218 (build_fn_info_value): Ditto.
13219 * libgcov.c (gcov_exit): Ditto.
13220 * gcov-dump.c (tag_function): Ditto.
13221 (compute_checksum): Remove.
13222
bcfc04db 132232011-04-29 Alan Modra <amodra@gmail.com>
13224
13225 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13226 unspec plus offset. Tidy macho code.
13227
cc91b414 132282011-04-29 Martin Jambor <mjambor@suse.cz>
13229
13230 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
13231 node instead of a decl. Update all callers.
13232 * cgraph.h: Update declaration.
13233
bc937a44 132342011-04-28 Ira Rosen <ira.rosen@linaro.org>
13235
13236 PR tree-optimization/48765
13237 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
13238 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
13239 to indicate if loop aware SLP is being used. Scan the statements
13240 and update the vectorization factor according to the type of
13241 vectorization before statement analysis.
13242 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
13243 pass it to vect_analyze_loop_operations.
13244 (vectorizable_reduction): Set number of copies to 1 in case of pure
13245 SLP statement.
13246 * tree-vect-stmts.c (vectorizable_conversion,
13247 vectorizable_assignment, vectorizable_shift,
13248 vectorizable_operation, vectorizable_type_demotion,
13249 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
13250 Likewise.
13251 (vectorizable_condition): Move the check that it is not SLP
13252 vectorization before the number of copies check.
13253 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
13254 to vectorize the loop using SLP.
13255
aefc445c 132562011-04-28 Jakub Jelinek <jakub@redhat.com>
13257
13258 PR middle-end/48597
13259 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
13260 inline asm.
13261
6ee152ce 132622011-04-28 Joseph Myers <joseph@codesourcery.com>
13263
13264 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
13265 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
13266 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13267 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13268 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
13269 linux*.h headers.
6fe5844b 13270 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6ee152ce 13271 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13272 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13273 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6fe5844b 13274 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6ee152ce 13275 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
13276 REG_NAME.
13277 * config/i386/linux.h (REG_NAME): Don't define.
13278 * config/i386/linux64.h (REG_NAME): Don't define.
13279 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
13280 Undefine before defining.
13281
0b50fa0e 132822011-04-28 Jan Hubicka <jh@suse.cz>
13283
6fe5844b 13284 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
13285 nonconstant_names array.
0b50fa0e 13286 (estimate_function_body_sizes): Build nonconstant_names array; handle
13287 BUILT_IN_CONSTANT_P.
13288
bd2bd89d 132892011-04-28 Richard Guenther <rguenther@suse.de>
13290
13291 PR bootstrap/48804
13292 Revert
13293 2011-04-28 Richard Guenther <rguenther@suse.de>
13294
13295 * tree-ssa-structalias.c (solve_constraints): Build succ graph
13296 as late as possible.
6fe5844b 13297
bbe0034f 132982011-04-28 Richard Guenther <rguenther@suse.de>
13299
13300 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
13301 (debug_constraint): Do it here.
13302 (dump_constraints): And here.
13303 (rewrite_constraints): And here.
13304 (dump_constraint_edge): Remove.
13305 (dump_constraint_graph): Rewrite to produce DOT output.
13306 (solve_constraints): Build succ graph as late as possible.
13307 Dump constraint graphs before and after solving.
13308
882f2f67 133092011-04-28 Richard Guenther <rguenther@suse.de>
13310
13311 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13312 New function split out from ...
13313 (find_func_aliases): ... here. Call it.
13314 (find_func_aliases_for_call): Likewise.
13315
8bf8131a 133162011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
13317
13318 * internal-fn.h (internal_fn_name_array): Declare.
13319 (internal_fn_flags_array): Likewise.
13320
63d5e521 133212011-04-27 Uros Bizjak <ubizjak@gmail.com>
13322
13323 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
13324 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
13325 Move from sse.md.
13326 (ssemodefsuffix): Remove.
13327 (ssevecmodesuffix): New mode attribute.
13328 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
13329 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
13330 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
13331 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
13332 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
13333 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
13334 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
13335 ssemodesuffix mode attribute.
13336 (float splitters): Use ssevecmodesuffix mode attribute.
13337 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
13338 (sseinsmode): Rename from avxvecmode.
13339 (avxsizesuffix): Rename from avxmodesuffix.
13340 (sseintvecmode): Rename from avxpermvecmode.
13341 (ssedoublevecmode): Rename from ssedoublesizemode.
13342 (ssehalfvecmode): Rename from avxhalfvecmode.
13343 (ssescalarmode): Rename from avxscalarmode.
13344 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
13345 templates for ssemodesuffix mode attribute.
13346 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
13347 mode attribute.
13348
13349 Adjust RTX patterns globally for renamed mode attributes.
13350
6a18c0be 133512011-04-27 Jan Hubcika <jh@suse.cz>
13352
13353 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
13354 * ipa-inline-analysis.c: Include alloc-pool.h.
13355 (edge_predicate_pool): New.
13356 (trye_predicate_p): New function
13357 (false_predicate_p): New function.
13358 (add_clause): Sanity check that false clauses are "optimized";
13359 never add clauses to predicate that is already known to be false.
13360 (and_predicate): Use flase_predicate_p.
13361 (evaulate_predicate): Rename to ...
13362 (evaluate_predicate): ... this one; update all callers; assert
13363 that false is not listed among possible truths.
13364 (dump_predicate): Use true_predicate_p.
13365 (account_size_time): Use false_predicate_p.
13366 (evaulate_conditions_for_edge): Rename to ...
13367 (evaluate_conditions_for_edge) ... this one.
13368 (edge_set_predicate): New function.
13369 (inline_edge_duplication_hook): Duplicate edge predicates.
13370 (inline_edge_removal_hook): Free edge predicates.
63d5e521 13371 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
6a18c0be 13372 (dump_inline_summary): Update.
13373 (estimate_function_body_sizes): Set edge predicates.
13374 (estimate_calls_size_and_time): Handle predicates.
13375 (estimate_callee_size_and_time): Update.
13376 (remap_predicate): Add toplev_predicate; update comment.
13377 (remap_edge_predicates): New function.
13378 (inline_merge_summary): Compute toplev predicate; update.
13379 (read_predicate): New function.
13380 (read_inline_edge_summary): Use it.
13381 (inline_read_section): Likewise.
13382 (write_predicate): New function.
13383 (write_inline_edge_summary): Use it.
13384 (inline_write_summary): Likewise.
13385 (inline_free_summary): Free alloc pool and edge summary vec.
13386
b392ee8b 133872011-04-27 Richard Guenther <rguenther@suse.de>
13388
13389 * tree-ssa-structalias.c (changed_count): Remove.
13390 (changed): Use a bitmap.
13391 (unify_nodes): Adjust.
13392 (do_sd_constraint): Likewise.
13393 (do_ds_constraint): Likewise.
13394 (do_complex_constraint): Likewise.
13395 (solve_graph): Likewise.
13396
4f7a1122 133972011-04-27 Jan Hubicka <jh@suse.cz>
13398
13399 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
13400
4581fd42 134012011-04-27 Uros Bizjak <ubizjak@gmail.com>
13402
13403 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
13404 (avx_vperm2f128_*_operand): Ditto.
13405 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
13406 Use avx_vpermilp_parallel in insn condition.
13407 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
13408 Use avx_vperm2f128_parallel in insn condition.
13409
e44576dd 134102011-04-27 Richard Guenther <rguenther@suse.de>
13411
13412 * Makefile.in (tree-ssa-structalias.o): Remove
13413 gt-tree-ssa-structalias.h dependency.
13414 (GTFILES): Remove tree-ssa-structalias.c.
13415 * tree.c (allocate_decl_uid): New function.
13416 (make_node_stat): Use it.
13417 (copy_node_stat): Likewise.
13418 * tree.h (allocate_decl_uid): Declare.
13419 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
13420 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
13421 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
4581fd42 13422 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
e44576dd 13423 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
13424 (struct heapvar_map): Likewise.
13425 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
13426 heapvar_insert): Likewise.
13427 (make_heapvar_for): Rename to ...
13428 (make_heapvar): ... this. Simplify.
13429 (fake_var_decl_obstack): New global var.
13430 (build_fake_var_decl): New function.
13431 (make_constraint_from_heapvar): Adjust.
13432 (handle_lhs_call): Likewise.
13433 (create_function_info_for): Likewise.
13434 (intra_create_variable_infos): Likewise.
13435 (init_alias_vars): Allocate fake_var_decl_obstack.
13436 (init_alias_heapvars, delete_alias_heapvars): Remove.
13437 (compute_points_to_sets): Do not call init_alias_heapvars.
13438 (ipa_pta_execute): Likewise.
13439 (delete_points_to_sets): Free fake_var_decl_obstack.
13440
eca540eb 134412011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13442
13443 * config/spu/divmovti4.c (union qword_UTItype): New data type.
13444 (si_from_UTItype, si_to_UTItype): New functions.
13445 (__udivmodti4): Use them to implement type-punning.
13446 * config/spu/multi3.c (union qword_TItype): New data type.
13447 (si_from_TItype, si_to_TItype): New functions.
13448 (__multi3): Use them to implement type-punning.
13449
431ad7e0 134502011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13451
13452 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
13453
b1471ee0 134542011-04-27 Jan Hubicka <jh@suse.cz>
13455
13456 * ipa-prop.c (function_insertion_hook_holder): New holder.
13457 (ipa_add_new_function): New function.
4581fd42 13458 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
13459 Register/deregister holder.
b1471ee0 13460
c5321600 134612011-04-27 Richard Guenther <rguenther@suse.de>
13462
13463 PR tree-optimization/48772
4581fd42 13464 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
c5321600 13465
9c455d1e 134662011-04-27 Richard Guenther <rguenther@suse.de>
13467
13468 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
13469 TARGET_MEM_REF handling.
13470
127aa150 134712011-04-27 Nick Clifton <nickc@redhat.com>
13472
ca74bd85 13473 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
13474 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
13475 (REG_CLASS_NAMES): Likewise.
13476 (REG_CLASS_CONTENTS): Likewise.
13477 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
13478 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
13479 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
13480 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
13481 (EVEN_REGS): New macro. Alias for QUAD_REGS.
13482 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
13483 duplicate register classes.
51e83f48 13484 (frv_class_likely_spilled_p): Likewise.
ca74bd85 13485 (frv_register_move_cost): Likewise.
13486
127aa150 13487 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
13488 end of the regno_reg_class array.
13489
4095a8c8 134902011-04-27 Jakub Jelinek <jakub@redhat.com>
13491
13492 PR c/48742
13493 * c-typeck.c (build_binary_op): Don't wrap arguments if
13494 int_operands is true.
13495
90d67aec 134962011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
13497
13498 PR target/48767
13499 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
13500 targetm.calls.must_pass_in_stack for void type.
13501
0835ad03 135022011-04-26 Jan Hubicka <jh@suse.cz>
13503
13504 * cgraphbuild.c (build_cgraph_edges): Update call
13505 of cgraph_create_edge and cgraph_create_indirect_edge.
13506 * cgraph.c (cgraph_create_edge_including_clones,
13507 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
13508 cgraph_update_edges_for_call_stmt_node): Do not take nest
13509 argument; do not initialize call_stmt_size/time.
13510 (dump_cgraph_node): Do not dump nest.
13511 (cgraph_clone_edge): Do not take loop_nest argument;
13512 do not propagate it; do not clone call_stmt_size/time.
13513 (cgraph_clone_node): Likewise.
13514 (cgraph_create_virtual_clone): Update.
13515 * cgraph.h (struct cgraph_edge): Remove
13516 call_stmt_size/call_stmt_time/loop_nest.
13517 (cgraph_create_edge, cgraph_create_indirect_edge,
13518 cgraph_create_edge_including_clones, cgraph_clone_node): Update
13519 prototype.
13520 * tree-emutls.c (gen_emutls_addr): Update.
13521 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
13522 loop_nest; handle indirect calls, too.
13523 (clone_inlined_nodes): Do not care about updating inline summaries.
13524 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
13525 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
13526 stream call_stmt_size/call_stmt_time/loop_nest.
13527 * ipa-inline.c (edge_badness): Update.
13528 (ipa_inline): dump summaries after inlining.
13529 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
4581fd42 13530 New.
0835ad03 13531 (inline_edge_summary): New function.
13532 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
13533 (inline_edge_removal_hook): Handle edge summaries.
13534 (inline_edge_duplication_hook): New hook.
13535 (inline_summary_alloc): Alloc hooks.
13536 (initialize_growth_caches): Do not register removal hooks.
13537 (free_growth_caches); Do not free removal hook.
13538 (dump_inline_edge_summary): New function.
13539 (dump_inline_summary): Use it.
13540 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
13541 (inline_update_callee_summaries): New function.
13542 (inline_merge_summary): Use it.
13543 (do_estimate_edge_time, do_estimate_edge_growth): Update.
13544 (read_inline_edge_summary): New function.
13545 (inline_read_section): Use it.
13546 (write_inline_edge_summary): New function.
13547 (inline_write_summary): Use it.
13548 (inline_free_summary): Free edge new holders.
13549 * tree-inline.c (copy_bb): Update.
13550
75a2cdc8 135512011-04-26 Jason Merrill <jason@redhat.com>
13552
13553 * tree-eh.c (lower_try_finally_switch): Create the label along with
13554 the CASE_LABEL_EXPR.
13555
d958c180 135562011-04-26 David S. Miller <davem@davemloft.net>
13557 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13558
13559 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
13560 * configure: Regenerate.
13561
9257db1b 135622011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
13563
13564 PR target/48258
13565 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
13566 reduction.
13567 (VEC_reduc): New code iterator and splitters for vector reduction.
13568 (VEC_reduc_name): Ditto.
13569 (VEC_reduc_rtx): Ditto.
13570 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
13571 (reduc_<VEC_reduc_name>_v4sf): Ditto.
13572
13573 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
13574 support for extracting SF on VSX.
13575
13576 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
13577 generating xscvspdp.
13578 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
13579 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
13580 double add, minimum, maximum vector reduction.
13581 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
13582 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
13583 optimize double vector reduction.
13584 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
13585
792fc735 135862011-04-26 Joseph Myers <joseph@codesourcery.com>
13587
13588 * config/fr30/fr30.h (inhibit_libc): Don't define.
13589 * config/m32r/m32r-protos.h: Correct comment.
13590 * config/v850/v850.h (GHS_default_section_names,
13591 GHS_current_section_names): Use tree, not union tree_node *.
13592
8c3e8d68 135932011-04-26 Xinliang David Li <davidxl@google.com>
13594
4581fd42 13595 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
8c3e8d68 13596 * c-family/c-opts.c (c_common_handle_option): Set
13597 warn_maybe_uninitialized.
13598 * opts.c (common_handle_option): Ditto.
13599 * common.opt: New option.
13600 * tree-ssa.c (warn_uninit): Add one more parameter.
13601 (warn_uninitialized_var): Pass warning code.
13602 * tree-flow.h: Interface change.
13603
4f823da5 136042011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13605
4581fd42 13606 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
4f823da5 13607 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
13608 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
13609
35c73f70 136102011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13611
13612 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
13613 * config/mips/mips.opt (mmips-tfile): Remove.
13614
13615 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
13616 mips-tdump reference to ...
4581fd42 13617 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
35c73f70 13618 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
13619 reference by Tru64 UNIX.
13620
89c993b6 136212011-04-26 Jakub Jelinek <jakub@redhat.com>
13622
a05063ec 13623 PR debug/48768
13624 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
13625 is error_mark_node, set value to NULL.
13626
89c993b6 13627 PR tree-optimization/48734
13628 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
13629 if return value from maybe_fold_*_comparsions isn't something
13630 the code is prepared to handle.
13631
3c0bc3f2 136322011-04-26 Uros Bizjak <ubizjak@gmail.com>
13633
13634 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
13635 mode check.
13636 (ext_QIreg_nomode_operands): Remove.
13637 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
13638 (*andsi_1): Ditto.
13639 (*andhi_1): Ditto.
13640
db7e6009 136412011-04-26 Andrew Stubbs <ams@codesourcery.com>
13642
13643 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
13644
5da6a36e 136452011-04-26 Richard Guenther <rguenther@suse.de>
13646
13647 * c-typeck.c (build_unary_op): Do not expand array-refs via
13648 pointer arithmetic. Only adjust qualifiers for function types.
13649
136502011-04-26 Richard Guenther <rguenther@suse.de>
13651
13652 PR middle-end/48694
13653 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
13654 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
3c0bc3f2 13655 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
13656 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
5da6a36e 13657
8de5c43e 136582011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
13659
6fe5844b 13660 * doc/extend.texi: Document __underlying_type.
8de5c43e 13661
844593f2 136622011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
13663
13664 * config/rs6000/titan.md (automata_option "progress"): Remove.
13665
50258e8d 136662011-04-25 Jeff Law <law@redhat.com>
13667
13668 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
13669
cdd0bb4b 136702011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
13671
13672 * system.h (ENUM_BITFIELD): Remove.
13673
8ebe31d6 136742011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
51d5dcac 13675 Eric Botcazou <ebotcazou@adacore.com>
8ebe31d6 13676
13677 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
13678 for STORE_FLAG_VALUE==-1 case.
13679
58ba8f5d 136802011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
13681
13682 PR target/43804
13683 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
13684 LEGITIMATE_PIC_OPERAND_P.
13685
5cb1b112 136862011-04-24 Jan Hubicka <jh@suse.cz>
13687
13688 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
13689 WPA hack.
3c0bc3f2 13690 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
13691 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
13692 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
5cb1b112 13693 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
13694 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
13695 Sanity check predicate length.
13696 (remap_predicate): Likewise; sanity check jump functions.
13697 (inline_read_section, inline_write_summary): Sanity check
13698 predicate length.
13699
a799da27 137002011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
13701
13702 PR other/48748
13703 * doc/extend.texi (Type Traits): Document __is_standard_layout,
13704 __is_literal_type, and __is_trivial; update throughout about
13705 possibly cv-qualified void types.
13706
832d4c31 137072011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
13708
13709 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
13710 testsuite and make it version agnostic.
13711
ca0564e6 137122011-04-22 Jan Hubicka <jh@suse.cz>
13713
13714 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
13715
6ba60c90 137162011-04-23 Jakub Jelinek <jakub@redhat.com>
13717
13718 PR c/48685
13719 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
13720 to VOID_TYPE even around MODIFY_EXPR.
13721
f9cc5f3e 137222011-04-22 Mike Stump <mikestump@comcast.net>
13723
f61e26f9 13724 * gensupport.c (read_md_rtx): Fix typo in comment.
f9cc5f3e 13725 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
13726 comment.
13727
a41f2a28 137282011-04-22 Jan Hubicka <jh@suse.cz>
13729
13730 * gengtype.c (open_base_files): Add ipa-inline.h include.
3c0bc3f2 13731 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
13732 ipa-prop.c; update all uses.
a41f2a28 13733 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
3c0bc3f2 13734 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
13735 merge summary of inlined function into former caller.
a41f2a28 13736 * ipa-inline.c (max_benefit): Remove.
13737 (edge_badness): Compensate for removal of benefits.
3c0bc3f2 13738 (update_caller_keys): Use
13739 reset_node_growth_cache/reset_edge_growth_cache.
a41f2a28 13740 (update_callee_keys): Likewise.
13741 (update_all_callee_keys): Likewise.
3c0bc3f2 13742 (inline_small_functions): Do not collect max_benefit; do not reset
13743 estimated_growth; call free_growth_caches and initialize_growth_caches.
13744 * ipa-inline.h (struct condition, type clause_t, struct predicate,
13745 struct size_time_entry): New structures.
a41f2a28 13746 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
3c0bc3f2 13747 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
13748 and estimated_growth.
a41f2a28 13749 (edge_growth_cache_entry): New structure.
13750 (node_growth_cache, edge_growth_cache): New global vars.
13751 (estimate_growth): Turn into inline.
13752 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
13753 initialize_growth_caches, free_growth_caches): Declare.
13754 (estimate_edge_growth): Rewrite.
13755 (estimate_edge_time): Implement as inline cache lookup.
3c0bc3f2 13756 (reset_node_growth_cache, reset_edge_growth_cache): New inline
13757 functions.
a41f2a28 13758 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
13759 (NUM_CONDITIONS): New constant.
13760 (predicate_conditions): New enum.
13761 (IS_NOT_CONSTANT): New constant.
13762 (edge_removal_hook_holder): New var.
13763 (node_growth_cache, edge_growth_cache): New global vars.
3c0bc3f2 13764 (true_predicate, single_cond_predicate, false_predicate,
13765 not_inlined_predicate, add_condition, add_clause, and_predicates,
13766 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
13767 dump_clause, dump_predicate, account_size_time,
a41f2a28 13768 evaulate_conditions_for_edge): New functions.
13769 (inline_summary_alloc): Move to heap.
13770 (inline_node_removal_hook): Clear condition and entry vectors.
13771 (inline_edge_removal_hook): New function.
13772 (initialize_growth_caches, free_growth_caches): New function.
13773 (dump_inline_summary): Update.
13774 (edge_execution_predicate): New function.
13775 (will_be_nonconstant_predicate): New function.
13776 (estimate_function_body_sizes): Compute BB and constantness predicates.
13777 (compute_inline_parameters): Do not clear estimated_growth.
13778 (estimate_edge_size_and_time): New function.
13779 (estimate_calls_size_and_time): New function.
13780 (estimate_callee_size_and_time): New function.
13781 (remap_predicate): New function.
13782 (inline_merge_summary): New function.
13783 (do_estimate_edge_time): New function based on...
13784 (estimate_edge_time): ... this one.
13785 (do_estimate_edge_growth): New function.
13786 (do_estimate_growth): New function based on....
13787 (estimate_growth): ... this one.
13788 (inline_analyze_function): Analyze after deciding on jump functions.
13789 (inline_read_section): New function.
13790 (inline_read_summary): Use it.
13791 (inline_write_summary): Write all the new data.
13792 * ipa-prop.c (ipa_get_param_decl_index): Export.
13793 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
3c0bc3f2 13794 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
13795 Declare.
13796 (ipa_get_lattice): Move here from ipa-cp.c
a41f2a28 13797 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
13798 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
13799 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
13800 cgraph_edge_inlinable_p): Remove.
13801 * cgraphunit.c: Include ipainline.h
3c0bc3f2 13802 (cgraph_process_new_functions): Update call of
13803 compute_inline_parameters.
a41f2a28 13804
0ac7bb2f 138052011-04-22 Richard Guenther <rguenther@suse.de>
13806
13807 * tree.c (build_int_cst): Properly create canonicalized integer
13808 constants.
13809 (build_int_cst_type): Remove scary comments.
13810
68ebb06f 138112011-04-22 Xinliang David Li <davidxl@google.com>
13812
13813 * toplev.c (process_options): Enable -Werror=coverage-mismatch
13814 by default when -Wno-error is not specified.
13815 * opts-global.c (decode_options): Remove call to
13816 control_warning_options.
13817
19d861b9 138182011-04-22 Jakub Jelinek <jakub@redhat.com>
13819
13820 PR tree-optimization/48717
13821 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
13822 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
13823
e9da2473 138242011-04-22 Joseph Myers <joseph@codesourcery.com>
13825
13826 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
13827 definition where used.
13828
af06e5ef 138292011-04-22 Jakub Jelinek <jakub@redhat.com>
13830
13831 PR c/48716
13832 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
13833 TREE_STATIC variables declared inside of some OpenMP construct.
13834
a5c37976 138352011-04-22 Martin Jambor <mjambor@suse.cz>
13836
13837 PR middle-end/48585
19e1bfc7 13838 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
a5c37976 13839
ac4e675f 138402011-04-22 Alexander Monakov <amonakov@ispras.ru>
13841
13842 PR c/36750
13843 * c-typeck.c (pop_init_level): Do not warn about initializing
13844 with ` = {0}'.
13845
0645b79d 138462011-04-22 Alan Modra <amodra@gmail.com>
13847
13848 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
13849 when returning call_cookie.
13850 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
13851 pointers, to functions with no more vector args than the current
13852 function, and some non-local calls for ABI_V4.
13853 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
13854 sibcall_nonlocal_aix64): Combine to ..
13855 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
13856 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
13857 (sibcall_value_nonlocal_aix<mode>): ..likewise.
13858 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
13859 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
13860 operand.
13861 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
13862 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
13863 sibcall_value_symbolic_64): Delete.
13864
1ad3e14c 138652011-04-21 Xinliang David Li <davidxl@google.com>
13866
13867 * cgraph.h: Remove pid.
13868 * cgraph.c: Remove pid.
13869 * value-prof.c (init_node_map): New function.
13870 (del_node_map): New function.
13871 (find_func_by_funcdef_no): New function.
13872 (gimple_ic_transform): Call new function.
13873 * cgraphunit.c (cgraph_finalize_function): Remove pid.
13874 * function.c (get_last_funcdef_no): New function.
13875 * function.h (get_last_funcdef_no): New function.
13876 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
13877 to libgcov function.
13878 (tree-profiling): Call node map init and delete function.
13879
bcebc172 138802011-04-21 Ian Lance Taylor <iant@google.com>
13881
13882 * godump.c (go_format_type): Use exported Go name for anonymous
13883 field name.
13884
fc6bcbe2 138852011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13886
13887 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
13888 Call builtin_function_type_list instead of builtin_function_type.
13889 (UNARY, BINARY, TRINARY, QUAD): Likewise.
13890
7bb58c4d 138912011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13892
13893 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
13894 build_function_type_list instead of build_function_type.
13895 Delete variable `endlink'.
13896
61b4d1b5 138972011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13898
13899 * config/s390/s390.c (s390_init_builtins): Call
13900 build_function_type_list instead of build_function_type.
13901
58711bd3 139022011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13903
13904 * config/ia64/ia64.c (ia64_init_builtins): Call
13905 build_function_type_list instead of builtin_function_type.
13906
2a24c3a6 139072011-04-21 Easwaran Raman <eraman@google.com>
13908
9bbe51a2 13909 * cfgexpand.c (stack_var): Remove OFFSET...
2a24c3a6 13910 (add_stack_var): ...and its reference here...
13911 (expand_stack_vars): ...and here.
13912 (stack_var_cmp): Sort by descending order of size.
13913 (partition_stack_vars): Change heuristic.
19e1bfc7 13914 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
2a24c3a6 13915 (dump_stack_var_partition): Add newline after each partition.
13916
f0a34d7c 139172011-04-21 Dimitrios Apostolou <jimis@gmx.net>
13918 Jeff Law <law@redhat.com>
13919
3c0bc3f2 13920 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
f0a34d7c 13921 * gengtype.c (matching_file_name_substitute): Likewise.
13922
81a847ed 139232011-04-21 Richard Guenther <rguenther@suse.de>
13924
13925 PR lto/48703
19e1bfc7 13926 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
81a847ed 13927
d5c50c6d 139282011-04-21 Eric Botcazou <ebotcazou@adacore.com>
13929
13930 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
13931
a49d1bae 139322011-04-21 Richard Guenther <rguenther@suse.de>
13933
13934 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
13935 file name.
13936
2622064f 139372011-04-21 Richard Guenther <rguenther@suse.de>
13938
13939 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
13940 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
13941 Use DECL_P, not SSA_VAR_P.
13942 (ptr_derefs_may_alias_p): Likewise.
13943 (ptr_deref_may_alias_ref_p_1): Likewise.
13944 (decl_refs_may_alias_p): Likewise.
13945 (refs_may_alias_p_1): Likewise.
13946 (ref_maybe_used_by_call_p_1): Likewise.
13947 (call_may_clobber_ref_p_1): Likewise.
13948 (indirect_ref_may_alias_decl_p): Assume indirect refrences
13949 are either MEM_REF or TARGET_MEM_REF.
13950 (indirect_refs_may_alias_p): Likewise.
13951 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
13952 for MEM_EXPR of indirect calls.
13953
235b5b0e 139542011-04-21 Tristan Gingold <gingold@adacore.com>
13955
13956 * vmsdbgout.c (write_srccorr): Compute file length from the string.
13957 (dst_file_info_struct): Remove flen field.
13958 (lookup_filename): Remove code that set flen field.
13959
72b989d8 139602011-04-21 Tristan Gingold <gingold@adacore.com>
13961
13962 * config/ia64/ia64.c (ia64_start_function): Add a guard.
13963
57026a70 139642011-04-21 Uros Bizjak <ubizjak@gmail.com>
13965
13966 PR target/48708
13967 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
13968 vec_extract and vec_concat for non-SSE4_1 targets.
13969
91234829 139702011-04-21 Richard Guenther <rguenther@suse.de>
13971
13972 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
13973 return statements.
13974
d503b516 139752011-04-21 Joseph Myers <joseph@codesourcery.com>
13976
13977 * config/i386/cygming.h (union tree_node, TREE): Don't define or
13978 undefine.
13979 (FILE): Don't undefine.
13980
842ae815 139812011-04-21 Joseph Myers <joseph@codesourcery.com>
13982
13983 * config/alpha/alpha.c (struct machine_function): Use rtx, not
13984 struct rtx_def *.
13985 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
13986 struct rtx_def *.
13987 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
57026a70 13988 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
842ae815 13989 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
13990 rtx_def *.
13991 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
13992 definitions where used.
13993 * config/microblaze/microblaze.h (struct microblaze_args): Use
13994 rtx, not struct rtx_def *.
13995 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
13996 rtx_def *.
57026a70 13997 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
13998 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
842ae815 13999 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
14000 not struct rtx_def *.
14001 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
14002 struct rtx_def *.
14003 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
14004 rtx_def *.
57026a70 14005 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
842ae815 14006
27b32feb 140072011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
14008
14009 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
14010 operand_equal_p to compare DR_BASE_ADDRESSes.
14011 (vect_check_interleaving): Likewise.
14012
dddb35a9 140132011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
14014
14015 PR target/46329
14016 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
14017 for all Neon struct constants.
14018
ca316360 140192011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
14020
14021 * target.def (legitimate_constant_p): New hook.
14022 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
14023 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
14024 * doc/tm.texi: Regenerate.
14025 * hooks.h (hook_bool_mode_rtx_true): Declare.
14026 * hooks.c (hook_bool_mode_rtx_true): Define.
14027 * system.h (LEGITIMATE_CONSTANT_P): Poison.
14028 * calls.c (precompute_register_parameters): Replace uses of
14029 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
14030 (emit_library_call_value_1): Likewise.
14031 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
14032 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
14033 * ira-costs.c (scan_one_insn): Likewise.
14034 * recog.c (general_operand, immediate_operand): Likewise.
14035 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
14036 * reload1.c (init_eliminable_invariants): Likewise.
14037
14038 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
14039 mode argument.
14040 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
14041 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
14042 argument.
14043 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14044 * config/alpha/predicates.md (input_operand): Update call to
14045 alpha_legitimate_constant_p.
14046
14047 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
14048 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
14049 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
14050 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14051 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
14052 (arm_legitimate_constant_p): New functions.
14053 (arm_cannot_force_const_mem): Make static.
14054
14055 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
14056
14057 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
14058 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
14059 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
14060 instead of bfin_legitimate_constant_p.
14061 (bfin_legitimate_constant_p): Make static. Add a mode argument.
14062 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14063
14064 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
14065
14066 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
14067
14068 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
14069 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
14070 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14071 (frv_legitimate_constant_p): Make static. Add a mode argument.
14072
14073 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
14074 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
14075 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
14076
14077 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
14078 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
14079 * config/i386/i386.c (legitimate_constant_p): Rename to...
14080 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
14081 argument.
14082 (ix86_cannot_force_const_mem): Update accordingly.
14083 (ix86_legitimate_address_p): Likewise.
14084 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14085 * config/i386/i386.md: Update commentary.
14086
14087 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
14088 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
14089 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14090 (ia64_legitimate_constant_p): Make static. Add a mode argument.
14091
14092 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
14093
14094 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
14095 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
14096 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14097 (lm32_legitimate_constant_p): Make static. Add a mode argument.
14098
14099 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
14100 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
14101 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
14102
14103 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
14104 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14105 (m32r_legitimate_constant_p): New function.
14106
14107 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
14108 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
14109 LEGITIMATE_CONSTANT_P.
14110 (LEGITIMATE_CONSTANT_P): Delete.
14111 * config/m68k/m68k.c (m68k_expand_prologue): Call
14112 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
14113 (m68k_legitimate_constant_p): New function.
14114 * config/m68k/m68k.md: Update comments.
14115
14116 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
14117 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14118 (mcore_legitimate_constant_p): New function.
14119
14120 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
14121 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
14122 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
14123 Add a mode argument.
14124 (mep_legitimate_address): Update accordingly.
14125 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14126
14127 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
14128 Delete.
14129 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
14130 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
14131 static. Check OP's mode for VOIDmode.
14132 (microblaze_legitimate_constant_p): New function.
14133 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14134
14135 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
14136 * config/mips/mips.c (mips_legitimate_constant_p): New function.
14137 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
14138 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14139 * config/mips/predicates.md: Update comments.
14140
14141 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
14142 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
14143 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14144 (mmix_legitimate_constant_p): Make static, return a bool, and take
14145 a mode argument.
14146 (mmix_print_operand_address): Update accordingly.
14147
14148 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
14149 Delete.
14150 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
57026a70 14151 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
14152 static. Add a mode argument.
ca316360 14153 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14154
14155 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
14156
14157 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
14158 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14159 (pa_legitimate_constant_p): New function.
14160
14161 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
14162
14163 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
14164 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14165 (pdp11_legitimate_constant_p): New function.
14166
14167 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
14168 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14169 (rs6000_legitimate_constant_p): New function.
14170
14171 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
14172 (rx_legitimate_constant_p): ...this.
14173 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
14174 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
14175 (rx_legitimate_constant_p): ...this.
14176 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14177 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
14178
14179 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
14180 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
14181 * config/s390/s390.c (legitimate_constant_p): Rename to...
14182 (s390_legitimate_constant_p): ...this. Make static, return a bool,
14183 and add a mode argument.
14184 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14185
14186 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
14187
14188 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
14189 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14190 (sh_legitimate_constant_p): New function.
14191
14192 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
14193 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
14194 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14195 (legitimate_constant_p): Rename to...
14196 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
14197 argument.
14198 (constant_address_p): Update accordingly.
14199
14200 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
14201 argument and return a bool.
14202 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
14203 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14204 (spu_legitimate_constant_p): Add a mode argument and return a bool.
14205 (spu_rtx_costs): Update accordingly.
14206 * config/spu/predicates.md (vec_imm_operand): Likewise.
14207
14208 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
14209
14210 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
14211 * config/v850/v850.c (v850_legitimate_constant_p): New function.
14212 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14213
14214 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
14215 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
14216 * config/vax/vax.c (legitimate_constant_p): Likewise.
14217
14218 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
14219 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14220 (xtensa_legitimate_constant_p): New function.
14221
7d7d7bd2 142222011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
14223
14224 * target.def (cannot_force_const_mem): Add a mode argument.
14225 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
14226 * doc/tm.texi: Regenerate.
14227 * hooks.h (hook_bool_mode_rtx_false): Declare.
14228 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
14229 (hook_bool_mode_const_rtx_true): Likewise.
14230 (hook_bool_mode_rtx_false): New function.
14231 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
14232 to be non-VOID. Update call to cannot_force_const_mem.
14233 (find_reloads): Update accordingly.
14234 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
14235 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
14236 argument.
14237 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
14238 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
14239 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
14240 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
14241 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
14242 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
14243 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
14244 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14245 (m68k_cannot_force_const_mem): ...this new function.
14246 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
14247 argument.
14248 (mips_const_insns, mips_legitimize_const_move): Update calls.
14249 (mips_secondary_reload_class): Likewise.
14250 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14251 (pa_cannot_force_const_mem): ...this new function.
57026a70 14252 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
7d7d7bd2 14253 (rs6000_cannot_force_const_mem): ...this new function.
14254 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
14255 argument.
14256 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
14257 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
14258 to...
14259 (xtensa_cannot_force_const_mem): ...this new function.
14260
a2a9d516 142612011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14262
14263 * config/mips/mips.c (mips16_build_function_stub): Call
14264 build_function_type_list instead of build_function_type.
14265 (mips16_build_call_stub): Likewise.
14266
43a83738 142672011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14268
14269 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
14270 instead of build_function_type.
14271
ab27801e 142722011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14273
14274 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
14275 instead of build_function_type.
14276
bd4b3ce4 142772011-04-20 Uros Bizjak <ubizjak@gmail.com>
14278
14279 PR target/48678
14280 * config/i386/i386.md (insv): Change operand 0 constraint to
14281 "register_operand". Change operand 1 and 2 constraint to
14282 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
14283 * config/i386/sse.md (sse4_1_pinsrb): Export.
14284 (sse2_pinsrw): Ditto.
14285 (sse4_1_pinsrd): Ditto.
14286 (sse4_1_pinsrq): Ditto.
14287 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
14288 * config/i386/i386.c (ix86_expand_pinsr): New.
14289
6a818150 142902011-04-20 Easwaran Raman <eraman@google.com>
14291
14292 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
14293 containing union type only with -fstrict-aliasing.
14294
dd045aee 142952011-04-20 Jim Meyering <meyering@redhat.com>
14296
14297 Remove useless if-before-free tests.
14298 * calls.c (expand_call, save_area): Likewise.
14299 * cfgcleanup.c (try_forward_edges): Likewise.
14300 * collect2.c (collect_execute): Likewise.
14301 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
14302 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
14303 * coverage.c (coverage_checksum_string): Likewise.
14304 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
14305 * cselib.c (cselib_init): Likewise.
14306 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
14307 (df_set_clean_cfg): Likewise.
14308 * function.c (free_after_compilation): Likewise.
14309 * gcc.c (do_spec_1, main): Likewise.
14310 * gcov.c (create_file_names): Likewise.
14311 * gensupport.c (identify_predicable_attribute): Likewise.
14312 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
14313 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
14314 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
14315 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
14316 * ipa-pure-const.c (local_pure_const): Likewise.
14317 * ipa-reference.c (propagate): Likewise.
14318 * ira-costs.c (free_ira_costs): Likewise.
14319 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
14320 * matrix-reorg.c (mat_free): Likewise.
14321 * prefix.c (get_key_value): Likewise.
14322 * profile.c (compute_value_histograms): Likewise.
14323 * reload1.c (free_reg_equiv): Likewise.
14324 * sched-deps.c (free_deps): Likewise.
14325 * sel-sched-ir.c (fence_clear): Likewise.
14326 * sese.c (set_rename, if_region_set_false_region): Likewise.
14327 * tree-data-ref.c (free_rdg): Likewise.
14328 * tree-eh.c (lower_try_finally): Likewise.
14329 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
14330 * tree-ssa-live.c (delete_var_map): Likewise.
14331 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
14332 * tree-ssa-pre.c (phi_trans_add): Likewise.
14333
39efead8 143342011-04-20 Jakub Jelinek <jakub@redhat.com>
14335
14336 PR tree-optimization/48611
14337 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
14338 beyond ERT_MUST_NOT_THROW region.
14339
516cedbd 143402011-04-20 Catherine Moore <clm@codesourcery.com>
14341
14342 * config/mips/mips.opt (mfix-24k): New.
14343 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
14344 * config/mips/mips.md (length): Increase by 4 for stores if
14345 fixing 24K errata.
14346 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
14347 all noreorder if fixing 24K errata.
14348 * doc/invoke.texi: Document mfix-24k.
14349
efecc03c 143502011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
14351
14352 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
57026a70 14353 quad-word modes, reduce to 9-bit index range when above 1016 limit.
efecc03c 14354
72a26e19 143552011-04-20 Andrew Stubbs <ams@codesourcery.com>
14356
14357 * config/arm/arm.c (arm_gen_constant): Move movw support ....
14358 (const_ok_for_op): ... to here.
14359
6cfb1e41 143602011-04-20 Kai Tietz <ktietz@redhat.com>
14361
57026a70 14362 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
14363 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
6cfb1e41 14364
d48b5575 143652011-04-20 Andrew Stubbs <ams@codesourcery.com>
14366
14367 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
14368
2cac353d 143692011-04-20 Richard Guenther <rguenther@suse.de>
14370
14371 PR tree-optimization/47892
14372 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
14373 are if-convertible.
14374
f551006d 143752011-04-20 Eric Botcazou <ebotcazou@adacore.com>
14376
14377 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
14378
512b78c2 143792011-04-20 Tristan Gingold <gingold@adacore.com>
14380
14381 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
14382
7c2339f8 143832011-04-20 Georg-Johann Lay <avr@gjlay.de>
14384
14385 PR target/18145
14386
14387 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
14388 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
14389 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
14390 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
14391 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
14392
14393 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
14394 New prototype.
14395
14396 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
14397 (avr_asm_named_section, avr_asm_output_aligned_common,
14398 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
14399 New functions to update...
14400 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
14401 (avr_asm_init_sections): Overwrite section callbacks for
14402 data_section, bss_section.
14403 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
14404 from here to...
14405 (avr_file_end): ...here.
14406
0d2f7431 144072011-04-20 Richard Guenther <rguenther@suse.de>
14408
14409 PR middle-end/48695
14410 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
57026a70 14411 objects and types here. Adjust for their offset before comparing.
0d2f7431 14412
63fd99db 144132011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
14414
14415 * tree-vect-stmts.c (vectorizable_store): Only chain one related
14416 statement per copy.
14417
fb049fba 144182011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
14419
14420 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
14421 (GIMPLE_H): Include $(INTERNAL_FN_H).
14422 (OBJS-common): Add internal-fn.o.
14423 (internal-fn.o): New rule.
14424 * internal-fn.def: New file.
14425 * internal-fn.h: Likewise.
14426 * internal-fn.c: Likewise.
14427 * gimple.h: Include internal-fn.h.
14428 (GF_CALL_INTERNAL): New gf_mask.
14429 (gimple_statement_call): Put fntype into a union with a new
14430 internal_fn field.
14431 (gimple_build_call_internal): Declare.
14432 (gimple_build_call_internal_vec): Likewise.
14433 (gimple_call_same_target_p): Likewise.
14434 (gimple_call_internal_p): New function.
14435 (gimple_call_internal_fn): Likewise.
14436 (gimple_call_fntype): Return null for internal calls.
14437 (gimple_call_set_fntype): Assert that the function is not internal.
14438 (gimple_call_set_fn): Likewise.
14439 (gimple_call_set_fndecl): Likewise.
14440 (gimple_call_set_internal_fn): New function.
14441 (gimple_call_addr_fndecl): Handle null functions.
14442 (gimple_call_return_type): Likewise null types.
14443 * gimple.c (gimple_build_call_internal_1): New function.
14444 (gimple_build_call_internal): Likewise.
14445 (gimple_build_call_internal_vec): Likewise.
14446 (gimple_call_same_target_p): Likewise.
14447 (gimple_call_flags): Handle calls to internal functions.
14448 (gimple_call_fnspec): New function.
14449 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
14450 (gimple_has_side_effects): Handle null functions.
14451 (gimple_rhs_has_side_effects): Likewise.
14452 (gimple_call_copy_skip_args): Handle calls to internal functions.
14453 * cfgexpand.c (expand_call_stmt): Likewise.
14454 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
14455 * gimple-fold.c (gimple_fold_call): Handle null functions.
14456 (gimple_fold_stmt_to_constant_1): Don't fold
14457 calls to internal functions.
14458 * gimple-low.c (gimple_check_call_args): Handle calls to internal
14459 functions.
14460 * gimple-pretty-print.c (dump_gimple_call): Likewise.
14461 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
14462 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
14463 (do_warn_unused_result): Likewise.
14464 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
14465 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
14466 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
14467 the target of a call.
14468 (initialize_hash_element): Update accordingly.
14469 (hashable_expr_equal_p): Use gimple_call_same_target_p.
14470 (iterative_hash_hashable_expr): Handle calls to internal functions.
14471 (print_expr_hash_elt): Likewise.
14472 * tree-ssa-pre.c (can_value_number_call): Likewise.
14473 (eliminate): Handle null functions.
14474 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
14475 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
14476 (find_func_aliases): Likewise.
14477 * value-prof.c (gimple_ic_transform): Likewise.
14478 (gimple_indirect_call_to_profile): Likewise.
14479 * lto-streamer-in.c (input_gimple_stmt): Likewise.
14480 * lto-streamer-out.c (output_gimple_stmt): Likewise.
14481
d826e131 144822011-04-19 Jan Hubicka <jh@suse.cz>
14483
14484 * ipa-inline-transform.c (save_inline_function_body): Add comments.
0616321d 14485 * ipa-inline.c (inline_small_functions): Compute summaries first,
14486 populate heap later.
d826e131 14487
8cbc43ff 144882011-04-19 Jan Hubicka <jh@suse.cz>
14489
14490 * cgraph.h (save_inline_function_body): Remove.
14491 * ipa-inline-transform.c: New file, broke out of...
14492 * ipa-inline.c: ... this one; Update toplevel comment.
14493 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
14494 make global.
14495 (update_noncloned_frequencies): Move to ipa-inline-transform.c
14496 (cgraph_mark_inline_edge): Rename to inline_call; move to
14497 ipa-inline-transform.c.
14498 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
14499 move to ipa-inline-transform.c
14500 (recursive_inlining, inline_small_functions, flatten_function,
14501 ipa_inline, inline_always_inline_functions,
14502 early_inline_small_functions): Update.
14503 (inline_transform): Move to ipa-inline-transform.c.
14504 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
14505 Declare.
14506 * Makefile.in (ipa-inline-transform.o): New file.
14507 * cgraphunit.c (save_inline_function_body): Move to
14508 ipa-inline-transform.c
14509
5dfa0f5a 145102011-04-19 DJ Delorie <dj@redhat.com>
14511
14512 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
14513 registers if we already know there aren't any.
14514 (m32c_emit_epilogue): Don't emit a barrier here.
14515 (m32c_emit_eh_epilogue): Likewise.
14516 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
14517 operands at expand time.
14518 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
14519 int" wchar type.
14520 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
14521 duplicates. Provide aliases instead.
14522 * config/m32c/prologue.md (eh_return): Emit a barrier here.
14523 (eh_epilogue): Add a "(return)" here as a hint to other parts of
14524 the compiler.
14525
7fbdfd9f 145262011-04-19 Anatoly Sokolov <aesok@post.ru>
14527
14528 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
14529 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
14530 (general_or_i64_p, sparc_register_move_cost): New function.
14531
046f323e 145322011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14533
14534 * doc/install.texi (Configuration, --enable-threads): Remove mach.
bd4b3ce4 14535 Add lynx, mipssde. Sort table.
046f323e 14536
8154e1e3 145372011-04-19 Xinliang David Li <davidxl@google.com>
bd4b3ce4 14538
0616321d 14539 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
14540 not negative.
8154e1e3 14541
7a425ed6 145422011-04-19 Jakub Jelinek <jakub@redhat.com>
14543
14544 PR target/48678
14545 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
14546 is a SUBREG with non-MODE_INT mode inside of it.
14547
3658fd1d 145482011-04-19 Martin Jambor <mjambor@suse.cz>
14549
14550 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
14551 also according to actual contants.
14552 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
14553 (gimple_fold_call): Use it.
14554 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
14555
cf3b9c67 145562011-04-19 Martin Jambor <mjambor@suse.cz>
14557
14558 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
14559 non-pointer assignments.
14560
09a2b4db 145612011-04-19 Martin Jambor <mjambor@suse.cz>
14562
14563 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
14564 account anc_offset and otr_type from the indirect edge info.
14565 * ipa-prop.c (get_ancestor_addr_info): New function.
14566 (compute_complex_ancestor_jump_func): Assignment analysis moved to
14567 get_ancestor_addr_info, call it.
14568 (ipa_note_param_call): Do not initialize information about polymorphic
14569 calls, return the indirect call graph edge. Remove the last
14570 parameter, adjust all callers.
14571 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
14572 parameters. Initialize polymorphic information in the indirect edge.
14573
c693f407 145742011-04-19 Eric Botcazou <ebotcazou@adacore.com>
14575
14576 PR lto/48148
14577 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
14578 the types if they have different enumeration identifiers.
14579
cf262be9 145802011-04-19 Jan Hubicka <jh@suse.cz>
14581
14582 * cgraph.h (cgraph_optimize_for_size_p): Declare.
14583 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
14584 * predict.c (cgraph_optimize_for_size_p): Break out from ...
14585 (optimize_function_for_size_p) ... here.
14586
e400b89a 145872011-04-19 Richard Guenther <rguenther@suse.de>
14588
14589 PR lto/48207
14590 * tree.c (free_lang_data): Do not reset the decl-assembler-name
14591 langhook.
14592
59a52681 145932011-04-19 Eric Botcazou <ebotcazou@adacore.com>
14594
14595 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
14596 if DECL_NO_INLINE_WARNING_P is set on the function.
14597
06efbe8c 145982011-04-19 Bernd Schmidt <bernds@codesourcery.com>
14599
14600 PR fortran/47976
14601 * reload1.c (inc_for_reload): Return void. All callers changed.
14602 (emit_input_reload_insns): Don't try to delete previous output
14603 reloads to a register, or record spill_reg_store for autoincs.
c64b1f41 14604
146052011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
14606
14607 * gengtype.h: Updated copyright year.
14608 (struct input_file_st): Add inpisplugin field.
14609 (type_fileloc): New function.
14610 * gengtype.c
14611 (write_typed_struct_alloc_def): Add gcc_assert.
14612 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
14613 (write_typed_alloc_defns): Don't output for plugin files.
14614 (input_file_by_name): Clear inpisplugin field.
14615 (main): Set inpisplugin field for plugin files.
14616
465d0f82 146172011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
14618
14619 * gengtype-state.c (string_eq): New.
14620 (read_state): Use string_eq instead of strcmp when creating the
14621 state_ident_tab.
14622
a54e3e7b 146232011-04-19 Wei Guozhi <carrot@google.com>
14624
14625 PR target/47855
14626 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
14627 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
14628 linkage.
14629 * config/arm/constraints.md (Uu): New constraint.
14630 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
14631
b0a47c39 146322011-04-19 Tristan Gingold <gingold@adacore.com>
14633
14634 * config.gcc (-*-*-*vms): Added.
14635 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
14636 definitions moved.
14637 * config/vms/vms-ld.c: New file.
14638 * config/vms/vms-ar.c: New file.
14639 * config/vms/t-vmsnative: New file.
14640
e51c3f95 146412011-04-18 Xinliang David Li <davidxl@google.com>
14642
14643 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
14644
a00321c8 146452011-04-18 Jakub Jelinek <jakub@redhat.com>
14646
14647 PR middle-end/48661
14648 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
14649 if TREE_TYPE (v) is non-NULL.
14650
14651 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
14652 gimple_get_virt_mehtod_for_binfo.
14653 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
14654 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
14655 callers.
14656 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
14657
19410918 146582011-04-18 Michael Matz <matz@suse.de>
faa7e9d5 14659 Steve Ellcey <sje@cup.hp.com>
14660
19410918 14661 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
14662 use its mode as source mode if it isn't VOIDmode.
faa7e9d5 14663
6f836859 146642011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
14665
14666 * doc/passes.texi: Fill crossref nodes.
14667
e66d204f 146682011-04-18 Jim Meyering <meyering@redhat.com>
14669
19410918 14670 Fix doubled-word typos in comments and strings
e66d204f 14671 * config/alpha/vms-unwind.h: s/for for/for/
14672 * config/arm/unwind-arm.h: Likewise.
14673 * config/microblaze/microblaze.c: Likewise.
14674 * config/sh/constraints.md: s/in in/in/
14675 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
14676
dcab66ec 146772011-04-18 Uros Bizjak <ubizjak@gmail.com>
14678
14679 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
14680 (AVX_FLOAT_MODE_P): Ditto.
14681 (AVX128_VEC_FLOAT_MODE_P): Ditto.
14682 (AVX256_VEC_FLOAT_MODE_P): Ditto.
14683 (AVX_VEC_FLOAT_MODE_P): Ditto.
14684 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
14685 (UNSPEC_MASKSTORE): Ditto.
14686 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
14687 Merge from <sse>_movmsk<ssemodesuffix> and
14688 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
14689 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
14690 iterator.
14691 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
14692 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
14693 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
14694
4055a556 146952011-04-18 Jan Hubicka <jh@suse.cz>
14696
33b2724f 14697 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
14698
4055a556 14699 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
14700 (want_inline_function_called_once_p): Break out the logic from
14701 ipa_inline.
14702 (edge_badness): Ensure that profile is not misupdated.
14703 (lookup_recursive_calls): Prioritize by call frequencies.
14704 (inline_small_functions): Move program size estimates here;
14705 actually process whole queue even when unit growth has been
14706 met. (to properly compute inline_failed reasons and for the
dcab66ec 14707 case unit size decrease.) Revisit comments on recursive inlining.
4055a556 14708 (ipa_inline): Remove unit summary code; first inline hot calls
14709 of functions called once, cold calls next.
14710 (order, nnodes): Remove unused variables.
14711 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
14712 (GTFILES): Remove ipa-inline.c
14713 * sel-sched.c (fill_insns): Silence uninitialized var warning.
14714
f1a4e5a7 147152011-04-18 Eric Botcazou <ebotcazou@adacore.com>
14716
14717 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
14718
38afa546 147192011-04-18 Jie Zhang <jie@codesourcery.com>
f1a4e5a7 14720 Richard Earnshaw <rearnsha@arm.com>
38afa546 14721
14722 * arm.c (neon_builtin_type_bits): Remove.
14723 (typedef enum neon_builtin_mode): New.
14724 (T_MAX): Don't define.
14725 (typedef enum neon_builtin_datum): Remove bits, codes[],
14726 num_vars and base_fcode. Add mode, code and fcode.
14727 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
14728 VAR10): Change accordingly.
14729 (neon_builtin_data[]): Change accordingly
14730 (arm_init_neon_builtins): Change accordingly.
14731 (neon_builtin_compare): Remove.
14732 (locate_neon_builtin_icode): Remove.
14733 (arm_expand_neon_builtin): Change accordingly.
14734
14735 * arm.h (enum arm_builtins): Move to ...
14736 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
14737
14738 * arm.c (arm_builtin_decl): Declare.
14739 (TARGET_BUILTIN_DECL): Define.
14740 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
14741 (arm_builtin_decls[]): New.
14742 (arm_init_neon_builtins): Store builtin declarations in
14743 arm_builtin_decls[].
14744 (arm_init_tls_builtins): Likewise.
14745 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
14746 (arm_builtin_decl): New.
14747
419ae64a 147482011-04-18 Richard Guenther <rguenther@suse.de>
14749
14750 * tree.c (upper_bound_in_type): Build properly canonicalized
14751 INTEGER_CSTs.
14752 (lower_bound_in_type): Likewise.
14753
6fec5449 147542011-04-18 Richard Guenther <rguenther@suse.de>
14755
14756 * gimple.h (gimple_call_addr_fndecl): New function.
14757 (gimple_call_fndecl): Use it.
14758 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
14759 for direct calls.
14760 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
14761 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
14762
faa89065 147632011-04-18 Richard Guenther <rguenther@suse.de>
14764
14765 PR middle-end/48650
14766 * tree.c (build_string): STRING_CST is now derived from tree_typed.
14767
1cdbcae1 147682011-04-18 Eric Botcazou <ebotcazou@adacore.com>
14769
14770 PR lto/48492
14771 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
14772 DECL_IN_CONSTANT_POOL without RTL.
14773
fd4b5409 147742011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
14775 Ira Rosen <ira.rosen@linaro.org>
14776
14777 PR target/48252
14778 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
14779 to match neon_vzip/vuzp/vtrn_internal.
14780 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
14781 outputs explicitly dependent on both inputs.
14782 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
14783
c344bf60 147842011-04-18 Jakub Jelinek <jakub@redhat.com>
14785
14786 PR tree-optimization/48616
14787 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
14788 whether the shift is by scalar or vector based on whether all SLP
14789 scalar stmts have the same rhs.
14790
f120c9d7 147912011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
14792
14793 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
14794 memory operands.
14795
d57287ab 147962011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
14797
056b328f 14798 PR target/43700
d57287ab 14799 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
14800 registers.
14801
629c326d 148022011-04-17 Jan Hubicka <jh@suse.cz>
14803
14804 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
1cdbcae1 14805 * cgrpahunit.c (cgraph_finalize_function): Do not set
14806 finalized_by_frontend.
629c326d 14807 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14808 finalized_by_frontend.
14809
9742b4a1 148102011-04-17 Jan Hubicka <jh@suse.cz>
14811
14812 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
14813 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
14814 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
1cdbcae1 14815 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
14816 method.
9742b4a1 14817 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
14818 gimple-fold.c
14819 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
14820
30f589a5 148212011-04-17 Eric Botcazou <ebotcazou@adacore.com>
14822
14823 PR lto/48538
14824 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
14825 is non-null before accessing it.
14826 (input_cgraph): Remove trailing spaces.
14827
4f7f77aa 148282011-04-17 Revital Eres <revital.eres@linaro.org>
14829
14830 * params.def (sms-min-sc): New param flag.
14831 * modulo-sched.c (sms_schedule): Use it.
14832 * doc/invoke.texi (sms-min-sc): Document it.
14833
4869c23f 148342011-04-17 Jan Hubicka <jh@suse.cz>
14835
14836 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
14837 present, also set gimple_call_set_cannot_inline.
14838 * ipa-inline.c: Update toplevel comment.
14839 (MAX_TIME): Remove.
14840 (cgraph_clone_inlined_nodes): Fix linebreaks.
14841 (cgraph_check_inline_limits): Restructure to ...
14842 (caller_growth_limits): ... this one; be more tolerant
14843 on growth in nested inline chains; add explanatory comment;
14844 fix stack accounting thinko introduced by previous patch.
14845 (cgraph_default_inline_p): Remove.
14846 (report_inline_failed_reason): New function.
14847 (can_inline_edge_p): New function.
14848 (can_early_inline_edge_p): New function.
14849 (leaf_node_p): Move upwards in file.
14850 (want_early_inline_function_p): New function.
14851 (want_inline_small_function_p): New function.
14852 (want_inline_self_recursive_call_p): New function.
14853 (cgraph_edge_badness): Rename to ...
14854 (edge_badness) ... this one; fix linebreaks.
14855 (update_edge_key): Update call of edge_baddness; add
14856 detailed dump about queue updates.
14857 (update_caller_keys): Use can_inline_edge_p and
14858 want_inline_small_function_p.
14859 (cgraph_decide_recursive_inlining): Rename to...
14860 (recursive_inlining): Use can_inline_edge_p and
dcab66ec 14861 want_inline_self_recursive_call_p; simplify and remove no longer
14862 valid FIXME.
4869c23f 14863 (cgraph_set_inline_failed): Remove.
14864 (add_new_edges_to_heap): Use can_inline_edge_p and
14865 want_inline_small_function_p.
14866 (cgraph_decide_inlining_of_small_functions): Rename to ...
14867 (inline_small_functions): ... this one; cleanup; use
dcab66ec 14868 can/want predicates; cleanup debug ouput; work edges till fibheap
14869 is exhausted and do not stop once unit growth is reached; remove
14870 later loop processing remaining edges.
4869c23f 14871 (cgraph_flatten): Rename to ...
14872 (flatten_function): ... this one; use can_inline_edge_p
14873 and can_early_inline_edge_p predicates.
14874 (cgraph_decide_inlining): Rename to ...
14875 (ipa_inline): ... this one; remove unreachable nodes before
14876 inlining functions called once; simplify the pass.
14877 (cgraph_perform_always_inlining): Rename to ...
14878 (inline_always_inline_functions): ... this one; use
dcab66ec 14879 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4869c23f 14880 (cgraph_decide_inlining_incrementally): Rename to ...
14881 (early_inline_small_functions): ... this one; simplify
14882 using new predicates; cleanup; make dumps prettier.
14883 (cgraph_early_inlining): Rename to ...
14884 (early_inliner): newer inline regular functions into always-inlines;
14885 fix updating of call stmt summaries.
14886 (pass_early_inline): Update for new names.
14887 (inline_transform): Fix formating.
14888 (gate_cgraph_decide_inlining): Rename to ...
14889 (pass_ipa_inline): ... this one.
14890 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
14891 * ipa-inline-analysis.c (dump_inline_summary): Update.
14892 (compute_inline_parameters): Do not compute disregard_inline_limits;
14893 look for mismatching arguments.
14894 (estimate_growth): Fix handlig of non-trivial self recursion.
14895 (inline_read_summary): Do not read info->disregard_inline_limits.
14896 (inline_write_summary): Do not write info->disregard_inline_limits.
30f589a5 14897 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
14898 and move all checks into can_inline_edge_p predicate; re-enable code
14899 comparing optimization levels.
4869c23f 14900 (expand_call_inline): Do not test inline_forbidden_into_p.
14901 * Makefile.in (ipa-inline.o): Update arguments.
14902
d1fdaace 149032011-04-17 Revital Eres <revital.eres@linaro.org>
14904
14905 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
14906
81653d3e 149072011-04-17 Revital Eres <revital.eres@linaro.org>
14908
14909 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
14910
94a9bddf 149112011-04-17 Michael Matz <matz@suse.de>
14912
14913 PR tree-optimization/48622
14914 PR lto/48645
14915 * ipa-inline-analysis.c (inline_read_summary): Read size/time
14916 in same order as they're written.
14917
c063d2da 149182011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14919
14920 * config/pa/predicates.md: Reorganize and simplify predicates.
14921 Eliminate duplicate code checks.
14922 (arith_operand): Rename to arith14_operand
14923 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
14924 * config/pa/pa.md: Use renamed operands.
14925 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
14926 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
14927 arith11_operand, adddi3_operand, indexed_memory_operand,
14928 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
14929 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
14930 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
14931 move_dest_operand, move_src_operand, prefetch_cc_operand,
14932 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
14933 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
14934 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
14935 div_operand, int5_operand, movb_comparison_operator,
14936 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
14937 arith_double_operand, ireg_operand, lhs_lshift_operand,
14938 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
14939 integer_store_memory_operand): Likewise.
14940 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
14941 (integer_store_memory_operand, read_only_operand,
14942 function_label_operand, borx_reg_operand,
14943 non_hard_reg_operand): Likewise.
14944 (eq_neq_comparison_operator): Delete unused operator.
14945 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
14946 function_label_operand.
14947 (emit_move_sequence): Likewise.
14948
b6fc7168 149492011-04-16 Uros Bizjak <ubizjak@gmail.com>
14950
14951 * config/i386/sse.md (sseunpackmode): New mode attribute.
14952 (ssepackmode): Ditto.
14953 (vec_pack_trunc_<mode>): Macroize expander from
14954 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
14955 (vec_unpacks_lo_<mode>): Macroize expander from
14956 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14957 (vec_unpacks_hi_<mode>): Macroize expander from
14958 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14959 (vec_unpacku_lo_<mode>): Macroize expander from
14960 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14961 (vec_unpacku_hi_<mode>): Macroize expander from
14962 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14963 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
14964 ix86_expand_sse4_unpack.
14965 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
14966
cbd7f5a0 149672011-04-16 Jan Hubicka <jh@suse.cz>
14968
14969 * cgraphbuild.c: Include ipa-inline.h.
14970 (reset_inline_failed): Use initialize_inline_failed.
14971 * cgraph.c: Include ipa-inline.h.
14972 (cgraph_create_node_1): Do not initialize estimated_growth.
14973 (initialize_inline_failed): More to ipa-inline-analysis.c
14974 (dump_cgraph_node): Do not dump inline flags.
14975 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
14976 and disregard_inline_limits flags.
14977 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
14978 time, size, estimated_growth.
b6fc7168 14979 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
14980 Update.
cbd7f5a0 14981 * cgraphunit.c (cgraph_decide_is_function_needed): Use
14982 DECL_DISREGARD_INLINE_LIMITS.
14983 (cgraph_analyze_function): Do not initialize
14984 node->local.disregard_inline_limits.
14985 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14986 inlinable, versionable and disregard_inline_limits.
14987 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
b6fc7168 14988 cgraph_check_inline_limits, cgraph_default_inline_p,
14989 cgraph_edge_badness, update_caller_keys, update_callee_keys,
14990 add_new_edges_to_heap): Update.
14991 (cgraph_decide_inlining_of_small_function): Update; set
14992 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
cbd7f5a0 14993 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
14994 cgraph_decide_inlining_incrementally): Update.
b6fc7168 14995 * ipa-inline.h (inline_summary): Add inlinable, versionable,
14996 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
14997 time, size and estimated_growth parameters.
cbd7f5a0 14998 (estimate_edge_growth): Update.
14999 (initialize_inline_failed): Declare.
15000 * ipa-split.c: Include ipa-inline.h
15001 (execute_split_functions): Update.
15002 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
15003 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
15004 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
15005 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
15006 estimated_growth to INT_MIN.
15007 (inline_node_duplication_hook): Likewise.
15008 (dump_inline_summary): Dump new fields.
15009 (compute_inline_parameters): Update.
15010 (estimate_edge_time, estimate_time_after_inlining,
15011 estimate_size_after_inlining, estimate_growth, inline_read_summary,
15012 inline_write_summary):
15013 (initialize_inline_failed): Move here from cgraph.c.
15014 * tree-sra.c: Include ipa-inline.h.
15015 (ipa_sra_preliminary_function_checks): Update.
dcab66ec 15016 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
15017 ipa-inline.h.
cbd7f5a0 15018
e5f53f2a 150192011-04-16 Uros Bizjak <ubizjak@gmail.com>
15020
15021 * config/i386/sse.md (V16): New mode iterator.
15022 (VI1, VI8): Ditto.
15023 (AVXMODEQI, AVXMODEDI): Remove.
15024 (sse2, sse3): New mode attribute.
15025 (mov<mode>): Use V16 mode iterator.
15026 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
15027 (push<mode>1): Use V16 mode iterator.
15028 (movmisalign<mode>): Ditto.
15029 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
15030 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
15031 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
15032 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
15033 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
15034 avx_movdqu<avxmodesuffix>.
15035 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
15036 *avx_movdqu<avxmodesuffix>.
15037 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
15038 avx_lddqu<avxmodesuffix>.
15039 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
15040 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
15041 avx_movnt<AVXMODEDI:mode>.
15042 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
15043 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
15044
45892a65 150452011-04-16 Bernd Schmidt <bernds@codesourcery.com>
15046
15047 PR target/48629
15048 * haifa-sched.c (prune_ready_list, schedule_block): Use
15049 sched_pressure_p rather than flag_sched_pressure.
15050
6a0cacf9 150512011-04-15 Pat Haugen <pthaugen@us.ibm.com>
46052a74 15052
15053 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15054 cgraph_get_node instead of cgraph_get_create_node.
15055
9ecadf14 150562011-04-15 Jakub Jelinek <jakub@redhat.com>
15057
15058 * cfgexpand.c (expand_debug_expr): Use
15059 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
15060
a882d754 150612011-04-15 Michael Matz <matz@suse.de>
15062
15063 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
15064 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
15065 * function.c (gimplify_parameters): Ditto.
15066 * gimplify.c (gimplify_vla_decl): Ditto.
15067
15068 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
15069 (gimple_call_set_alloca_for_var): New inline function.
15070 (gimple_call_alloca_for_var_p): Ditto.
e5f53f2a 15071 * gimple.c (gimple_build_call_from_tree): Remember
15072 CALL_ALLOCA_FOR_VAR_P state.
a882d754 15073 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
15074
15075 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
15076 calls if they were for VLA objects.
15077
b3b1665e 150782011-04-15 Martin Jambor <mjambor@suse.cz>
15079
15080 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
15081 of ADR_EXPRs.
15082
4559c6fc 150832011-04-15 Martin Jambor <mjambor@suse.cz>
15084
15085 PR middle-end/48601
15086 * tree-emutls.c (lower_emutls_function_body): Call
15087 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
15088 result is non-NULL.
15089
394dd737 150902011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
15091
15092 * c-decl.c (detect_field_duplicates): Call
15093 objc_detect_field_duplicates instead of objc_get_interface_ivars.
15094
97cf41ec 150952011-04-15 Nathan Froyd <froydnj@codesourcery.com>
15096
15097 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
15098 * gimple.c (gimple_asm_clobbers_memory_p): Define.
15099 * ipa-pure-const.c (check_stmt): Call it.
15100 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
15101
abb08aa8 151022011-04-15 Richard Guenther <rguenther@suse.de>
15103
15104 PR tree-optimization/48290
15105 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
15106 Properly decide inhibiting propagation based on the valueized
15107 operand. Do loop-closed SSA form preserving here ...
15108 (init_copy_prop): ... not here.
15109
8ba20934 151102011-04-15 H.J. Lu <hongjiu.lu@intel.com>
15111
15112 PR target/48612
15113 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
15114 (*ieee_smax<mode>3): Likewise.
15115
79dab3a2 151162011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15117
15118 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
15119 Replace match_operand with match_dup for the third operand in
15120 these expanders.
15121
34dd021c 151222011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
15123
15124 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
15125 to track processing of conditionals. Update all callers.
15126 (try_combine, simplify_if_then_else): Update.
15127
3dd7d6a7 151282011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
15129
15130 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
15131 -fsched-pressure.
15132
83456a4b 151332011-04-15 Georg-Johann Lay <avr@gjlay.de>
e5f53f2a 15134
83456a4b 15135 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
15136 instead of match_operand for operand 3.
15137
48eb616d 151382011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
15139
15140 * recog.h (insn_operand_data): Add an "allows_mem" field.
15141 * genoutput.c (output_operand_data): Initialize it.
15142 * optabs.c (maybe_legitimize_operand_same_code): New function.
15143 (maybe_legitimize_operand): Use it when matching the original
15144 op->value.
15145
57859735 151462011-04-15 Eric Botcazou <ebotcazou@adacore.com>
15147
15148 * gimplify.c: Fix issues in comments throughout.
15149 (voidify_wrapper_expr): Fix long line.
15150 (build_stack_save_restore): Likewise.
15151 (gimplify_loop_expr): Likewise.
15152 (gimplify_compound_lval): Likewise.
15153 (gimplify_init_ctor_eval): Likewise.
15154 (gimplify_modify_expr_rhs): Likewise.
15155 (omp_notice_threadprivate_variable): Likewise.
15156
317bd3b6 151572011-04-15 Eric Botcazou <ebotcazou@adacore.com>
a967d5e5 15158
317bd3b6 15159 * cfgexpand.c (expand_call_stmt): Convert the function type to the
15160 original one if this is not a builtin function.
a967d5e5 15161
908f63e8 151622011-04-14 Jakub Jelinek <jakub@redhat.com>
15163
15164 PR target/48605
15165 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
15166 offset it as needed based on top 2 bits in operands[3], change
15167 MEM mode to SFmode and mask those 2 bits away from operands[3].
15168
a758bf7d 151692011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
15170
15171 * c-parser.c (c_parser_objc_protocol_definition): Updated for
15172 change from objc_declare_protocols() to objc_declare_protocol().
15173
f6c74054 151742011-04-14 Uros Bizjak <ubizjak@gmail.com>
15175
15176 * config/i386/sse.md (sse4_1): New mode attribute.
15177 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
15178 avx_blend<ssemodesuffix><avxmodesuffix> and
15179 sse4_1_blend<ssemodesuffix> using VF mode iterator.
15180 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
15181 avx_blendv<ssemodesuffix><avxmodesuffix> and
15182 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
15183 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
15184 avx_dp<ssemodesuffix><avxmodesuffix> and
15185 sse4_1_dp<ssemodesuffix> using VF mode iterator.
15186 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
15187 (sse4_1_packusdw): Merge with *avx_packusdw.
15188 (sse4_1_pblendvb): Merge with *avx_pblendvb.
15189 (sse4_1_pblendw): Merge with *avx_pblendw.
15190 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
15191 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
15192 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
15193 VF mode iterator.
15194 (sse4_1_round<ssescalarmodesuffix>): Merge with
15195 *avx_round<ssescalarmodesuffix>.
15196 (aesenc): Merge with *avx_aesenc.
15197 (aesenclast): Merge with *avx_aesenclast.
15198 (aesdec): Merge with *avx_aesdec.
15199 (aesdeclast): Merge with *avx_aesdeclast.
15200 (pclmulqdq): Merge with *pclmulqdq.
15201 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
15202 New predicate.
15203 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
15204
25c513b9 152052011-04-14 H.J. Lu <hongjiu.lu@intel.com>
15206
15207 PR middle-end/48608
15208 * cfgexpand.c (get_decl_align_unit): Renamed to ...
15209 (align_local_variable): This. Update DECL_ALIGN.
15210 (add_stack_var): Updated.
15211 (expand_one_stack_var): Likewise.
15212
07ff6a65 152132011-04-14 Richard Guenther <rguenther@suse.de>
15214
15215 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
15216 Remove.
15217 (dse_initialize_block_local_data, dse_leave_block,
15218 record_voperand_set, get_stmt_uid): Likewise.
15219 (dse_possible_dead_store_p): Allow any kind of killing stmt.
15220 (dse_optimize_stmt): Remove voperand set handling code.
15221 Simplify and improve to handle any kind of killing stmt.
15222 (dse_record_phi): Remove.
15223 (dse_enter_block): Simplify.
15224 (tree_ssa_dse): Likewise.
15225 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
15226
c7b2cc59 152272011-04-14 Jan Hubicka <jh@suse.cz>
15228
15229 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
15230 * cgraph.h (struct inline_summary): Move to ipa-inline.h
15231 (cgraph_local_info): Remove inline_summary.
15232 * ipa-cp.c: Include ipa-inline.h.
15233 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
15234 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
15235 accesor.
15236 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
15237 (input_overwrite_node): Do not set inline summary.
15238 (input_node): Do not stream inline summary.
15239 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
15240 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
15241 growth; we do not have inline parameters computed for that anyway.
15242 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
15243 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
15244 (inline_summary_t): New type and VECtor.
15245 (debug_inline_summary, dump_inline_summaries): Declare.
15246 (inline_summary): Use VOCtor.
15247 (estimate_edge_growth): Kill hack computing call stmt size directly.
15248 * lto-section-in.c (lto_section_name): Add inline section.
15249 * ipa-inline-analysis.c: Include lto-streamer.h
15250 (node_removal_hook_holder, node_duplication_hook_holder): New holders
15251 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
15252 (inline_summary_vec): Define.
15253 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
15254 dump_inline_summaries): New functions.
f6c74054 15255 (estimate_function_body_sizes): Properly compute size/time of outgoing
15256 calls.
15257 (compute_inline_parameters): Alloc inline_summary; do not compute
15258 size/time of incomming calls.
c7b2cc59 15259 (estimate_edge_time): Avoid missing time summary hack.
15260 (inline_read_summary): Read inline summary info.
15261 (inline_write_summary): Write inline summary info.
15262 (inline_free_summary): Free all hooks and inline summary vector.
15263 * lto-streamer.h: Add LTO_section_inline_summary section.
15264 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
15265 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
15266
481fc474 152672011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15268
15269 * tree-vectorizer.h (vect_strided_store_supported): Add a
15270 HOST_WIDE_INT argument.
15271 (vect_strided_load_supported): Likewise.
15272 (vect_permute_store_chain): Return void.
15273 (vect_transform_strided_load): Likewise.
15274 (vect_permute_load_chain): Delete.
15275 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
15276 count argument. Check that the count is a power of two.
15277 (vect_strided_load_supported): Likewise.
15278 (vect_permute_store_chain): Return void. Update after above changes.
15279 Assert that the access is supported.
15280 (vect_permute_load_chain): Likewise.
15281 (vect_transform_strided_load): Return void.
15282 * tree-vect-stmts.c (vectorizable_store): Update calls after
15283 above interface changes.
15284 (vectorizable_load): Likewise.
15285 (vect_analyze_stmt): Don't check for strided powers of two here.
15286
ca793672 152872011-04-14 Richard Guenther <rguenther@suse.de>
15288
15289 PR tree-optimization/48590
15290 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
15291 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15292 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
15293 BUILT_IN_STACK_SAVE.
15294 * tree-ssa-dce.c (propagate_necessity): Handle
15295 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15296
29d7200d 152972011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
15298
15299 * c-parser.c (c_parser_objc_class_declaration): Updated call to
15300 objc_declare_class.
15301
0c883ef3 153022011-04-14 Richard Guenther <rguenther@suse.de>
15303
15304 * tree.h (get_object_alignment_1): Declare.
15305 * builtins.c (get_object_alignment_1): Split out worker from ...
15306 (get_object_alignment): ... here.
15307 * fold-const.c (get_pointer_modulus_and_residue): Use
15308 get_object_alignment_1.
15309
bd5ba09f 153102011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15311
15312 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
15313 type parameter.
15314 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
15315 parameter. Generalise code to handle arrays as well as vectors.
15316 (vect_setup_realignment): Update accordingly.
15317 * tree-vect-stmts.c (vectorizable_store): Likewise.
15318 (vectorizable_load): Likewise.
15319
362eeee7 153202011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15321
15322 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
15323 within the per-copy loop.
15324
0ffb7cb0 153252011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
ca4943f5 15326
15327 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
15328 in the dump file.
15329
0ffb7cb0 153302011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
d98c9552 15331
15332 * doc/options.texi (Negative): Explicitly mention that the
15333 Negative chain must be circular.
15334
2149d019 153352011-04-14 Nathan Froyd <froydnj@codesourcery.com>
15336
15337 * function.h (block_chainon): Declare.
15338 * function.c (block_chainon): Define.
15339
c5be380e 153402011-04-14 Anatoly Sokolov <aesok@post.ru>
f6c74054 15341 Eric Weddington <eric.weddington@atmel.com>
6a0cacf9 15342 Georg-Johann Lay <avr@gjlay.de>
f6c74054 15343
dcab66ec 15344 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
c5be380e 15345 New Includes
15346 (avr_init_builtins, avr_expand_builtin,
15347 avr_expand_delay_cycles, avr_expand_unop_builtin,
15348 avr_expand_binop_builtin ): New functions.
15349 (avr_builtin_id): New enum
15350 (struct avr_builtin_description): New struct
15351 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
15352 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
f6c74054 15353
c5be380e 15354 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
f6c74054 15355 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
c5be380e 15356 UNSPECV_DELAY_CYCLES): new enumeration values
15357 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
15358 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
15359 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
15360 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
15361 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
15362 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
15363 "fmulsu"): New insns
f6c74054 15364
c5be380e 15365 * config/avr/avr-c.c: fix line endings
15366 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
15367 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
15368 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
15369 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
15370 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
f6c74054 15371
c5be380e 15372 * doc/extend.texi (AVR Built-in Functions): New node
15373 (Target Builtins): Add documentation of AVR
15374 built-in functions.
15375
cb7c66a8 153762011-04-14 Georg-Johann Lay <avr@gjlay.de>
15377
15378 PR target/44643
15379 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
15380 alone. Error if non-const data has attribute progmem.
15381
d39db554 153822011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15383
15384 * tree.h (struct tree_constructor): Include tree_typed instead of
15385 tree_common.
15386 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
15387 TS_TYPED instead of TS_COMMON.
15388
f6c74054 153892011-04-13 Uros Bizjak <ubizjak@gmail.com>
908dc1fc 15390
15391 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
15392 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
15393 (sse2_psadbw): Merge with *avx_psadbw.
15394 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
15395 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
15396 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
15397 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
15398 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
15399 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
15400 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
15401 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
15402 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
15403 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
15404 (ssse3_palignrti): Merge with *avx_palignrti.
15405
acb5ba8c 154062011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15407
15408 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
15409 * tree-ssanames.c (fini_ssanames): VEC_free it.
15410 (make_ssa_name_fn): Update for VECness of free_ssanames.
15411 (release_ssa_name, release_dead_ssa_names): Likewise.
15412 * tree.h (struct tree_ssa_name): Include tree_typed instead of
15413 tree_common.
15414 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
15415 TS_TYPED instead of TS_COMMON.
15416
30c4e60d 154172011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15418
15419 * postreload-gcse.c (gcse_after_reload_main): Add calls to
15420 statistics_counter_event.
15421 * tree-ssa-copyrename.c (stats): Define.
15422 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
15423 statistics_counter_event.
15424 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
15425 (bswap_stats, widen_mul_stats): Define.
15426 (insert_reciprocals): Increment rdivs_inserted.
15427 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
15428 rfuncs_inserted. Add calls to statistics_counter_event.
15429 (execute_cse_sincos_1): Increment inserted.
15430 (execute_cse_sincos): Zeroize sincos_stats. Add call to
15431 statistics_counter_event.
15432 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
15433 of bswap_stats. Add calls to statistics_counter_event.
15434 (convert_mult_to_widen): Increment widen_mults_inserted.
15435 (convert_plusminus_to_widen): Increment maccs_inserted.
15436 (convert_mult_to_fma): Increment fmas_inserted.
15437 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
15438 calls to statistics_counter_event.
15439
ca8cd143 154402011-04-13 Vladimir Makarov <vmakarov@redhat.com>
15441
15442 PR rtl-optimization/48455
15443 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
15444 `temp_costs->mem_cost'.
15445
99c67f24 154462011-04-13 Jan Hubicka <jh@suse.cz>
15447
15448 * ipa-inline.h: New file.
15449 * ipa-inline-analysis.c: New file. Broken out of ...
15450 * ipa-inline.c: ... this file; update toplevel comment;
15451 include ipa-inline.h
15452 (inline_summary): Move to ipa-inline.h
15453 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
15454 ipa-inline-analysis.c.
19410918 15455 (cgraph_estimate_time_after_inlining): Rename to
15456 estiamte_time_after_inlining; move to ipa-inline-analysis.c
99c67f24 15457 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
15458 to estimate_edge_growth.
15459 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
15460 rename to estimate_size_after_inlining.
15461 (cgraph_mark_inline_edge): Update for new naming convention.
15462 (cgraph_check_inline_limits): Likewise.
15463 (cgraph_edge_badness): Likewise.
15464 (cgraph_decide_recursive_inlining): Likewise.
15465 (cgraph_decide_inlining_of_small_functions): Likewise.
15466 (cgraph_decide_inlining_incrementally): Likewise.
19410918 15467 (cgraph_estimate_growth): Rename to estimate_growth; move to
15468 ipa-inline-analysis.c.
99c67f24 15469 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
15470 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
15471 (compute_inline_parameters): Likewise.
15472 (compute_inline_parameters_for_current): Likewise.
15473 (pass_inline_parameters): Likewise.
15474 (inline_indirect_intraprocedural_analysis): Likewise.
15475 (analyze_function): Rename to inline_analyze_function; likewise.
15476 (add_new_function): Move to ipa-inline-analysis.c.
15477 (inline_generate_summary): Likewise.
15478 (inline_read_summary): Likewise.
15479 (inline_write_summary): Likewise.
15480 * Makefile.in (ipa-inline-analysis.c): New file.
15481
dc360156 154822011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15483
15484 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
15485 * configure: Regenerate.
15486
189737d2 154872011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15488
15489 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
15490 instead of tree_common.
15491 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
15492 Likewise.
15493 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
15494 TS_TYPED rather than TS_COMMON.
15495 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
15496
b76e3d4f 154972011-04-01 Georg-Johann Lay <avr@gjlay.de>
15498
15499 PR target/45263
8a59320f 15500 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
15501 r20 around calls of __tablejump_elpm__
b76e3d4f 15502
0f94f46b 155032011-04-13 Jakub Jelinek <jakub@redhat.com>
15504
15505 PR middle-end/48591
15506 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
15507 NULL.
15508 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
15509
8c72aae9 155102011-04-13 Bernd Schmidt <bernds@codesourcery.com>
15511
15512 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
15513 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
15514 (cfi_vec): New typedef.
15515 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
15516 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
15517 (cie_cfi_vec): New static variable.
15518 (cie_cfi_head): Delete.
15519 (add_cfi): Accept a cfi_vec * as first argument. All callers and
15520 declaration changed. Use vector rather than list operations.
15521 (new_cfi): Don't initialize the dw_cfi_next field.
15522 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
15523 rather than list operations.
15524 (lookup_cfa): Use vector rather than list operations.
15525 (output_cfis): New argument upto. Accept a cfi_vec rather than
15526 a dw_cfi_ref list head as argument. All callers changed.
15527 Iterate over the vector using upto as a maximum index.
15528 (output_all_cfis): New static function.
15529 (output_fde): Use vector rather than list operations. Use the
15530 new upto argument for output_cfis rather than manipulating a
15531 list.
15532 (dwarf2out_begin_prologue): Change initializations to match
15533 new struct members.
15534 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
15535 from the vector length rather than searching for the end of a list.
15536 Use output_all_cfis.
15537 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
15538
4d58347f 155392011-04-13 Nick Clifton <nickc@redhat.com>
15540
15541 * config/rx/rx.md (movmemsi): Do not use this pattern when
15542 volatile pointers are involved.
15543
b11a97b3 155442011-04-13 Uros Bizjak <ubizjak@gmail.com>
15545
15546 * config/i386/sse.md (pinsrbits): Remove.
15547 (sse2_packsswb): Merge with *avx_packsswb.
15548 (sse2_packssdw): Merge with *avx_packssdw.
15549 (sse2_packuswb): Merge with *avx_packuswb.
15550 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
15551 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
15552 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
15553 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
15554 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
15555 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
15556 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
15557 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
15558 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
15559 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
15560 (sse2_loadld): Merge with *avx_loadld.
15561 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
15562 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
15563 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
15564 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
15565 (vec_concatv2di): Merge with *vec_concatv2di_avx.
15566
9b88d08d 155672011-04-12 Nathan Froyd <froydnj@codesourcery.com>
15568
15569 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
15570 calling TREE_CHAIN.
15571 * print-tree.c (print_node): Likewise.
15572 * tree-inline.c (copy_tree_r): Likewise.
15573 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
15574 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
15575 instead of TS_COMMON.
15576 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
15577 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
15578 (copy_node_stat): Zero TREE_CHAIN only if necessary.
15579 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
15580 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
15581 ...and these...
15582 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
15583 * tree.h: ...here.
15584 (TREE_CHAIN): Check for a TS_COMMON structure.
15585 (TREE_TYPE): Check for a TS_TYPED structure.
15586
6a0cacf9 155872011-04-12 Pat Haugen <pthaugen@us.ibm.com>
190add86 15588
15589 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15590 cgraph_get_create_node instead of cgraph_node.
15591
4185cf58 155922011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
15593
15594 * c-parser.c (c_parser_initelt): Updated call to
15595 objc_build_message_expr.
15596 (c_parser_postfix_expression): Likewise.
15597
99e7ad2e 155982011-04-12 Kai Tietz <ktietz@redhat.com>
15599
15600 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
15601 MASK_MS_BITFIELD_LAYOUT bit.
15602
41b4f8f9 156032011-04-12 Jakub Jelinek <jakub@redhat.com>
15604
15605 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
15606 assert it is always true.
15607 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
15608 moves.
15609
05ca272f 156102011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
15611
15612 * c-parser.c (c_lex_one_token): Rewritten conditional used when
15613 compiling Objective-C to be more efficient.
15614
6c6c6ebd 156152011-04-12 Axel Freyn <axel-freyn@gmx.de>
15616
15617 * opts-common.c (decode_cmdline_options_to_array): Remove variable
15618 argv_copied.
15619
50c0c258 156202011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15621
15622 * recog.h, genoutput.c, optabs.c: Revert last patch.
15623
458a8706 156242011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15625
908dc1fc 15626 PR target/48090
15627 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
458a8706 15628
9ee2b2ff 156292011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15630
15631 * recog.h (insn_operand_data): Add an "allows_mem" field.
15632 * genoutput.c (output_operand_data): Initialize it.
15633 * optabs.c (maybe_legitimize_operand_same_code): New function.
15634 (maybe_legitimize_operand): Use it when matching the original
15635 op->value.
15636
5d592141 156372011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15638
15639 * genpreds.c (process_define_predicate): Move most processing
15640 to gensupport.c. Continue to validate the expression.
15641 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
15642 (process_define_predicate): Move processing to gensupport.c.
15643 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
15644 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
15645 (compute_predicate_codes): Moved from genrecog.c. Add lineno
15646 argument.
15647 (valid_predicate_name_p): New function, split out from old
15648 genpreds.c:process_define_predicate.
15649 (process_define_predicate): New function, combining code from
15650 old genpreds.c and genrecog.c functions.
15651 (process_rtx): Call it for DEFINE_PREDICATE and
15652 DEFINE_SPECIAL_PREDICATE.
15653
e5bf7a7a 156542011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15655
15656 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
15657 size of a '%A' memory reference.
15658 (T_DREG, T_QREG): New neon_builtin_type_bits.
15659 (arm_init_neon_builtins): Assert that the load and store operands
15660 are neon_struct_operands.
15661 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
15662 (NEON_ARG_MEMORY): New builtin_arg.
15663 (neon_dereference_pointer): New function.
15664 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
15665 Handle NEON_ARG_MEMORY.
15666 (arm_expand_neon_builtin): Update after above interface changes.
15667 Use NEON_ARG_MEMORY for loads and stores.
15668 * config/arm/predicates.md (neon_struct_operand): New predicate.
15669 * config/arm/iterators.md (V_two_elem): Tweak formatting.
15670 (V_three_elem): Use BLKmode for accesses that have no associated mode.
15671 (V_four_elem): Tweak formatting.
15672 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
15673 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
15674 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
15675 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
15676 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
15677 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
15678 (neon_vst4<mode>): Replace pointer operand with a memory operand.
15679 Use %A in the output template.
15680 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
15681 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
15682 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
15683 the width of the memory access. Remove post-increment.
15684 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
15685
f213ed3d 156862011-04-12 Nick Clifton <nickc@redhat.com>
15687
15688 * config/v850/v850.c (expand_prologue): Do not use the CALLT
15689 instruction for interrupt handlers if the target is the basic V850
15690 architecture.
15691 (expand_epilogue): Likewise.
15692
618d6675 156932011-04-12 Jakub Jelinek <jakub@redhat.com>
15694
15695 PR rtl-optimization/48549
15696 * combine.c (propagate_for_debug): Also stop after BB_END of
15697 this_basic_block. Process LAST and just stop processing after it.
15698 (combine_instructions): If last_combined_insn has been deleted,
15699 set last_combined_insn to its PREV_INSN.
15700
39f59e65 157012011-04-12 Richard Guenther <rguenther@suse.de>
15702
15703 PR tree-optimization/46076
15704 * gimple.h (struct gimple_statement_call): Add fntype field.
15705 (gimple_call_fntype): Adjust.
15706 (gimple_call_set_fntype): New function.
15707 * gimple.c (gimple_build_call_1): Set the call function type.
15708 * gimplify.c (gimplify_call_expr): Preserve the function
15709 type the frontend used for the call.
15710 (gimplify_modify_expr): Likewise.
15711 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
15712 function type.
15713 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
15714 function type.
15715 * tree-ssa.c (useless_type_conversion_p): Function pointer
15716 conversions are useless.
15717
5a90471f 157182011-04-12 Martin Jambor <mjambor@suse.cz>
15719
15720 * cgraph.h (cgraph_node): Remove function declaration.
15721 (cgraph_create_node): Declare.
15722 (cgraph_get_create_node): Likewise.
15723 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
15724 Updated all callers.
15725 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
15726 the decl does not already exist. Call cgraph_get_create_node instead
15727 of cgraph_node.
15728 (cgraph_get_create_node): New function.
15729 (cgraph_same_body_alias): Update comment.
15730 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
15731 assert it does not return NULL.
15732 (cgraph_update_edges_for_call_stmt): Likewise.
15733 (cgraph_clone_edge): Likewise.
15734 (cgraph_create_virtual_clone): Likewise.
15735 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
15736 instead of cgraph_node.
15737 (cgraph_add_new_function): Call cgraph_create_node or
15738 cgraph_get_create_node instead of cgraph_node.
15739 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
15740 instead of cgraph_node.
15741 (record_eh_tables): Likewise.
15742 (mark_address): Likewise.
15743 (mark_load): Likewise.
15744 (build_cgraph_edges): Call cgraph_get_create_node instead
15745 of cgraph_node.
15746 (rebuild_cgraph_edges): Likewise.
15747 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
15748 instead of cgraph_node.
15749 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
15750 cgraph_node.
15751 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
15752 cgraph_create_node instead of cgraph_node.
15753 * c-decl.c (finish_function): Call cgraph_get_create_node instead
15754 of cgraph_node.
15755 * lto-cgraph.c (input_node): Likewise.
15756 * lto-streamer-in.c (input_function): Likewise.
15757 * varasm.c (mark_decl_referenced): Likewise.
15758 (assemble_alias): Likewise.
15759
53f79206 157602011-04-12 Martin Jambor <mjambor@suse.cz>
15761
15762 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
15763 instead of cgraph_node and assert it does not return NULL.
15764 * lto-streamer-in.c (lto_read_body): Likewise.
15765 * omp-low.c (new_omp_context): Likewise.
15766 (create_task_copyfn): Likewise.
15767 * tree-emutls.c (lower_emutls_function_body): Likewise.
15768 * matrix-reorg.c (transform_allocation_sites): Likewise.
15769
ef31075b 157702011-04-12 Jakub Jelinek <jakub@redhat.com>
15771
15772 PR c/48552
15773 * c-typeck.c (build_asm_expr): Error out on attempts to use
15774 void type outputs or inputs for constraints that allow reg or
15775 don't allow memory.
15776
06adefdc 157772011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
15778 Richard Earnshaw <rearnsha@arm.com>
15779
15780 PR target/48250
15781 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
15782 to use sign-magnitude offsets. Reject unsupported unaligned
15783 cases. Add detailed description in comments.
15784 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
15785 condition from TARGET_32BIT to TARGET_ARM.
15786
1646aa85 157872011-04-11 Nathan Froyd <froydnj@codesourcery.com>
15788
15789 * tree.h (struct typed_tree): New.
15790 (struct tree_common): Include it instead of tree_base.
15791 (TREE_TYPE): Update for new location of type field.
15792 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
15793 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
15794 (union tree_node): Add typed field.
15795 * treestruct.def (TS_TYPED): New.
15796 * lto-streamer.c (check_handled_ts_structures): Handle it.
15797 * tree.c (MARK_TS_TYPED): New macro.
15798 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
15799
895fb8da 158002011-04-11 Eric Botcazou <ebotcazou@adacore.com>
15801
15802 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
15803 (force_nonfallthru): Do not alter the loop nest if no basic block
15804 was created.
15805
158062011-04-11 Uros Bizjak <ubizjak@gmail.com>
ba2558f8 15807
15808 * config/i386/sse.md (VI): New mode iterator.
15809 (SSEMODEI): Remove.
15810 (AVX256MODEI): Ditto.
15811 (AVXMODEF4P): Ditto.
15812 (avxvecpsmode): Ditto.
15813 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
15814 (sse2_andnot<mode>3): New expander.
15815 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
15816 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
15817 (<any_logic:code><mode>3): Use VI mode iterator.
15818 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
15819 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
15820 (*andnottf3): Handle AVX three-operand constraints.
15821 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
15822
153d662d 158232011-04-11 Joseph Myers <joseph@codesourcery.com>
ba2558f8 15824 Robert Millan <rmh@gnu.org>
153d662d 15825
15826 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
15827 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
15828 GNU_USER_DYNAMIC_LINKER64): Define.
15829 (REG_NAME): Don't undefine.
15830 (MD_UNWIND_SUPPORT): Undefine.
15831 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
15832 (REG_NAME): Don't undefine.
15833 (MD_UNWIND_SUPPORT): Undefine.
ba2558f8 15834 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
153d662d 15835
00049821 158362011-04-11 Joseph Myers <joseph@codesourcery.com>
15837
15838 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
15839 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
15840
850ff64c 158412011-04-11 Xinliang David Li <davidxl@google.com>
15842
15843 * value-profile.c (check_ic_target): New function.
15844 (gimple_ic_transform): Sanity check indirect call target.
15845 * gimple-low.c (gimple_check_call_args): Interface change.
15846 (gimple_check_call_matching_types): New function.
15847 * tree-inline.c (tree_can_inline_p): Call new function.
6e9b96ec 15848
158492011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
15850
15851 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
15852 tree-pretty-print.h & realmpfr.h.
15853
bc9b5bdf 158542011-04-11 Vladimir Makarov <vmakarov@redhat.com>
15855
15856 PR middle-end/48464
15857 * ira.c (setup_pressure_classes): Fix typo in loop condition.
15858 (setup_allocno_and_important_classes): Ditto.
15859
493a87fa 158602011-04-11 Joseph Myers <joseph@codesourcery.com>
15861
15862 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
15863 GNU_USER_DYNAMIC_LINKER.
15864 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
15865 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15866 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
15867 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15868 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15869 GNU_USER_TARGET_OS_CPP_BUILTINS.
15870 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
15871 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15872 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15873 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15874 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
15875 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15876 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15877 GNU_USER_TARGET_OS_CPP_BUILTINS.
15878 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15879 GNU_USER_DYNAMIC_LINKER.
15880 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15881 GNU_USER_TARGET_OS_CPP_BUILTINS.
15882 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
15883 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15884 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
15885 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15886 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
15887 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
15888 GNU_USER_DYNAMIC_LINKER64): Remove.
15889 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
15890 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15891 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15892 GNU_USER_DYNAMIC_LINKER.
15893 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15894 GNU_USER_TARGET_OS_CPP_BUILTINS.
15895 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15896 GNU_USER_TARGET_OS_CPP_BUILTINS.
15897 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
15898 to GNU_USER_TARGET_OS_CPP_BUILTINS.
15899 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15900 GNU_USER_TARGET_OS_CPP_BUILTINS.
15901 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
15902 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
15903 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15904 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
15905 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15906 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15907 GNU_USER_DYNAMIC_LINKER.
15908 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15909 GNU_USER_TARGET_OS_CPP_BUILTINS.
15910 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
15911 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15912 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15913 GNU_USER_DYNAMIC_LINKER.
15914 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15915 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15916 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
15917 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15918 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15919 GNU_USER_DYNAMIC_LINKER.
15920 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
15921 GNU_USER_DYNAMIC_LINKERN32.
15922 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
15923 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
15924 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
15925 GNU_USER_DYNAMIC_LINKER32.
15926 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
15927 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15928 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15929 GNU_USER_DYNAMIC_LINKER.
15930 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15931 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15932 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
15933 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
ba2558f8 15934 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
493a87fa 15935 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
15936 GNU_USER_DYNAMIC_LINKER32.
15937 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15938 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
15939 GNU_USER_DYNAMIC_LINKER.
15940 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
15941 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15942 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15943 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
15944 GNU_USER_DYNAMIC_LINKER64.
15945 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
15946 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15947 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15948 GNU_USER_DYNAMIC_LINKER.
15949 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
15950 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15951 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15952 GNU_USER_DYNAMIC_LINKER.
15953 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
15954 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15955 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15956 GNU_USER_DYNAMIC_LINKER32.
15957 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15958 GNU_USER_DYNAMIC_LINKER64.
15959 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15960 GNU_USER_DYNAMIC_LINKER64.
15961 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
15962 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15963 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
15964 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
ba2558f8 15965 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
493a87fa 15966
059631af 159672011-04-11 Joseph Myers <joseph@codesourcery.com>
15968
15969 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
15970 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
15971 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
15972 GNU_USER_DYNAMIC_LINKER.
15973 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15974 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
15975 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
15976 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
15977 GNU_USER_DYNAMIC_LINKER64.
15978 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15979 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
15980 GNU_USER_LINK_EMULATION.
15981 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
15982 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
15983 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
15984 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
15985 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
15986 CPP_SPEC, CC1_SPEC): Remove.
15987 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
15988 (GNU_USER_DYNAMIC_LINKER): Define.
15989 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
15990 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
15991 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
15992 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
15993 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
15994 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
15995 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15996 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
15997 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
15998 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
15999 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
16000 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
16001 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
16002 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
16003 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
16004 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
16005 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16006 GNU_USER_DYNAMIC_LINKER.
16007 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16008 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
16009 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16010 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
16011 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16012 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
16013 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
16014 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
16015 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
ba2558f8 16016 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
059631af 16017
31db4638 160182011-04-11 Kai Tietz <ktietz@redhat.com>
16019
16020 PR target/9601
16021 PR target/11772
16022 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
16023 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
16024 comment.
16025 (ix86_is_msabi_thiscall): Removed.
16026 (ix86_is_type_thiscall): Likewise.
16027 (ix86_get_callcvt): New function.
16028 (ix86_comp_type_attributes): Simplify check.
16029 (ix86_function_regparm): Use ix86_get_callcvt for calling
16030 convention attribute checks.
16031 (ix86_return_pops_args): Likewise.
16032 (ix86_static_chain): Likewise.
16033 (x86_this_parameter): Likewise.
16034 (x86_output_mi_thunk): Likewise.
16035 (ix86_function_type_abi): Optimize check for types without attributes.
16036 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
16037 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
16038 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
16039 by flag-values.
16040 (IX86_BASE_CALLCVT): Helper macro.
16041 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
16042 Use ix86_get_callcvt for calling convention attribute checks and avoid
16043 symbol-decoration for stdcall in TARGET_RTD case.
16044 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
16045 Likewise.
16046 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
16047 for declaration.
16048
d8f82f6b 160492011-04-11 Uros Bizjak <ubizjak@gmail.com>
16050
16051 * config/i386/sse.md (VI_128): New mode iterator.
16052 (VI12_128): Rename from SSEMODE12.
16053 (VI14_128): Rename from SSEMODE14.
16054 (VI124_128): New mode iterator.
16055 (VI24_128): Rename from SSEMODE248.
16056 (VI248_128): Rename from SSEMODE248.
16057 (SSEMODE124C8): Remove.
16058 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16059 (*sse2_<plusminus_insn><mode>3): Merge with
16060 *avx_<plusminus_insn><mode>3.
16061 (*mulv8hi3): Merge with *avx_mulv8hi3.
16062 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
16063 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
16064 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
16065 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
16066 (ashr<mode>3): Merge with *avx_ashr<mode>3.
16067 (lshr<mode>3): Merge with *avx_lshr<mode>3.
16068 (ashl<mode>3): Merge with *avx_ashl<mode>3.
16069 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
16070 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
16071 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16072 (*<smaxmin:code>v8hi3): Ditto.
16073 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
16074 (*<smaxmin:code>v16qi3): Ditto.
16075 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
16076 (*sse2_eq<mode>3): Ditto.
16077 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
16078 (*sse2_gt<mode>3): Ditto.
16079 (vcondv2di): Split out of vcond<mode>.
16080 (vconduv2di): Split out of vcondu<mode>.
16081
22eb3302 160822011-04-11 Richard Guenther <rguenther@suse.de>
16083
16084 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
16085 before calling tree_low_cst.
16086
783bb57e 160872011-04-11 Richard Guenther <rguenther@suse.de>
16088
16089 * stor-layout.c (layout_type): Compute all array index size operations
16090 in the original type.
16091 (initialize_sizetypes): Add comment.
16092 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
16093
69304750 160942011-04-11 Joseph Myers <joseph@codesourcery.com>
16095
16096 * common.opt (Tbss=, Tdata=, Ttext=): New options.
16097
924de091 160982011-04-11 Martin Jambor <mjambor@suse.cz>
16099
16100 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
16101 of cgraph_node, handle NULL return value.
16102 (cgraph_global_info): Likewise.
16103 (cgraph_rtl_info): Likewise.
16104 * tree-inline.c (estimate_num_insns): Likewise.
16105 * gimplify.c (unshare_body): Likewise.
16106 (unvisit_body): Likewise.
16107 (gimplify_body): Likewise.
16108 * predict.c (optimize_function_for_size_p): Likewise.
16109 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
16110 (call_may_clobber_ref_p_1): Likewise.
16111 * varasm.c (function_section_1): Likewise.
16112 (assemble_start_function): Likewise.
16113
fd6a3c41 161142011-04-11 Martin Jambor <mjambor@suse.cz>
16115
16116 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
16117 of cgraph_node.
16118 * final.c (rest_of_clean_state): Likewise.
16119 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
16120 * passes.c (pass_init_dump_file): Likewise.
16121 (execute_all_ipa_transforms): Likewise.
16122 (function_called_by_processed_nodes_p): Likewise.
16123 * predict.c (maybe_hot_frequency_p): Likewise.
16124 (probably_never_executed_bb_p): Likewise.
16125 (compute_function_frequency): Likewise.
16126 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
16127 (unnest_nesting_tree_1): Likewise.
16128 (lower_nested_functions): Likewise.
16129 * tree-optimize.c (execute_fixup_cfg): Likewise.
16130 (tree_rest_of_compilation): Likewise.
16131 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
16132 * tree-sra.c (ipa_early_sra): Likewise.
16133 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
16134 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
16135 * ipa.c (record_cdtor_fn): Likewise.
16136 * ipa-inline.c (cgraph_early_inlining): Likewise.
16137 (compute_inline_parameters_for_current): Likewise.
16138 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
16139 * ipa-pure-const.c (local_pure_const): Likewise.
16140 * ipa-split.c (split_function): Likewise.
16141 (execute_split_functions): Likewise.
16142 * cgraphbuild.c (build_cgraph_edges): Likewise.
16143 (rebuild_cgraph_edges): Likewise.
16144 (cgraph_rebuild_references): Likewise.
16145 (remove_cgraph_callee_edges): Likewise.
16146 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
16147 (verify_cgraph_node): Likewise.
16148 (cgraph_analyze_functions): Likewise.
16149 (cgraph_preserve_function_body_p): Likewise.
16150 (save_inline_function_body): Likewise.
16151 (save_inline_function_body): Likewise.
16152 * tree-inline.c (copy_bb): Likewise.
16153 (optimize_inline_calls): Likewise.
16154
6416d4a5 161552011-04-11 Martin Jambor <mjambor@suse.cz>
16156
16157 PR tree-optimization/48195
16158 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
16159 ipa_check_create_edge_args.
16160 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
16161 ipa_check_create_edge_args.
16162 * ipa-inline.c (inline_generate_summary): Do not call
16163 ipa_check_create_node_params and ipa_check_create_edge_args.
16164 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
16165 ipa_check_create_edge_args.
16166
d82cf2b2 161672011-04-09 Anatoly Sokolov <aesok@post.ru>
16168
16169 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
16170 instead of loop.
16171 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
16172 * function.c (record_hard_reg_sets): Likewise.
16173 * ira.c (compute_regs_asm_clobbered): Likewise.
16174 * sched-deps.c (sched_analyze_1): Likewise.
16175 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
16176
69c7c3a1 161772011-04-09 Xinliang David Li <davidxl@google.com>
16178
16179 PR tree-optimization/PR48484
16180 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
16181 has_valid_pred lazily
16182
33672307 161832011-04-09 Duncan Sands <baldrick@free.fr>
16184
16185 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
16186
1aaffeb7 161872011-04-08 Eric Botcazou <ebotcazou@adacore.com>
16188
16189 * combine.c (combine_validate_cost): Adjust comments. Set registered
16190 cost of I0 to zero at the end, if any.
16191
71320908 161922011-04-08 Xinliang David Li <davidxl@google.com>
16193
1aaffeb7 16194 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
16195 to insane profile data.
71320908 16196
8154e1e3 161972011-04-08 Xinliang David Li <davidxl@google.com>
16198
16199 * ipa-cp.c (ipcp_update_profiling): Correct
16200 negative scale factor due to insane profile data.
16201
33e4567d 162022011-04-08 Xinliang David Li <davidxl@google.com>
16203
16204 * final.c (dump_basic_block_info): New function.
16205 (final): Dump basic block.
16206 (final_scan_insn): Remove old dump.
16207
8ea84229 162082011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
16209
1aaffeb7 16210 PR target/47829
16211 * config.gcc (i386-*-freebsd): Disable unwind table generation for
16212 crtbegin/crtend.
8ea84229 16213
409e049a 162142011-04-08 Michael Matz <matz@suse.de>
16215
16216 PR middle-end/48389
16217 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
16218 functions.
16219 (rebuild_jump_labels): Call rebuild_jump_labels_1.
16220 * rtl.h (rebuild_jump_labels_chain): Declare.
16221 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
16222 insns inserted on edges.
16223
9a4818f1 162242011-04-08 Joseph Myers <joseph@codesourcery.com>
16225
16226 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
16227 * config/arm/arm-arches.def: New.
16228 * config/arm/arm-opts.h: New.
16229 * config/arm/genopt.sh: New.
16230 * config/arm/arm-tables.opt: New (generated).
16231 * config/arm/arm.c (arm_handle_option, arm_target_help,
16232 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
16233 (all_architectures): Get most table contents from arm-arches.def.
16234 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
16235 arm_selected_tune here.
16236 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
16237 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
16238 (march=, mcpu=, mtune=): Use Enum and Var.
16239 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
16240 (arm.o): Update dependencies.
db012761 16241
409e049a 162422011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
db012761 16243
16244 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
16245 of header_file.
16246 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
16247 (write_typed_alloc_defns): Likewise.
16248 (main): Calls write_typed_alloc_defns with output_header.
16249
1dceb3f2 162502011-04-08 Vladimir Makarov <vmakarov@redhat.com>
16251
1aaffeb7 16252 PR inline-asm/48435
1dceb3f2 16253 * ira-color.c (setup_profitable_hard_regs): Add comments.
16254 Don't take prohibited hard regs into account.
16255 (setup_conflict_profitable_regs): Rename to
16256 get_conflict_profitable_regs.
16257 (check_hard_reg_p): Check prohibited hard regs.
16258
f2606961 162592011-04-08 Nathan Froyd <froydnj@codesourcery.com>
16260
16261 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
16262 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
16263 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
16264
5ddb2975 162652011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16266
16267 PR target/48366
16268 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
c063d2da 16269 move from floating point to shift amount register.
5ddb2975 16270 (emit_move_sequence): Remove secondary reload support for floating
16271 point to shift amount amount register copies.
16272 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
16273 amount register copies.
16274 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
16275 register, return false if mode isn't a scalar integer mode.
16276 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
16277
d71dc717 162782011-04-08 Richard Guenther <rguenther@suse.de>
16279
16280 * gimple.c (gimple_call_flags): Remove kludge.
16281
a060ed03 162822011-04-08 Alexander Monakov <amonakov@ispras.ru>
16283
16284 * sel-sched.c (sel_region_init): Move call to
16285 sel_setup_region_sched_flags after setup_current_loop_nest.
16286
c15d7785 162872011-04-08 Andrey Belevantsev <abel@ispras.ru>
16288
16289 PR rtl-optimization/48272
c15d7785 16290 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
16291 init_insn_reg_pressure_info. Adjust a caller.
16292 * sched-int.h (init_insn_reg_pressure_info): Declare.
16293 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
16294 when sched-pressure is enabled.
16295
e1f47fd3 162962011-04-08 Richard Guenther <rguenther@suse.de>
16297
16298 * gimple.c (gimple_set_modified): Do not queue calls to
16299 MODIFIED_NORETURN_CALLS here ...
16300 * tree-ssa-operands.c (update_stmt_operands): ... but here.
16301
f463da94 163022011-04-08 Richard Guenther <rguenther@suse.de>
16303
16304 PR lto/48467
16305 * toplev.c (lang_dependent_init): Do not open asm_out_file
16306 in WPA mode, nor perform debug machinery initialization.
16307 (finalize): Do not unlink asm_out_file in WPA mode.
16308
2de00a2d 163092011-04-08 Richard Guenther <rguenther@suse.de>
16310
16311 * gimple.h (gimple_call_fntype): New function.
16312 (gimple_call_return_type): Use it.
16313 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
16314 * gimple-low.c (gimple_check_call_args): Likewise.
16315 * gimple.c (gimple_call_flags): Likewise.
16316 (gimple_call_arg_flags): Likewise.
16317 (gimple_call_return_flags): Likewise.
16318 * tree-cfg.c (verify_gimple_call): Likewise.
16319 (do_warn_unused_result): Likewise.
16320 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
16321 * value-prof.c (gimple_ic_transform): Fix fndecl check.
16322
8ff642e9 163232011-04-08 Dmitry Melnik <dm@ispras.ru>
16324
16325 PR rtl-optimization/48235
16326 * sel-sched.c (code_motion_process_successors): Recompute the last
16327 insn in basic block if control flow changed.
16328 (code_motion_path_driver): Ditto. Recompute the first insn as well.
16329 Update condition for ilist_remove.
16330
b73edd22 163312011-04-08 Alexander Monakov <amonakov@ispras.ru>
16332
16333 PR rtl-optimization/48302
16334 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
16335 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
16336 it to record added preheader blocks.
16337 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
16338 on to sel_add_loop_preheaders.
16339 (sel_region_init): Move call to setup_current_loop_nest after
16340 sel_init_bbs.
16341
a8d6ade3 163422011-04-08 Alexander Monakov <amonakov@ispras.ru>
16343
16344 PR target/48273
16345 * cfgloop.h (loop_has_exit_edges): New helper.
16346 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
16347 non-clonable.
16348 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
16349 that have no exit edges.
16350
def66588 163512011-04-08 Alexander Monakov <amonakov@ispras.ru>
16352
16353 PR rtl-optimization/48442
16354 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
16355 all callers. Adjust assert.
16356
570e2049 163572011-04-08 Jakub Jelinek <jakub@redhat.com>
16358
16359 PR tree-optimization/48377
16360 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
16361 is_packed to true even for types with smaller TYPE_ALIGN than
16362 TYPE_SIZE.
16363
707b84a3 163642011-04-08 Richard Guenther <rguenther@suse.de>
16365
16366 PR bootstrap/48513
16367 * doc/tm.texi: Re-generate.
16368
08508cbf 163692011-04-08 Wei Guozhi <carrot@google.com>
16370
16371 PR target/47855
16372 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
16373 * config/arm/arm.c (arm_attr_length_push_multi): New function.
16374 * config/arm/arm.md (*push_multi): Change the length computation to
16375 call a C function.
16376
fa8d6f0f 163772011-04-08 Anatoly Sokolov <aesok@post.ru>
16378
16379 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
16380 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
16381 * doc/tm.texi: Regenerate.
16382 * system.h (ASM_OUTPUT_BSS): Poison.
16383 * varasm.c (asm_output_bss): Remove function.
16384 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
d8f82f6b 16385
fa8d6f0f 16386 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
16387 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
16388 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
16389 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16390 Likewise.
16391 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16392 Likewise.
16393 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16394 Likewise.
16395 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
16396
8f139ed9 163972011-04-07 Joseph Myers <joseph@codesourcery.com>
16398
16399 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
16400 EnumValue lines.
16401
17e4f171 164022011-04-07 Joseph Myers <joseph@codesourcery.com>
16403
16404 * config/m68k/m68k.c (m68k_handle_option): Don't handle
16405 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
16406 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
16407 OPT_mcpu32.
16408 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16409 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
16410 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
16411 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
16412 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
16413 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
16414 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16415 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
16416 options. Don't map other m68k options manually. Don't handle
16417 old-style options as canonical.
16418 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
d8f82f6b 16419 * doc/install.texi (m68k-*-*): Document binutils version requirement.
17e4f171 16420
202bbc06 164212011-04-07 Eric Botcazou <ebotcazou@adacore.com>
16422
16423 * basic-block.h (force_nonfallthru): Move to...
16424 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
16425 (force_nonfallthru): ...here.
16426 * cfghooks.c (force_nonfallthru): New function.
16427 * cfgrtl.c (force_nonfallthru): Rename into...
16428 (rtl_force_nonfallthru): ...this.
16429 (commit_one_edge_insertion): Do not set AUX field.
16430 (commit_edge_insertions): Do not discover new basic blocks.
16431 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
16432 (cfg_layout_rtl_cfg_hooks): Likewise.
16433 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
16434 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
16435 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
16436
91d92c6c 164372011-04-07 Anatoly Sokolov <aesok@post.ru>
16438
16439 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
16440 Remove macros.
16441
45c0368c 164422011-04-07 Uros Bizjak <ubizjak@gmail.com>
16443
16444 * config/i386/sse.md: Update copyright year.
16445 (avxcvtvecmode): Remove.
16446 (sse_movhlps): Merge with *avx_movhlps.
16447 (sse_movlhps): Merge with *avx_movlhps.
16448 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
16449 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
16450 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
16451 (sse_loadhps): Merge with *avx_loadhps.
16452 (sse_storelps): Merge with *avx_storelps.
16453 (sse_loadlps): Merge with *avx_loadlps.
16454 (sse_movss): Merge with *avx_movss.
16455 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
16456 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
16457 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
16458 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
16459 (vec_set<mode>_0): Ditto.
16460 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
16461 (sse4_1_insertps): Merge with *avx_insertps.
16462 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
16463 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
16464 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
16465 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
16466 (sse2_storehpd): Merge with *avx_storehpd.
16467 (sse2_loadhpd): Merge with *avx_loadhpd.
16468 (sse2_loadlpd): Merge with *avx_loadlpd.
16469 (sse2_movsd): Merge with *avx_movsd.
16470 (*vec_concatv2df): Merge with *vec_concatv2df.
16471
0444b5eb 164722011-04-07 Jakub Jelinek <jakub@redhat.com>
16473
16474 PR debug/48343
16475 * combine.c (combine_instructions): Add last_combined_insn,
45c0368c 16476 update it if insn is after it, pass it to all try_combine calls.
0444b5eb 16477 (try_combine): Add last_combined_insn parameter, pass it instead of
16478 i3 to propagate_for_debug.
16479
45c0368c 164802011-04-07 Nick Clifton <nickc@redhat.com>
23add660 16481
16482 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
16483 to handle MDR <-> data register transfers.
16484 (movhi_internal): Likewise.
16485
1994bf18 164862011-04-07 Alan Modra <amodra@gmail.com>
16487
16488 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
16489 previous stack info.
16490
0f38cfdd 164912011-04-07 Tom de Vries <tom@codesourcery.com>
16492
16493 PR target/43920
16494 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
16495 flow_find_cross_jump. Swap variables to implement backward replacement.
16496 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
16497
4ef44dfa 164982011-04-07 Tom de Vries <tom@codesourcery.com>
16499
16500 PR target/43920
16501 * cfgcleanup.c (walk_to_nondebug_insn): New function.
45c0368c 16502 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
16503 and bb2.
16504 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
16505 src1 or src2. Redirect edges to the last basic block. Update
16506 frequency and count on multiple basic blocks in case of fallthru.
4ef44dfa 16507
764aef11 165082011-04-07 Tom de Vries <tom@codesourcery.com>
16509
16510 PR target/43920
16511 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
16512 function.
45c0368c 16513 (old_insns_match_p): Change return type. Replace return false/true
16514 with return dir_none/dir_both. Use can_replace_by.
16515 (flow_find_cross_jump): Add dir_p parameter. Init replacement
16516 direction from dir_p. Register replacement direction in dir, last_dir
16517 and afterlast_dir. Handle new return type of old_insns_match_p using
764aef11 16518 merge_dir. Return replacement direction in dir_p.
16519 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
16520 return type of old_insns_match_p.
16521 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
16522 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
16523 flow_find_cross_jump.
16524 * basic-block.h (enum replace_direction): New type.
16525 (flow_find_cross_jump): Add parameter to declaration.
16526
887423c0 165272011-04-06 Uros Bizjak <ubizjak@gmail.com>
16528
16529 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
16530 (AVXMODEDCVTPS2DQ): Ditto.
16531 (VEC_FLOAT_MODE): Ditto.
16532 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
16533 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16534 (<any_logic:code><mode>3): Use VF mode iterator.
16535 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
16536 Use VF mode iterator.
16537 (copysign<mode>3): Use VF mode iterator.
16538 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
16539 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16540 (*<any_logic:code><MODEF:mode>3): Merge with
16541 *avx_<any_logic:code><MODEF:mode>3.
16542 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
16543 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
16544 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
16545 (avx_cvtdq2ps<avxmodesuffix>): Remove.
16546 (sse2_cvtdq2ps): Use %v modifier.
16547 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
16548 (avx_cvtps2dq<avxmodesuffix>): Remove.
16549 (sse2_cvtps2dq): Use %v modifier.
16550 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
16551 (avx_cvttps2dq<avxmodesuffix>): Remove.
16552 (sse2_cvttps2dq): Use %v modifier.
16553 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
16554 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
16555 (sse2_cvtsd2siq): Fix insn template.
16556 (sse2_cvtsd2siq_2): Ditto.
16557 (sse2_cvttsd2siq): Ditto.
16558 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
16559 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
16560
cf09cacb 165612011-04-06 Joseph Myers <joseph@codesourcery.com>
16562
16563 * gcov-io.c: Use GCC Runtime Library Exception.
16564
9410ca1e 165652011-04-06 Jakub Jelinek <jakub@redhat.com>
16566
16567 PR debug/48466
16568 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
16569 as base_reg whatever register reg has been eliminated to, instead
16570 of hardcoding STACK_POINTER_REGNUM.
16571
c94b1d0e 165722011-04-06 Joseph Myers <joseph@codesourcery.com>
16573
16574 * doc/tm.texi.in: Document C target hooks as separate from general
16575 target hooks.
16576 * doc/tm.texi: Regenerate.
16577 * genhooks.c (struct hook_desc): Add docname field.
16578 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
16579 docname field.
16580 (hook_array): Include c-target.def.
16581 (emit_documentation): Use docname field in output.
16582 (emit_init_macros): Take docname argument. Only emit definitions
16583 for hooks matching docname.
16584 (main): Expect additional arguments in all cases. Pass argument
16585 to emit_init_macros.
16586 * target.def: Move initial macro definitions and comments to
16587 target-hooks-macros.h.
16588 (gcc_targetcm): Move to c-family/c-target.def.
16589 * target.h (targetcm): Move declaration to c-family/c-target.h.
16590 * targhooks.c (default_handle_c_option): Move to
16591 c-family/c-opts.c.
16592 * targhooks.h (default_handle_c_option): Move declaration to
16593 c-family/c-common.h.
16594 * target-hooks-macros.h: New file.
16595 * config.gcc (target_has_targetcm): Define and use to add to
16596 c_target_objs and cxx_target_objs.
16597 * config/default-c.c: New file.
16598 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
16599 of target.h and target-def.h.
16600 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
16601 (darwin_objc_construct_string, darwin_cfstring_ref_p,
16602 darwin_check_cfstring_format_arg): Make static.
16603 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16604 TARGET_STRING_OBJECT_REF_TYPE_P,
16605 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
16606 * config/darwin-protos.h (darwin_objc_construct_string,
16607 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
16608 declare.
16609 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16610 TARGET_STRING_OBJECT_REF_TYPE_P,
887423c0 16611 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
c94b1d0e 16612 * config/t-darwin (darwin-c.o): Update dependencies.
16613 * system.h (TARGET_HAS_TARGETCM): Poison.
16614 * Makefile.in (TARGET_H): Update.
16615 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
16616 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
16617 (default-c.o): New target.
16618 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
887423c0 16619 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
c94b1d0e 16620 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
16621 c-target.def.
16622 (build/genhooks.o): Update dependencies.
16623
cd800728 166242011-04-06 Richard Guenther <rguenther@suse.de>
887423c0 16625
cd800728 16626 * ipa-inline.c (enum inlining_mode): Remove.
16627 (cgraph_flatten): Use some other token.
16628 (cgraph_edge_early_inlinable_p): New function, split out from ...
16629 (cgraph_perform_always_inlining): New function, split out from ...
16630 (cgraph_decide_inlining_incrementally): ... here.
16631 (cgraph_mark_inline_edge): Adjust.
16632 (cgraph_early_inlining): Re-structure.
16633 (pass_early_inline): Require SSA form.
16634
c6bc553f 166352011-04-06 Andrew Stubbs <ams@codesourcery.com>
d91bf430 16636 Julian Brown <julian@codesourcery.com>
16637 Mark Shinwell <shinwell@codesourcery.com>
16638
16639 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
16640 LO_REGS only for Thumb-1.
16641 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
16642 be used in short instructions when optimising for size on Thumb-2.
16643
28f9c1a1 166442011-04-06 Eric Botcazou <ebotcazou@adacore.com>
16645
16646 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
16647 associated with user returns to be preserved.
16648
96df1423 166492011-04-06 Tristan Gingold <gingold@adacore.com>
16650
c6bc553f 16651 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
16652 symbol_queue_size, DBXOUT_DECR_NESTING,
96df1423 16653 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
16654 if XCOFF_DEBUGGING_INFO.
16655
27e5502d 166562011-04-06 Uros Bizjak <ubizjak@gmail.com>
16657
16658 * config/i386/i386.md (attribute isa): New.
16659 (attribute enabled): New.
16660 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
16661 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
16662 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
16663 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
16664 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
16665 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16666 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
16667 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
16668
16669 * config/i386/sse.md (VF): New mode iterator.
16670 (VF1): Ditto.
16671 (VF2): Ditto.
16672 (VF_128): Ditto.
16673 (SSEMODEF4): Remove.
16674 (attribute sse): Handle V8SF and V4DF modes.
16675 (<absneg:code><mode>2): Use VF mode iterator.
16676 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
16677 mode iterator.
16678 (<plusminus_insn><mode>3): Use VF mode iterator.
16679 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16680 Use VF mode iterator.
16681 (<sse>_vm<plusminus_insn><mode>3): Merge with
16682 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
16683 (mul<mode>3): Use VF mode iterator.
16684 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
16685 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
16686 mode iterator.
16687 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
16688 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
16689 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
16690 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
16691 mode iterator.
16692 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
16693 Use VF1 mode iterator.
16694 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
16695 (sqrt<VF2:mode>2): New expander.
16696 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
16697 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
16698 and sqrtv2df2. Use VF mode iterator.
16699 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
16700 mode iterator.
16701 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
16702 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
16703 Use VF1 mode iterator.
16704 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
16705 (<smaxmin:code><mode>3): Use VF mode iterator.
16706 (*<smaxmin:code><mode>3_finite): Merge with
16707 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
16708 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16709 (<sse>_vm<smaxmin:code><mode>2): Merge with
16710 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
16711 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
16712 mode iterator.
16713 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
16714 mode iterator.
16715 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
16716 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
16717 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
16718 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
16719 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
16720 VF mode iterator.
16721 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
16722 Use VF_128 mode iterator.
16723 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
16724 mode iterator.
16725 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
16726 VF_128 mode iterator.
16727 (vcond<mode>): Use VF mode iterator.
16728 * config/i386/predicates.md (sse_comparison_operator): Merge with
16729 avx_comparison_float_operator. Do not declare as special_predicate.
16730 * config/i386/i386.c (struct builtin_description): Update for renamed
16731 compare patterns.
16732 (ix86_expand_args_builtin): Ditto.
16733 (ix86_expand_sse_compare_mask): Ditto.
16734
5ed92cc9 167352011-04-06 Richard Guenther <rguenther@suse.de>
16736
16737 * tree-inline.c (estimate_num_insns): For calls simply account
16738 for all passed arguments and a used return value.
16739
17c205c9 167402011-04-06 Richard Guenther <rguenther@suse.de>
27e5502d 16741
17c205c9 16742 PR tree-optimization/47663
16743 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
16744 call_stmt_time fields.
16745 (cgraph_edge_inlinable_p): Declare.
16746 (cgraph_edge_recursive_p): New inline function.
16747 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
16748 (cgraph_clone_edge): Copy it.
16749 * ipa-inline.c (cgraph_estimate_edge_time): New function.
16750 Account for call stmt time.
16751 (cgraph_estimate_time_after_inlining): Take edge argument.
16752 (cgraph_estimate_edge_growth): Account call stmt size.
16753 (cgraph_estimate_size_after_inlining): Take edge argument.
16754 (cgraph_mark_inline_edge): Adjust.
16755 (cgraph_check_inline_limits): Likewise.
16756 (cgraph_recursive_inlining_p): Remove.
16757 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
16758 (cgraph_decide_recursive_inlining): Take edge argument and
16759 adjust.
16760 (cgraph_decide_inlining_of_small_functions): Do not avoid
16761 diags for recursive inlining here.
16762 (cgraph_flatten): Adjust.
16763 (cgraph_decide_inlining_incrementally): Likewise.
16764 (estimate_function_body_sizes): Remove call cost handling.
16765 (compute_inline_parameters): Initialize caller edge call costs.
16766 (cgraph_estimate_edge_growth): New function.
16767 (cgraph_estimate_growth): Use it.
16768 (cgraph_edge_badness): Likewise.
16769 (cgraph_check_inline_limits): Take an edge argument.
16770 (cgraph_decide_inlining_of_small_functions): Adjust.
16771 (cgraph_decide_inlining): Likewise.
16772 * tree-inline.c (estimate_num_insns): Only account for call
16773 return value if it is used.
16774 (expand_call_inline): Avoid diagnostics on recursive inline
16775 functions here.
16776 * lto-cgraph.c (lto_output_edge): Output edge call costs.
16777 (input_edge): Input edge call costs.
16778
85a30355 167792011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16780
16781 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
16782
3df28f22 167832011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
16784
16785 * doc/invoke.texi (Spec Files): Fix typo.
16786
b39a37c3 167872011-04-06 Eric Botcazou <ebotcazou@adacore.com>
16788
16789 * profile.c (branch_prob): Move declaration of local variable. Remove
16790 obsolete ??? comment. Expand the location explicitly instead of using
16791 the LOCATION_FILE and LOCATION_LINE macros.
16792
a6864a24 167932011-04-06 Wei Guozhi <carrot@google.com>
16794
16795 PR target/47855
16796 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
16797 (arm_cond_branch): Likewise.
16798 (arm_cond_branch_reversed): Likewise.
16799 (arm_jump): Likewise.
16800 (push_multi): Likewise.
16801 * config/arm/constraints.md (Py): New constraint.
16802
7f146d20 168032011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16804
16805 PR bootstrap/48471
16806 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
16807 Move these...
16808 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
16809 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
16810 #ifdef DBX_DEBUGGING_INFO.
16811
2cd04cca 168122011-04-05 Bernd Schmidt <bernds@codesourcery.com>
16813
16814 PR bootstrap/48403
16815 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
16816 if old and new states differ.
16817
a6452d58 168182011-04-05 Joseph Myers <joseph@codesourcery.com>
16819
16820 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
16821 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
16822 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16823 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
16824 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
16825 mcfv4e): Use Alias.
16826 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
16827 ColdFire options to -mcpu= options.
16828
895cf925 168292011-04-05 Jeff Law <law@redhat.com>
16830
16831 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
16832 check if BB is a successor of LOOP->header and return
16833 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
16834
748fd717 168352011-04-05 Steven Bosscher <steven@gcc.gnu.org>
16836
16837 * cprop.c (struct reg_use): Remove.
16838 (reg_use_table): Make an array of RTX.
16839 (find_used_regs, constprop_register, local_cprop_pass,
16840 bypass_block): Simplify users of reg_use_table.
16841 (cprop_insn): Likewise. Iterate if copy propagation succeeded
16842 on one of the uses found by find_used_regs.
16843
cebe9a67 168442011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16845
16846 PR bootstrap/48469
16847 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
16848 declaration.
16849
2415b8ff 168502011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16851
16852 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
16853 as an rtx.
16854 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
16855
72269ab0 168562011-04-05 Steven Bosscher <steven@gcc.gnu.org>
16857
16858 PR middle-end/48441
16859 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
16860
2a0877d8 168612011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16862
16863 * combine.c: Include obstack.h.
16864 (struct insn_link): Define.
16865 (uid_log_links): Adjust type.
16866 (FOR_EACH_LOG_LINK): New macro.
16867 (insn_link_obstack): Declare.
16868 (alloc_insn_link): Define.
16869 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
16870 type of link variables.
16871 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
16872 (try_combine, record_promoted_values, distribute_notes): Likewise.
16873 (distribute_links): Likewise. Tweak prototype.
16874 (clear_log_links): Delete.
16875 (adjust_for_new_dest): Call alloc_insn_link.
16876 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
16877
577cca34 168782011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16879
16880 * gcse.c (modify_mem_list): Convert to an array of VECs.
16881 (canon_modify_mem_list, compute_transp): Tweak formatting.
16882 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
16883 (load_killed_in_block_p): Likewise.
16884 (record_last_mem_set_info): Likewise.
16885 (clear_modify_mem_tables): Likewise.
16886
bcf58f16 168872011-04-05 Tom de Vries <tom@codesourcery.com>
16888
16889 PR middle-end/48461
16890 * function.c (emit_use_return_register_into_block): Only define if
16891 HAVE_return.
16892
5cca4f1d 168932011-04-05 Eric Botcazou <ebotcazou@adacore.com>
16894
16895 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
16896
8cb00d70 168972011-04-05 Joseph Myers <joseph@codesourcery.com>
16898
16899 * config/rx/rx-opts.h: New.
16900 * config/rx/rx.c (rx_cpu_type): Remove.
16901 (rx_handle_option): Don't assert that global structures are in
16902 use. Access variables via opts pointer. Defer most handling of
16903 OPT_mint_register_. Use error_at.
16904 (rx_option_override): Handle deferred OPT_mint_register_ here.
16905 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
16906 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
16907 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
16908 (rx_cpu_types): New Enum and EnumValue entries.
16909 (mint-register=): Use Defer and use Var accordingly.
16910
00e3fe44 169112011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16912
16913 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
16914 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
16915 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
16916 Move these...
16917 (debug_free_queue, debug_nesting, symbol_queue_index):
16918 ...and these...
16919 * dbxout.c: ...to here. Make static.
16920
57c8e46c 169212011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16922
16923 * gcse.c (modify_pair): Define. Define a VEC of it.
16924 (canon_modify_mem_list): Convert to an array of VECs.
16925 (free_insn_expr_list_list): Delete.
16926 (clear_modify_mem_tables): Call VEC_free instead.
16927 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
16928 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
16929 (canon_list_insert, compute_transp): Likewise.
16930
ea5709fb 169312011-04-05 Tom de Vries <tom@codesourcery.com>
16932
16933 PR target/43920
16934 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
16935 for size.
16936
f2c8a251 169372011-04-05 Tom de Vries <tom@codesourcery.com>
16938
16939 PR target/43920
16940 * function.c (emit_use_return_register_into_block): New function.
16941 (thread_prologue_and_epilogue_insns): Use
16942 emit_use_return_register_into_block.
16943
e1ebb662 169442011-04-05 Tom de Vries <tom@codesourcery.com>
16945
16946 PR target/43920
16947 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
16948 insn.
16949
e8911909 169502011-04-05 Tom de Vries <tom@codesourcery.com>
16951
16952 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
16953
e7d6d136 169542011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
16955
d8f82f6b 16956 * config/arm/arm.md (define_constants for unspec): Replace with
16957 define_c_enum.
16958 (define_constants for unspecv): Replace with define_c_enum.
16959 * config/arm/neon.md (define_constants for unspec): Replace with
16960 define_c_enum.
e7d6d136 16961
f773da64 169622011-04-04 Richard Henderson <rth@redhat.com>
16963
62741f83 16964 PR bootstrap/48400
f773da64 16965 * dwarf2out.c (output_line_info): Always emit line info from
16966 at least one section.
16967 (dwarf2out_init): Create text_section_line_info here ...
16968 (set_cur_line_info_table): ... not here.
16969
62741f83 169702011-04-04 Vladimir Makarov <vmakarov@redhat.com>
212e5c4f 16971
16972 PR target/48380
16973 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
62741f83 16974 not called.
212e5c4f 16975
62741f83 16976 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
212e5c4f 16977
c8a32de3 169782011-04-04 Steven Bosscher <steven@gcc.gnu.org>
16979
202325b0 16980 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
16981 (expr_equiv_p): Remove.
16982 (insert_set_in_table): Look at <dest, src> pair instead of expr.
16983 (hash_scan_set): Update call to insert_set_in_table.
16984 (dump_hash_table): Dump <dest, src> pair.
16985 (lookup_set): Simplify. Lookup <dest, src> pair.
16986 (compute_transp): Remove, fold heavily simplified code into...
16987 (compute_local_properties): ...here. Expect COMP and TRANSP
16988 unconditionally.
16989 (find_avail_set): Take set directly from struct expr.
16990 (find_bypass-set): Likewise.
16991 (bypass_block): Likewise.
16992 (cprop_insn): Likewise. Remove redundant INSN_P test.
16993
971ce6d5 16994 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
16995 checks on form of COND from find_implicit_sets to here.
16996 (find_implicit_sets): Cleanup control flow. Split critical edges
16997 if it exposes implicit sets. Allocate/resize implicit_sets as
16998 necessary.
16999 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
17000 changed something. Run df_analyze after find_implicit_sets if any
17001 edges were split. Do not allocate implicit_sets here.
17002
540960d1 17003 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
17004 (gcse_obstack): Renamed to cprop_obstack.
17005 (GNEW, GNEWVEC, GNEWVAR): Remove.
17006 (gmalloc): Remove.
17007 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
17008 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
17009 (gcse_alloc): Likewise, and rename to cprop_alloc.
17010 (alloc_gcse_men, free_gcse_mem): Remove.
17011 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
17012 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
17013 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
17014
c8a32de3 17015 * cprop.c (oprs_not_set_p): Remove.
17016 (mark_set, mark_clobber): Remove.
17017 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
17018 (reg_not_set_p): New function.
17019 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
17020 (cprop_insn): Likewise.
17021 (cprop_jump): Use FOR_EACH_EDGE.
17022
b5f4bfde 170232011-04-04 Bernd Schmidt <bernds@codesourcery.com>
17024
17025 PR bootstrap/48403
17026 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
17027 (rank_for_schedule): Use scheduled_insns vector instead of
17028 last_scheduled_insn.
17029 (ok_for_early_queue_removal): Likewise.
17030 (queue_to_ready): Search forward in nonscheduled_insns_begin if
17031 we have a dbg_cnt.
17032 (choose_ready): Likewise.
17033 (commit_schedule): Use VEC_iterate.
17034 (schedule_block): Initialize nonscheduled_insns_begin. If we have
17035 a dbg_cnt, use it and ensure the first insn is in the ready list.
17036 (haifa_sched_init): Allocate scheduled_insns.
17037 (sched_extend_ready_list): Don't allocate it; reserve space.
17038 (haifa_sched_finish): Free it.
17039
c3be4b75 170402011-04-04 Joseph Myers <joseph@codesourcery.com>
17041
17042 * optc-gen.awk: Always remove type from Variable entry before
17043 recording in var_seen.
17044
8ea8dad9 170452011-04-04 Eric Botcazou <ebotcazou@adacore.com>
17046
17047 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
17048 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
17049 call to tidy_fallthru_edges.
17050
cb14e058 170512011-04-04 Joseph Myers <joseph@codesourcery.com>
17052
17053 * doc/options.texi (ToLower): Document.
45c0368c 17054 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
cb14e058 17055 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
17056 * opts.h (cl_option): Add cl_tolower field.
17057 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
17058 arguments with lowercase strings.
17059 * config/rx/rx.opt (mcpu=): Add ToLower.
17060 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
17061 argument.
17062
f47cf939 170632011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
17064
17065 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
17066
ef0fd182 170672011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
17068
17069 * config/vax/vax.c: Include reload.h.
17070
10829e0b 170712011-04-04 Anatoly Sokolov <aesok@post.ru>
17072
17073 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
17074 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17075 (sparc_preferred_reload_class): New function.
17076
3e549002 170772011-04-04 Jakub Jelinek <jakub@redhat.com>
17078
517579e0 17079 PR debug/48401
3e549002 17080 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17081 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
17082
544d4f58 170832011-04-03 Nathan Froyd <froydnj@codesourcery.com>
17084
17085 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
17086 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
17087
b47778c4 170882011-04-03 Anatoly Sokolov <aesok@post.ru>
17089
17090 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
17091 (ASM_OUTPUT_ALIGNED_BSS): Define.
17092
5cd33168 170932011-04-03 Michael Matz <matz@suse.de>
17094
17095 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
17096 and next_slot members.
17097 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
17098 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
17099 (lto_streamer_cache_append): Declare.
17100 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
17101 unsigned index, remove offset parameter, ensure that we append
17102 or update existing entries.
17103 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
17104 parameter, update next_slot for append.
17105 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
17106 parameter.
17107 (lto_streamer_cache_insert_at): Likewise.
17108 (lto_streamer_cache_append): New function.
17109 (lto_streamer_cache_lookup): Use unsigned index.
17110 (lto_streamer_cache_get): Likewise.
17111 (lto_record_common_node): Don't test tree_node_can_be_shared.
17112 (preload_common_node): Adjust call to lto_streamer_cache_insert.
17113 (lto_streamer_cache_delete): Don't free offsets member.
17114 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
17115 (lto_output_string_with_length): Use lto_output_data_stream.
17116 (lto_output_tree_header): Remove ix parameter, don't write it.
17117 (lto_output_builtin_tree): Likewise.
17118 (lto_write_tree): Adjust callers to above, don't track and write
17119 offset, write unsigned index.
17120 (output_unreferenced_globals): Don't emit all global vars.
17121 (write_global_references): Use unsigned indices.
17122 (lto_output_decl_state_refs): Likewise.
17123 (write_symbol): Likewise.
17124 * lto-streamer-in.c (lto_input_chain): Move earlier.
17125 (input_function): Use unsigned index.
17126 (input_alias_pairs): Don't read and then ignore all global vars.
17127 (lto_materialize_tree): Remove ix_p parameter, don't read index,
17128 don't pass it back, use lto_streamer_cache_append.
17129 (lto_register_var_decl_in_symtab): Use unsigned index.
17130 (lto_register_function_decl_in_symtab): Likewise.
17131 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
17132 index.
17133 (lto_get_builtin_tree): Don't read index, use
17134 lto_streamer_cache_append.
17135 (lto_read_tree): Adjust call to lto_materialize_tree.
17136
17137 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
17138 don't use function calls in arguments to MIN.
17139
17140 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
17141 twice.
17142
17143 * gimple.c (gimple_type_leader_entry): Mark deletable.
17144
a4649884 171452011-04-03 Alan Modra <amodra@gmail.com>
17146
17147 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
17148
9ccd0eb4 171492011-04-03 Michael Matz <matz@suse.de>
17150
17151 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
17152 an integer.
17153 * tree.h (tree_decl_non_common.vindex): Adjust comment.
17154
bb903e9c 171552011-04-03 Michael Matz <matz@suse.de>
17156
e8b2c048 17157 * cgraphbuild.c (record_reference): Canonicalize constructor values.
bb903e9c 17158 * gimple-fold.c (canonicalize_constructor_val): Accept being called
17159 without function context.
17160 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
17161 current_function_decl and cfun.
17162
e7e718d0 171632011-04-03 Michael Matz <matz@suse.de>
17164
17165 * tree.c (decl_init_priority_insert): Don't create entry for
17166 default priority.
17167 (decl_fini_priority_insert): Ditto.
17168 (fields_compatible_p, find_compatible_field): Remove.
17169 * tree.h (fields_compatible_p, find_compatible_field): Remove.
17170 * gimple.c (gimple_compare_field_offset): Adjust block comment.
17171
e73ba0a7 171722011-04-03 Eric Botcazou <ebotcazou@adacore.com>
17173
17174 * combine.c (try_combine): Remove useless local variable.
17175
e257cde2 171762011-04-03 Richard Guenther <rguenther@suse.de>
e7e718d0 17177 Ira Rosen <ira.rosen@linaro.org>
e257cde2 17178
17179 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
17180 non-variable offsets and compare the remaining bases of the two
17181 accesses instead of looking for exact same data-ref.
17182
2255eb8d 171832011-04-02 Kai Tietz <ktietz@redhat.com>
17184
6b9414b9 17185 PR target/48416
17186 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
17187
2255eb8d 17188 * i386.c (ix86_is_msabi_thiscall): New helper function.
17189 (ix86_is_type_thiscall): New helper function.
17190 (ix86_comp_type_attributes): Handle thiscall for method-functions
17191 special.
17192 (init_cumulative_args): Likewise.
17193 (find_drap_reg): Likewise.
17194 (ix86_static_chain): Likewise.
17195 (x86_this_parameter): Likewise.
17196 (x86_output_mi_thunk): Likewise.
17197
818dee1b 171982011-04-01 Olivier Hainque <hainque@adacore.com>
e7e718d0 17199 Nicolas Setton <setton@adacore.com>
17200 Eric Botcazou <ebotcazou@adacore.com>
818dee1b 17201
17202 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
17203 (add_gnat_descriptive_type_attribute): New function.
17204 (gen_array_type_die): Call it.
17205 (gen_enumeration_type_die): Likewise.
17206 (gen_struct_or_union_type_die): Likewise.
17207 (modified_type_die): Likewise.
17208 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
17209 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
17210 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
17211
b6a800c7 172122011-04-01 Jakub Jelinek <jakub@redhat.com>
17213
17214 PR bootstrap/48148
17215 * dwarf2out.c (resolve_addr): Don't call force_decl_die
17216 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
17217
17218 Revert:
17219 2011-03-17 Richard Guenther <rguenther@suse.de>
17220
17221 PR bootstrap/48148
17222 * lto-cgraph.c (input_overwrite_node): Clear the abstract
17223 origin for decls in other ltrans units.
17224 (input_varpool_node): Likewise.
17225
3a175160 172262011-04-01 Jakub Jelinek <jakub@redhat.com>
17227
17228 PR middle-end/48335
17229 * expr.c (expand_assignment): Handle all possibilities
17230 if TO_RTX is CONCAT.
e8b2c048 17231 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
3a175160 17232 (store_split_bit_field): If SUBREG_REG (op0) or
17233 op0 itself has smaller mode than word, return it
17234 for offset 0 and const0_rtx for out-of-bounds stores.
17235 If word is const0_rtx, skip it.
17236
87ad9aff 172372011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
17238
17239 * config/h8300/h8300.c (print_operand_address): Rename to...
17240 (h8300_print_operand_address): ...this. Make static. Adjust comments.
17241 Call h8300_print_operand and h8300_print_operand_address instead of
17242 print_operand and print_operand_address. Declare.
17243 (print_operand): Renake to...
17244 (h8300_print_operand): ...this. Make static. Adjust comments.
17245 Call h8300_print_operand instead of print_operand. Declare.
17246 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
17247 (h8300_register_move_cost): Likewise.
17248 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
17249 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
17250 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
17251 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
17252 * config/h8300/h8300-protos.h (print_operand): Delete.
17253 (print_operand_address): Delete.
17254
8d141c17 172552011-04-01 Richard Henderson <rth@redhat.com>
17256
17257 PR 48400
17258 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
17259 in strict mode before dwarf4. Re-order tests to early out
17260 before switching sections.
17261
424f5954 172622011-04-01 Nathan Froyd <froydnj@codesourcery.com>
17263
17264 * config/h8300/constraints.md: New file.
17265 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
17266 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
17267 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
17268 * config/h8300/predicates.md (bit_operand): Likewise.
17269 (incdec_operand): Use satisfies_constraint_M and
17270 satisfies_constraint_O. Don't use C code block.
17271 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
17272 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
17273 (compute_mov_length): Use satisfies_constraint_G.
17274 (fix_bit_operand): Use satisfies_constraint_U.
17275 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
17276 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
17277 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
17278 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
17279 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
17280 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
17281 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17282 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
17283 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
17284 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
17285 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
17286 (EXTRA_MEMORY_CONSTRAINT): Delete.
17287
7d9e1f9b 172882011-04-01 Andrew Pinski <pinskia@gmail.com>
17289 Michael Meissner <meissner@linux.vnet.ibm.com>
17290
17291 PR target/48262
17292 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
17293 operands, as per the specifications.
17294
17295 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
17296 (vec_extract_evenv4sf): Ditto.
17297 (vec_extract_evenv8hi): Ditto.
17298 (vec_extract_evenv16qi): Ditto.
17299 (vec_extract_oddv4si): Ditto.
17300
cb18bd3c 173012011-03-31 Mark Wielaard <mjw@redhat.com>
17302
17303 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
17304 high_pc attribute if the CU has no associated code. Only output
17305 DW_AT_entry_pc for CU if not generating strict dwarf and
17306 dwarf_version < 4.
17307
0a9bd7c9 173082011-04-01 Bernd Schmidt <bernds@codesourcery.com>
17309
17310 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
17311 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
17312 out of ...
17313 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
17314 * final.c (final_start_function): Call the new function rather
17315 than using a NULL argument for dwarf2out_frame_debug.
17316
79d8d931 17317 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
17318 that contains the prologue.
17319
b49b2e5c 17320 * haifa-sched.c (queue_insn): New arg REASON. All callers
17321 changed. Print it in debugging output.
17322
f193badd 17323 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
17324
d2412f57 17325 * sched-ebb.c (begin_schedule_ready): Remove second argument.
17326 Split most of the code into...
17327 (begin_move_insn): ... here. New function.
17328 (ebb_sched_info): Add a pointer to it.
17329 * haifa-sched.c (scheduled_insns): New static variable.
17330 (sched_extend_ready_list): Allocate it.
17331 (schedule_block): Use it to record the order of scheduled insns.
17332 Perform RTL changes to move insns only after all scheduling
17333 decisions have been made.
17334 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
17335 begin_move_insn field.
17336 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
17337 * sched-int.h (struct haifa_sched_info): Remove second argument
17338 from begin_schedule_ready hook. Add new member begin_move_insn.
17339 * sched-rgn.c (begin_schedule_ready): Remove second argument.
17340 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
17341
a0fc5ef1 17342 * haifa-sched.c (prune_ready_list): New function, broken out of
17343 schedule_block.
17344 (schedule_block): Use it.
17345
2ee49f28 173462011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17347
17348 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
17349
440fcad1 173502011-04-01 Kai Tietz <ktietz@redhat.com>
17351
17352 * config.gcc (*-*-mingw*): Allow as option the
17353 posix threading model.
27e5502d 17354 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
440fcad1 17355 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
17356 definition.
17357 (CPP_SPEC): Add pthread/no-pthread handling.
17358 (LIB_SPEC): Likewise.
17359 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
17360 (LIB_SPEC): Likewise.
17361 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
17362 flag to pass -pthread option for shared libgcc build.
17363 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
17364 for shared libgcc build.
17365 * config/i386/t-mingw-pthread: New file.
17366 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
17367 New define to enable use of library pthread by default.
17368 * config/i386/mingw.opt (pthread): New driver option.
17369 (no-pthread): New driver option.
e8b2c048 17370 * config/i386/cygming.opt: Make sure trailing empty line is retained.
440fcad1 17371 * config/i386/mingw-w64.opt: Likewise.
17372
6a0cacf9 173732011-04-01 Gary Funck <gary@intrepid.com>
5568b3c6 17374
17375 * c-decl.c (grokdeclarator): Fix formatting.
17376
32f79657 173772011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17378
17379 * expr.c (emit_block_move_via_movmem): Use n_generator_args
17380 instead of n_operands.
17381 (set_storage_via_setmem): Likewise.
17382 * optabs.c (maybe_gen_insn): Likewise.
17383 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
17384 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
17385 (mips_expand_builtin_direct): Likewise.
17386 * config/spu/spu.c (expand_builtin_args): Likewise.
17387
cf85f835 173882011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17389
17390 * recog.h (insn_data_d): Add n_generator_args.
17391 * genoutput.c (data): Likewise.
17392 (output_insn_data): Print it.
17393 (max_opno, num_dups): Delete.
17394 (scan_operands): Just fill in "d->operand[...]".
17395 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
17396
22add764 173972011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17398
17399 * gensupport.h (pattern_stats): New structure.
17400 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
17401 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
17402 (max_operand_1, max_operand_vec): Delete.
17403 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
17404
ede4ebcb 174052011-03-31 Nathan Froyd <froydnj@codesourcery.com>
17406
17407 * emit-rtl.c (emit_pattern_after_setloc): New function.
17408 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
17409 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
17410 (emit_pattern_after): New function.
17411 (emit_insn_after, emit_jump_insn_after): Call it.
17412 (emit_call_insn_after, emit_debug_insn_after): Likewise.
17413 (emit_pattern_before_setloc): New function.
17414 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
17415 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
17416 Likewise.
17417 (emit_pattern_before): New function.
17418 (emit_insn_before, emit_jump_insn_before): Call it.
17419 (emit_call_insn_before, emit_debug_insn_before): Likewise.
17420
1bc6c106 174212011-03-31 Richard Henderson <rth@redhat.com>
17422
17423 * dwarf2out.c (dw_separate_line_info_ref): Remove.
17424 (dw_separate_line_info_entry): Remove.
17425 (enum dw_line_info_opcode): New.
17426 (dw_line_info_entry): Use it.
17427 (dw_line_info_table, dw_line_info_table_p): New.
17428 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
17429 (line_info_table, line_info_label_num): Remove.
17430 (line_info_table_in_use): Remove.
17431 (separate_line_info_table): Remove.
17432 (separate_line_info_table_allocated): Remove.
17433 (separate_line_info_table_in_use): Remove.
17434 (LINE_INFO_TABLE_INCREMENT): Remove.
17435 (line_info_label_num): New.
17436 (cur_line_info_table): New.
17437 (text_section_line_info, cold_text_section_line_info): New.
17438 (separate_line_info): New.
17439 (SEPARATE_LINE_CODE_LABEL): Remove.
17440 (print_dwarf_line_table): Remove.
17441 (debug_dwarf): Don't dump it.
17442 (output_one_line_info_table): New.
17443 (output_line_info): Use it.
17444 (new_line_info_table): New.
17445 (set_cur_line_info_table): New.
17446 (dwarf2out_switch_text_section): Use it.
17447 (dwarf2out_begin_function): Likewise.
17448 (push_dw_line_info_entry): New.
17449 (dwarf2out_source_line): Rewrite for new line info tables.
17450 (dwarf2out_init): Remove dead initailizations.
17451
ec840af4 174522011-03-31 Joseph Myers <joseph@codesourcery.com>
17453
17454 * opts.h (cl_option): Add comments to fields. Add bit-fields for
17455 various flags.
17456 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
17457 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
17458 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
17459 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
17460 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
17461 * opt-functions.awk (flag_init, switch_bit_fields): New.
17462 (switch_flags): Don't handle flags moved to bit-fields. Don't
17463 generate CL_MISSING_OK or CL_SAVE.
17464 * optc-gen.awk: Update to generate bit-field output as well as
17465 flags field.
17466 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
17467 bit-field instead of CL_REJECT_DRIVER flag.
17468 * opts-common.c (generate_canonical_option,
17469 decode_cmdline_option): Use bit-fields instead of CL_* flags.
17470 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
17471 instead of CL_REJECT_NEGATIVE flag.
17472 * toplev.c (print_switch_values): Use cl_report bit-field instead
17473 of CL_REPORT flag.
17474
e4d0ac02 174752011-03-31 Eric Botcazou <ebotcazou@adacore.com>
17476
17477 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
17478 a zero minimum index only if it is redundant.
17479
3c5273ff 174802011-03-31 Vladimir Makarov <vmakarov@redhat.com>
17481
17482 PR rtl-optimization/48381
17483 * ira-color.c (assign_hard_reg): Use hard reg set intersection
17484 instead of ira_class_hard_reg_index for calculating conflicting
17485 hard registers.
17486
45a41a6c 174872011-03-31 Steven Bosscher <steven@gcc.gnu.org>
17488
17489 * cprop.c: Clean up hash table building.
17490 (reg_avail_info): Remove.
17491 (oprs_available_p): Remove.
17492 (record_last_reg_set_info): Remove.
17493 (record_last_set_info): Remove.
17494 (reg_available_p): New function.
17495 (gcse_constant_p): Do not treat unfolded conditions as constants.
17496 (make_set_regs_unavailable): New function.
17497 (hash_scan_set): Simplify with new reg_available_p.
17498 (compute_hash_table_work): Traverse insns stream only once.
17499 Do not compute reg_avail_info. Traverse insns in reverse order.
17500 Record implicit sets after recording explicit sets from the block.
17501
5c9d7b33 175022011-03-31 Michael Matz <matz@suse.de>
17503
e8b2c048 17504 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
5c9d7b33 17505
958f5301 175062011-03-31 Anatoly Sokolov <aesok@post.ru>
17507
17508 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
17509 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
17510 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17511 (h8300_mode_dependent_address_p): New function.
17512 (h8300_get_index): Make static.
17513
1084097d 175142011-03-31 Jeff Law <law@redhat.com>
17515
413f000a 17516 * reload1.c (elimination_effects): Fix typo in recent change.
17517
e8b2c048 17518 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
1084097d 17519 typo potentially leading to null pointer dereference.
17520
17521 * caller-save.c (new_saved_hard_reg): Eliminate return value.
17522 (setup_save_areas): Corresponding changes to avoid useless
17523 assignments.
17524
17525 * jump.c (reversed_comparison_code_parts): Avoid successive return
17526 statements when REVERSE_CONDITION is defined.
17527
17528 * expr.c (expand_assignment): Avoid useless assignments.
17529 (expand_expr_real_1): Likewise.
17530 (expand_expr_real_2): Avoid useless statements.
17531
17532 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
17533
17534 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17535
17536 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
17537 statements.
17538
17539 * stmt.c (expand_expr_stmt): Avoid useless assignment.
17540
a19f368c 175412011-03-31 Joseph Myers <joseph@codesourcery.com>
17542
17543 PR target/47109
17544 * doc/tm.texi.in (TARGET_VERSION): Remove.
17545 * doc/tm.texi: Regenerate.
17546 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
17547 * collect2.c (main): Don't use TARGET_VERSION.
17548 * mips-tdump.c (main): Don't use TARGET_VERSION.
17549 * mips-tfile.c (main): Don't use TARGET_VERSION.
e8b2c048 17550 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
a19f368c 17551 * config/rs6000/vxworksae.h: Remove.
17552 * config/alpha/alpha.h (TARGET_VERSION): Remove.
17553 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
17554 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
17555 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
17556 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17557 * config/arm/arm.h (TARGET_VERSION): Remove.
17558 * config/arm/coff.h (TARGET_VERSION): Remove.
17559 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
17560 * config/arm/elf.h (TARGET_VERSION): Remove.
17561 * config/arm/freebsd.h (TARGET_VERSION): Remove.
17562 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
17563 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
17564 * config/arm/pe.h (TARGET_VERSION): Remove.
17565 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
17566 * config/arm/semi.h (TARGET_VERSION): Remove.
17567 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
17568 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
17569 * config/arm/vxworks.h (TARGET_VERSION): Remove.
17570 * config/avr/avr.h (TARGET_VERSION): Remove.
17571 * config/bfin/bfin.h (TARGET_VERSION): Remove.
17572 * config/fr30/fr30.h (TARGET_VERSION): Remove.
17573 * config/frv/frv.h (TARGET_VERSION): Remove.
17574 * config/h8300/h8300.h (TARGET_VERSION): Remove.
17575 * config/i386/cygwin.h (TARGET_VERSION): Remove.
17576 * config/i386/darwin.h (TARGET_VERSION): Remove.
17577 * config/i386/darwin64.h (TARGET_VERSION): Remove.
17578 * config/i386/djgpp.h (TARGET_VERSION): Remove.
17579 * config/i386/freebsd.h (TARGET_VERSION): Remove.
17580 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
17581 * config/i386/gnu.h (TARGET_VERSION): Remove.
17582 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
17583 * config/i386/i386elf.h (TARGET_VERSION): Remove.
17584 * config/i386/linux.h (TARGET_VERSION): Remove.
17585 * config/i386/linux64.h (TARGET_VERSION): Remove.
17586 * config/i386/lynx.h (TARGET_VERSION): Remove.
17587 * config/i386/mingw32.h (TARGET_VERSION): Remove.
17588 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
17589 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
17590 * config/i386/netware.h (TARGET_VERSION): Remove.
17591 * config/i386/nto.h (TARGET_VERSION): Remove.
17592 * config/i386/openbsd.h (TARGET_VERSION): Remove.
17593 * config/i386/vxworks.h (TARGET_VERSION): Remove.
17594 * config/ia64/elf.h (TARGET_VERSION): Remove.
17595 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
17596 * config/ia64/hpux.h (TARGET_VERSION): Remove.
17597 * config/ia64/linux.h (TARGET_VERSION): Remove.
17598 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17599 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
17600 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17601 * config/lm32/lm32.h (TARGET_VERSION): Remove.
17602 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
17603 * config/m32c/m32c.h (TARGET_VERSION): Remove.
17604 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
17605 * config/m32r/m32r.h (TARGET_VERSION): Remove.
17606 * config/m68k/linux.h (TARGET_VERSION): Remove.
17607 * config/m68k/m68k.h (TARGET_VERSION): Remove.
17608 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
17609 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
17610 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
17611 * config/mep/mep.h (TARGET_VERSION): Remove.
17612 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
17613 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17614 * config/mips/iris6.h (MACHINE_TYPE): Remove.
17615 * config/mips/linux.h (TARGET_VERSION): Remove.
17616 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
17617 * config/mips/vxworks.h (TARGET_VERSION): Remove.
17618 * config/mmix/mmix.h (TARGET_VERSION): Remove.
17619 * config/mn10300/linux.h (TARGET_VERSION): Remove.
17620 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
17621 * config/pa/pa.h (TARGET_VERSION): Remove.
17622 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
17623 * config/picochip/picochip.h (TARGET_VERSION): Remove.
17624 * config/rs6000/aix.h (TARGET_VERSION): Remove.
17625 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
17626 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
17627 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
17628 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
17629 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
17630 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
17631 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
17632 * config/rs6000/linux.h (TARGET_VERSION): Remove.
17633 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
17634 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
17635 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
17636 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
17637 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
17638 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
17639 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
17640 * config/s390/linux.h (TARGET_VERSION): Remove.
17641 * config/s390/s390.h (TARGET_VERSION): Remove.
17642 * config/s390/tpf.h (TARGET_VERSION): Remove.
17643 * config/score/score.h (TARGET_VERSION): Remove.
17644 * config/sh/linux.h (TARGET_VERSION): Remove.
17645 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
17646 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
17647 * config/sh/sh.h (TARGET_VERSION): Remove.
17648 * config/sh/sh64.h (TARGET_VERSION): Remove.
17649 * config/sh/superh.h (TARGET_VERSION): Remove.
17650 * config/sh/vxworks.h (TARGET_VERSION): Remove.
17651 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
17652 * config/sparc/linux.h (TARGET_VERSION): Remove.
17653 * config/sparc/linux64.h (TARGET_VERSION): Remove.
17654 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
17655 TARGET_NAME32, TARGET_NAME): Remove.
17656 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
17657 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
17658 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
17659 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
17660 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
17661 * config/spu/spu.h (TARGET_VERSION): Remove.
17662 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
17663 * config/v850/v850.h (TARGET_VERSION): Remove.
17664 * config/vax/linux.h (TARGET_VERSION): Remove.
17665 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
17666 * config/xtensa/elf.h (TARGET_VERSION): Remove.
17667 * config/xtensa/linux.h (TARGET_VERSION): Remove.
17668
d34dbd5a 176692011-03-31 Eric Botcazou <ebotcazou@adacore.com>
17670
17671 PR target/48142
17672 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
17673 frame-related from frame-unrelated adjustments to the stack pointer.
17674
240a87ff 176752011-03-31 Jakub Jelinek <jakub@redhat.com>
17676
17677 * common.opt (fdebug-types-section): Move earlier.
17678 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
17679
6e715a90 176802011-03-31 Andreas Tobler <andreast@fgznet.ch>
17681
17682 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
17683 var.
17684
edb0f60d 176852011-03-30 Nathan Froyd <froydnj@codesourcery.com>
17686
17687 * tree.h (CASE_CHAIN): Define.
17688 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
17689 (gimple_redirect_edge_and_branch): Likewise.
17690
13cf233a 176912011-03-30 Vladimir Makarov <vmakarov@redhat.com>
17692
17693 PR middle-end/48367
17694 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
17695 calculation.
17696
d3ea8518 176972011-03-30 Jeff Law <law@redhat.com>
17698
41a11049 17699 * PR bootstrap/48371
d3ea8518 17700 * reload1.c (reload): Fix botch in last change.
17701
17702 * reload.h (struct reload): Fix typo introduced in last change.
17703
0670b683 177042011-03-30 Joseph Myers <joseph@codesourcery.com>
17705
17706 * config/arm/arm.opt (mhard-float, msoft-float): Mark
17707 Undocumented. Remove help text.
17708 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
17709 -mhard-float.
17710
4e775b8e 177112011-03-30 Joseph Myers <joseph@codesourcery.com>
17712
17713 * doc/options.texi (NegativeAlias): Document.
17714 (Alias): Mention NegativeAlias.
17715 * opt-functions.awk: Handle NegativeAlias.
e8b2c048 17716 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
4e775b8e 17717 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
17718 * opts.h (CL_NEGATIVE_ALIAS): Define.
17719 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
17720 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
17721 OPT_mspe_.
17722 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
17723 Alias entries.
17724 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17725 mno-spe and mno-isel instead of mspe=no and -misel=no.
17726
f6a02c02 177272011-03-29 Mark Wielaard <mjw@redhat.com>
17728
17729 * common.opt (fdebug-types-section): New flag.
17730 * doc/invoke.texi: Document new -fno-debug-types-section flag.
17731 * dwarf2out.c (use_debug_types): New define.
17732 (struct die_struct): Mark die_id with GTY desc use_debug_types.
17733 (print_die): Guard output of type unit signatures using
17734 use_debug_types.
17735 (build_abbrev_table): Replace assert of dwarf_version >= 4
17736 with assert on use_debug_types.
17737 (size_of_die): Likewise.
17738 (unmark_dies): Likewise.
17739 (value_format): Decide AT_ref_external form on use_debug_types.
17740 (output_die): Replace dwarf_version version check guard with
17741 use_debug_types where appropriate.
17742 (modified_type_die): Likewise.
17743 (gen_reference_type_die): Likewise.
17744 (dwarf2out_start_source_file): Likewise.
17745 (dwarf2out_end_source_file): Likewise.
17746 (prune_unused_types_walk_attribs): Likewise.
17747 (dwarf2out_finish): Likewise.
17748
04fd8b89 177492011-03-30 Vladimir Makarov <vmakarov@redhat.com>
17750
17751 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
17752
8b794819 177532011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17754
17755 PR rtl-optimization/48332
17756 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
17757 mode of input operand N and modeN to its actual mode.
17758
1c654ff1 177592011-03-30 Jeff Law <law@redhat.com>
17760
17761 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
17762 define accessor macro.
17763 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
17764 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
17765 (reg_equiv_init): Likewise.
17766 (reg_equivs_size): New variable.
17767 (reg_equiv_init_size): Remove.
17768 (allocate_initial_values): Move prototype to here from....
17769 * integrate.h (allocate_initial_values): Remove prototype.
17770 * integrate.c: Include reload.h.
17771 (allocate_initial_values): Corresponding changes.
17772 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
17773 (fix_reg_equiv_init, no_equiv): Corresponding changes.
17774 (update_equiv_regs): Corresponding changes.
17775 (ira): Corresponding changes.
17776 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
17777 (push_secondary_reload): Corresponding changes.
17778 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
17779 (make_memloc, find_reloads_address): Corresponding changes.
17780 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
17781 (find_reloads_address_1): Corresponding changes.
17782 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
17783 (refers_to_regno_for_reload_p): Corresponding changes.
17784 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
17785 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
17786 * reload1.c: Include ggc.h.
17787 (grow_reg_equivs): New function.
17788 (replace_pseudos_in, reload): Corresponding changes.
17789 (calculate_needs_all_insns, alter_regs): Corresponding changes.
17790 (eliminate_regs_1, elimination_effects): Corresponding changes.
17791 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
17792 (delete_output_reload): Likewise.
17793 * caller-save.c (mark_referenced_regs): Corresponding changes.
17794 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
17795 * frv/predicates.md (frv_load_operand): Corresponding changes.
17796 * microblaze/microblaze.c (double_memory_operand): Corresponding
17797 changes.
17798 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
17799 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e8b2c048 17800 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
1c654ff1 17801 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
17802 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
17803 changes.
17804 * pa/pa.c (emit_move_sequence): Corresponding changes.
17805 * vax/vax.c (nonindexed_address_p): Corresponding changes.
17806
a6c8b951 178072011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17808
17809 PR target/47551
17810 * config/arm/arm.c (coproc_secondary_reload_class): Handle
17811 structure modes. Don't check neon_vector_mem_operand for
17812 vector or structure modes.
17813
92d6c32b 178142011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17815 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17816
17817 PR target/43590
17818 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
17819 operand 1 and reshuffle the operands to match.
17820 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
17821
22db0e0c 178222011-03-30 Christian Schüler <cschueler@gmx.de>
17823
16973751 17824 PR driver/48208
22db0e0c 17825 * config/c.opt (F): Added 'Driver' to -F option.
e8b2c048 17826
16973751 17827 PR driver/48260
22db0e0c 17828 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
17829 handler function.
17830 * config/darwin.opt: Added '-arch' option.
17831
776f1390 178322011-03-30 Nick Clifton <nickc@redhat.com>
17833
17834 * config/rx/rx.md: Add peepholes and patterns to combine
17835 extending loads and simple arithmetic instructions.
17836 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e8b2c048 17837 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
17838 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
776f1390 17839 modes to use pre-decrement and post-increment addressing.
e8b2c048 17840 (rx_is_restricted_memory_address): Add range checking of REG+INT
776f1390 17841 addresses.
e8b2c048 17842 (rx_print_operand): Add support for %Q. Fix handling of %Q.
17843 (rx_memory_move_cost): Adjust cost of stores.
17844 (rx_adjust_insn_length): New function.
776f1390 17845
51f5794e 178462011-03-30 Jakub Jelinek <jakub@redhat.com>
17847
17848 PR c/48305
17849 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
17850 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
17851 matching arg00/arg01 types.
17852
1513fa88 178532011-03-30 Eric Botcazou <ebotcazou@adacore.com>
17854
17855 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
17856 last_location to UNKNOWN_LOCATION.
17857
29111057 178582011-03-30 H.J. Lu <hongjiu.lu@intel.com>
17859
17860 PR target/48349
17861 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
17862 FLOAT_SSE_REGS.
17863
477d403f 178642011-03-30 Joseph Myers <joseph@codesourcery.com>
17865 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17866
17867 PR bootstrap/48337
17868 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
17869 Init(PROCESSOR_V7).
17870 (sparc_cpu): Likewise.
17871 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
17872 PROCESSOR_V7.
17873
c7b32822 178742011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17875
17876 PR target/48336
17877 PR middle-end/48342
17878 PR rtl-optimization/48345
17879 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
17880 hard regs for given mode from profitable regs when doing secondary
17881 allocation.
17882
255a8494 178832011-03-29 Jeff Law <law@redhat.com>
17884
17885 PR bootstrap/48327
17886 * tree-ssa-threadupdate.c (struct redirection_data): Remove
17887 do_not_duplicate field.
17888 (lookup_redirection_data): Corresponding changes.
17889 (create_duplicates): Always create a template block.
17890 (redirect_edges): Remove code which reused the original block
17891 when it was going to become unreachable code.
17892 (thread_block): Don't set do_not_duplicate field.
17893
607eb2c8 178942011-03-29 Joseph Myers <joseph@codesourcery.com>
17895
17896 * lto-opts.c (register_user_option_p, lto_register_user_option):
17897 Make type argument unsigned.
17898 * lto-streamer.h (lto_register_user_option): Make type argument
17899 unsigned.
17900 * opth-gen.awk: Make CL_* macros unsigned.
17901 * opts-common.c (find_opt): Make lang_mask argument unsigned.
17902 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
17903 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
17904 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
17905 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
17906 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
17907 (find_opt): Make lang_mask argument unsigned.
17908
f6c60bdb 179092011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17910
17911 PR rtl-optimization/48331
17912 PR rtl-optimization/48334
17913 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
17914 for any used algorithm.
17915
71a39acf 179162011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17917
17918 * ira-conflicts.c (build_object_conflicts): Add unused attribute
17919 to parent_max.
17920
656e2b9d 179212011-03-29 Uros Bizjak <ubizjak@gmail.com>
17922
17923 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
17924 (alpha_option_override): Don't set alpha_sr_alias_set.
17925 (emit_frame_store_1): Use gen_frame_mem rather than calling
17926 set_mem_alias_set.
17927 (alpha_expand_epilogue): Ditto.
17928
8bdf488e 179292011-03-29 Ira Rosen <ira.rosen@linaro.org>
17930
17931 PR tree-optimization/48290
17932 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
17933 vectorization, check that relevant phis in the basic block after
17934 the inner loop are really inner loop's exit phis.
17935
4031f63d 179362011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
17937
49bc82f1 17938 PR debug/48190
4031f63d 17939 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
17940 (cached_dw_loc_list_def): New structure.
17941 (cached_dw_loc_list): New typedef.
17942 (cached_dw_loc_list_table): New variable.
17943 (cached_dw_loc_list_table_hash): New function.
17944 (cached_dw_loc_list_table_eq): Likewise.
17945 (add_location_or_const_value_attribute): Take a bool cache_p.
17946 Cache the list when the parameter is true.
17947 (gen_formal_parameter_die): Update caller.
17948 (gen_variable_die): Likewise.
17949 (dwarf2out_finish): Likewise.
17950 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
17951 while generating debug info for the decl.
17952 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
17953 (dwarf2out_init): Initialize cached_dw_loc_list_table.
17954 (resolve_addr): Cache the result of resolving a chain of
17955 location lists.
17956
66d9a7b9 179572011-03-28 Vladimir Makarov <vmakarov@redhat.com>
17958
17959 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
17960 conflict object hard regset nodes have intersecting hard reg sets.
656e2b9d 17961
66d9a7b9 17962 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
17963 after regstat_init_n_sets_and_refs.
17964
17965 * ira.c: Add more comments at the top.
17966 (setup_stack_reg_pressure_class, setup_pressure_classes):
17967 Add comments how we compute the register pressure classes.
17968 (setup_allocno_and_important_classes): Add more comments.
17969 (setup_class_translate_array, reorder_important_classes)
17970 (setup_reg_class_relations): Add comments.
17971
17972 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
17973 start of the file.
17974
17975 * ira-color.c: Add 2011 to the Copyright line.
17976 (assign_hard_reg): Add more comments.
17977 (improve_allocation): Ditto.
17978
17979 * ira-costs.c: Add 2011 to the Copyright line.
17980 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
17981 comments.
17982 (setup_regno_cost_classes_by_mode): Ditto.
17983
17984 Initial patches from ira-improv branch:
17985
17986 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
17987
dcab66ec 17988 * ira-build.c (ira_create_object): Remove initialization of
66d9a7b9 17989 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
17990 (ira_create_allocno): Remove initialization of
17991 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
17992 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
17993 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17994 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
17995 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
17996 Initialize ALLOCNO_ADD_DATA.
17997 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
17998 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
17999 ALLOCNO_REG.
18000 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
18001 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
18002
18003 * ira.c (ira_reallocate): Remove.
18004 (setup_pressure_classes): Call
18005 ira_init_register_move_cost_if_necessary. Use
18006 ira_register_move_cost instead of ira_get_register_move_cost.
18007 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
18008 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
18009
18010 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
18011 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
18012 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
18013 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
18014 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
18015 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
18016 Fix formatting.
656e2b9d 18017 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
66d9a7b9 18018 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
18019 (struct allocno_color_data): New.
18020 (allocno_color_data_t): New typedef.
18021 (allocno_color_data): New definition.
18022 (ALLOCNO_COLOR_DATA): New macro.
18023 (struct object_color_data): New.
18024 (object_color_data_t): New typedef.
18025 (object_color_data): New definition.
18026 (OBJECT_COLOR_DATA): New macro.
18027 (update_copy_costs, calculate_allocno_spill_cost): Call
18028 ira_init_register_move_cost_if_necessary. Use
18029 ira_register_move_cost instead of ira_get_register_move_cost.
18030 (move_spill_restore, update_curr_costs): Ditto.
18031 (allocno_spill_priority): Make it inline.
656e2b9d 18032 (color_pass): Allocate and free allocno_color_dat and object_color_data.
66d9a7b9 18033 (struct coalesce_data, coalesce_data_t): New.
18034 (allocno_coalesce_data): New definition.
18035 (ALLOCNO_COALESCE_DATA): New macro.
18036 (merge_allocnos, coalesced_allocno_conflict_p): Use
18037 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
18038 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
18039 (coalesce_allocnos): Ditto.
18040 (setup_coalesced_allocno_costs_and_nums): Ditto.
18041 (collect_spilled_coalesced_allocnos): Ditto.
18042 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
18043 (setup_slot_coalesced_allocno_live_ranges): Ditto.
18044 (coalesce_spill_slots): Ditto.
18045 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
18046 free allocno_coalesce_data.
18047
18048 * ira-conflicts.c: Fix formatting.
18049 (process_regs_for_copy): Call
18050 ira_init_register_move_cost_if_necessary. Use
18051 ira_register_move_cost instead of ira_get_register_move_cost.
18052 (build_object_conflicts): Optimize.
18053
18054 * ira-costs.c (record_reg_classes): Optimize. Call
18055 ira_init_register_move_cost_if_necessary. Use
18056 ira_register_move_cost, ira_may_move_in_cost, and
18057 ira_may_move_out_cost instead of ira_get_register_move_cost and
18058 ira_get_may_move_cost.
18059 (record_address_regs): Ditto.
18060 (scan_one_insn): Optimize.
18061 (find_costs_and_classes): Optimize.
18062 (process_bb_node_for_hard_reg_moves): Call
18063 ira_init_register_move_cost_if_necessary. Use
18064 ira_register_move_cost instead of ira_get_register_move_cost.
18065
18066 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
18067 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
18068 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
18069 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
18070 definitions.
18071 (ira_initiate_emit_data, ira_finish_emit_data)
18072 (create_new_allocno): New functions.
656e2b9d 18073 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
66d9a7b9 18074 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
18075 Use ira_register_move_cost instead of ira_get_register_move_cost.
18076
18077 * ira-int.h: Fix some comments.
656e2b9d 18078 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
18079 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
66d9a7b9 18080 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
18081 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
18082 add_data.
18083 (struct ira_allocno): Make mode and aclass a bitfield. Move other
18084 bitfield after mode. Make hard_regno a short int. Make
18085 hard_regno short. Remove first_coalesced_allocno and
18086 next_coalesced_allocno. Move mem_optimized_dest_p,
18087 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
18088 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
18089 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
18090 temp, colorable_p. Add new member add_data.
18091 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
18092 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
18093 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
18094 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
18095 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
18096 (ALLOCNO_ADD_DATA): New macro.
18097 (ira_emit_data_t): New typedef.
18098 (struct ira_emit_data): New. Move mem_optimized_dest_p,
18099 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
18100 from struct ira_allocno.
18101 (ALLOCNO_EMIT_DATA): New macro.
18102 (ira_allocno_emit_data, allocno_emit_reg): New.
18103 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
656e2b9d 18104 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
66d9a7b9 18105 (OBJECT_ADD_DATA): New macro.
18106 (ira_reallocate): Remove.
18107 (ira_initiate_emit_data, ira_finish_emit_data): New.
18108 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
18109 (ira_init_register_move_cost_if_necessary): New.
18110 (ira_object_conflict_iter_next): Merge into
18111 ira_object_conflict_iter_cond.
656e2b9d 18112 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
66d9a7b9 18113
dcab66ec 18114 * ira-live.c (process_single_reg_class_operands): Call
66d9a7b9 18115 ira_init_register_move_cost_if_necessary. Use
18116 ira_register_move_cost instead of ira_get_register_move_cost.
18117
18118 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
18119
18120 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
18121
18122 * ira-costs.c: Fix formatting.
18123 (cost_classes, cost_classes_num): Remove.
18124 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
18125 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
18126 (cost_classes_del, cost_classes_htab): New.
18127 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
18128 (initiate_regno_cost_classes, setup_cost_classes): New.
18129 (setup_regno_cost_classes_by_aclass): New.
656e2b9d 18130 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
66d9a7b9 18131 (record_reg_classes): Use regno_cost_classes instead of
18132 cost_classes. Move checking opposite operand up.
18133 (record_address_regs): Use regno_cost_classes
18134 instead of cost_classes.
18135 (scan_one_insn): Ditto. Use always general register.
18136 (print_allocno_costs): Use regno_cost_classes instead of
18137 cost_classes.
18138 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
18139 (find_costs_and_classes): Set up cost classes for each registers.
18140 Use also their mode for this. Use regno_cost_classes instead of
18141 cost_classes.
18142 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
18143 cost_classes.
18144 (free_ira_costs, ira_init_costs): Don't use cost_classes.
18145 (ira_costs, ira_set_pseudo_classes): Call
18146 initiate_regno_cost_classes and finish_regno_cost_classes.
18147
18148 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
18149
18150 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
18151
18152 * target.def (ira_cover_classes): Remove.
18153
656e2b9d 18154 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
66d9a7b9 18155
18156 * doc/tm.texi.in: Ditto.
18157
18158 * ira-conflicts.c: Remove mentioning cover classes from the file.
18159 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
656e2b9d 18160 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
66d9a7b9 18161
18162 * targhooks.c (default_ira_cover_classes): Remove.
18163
18164 * targhooks.h (default_ira_cover_classes): Ditto.
18165
18166 * haifa-sched.c: Remove mentioning cover classes from the file.
18167 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
18168 ira_pressure_classes and ira_pressure_classes_num instead of
18169 ira_reg_class_cover_size and ira_reg_class_cover. Use
18170 sched_regno_pressure_class instead of sched_regno_cover_class.
18171 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
18172 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18173
18174 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
18175 classes from the file.
18176 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
18177 (struct object_hard_regs, struct object_hard_regs_node): New.
18178 (struct ira_object): New members profitable_hard_regs,
18179 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
18180 (struct ira_allocno): Rename cover_class to aclass. Rename
18181 cover_class_cost and updated_cover_class_cost to class_cost and
18182 updated_class_cost. Remove splay_removed_p and
18183 left_conflict_size. Add new members colorable_p.
18184 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
18185 (ALLOCNO_COLORABLE_P): New macro.
18186 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
18187 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
18188 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
18189 (OBJECT_...): Rename parameter C to O.
18190 (OBJECT_PROFITABLE_HARD_REGS): New macro.
18191 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
18192 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
18193 (struct target_ira_int): New members x_ira_max_memory_move_cost,
18194 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
18195 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
18196 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
18197 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
18198 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
18199 x_ira_reg_class_subunion.
18200 (ira_max_memory_move_cost, ira_max_register_move_cost)
18201 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
18202 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
18203 (ira_important_class_nums, ira_reg_class_superunion): New macros.
656e2b9d 18204 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
66d9a7b9 18205 (ira_reg_class_union): Rename to ira_reg_class_subunion.
18206 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18207 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18208 (ira_tune_allocno_costs_and_cover_classes): Rename to
18209 ira_tune_allocno_costs.
18210 (ira_debug_hard_regs_forest): New.
18211 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
18212 (ira_object_conflict_iter_next): Fix comments.
656e2b9d 18213 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
66d9a7b9 18214 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
18215 cover_class to aclass.
18216 (ira_allocate_and_accumulate_costs): Ditto.
18217 (ira_allocate_and_set_or_copy_costs): Ditto.
18218
18219 * opts.c (decode_options): Remove ira_cover_class check.
18220
18221 * ira-color.c: Remove mentioning cover classes from the file. Use
18222 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
18223 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
18224 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
18225 (splay-tree.h): Remove include.
18226 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
18227 before copy_freq_compare_func.
18228 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
18229 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
18230 New definitions.
18231 (hard_regs_roots, hard_regs_node_vec): Ditto.
18232 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
18233 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
18234 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
18235 (create_new_object_hard_regs_node): Ditto.
18236 (add_new_object_hard_regs_node_to_forest): Ditto.
656e2b9d 18237 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
66d9a7b9 18238 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
18239 Ditto.
18240 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
18241 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
18242 (remove_unused_object_hard_regs_nodes): Ditto.
18243 (enumerate_object_hard_regs_nodes): Ditto.
18244 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
18245 (object_hard_regs_subnode_t): Ditto.
18246 (struct object_hard_regs_subnode): Ditto.
18247 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
18248 (setup_object_hard_regs_subnode_index): Ditto.
18249 (get_object_hard_regs_subnodes_num): Ditto.
18250 (form_object_hard_regs_nodes_forest): Ditto.
18251 (finish_object_hard_regs_nodes_tree): Ditto.
18252 (finish_object_hard_regs_nodes_forest): Ditto.
18253 (allocnos_have_intersected_live_ranges_p): Rename to
656e2b9d 18254 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
66d9a7b9 18255 (pseudos_have_intersected_live_ranges_p): Rename to
18256 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
18257 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
18258 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
18259 (update_copy_costs): Remove assert. Skip cost update if the hard
18260 reg does not belong the class.
18261 (assign_hard_reg): Process only profitable hard regs.
18262 (uncolorable_allocnos_num): Make it scalar.
18263 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18264 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
18265 and ira_reg_class_max_nregs.
18266 (bucket_allocno_compare_func): Check frequency first.
18267 (sort_bucket): Add compare function as a parameter.
18268 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
18269 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
18270 (push_allocno_to_stack): Rewrite for checking new allocno
18271 colorability.
656e2b9d 18272 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
66d9a7b9 18273 (push_only_colorable): Pass new parameter to sort_bucket.
18274 (push_allocno_to_spill): Remove.
18275 (allocno_spill_priority_compare): Make it inline and rewrite.
18276 (splay_tree_allocate, splay_tree_free): Remove.
18277 (allocno_spill_sort_compare): New function.
18278 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
18279 build and use splay tree. Choose first allocno in uncolorable
18280 allocno bucket to spill. Remove setting spill cost.
18281 (all_conflicting_hard_regs): Remove.
18282 (setup_allocno_available_regs_num): Check only profitable hard
18283 regs. Print info about hard regs nodes.
18284 (setup_allocno_left_conflicts_size): Remove.
18285 (put_allocno_into_bucket): Don't call
656e2b9d 18286 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
66d9a7b9 18287 (improve_allocation): New.
18288 (color_allocnos): Call setup_profitable_hard_regs,
18289 form_object_hard_regs_nodes_forest, improve_allocation,
18290 finish_object_hard_regs_nodes_forest. Setup spill cost.
18291 (print_loop_title): Use pressure classes.
18292 (color_allocnso): Ditto.
18293 (do_coloring): Remove allocation and freeing splay_tree_node_pool
18294 and allocnos_for_spilling.
18295 (ira_sort_regnos_for_alter_reg): Don't setup members
18296 {first,next}_coalesced_allocno.
18297 (color): Remove allocating and freeing removed_splay_allocno_vec.
18298 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
18299 prohibited_class_mode_regs.
18300
18301 * ira-lives.c: Remove mentioning cover classes from the file. Fix
18302 formatting.
18303 (update_allocno_pressure_excess_length): Use pressure classes.
18304 (inc_register_pressure, dec_register_pressure): Check for pressure
18305 class.
18306 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
18307 pressure class. Use ira_reg_class_nregs instead of
18308 ira_reg_class_max_nregs.
18309 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
18310 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
18311 (single_reg_class): Use ira_reg_class_nregs instead of
18312 ira_reg_class_max_nregs.
18313 (process_bb_node_lives): Use pressure classes.
18314
18315 * ira-emit.c: Remove mentioning cover classes from the file. Use
18316 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
18317 (change_loop): Use pressure classes.
18318 (modify_move_list): Call ira_set_allocno_class instead of
18319 ira_set_allocno_cover_class.
18320
18321 * ira-build.c: Remove mentioning cover classes from the file. Use
18322 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
18323 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
18324 ALLOCNO_UPDATED_CLASS_COST instead of
18325 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
18326 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
18327 (ira_create_allocno): Remove initialization of
18328 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
18329 ALLOCNO_COLORABLE_P.
18330 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18331 Update conflict regs for the objects.
18332 (create_cap_allocno): Remove assert. Don't propagate
18333 ALLOCNO_AVAILABLE_REGS_NUM.
18334 (ira_free_allocno_costs): New function.
18335 (finish_allocno): Change a part of code into call of
18336 ira_free_allocno_costs.
18337 (low_pressure_loop_node_p): Use pressure classes.
18338 (object_range_compare_func): Don't compare classes.
18339 (setup_min_max_conflict_allocno_ids): Ditto.
18340
18341 * loop-invariant.c: Remove mentioning cover classes from the file.
18342 Use ira_pressure_classes and ira_pressure_classes_num instead of
18343 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
656e2b9d 18344 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
18345 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18346 Use reg_allocno_class instead of reg_cover_class.
66d9a7b9 18347 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
18348 STACK_REG_COVER_CLASS.
18349 (get_regno_cover_class): Rename to get_regno_pressure_class.
18350 (move_loop_invariants): Initialize and finalize regstat.
18351
18352 * ira.c: Remove mentioning cover classes from the file. Add
18353 comments about coloring without cover classes. Use ALLOCNO_CLASS
18354 instead of ALLOCNO_COVER_CLASS. Fix formatting.
18355 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
18356 setup_class_subset_and_memory_move_costs.
18357 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
18358 (setup_cover_and_important_classes): Rename to
18359 setup_allocno_and_important_classes.
18360 (setup_class_translate_array): New.
18361 (setup_class_translate): Call it for allocno and pressure classes.
18362 (cover_class_order): Rename to allocno_class_order.
18363 (comp_reg_classes_func): Use ira_allocno_class_translate instead
18364 of ira_class_translate.
18365 (reorder_important_classes): Set up ira_important_class_nums.
18366 (setup_reg_class_relations): Set up ira_reg_class_superunion.
18367 (print_class_cover): Rename to print_classes. Add parameter.
18368 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18369 Print pressure classes too.
18370 (find_reg_class_closure): Rename to find_reg_classes. Don't call
18371 setup_reg_subclasses.
656e2b9d 18372 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
66d9a7b9 18373 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18374 (setup_prohibited_class_mode_regs): Use
656e2b9d 18375 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
66d9a7b9 18376 (clarify_prohibited_class_mode_regs): New function.
18377 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
18378 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
18379 (ira_init_once): Initialize them.
18380 (free_register_move_costs): Process them.
18381 (ira_init): Move calls of find_reg_classes and
18382 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
18383 Call clarify_prohibited_class_mode_regs.
18384 (ira_no_alloc_reg): Remove.
18385 (too_high_register_pressure_p): Use pressure classes.
18386
18387 * sched-deps.c: Remove mentioning cover classes from the file.
18388 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
18389 ira_pressure_classes and ira_pressure_classes_num instead of
18390 ira_reg_class_cover_size and ira_reg_class_cover.
18391 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
18392 sched_regno_pressure_class instead of sched_regno_cover_class.
18393 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
18394 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18395
18396 * ira.h: Add 2010 to Copyright.
18397 (ira_no_alloc_reg): Remove external.
18398 (struct target_ira): Rename x_ira_hard_regno_cover_class,
18399 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
18400 x_ira_class_translate to x_ira_hard_regno_allocno_class,
18401 x_ira_allocno_classes_num, x_ira_allocno_classes, and
18402 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
18403 x_ira_pressure_classes, x_ira_pressure_class_translate, and
18404 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
18405 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
18406 x_ira_no_alloc_regs.
656e2b9d 18407 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
66d9a7b9 18408 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
18409 ira_allocno_classes_num and ira_allocno_classes.
18410 (ira_class_translate): Rename to ira_allocno_class_translate.
18411 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
18412 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
18413 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18414 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
18415 (ira_no_alloc_regs): New.
18416
18417 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
18418 classes from the file. Use ALLOCNO_CLASS instead of
18419 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
18420 ALLOCNO_COVER_CLASS_COST.
18421 (regno_cover_class): Rename to regno_aclass.
18422 (record_reg_classes): Use ira_reg_class_subunion instead of
18423 ira_reg_class_union.
18424 (record_address_regs): Check overflow.
18425 (scan_one_insn): Ditto.
656e2b9d 18426 (print_allocno_costs): Print total mem cost fore regional allocation.
66d9a7b9 18427 (print_pseudo_costs): Use REG_N_REFS.
18428 (find_costs_and_classes): Use classes intersected with them on the
18429 1st pass. Check overflow. Use ira_reg_class_subunion instead of
18430 ira_reg_class_union. Use ira_allocno_class_translate and
18431 regno_aclass instead of ira_class_translate and regno_cover_class.
18432 Modify code for finding regno_aclass. Setup preferred classes for
18433 the next pass.
18434 (setup_allocno_cover_class_and_costs): Rename to
18435 setup_allocno_class_and_costs. Use regno_aclass instead of
18436 regno_cover_class. Use ira_set_allocno_class instead of
18437 ira_set_allocno_cover_class.
18438 (init_costs, finish_costs): Use regno_aclass instead of
18439 regno_cover_class.
18440 (ira_costs): Use setup_allocno_class_and_costs instead of
18441 setup_allocno_cover_class_and_costs.
18442 (ira_tune_allocno_costs_and_cover_classes): Rename to
18443 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
18444 by processing objects. Use ira_reg_class_max_nregs instead of
18445 ira_reg_class_nregs.
18446
18447 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
18448
18449 * sched-int.h: Remove mentioning cover classes from the file.
18450 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
18451
18452 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
18453 classes from the file.
18454 (struct reg_pref): Rename coverclass into allocnoclass.
18455 (reg_cover_class): Rename to reg_allocno_class.
18456
656e2b9d 18457 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
66d9a7b9 18458
18459 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
18460
18461 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
18462
18463 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
18464
18465 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
18466
18467 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
18468
18469 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
18470
18471 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
18472
18473 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
18474
18475 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
18476
18477 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
18478 (i386_ira_cover_classes): Ditto.
18479
18480 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
18481
18482 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
18483
18484 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
18485
18486 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
18487
18488 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
18489
18490 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
18491
18492 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
18493 (mips_ira_cover_classes): Ditto.
18494
18495 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
18496
18497 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
18498
18499 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
18500
18501 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
18502
18503 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
18504
18505 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
18506 (IRA_COVER_CLASSES_VSX): Ditto.
18507
18508 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
18509 (rs6000_ira_cover_classes): Ditto.
18510
18511 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
18512
18513 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
18514
18515 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
18516
18517 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
18518
18519 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
18520
18521 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
18522
18523 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
18524
18525 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
18526
18527 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
18528
18529 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
18530
06eb3ccd 185312011-03-29 Jakub Jelinek <jakub@redhat.com>
18532
c6dedfd4 18533 PR debug/48253
18534 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
18535 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
18536 dw_fde_unlikely_section_end_label, cold_in_std_section,
18537 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
18538 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
18539 fields.
18540 (output_fde): Use dw_fde_second_{begin,end} if second is
18541 true, otherwise dw_fde_{begin,end}.
18542 (output_call_frame_info): Test dw_fde_second_begin != NULL
18543 instead of dw_fde_switched_sections.
18544 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
18545 fields, initialize new fields. Initialize in_std_section
18546 unconditionally from the first partition.
18547 (dwarf2out_end_epilogue): Don't override dw_fde_end when
18548 dw_fde_second_begin is non-NULL.
18549 (dwarf2out_switch_text_section): Stop initializing removed
18550 dw_fde_struct fields, initialize new fields, initialize
18551 also dw_fde_end here. Set dw_fde_switch_cfi even when
18552 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
18553 (struct var_loc_list_def): Add last_before_switch field.
18554 (arange_table, arange_table_allocated, arange_table_in_use,
18555 ARANGE_TABLE_INCREMENT, add_arange): Removed.
18556 (size_of_aranges): Count !in_std_section and !second_in_std_section
18557 hunks in fdes, instead of looking at arange_table_in_use.
18558 (output_aranges): Add aranges_length argument, don't call
18559 size_of_aranges here. Instead of using aranges_table*
18560 emit ranges for fdes when !in_std_section resp.
18561 !second_in_std_section.
18562 (dw_loc_list): Break ranges crossing section switch.
18563 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
656e2b9d 18564 use dw_fde_second_end instead of dw_fde_end as end of last range.
c6dedfd4 18565 (gen_subprogram_die): Don't call add_arange. Use
18566 dw_fde_{begin,end} for first partition and if switched
18567 section dw_fde_second_{begin,end} for the second.
18568 (var_location_switch_text_section_1,
18569 var_location_switch_text_section): New functions.
18570 (dwarf2out_begin_function): Initialize cold_text_section even
18571 when function_section () isn't text_section.
18572 (prune_unused_types): Don't walk arange_table.
18573 (dwarf2out_finish): Don't needlessly test
18574 flag_reorder_blocks_and_partition when testing cold_text_section_used.
18575 If info_section_emitted, call size_of_aranges and if it indicates
18576 non-empty .debug_aranges, call output_aranges with the computed
18577 size. Stop using removed dw_fde_struct fields, use
18578 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
18579 for second.
18580
06eb3ccd 18581 PR debug/48203
18582 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
18583 create ENTRY_VALUE if incoming or address of incoming's MEM
18584 is a hard REG.
18585 * dwarf2out.c (mem_loc_descriptor): Don't emit
18586 DW_OP_GNU_entry_value of DW_OP_fbreg.
18587 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
18588 on ENTRY_VALUE is able to find the canonical parameter VALUE.
18589 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
18590 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
18591 ENTRY_VALUE_EXPs.
18592 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
18593 is a REG_P or MEM_P with REG_P address, compute hash directly
18594 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
18595 (preserve_only_constants): Don't clear VALUES forwaring
18596 ENTRY_VALUE to some other VALUE.
18597
03a5dda9 185982011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
18599
18600 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
18601 instead of GEN_INT.
18602
8c593757 186032011-03-28 Eric Botcazou <ebotcazou@adacore.com>
18604
18605 * cfgexpand.c (expand_gimple_cond): Always set the source location and
18606 block before expanding the statement.
18607 (expand_gimple_stmt_1): Likewise. Set them here...
18608 (expand_gimple_stmt): ...and not here. Tidy.
18609 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
18610 unknown.
18611
07abdb66 186122011-03-28 Steven Bosscher <steven@gcc.gnu.org>
18613
18614 * Makefile.in: New rule for cprop.o.
18615 * gcse.c: Move constant/copy propagation to cprop.c.
18616 (compute_local_properties): Only handle expression tables.
18617 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
18618 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
18619 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
18620 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
656e2b9d 18621 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
07abdb66 18622 compute_cprop_data, find_used_regs, try_replace_reg,
18623 find_avail_set, cprop_jump, constprop_register, cprop_insn,
18624 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
18625 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
18626 find_bypass_set, reg_killed_on_edge, bypass_block,
18627 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
18628 execute_rtl_cprop, pass_rtl_cprop): Move to...
18629 * cprop.c: ...here. New file, constant/copy propagation for RTL
18630 moved from gcse.c to here with minor cleanups in duplicated code.
18631
8e4ee659 186322011-03-28 H.J. Lu <hongjiu.lu@intel.com>
18633
18634 * config/i386/i386.c (flag_opts): Fix a typo in
18635 -mavx256-split-unaligned-store.
18636
9f4cd859 186372011-03-28 Anatoly Sokolov <aesok@post.ru>
18638
18639 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18640 LIBCALL_VALUE): Remove macros.
18641 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18642 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18643 (h8300_function_value, h8300_libcall_value,
18644 h8300_function_value_regno_p): New functions.
18645
d80478df 186462011-03-28 Anatoly Sokolov <aesok@post.ru>
18647
18648 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
18649
42b013bc 186502011-03-28 Jeff Law <law@redhat.com>
18651
18652 * tree-ssa-threadupdate.c (redirect_edges): Call
18653 create_edge_and_update_destination_phis as needed.
18654 (create_edge_and_update_destination_phis): Accept new BB argument.
18655 All callers updated.
18656 (thread_block): Do not update the profile when threading around
18657 intermediate blocks.
18658 (thread_single_edge): Likewise.
18659 (determine_bb_domination_status): If BB is not a successor of the
18660 loop header, return NONDOMINATING.
18661 (register_jump_thread): Note when we register a jump thread around
18662 an intermediate block.
18663 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
18664 (thread_across_edge): Use it.
18665
35f74ece 186662011-03-28 Tristan Gingold <gingold@adacore.com>
18667
18668 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
18669 when for_return is 2.
18670
8f9c21d9 186712011-03-28 Jeff Law <law@redhat.com>
18672
18673 * var-tracking.c (canonicalize_values_mark): Delete unused
18674 lhs assignment.
18675 (canonicalize_values_star, set_variable_part): Likewise.
18676 (clobber_variable_part, delete_variable_part): Likewise.
18677
98076867 186782011-03-28 Steven Bosscher <steven@gcc.gnu.org>
18679
18680 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
18681
222bc9b9 186822011-03-28 Martin Jambor <mjambor@suse.cz>
18683
18684 * tree-inline.c (expand_call_inline): Do not check that destination
18685 node is analyzed.
18686 (optimize_inline_calls): Assert that destination node is analyzed.
18687 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
18688 not call tree_lowering_passes.
18689 * cgraph.h (cgraph_analyze_function): Declare.
18690 * cgraphunit.c (cgraph_analyze_function): Make public.
18691
a2eed601 186922011-03-28 Joseph Myers <joseph@codesourcery.com>
18693
18694 * config/sparc/sparc-opts.h: New.
18695 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
18696 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
18697 (sparc_option_override): Store processor_type enumeration rather
18698 than string in cpu_default. Remove name and enumeration from
18699 cpu_table. Directly default -mcpu then default -mtune from -mcpu
18700 without using sparc_select. Use target_flags_explicit instead of
18701 fpu_option_set.
18702 * config/sparc/sparc.h (enum processor_type): Move to
18703 sparc-opts.h.
18704 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
18705 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
18706 HeaderInclude entry.
18707 (mcpu=, mtune=): Use Var and Enum.
18708 (sparc_processor_type): New Enum and EnumValue entries.
18709
703c9b8a 187102011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18711 Iain Sandoe <iains@gcc.gnu.org>
18712
18713 PR target/48245
18714 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
18715
bee862b6 187162011-03-28 Eric Botcazou <ebotcazou@adacore.com>
18717
18718 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
18719 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
18720 Insert new statements at it in lieu of STMT.
18721 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
18722 * tree-vect-stmts.c (vectorizable_store): Likewise.
18723 (vectorizable_load): Likewise.
18724
935ab977 187252011-03-28 Uros Bizjak <ubizjak@gmail.com>
18726
18727 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
18728 (divtf3): Ditto.
18729 (multf3): Ditto.
18730 (subtf3): Ditto.
18731
30d07ab3 187322011-03-27 H.J. Lu <hongjiu.lu@intel.com>
18733
18734 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
18735 unaligned 256bit load/store.
18736 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
18737 (*avx_movdqu<avxmodesuffix>): Likewise.
18738
5f239f13 187392011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18740
18741 PR target/48288
18742 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
18743 * config/pa/pa.md (iordi3): Use new predicate in expander.
18744 (iorsi3): Likewise.
18745
5521a590 187462011-03-27 Anatoly Sokolov <aesok@post.ru>
18747
935ab977 18748 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
5521a590 18749 FUNCTION_VALUE_REGNO_P): Remove macros.
935ab977 18750 * config/mips/mips-protos.h (mips_function_value): Remove.
18751 * config/mips/mips.c (mips_function_value): Rename to...
5521a590 18752 (mips_function_value_1): ... this. Make static. Handle receiving
18753 the function type in 'fn_decl_or_type' argument.
18754 (mips_function_value, mips_libcall_value,
18755 mips_function_value_regno_p): New function.
18756 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18757 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18758
b8cb8d52 187592011-03-27 H.J. Lu <hongjiu.lu@intel.com>
18760
18761 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
18762 and -mavx256-split-unaligned-store.
18763 (ix86_option_override_internal): Split 32-byte AVX unaligned
18764 load/store by default.
18765 (ix86_avx256_split_vector_move_misalign): New.
18766 (ix86_expand_vector_move_misalign): Use it.
18767
18768 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
18769 -mavx256-split-unaligned-store.
18770
18771 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
18772 256bit load/store. Generate unaligned store on misaligned memory
18773 operand.
18774 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
18775 256bit load/store.
18776 (*avx_movdqu<avxmodesuffix>): Likewise.
18777
18778 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
18779 -mavx256-split-unaligned-store.
18780
72aac168 187812011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
18782
18783 PR target/38598
18784 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
18785 Update commentary.
18786
86f1bed2 187872011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
18788
18789 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
18790 opno arguments with an expand_operand. Use create_input_operand.
18791 (mips_prepare_builtin_target): Delete.
18792 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
18793 functions.
18794 (mips_expand_builtin_direct): Use create_output_operand and
18795 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
18796 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
18797 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
18798
7edb1e83 187992011-03-27 Ira Rosen <ira.rosen@linaro.org>
18800
18801 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
18802 function.
18803 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
18804
54f21e20 188052011-03-26 Eric Botcazou <ebotcazou@adacore.com>
18806
18807 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
18808 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
18809 basic blocks and call commit_edge_insertions directly.
18810 (fixup_abnormal_edges): Move from here to...
18811 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
18812 on the edges and return whether some have actually been inserted.
18813 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
18814 compensation code.
18815
c53624fb 188162011-03-26 Andrey Belevantsev <abel@ispras.ru>
18817
18818 PR rtl-optimization/48144
18819 * sel-sched-ir.c (merge_history_vect): Factor out from ...
18820 (merge_expr_data): ... here.
18821 (av_set_intersect): Rename to av_set_code_motion_filter.
18822 Update all callers. Call merge_history_vect when an expression
18823 is found in both sets.
18824 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
18825
02426144 188262011-03-26 Alan Modra <amodra@gmail.com>
18827
18828 * config/rs6000/predicates.md (word_offset_memref_op): Handle
18829 cmodel medium addresses.
18830 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
18831 64-bit gpr loads and stores.
18832 (rs6000_secondary_reload_ppc64): New function.
18833 * config/rs6000/rs6000-protos.h: Declare it.
18834 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
18835
31fdbcb6 188362011-03-26 Alan Modra <amodra@gmail.com>
18837
18838 PR target/47487
18839 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
18840 GNU Go in traceback table.
18841
b52cb719 188422011-03-25 Richard Henderson <rth@redhat.com>
18843
18844 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
18845 if there are exactly 6 operands.
18846 (set_storage_via_setmem): Similarly.
18847
82715bcd 188482011-03-25 Kai Tietz <ktietz@redhat.com>
18849
18850 * collect2.c (write_c_file_stat): Handle backslash
18851 as right-hand directory separator.
18852 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
18853 checking just for slash.
18854 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
18855 instead of checking for trailing slash.
18856 * gcc.c (record_temp_file): Use filename_cmp instead
18857 of strcmp.
18858 (do_spec_1): Likewise.
18859 (replace_outfile_spec_function): Likewise.
18860 (is_directory): Use filename_ncmp instead of strncmp.
18861 (print_multilib_info): Likewise.
18862 * gcov.c (find_source): Use filename_cmp instead
18863 instead of strcmp.
18864 (make_gcov_file_name): Fix order of slash/backslash
18865 checks.
18866 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
18867 (add_standard_paths): Likewise.
18868 * mips-tfile.c (saber_stop): Handle backslash.
18869 * prefix.c (update_path): Use filename_ncmp instead of
18870 strncmp.
18871 * profile.c (output_location): Use filename_cmp instead
18872 of strcmp.
18873 * read-md.c (handle_toplevel_file): Handle backslash.
18874 * tlink.c (frob_extension): Likewise.
18875 * tree-cfg.c (same_line_p): Use filename_cmp instead of
18876 strcmp.
18877 * tree-dump.c (dequeue_and_dump): Handle backslash.
18878 * tree.c (get_file_function_name): Likewise.
18879 * gengtype.c (read_input_list): Likewise.
18880 (get_file_realbasename): Likewise.
18881 (get_output_file_with_visibility): Use filename_cmp
18882 instead of strcmp.
18883
92861a27 188842011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
18885
18886 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
18887 case to VFPv1.
18888
6535fbf5 188892011-03-25 Nathan Froyd <froydnj@codesourcery.com>
18890
18891 * fold-const.c (expr_location_or): New function.
18892 (fold_truth_not_expr): Call it.
18893
451c8e2f 188942011-03-25 Jeff Law <law@redhat.com>
18895
18896 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
18897 va_end.
18898 * c-family/c-common.c (def_fn_type): Likewise.
18899 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
18900 * emit-rtl.c (gen_rtvec): Likewise.
18901 * lto/lto-lang.c (def_fn_type): Likewise.
18902
f82efd77 189032011-03-25 Richard Guenther <rguenther@suse.de>
18904
18905 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
18906 also generate copies.
18907 (fini_copy_prop): Handle constant values properly.
18908
ed0d805a 189092011-03-25 Jakub Jelinek <jakub@redhat.com>
18910
18911 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
18912 mode size instead of bitsize with DWARF2_ADDR_SIZE.
18913 (hash_loc_operands, compare_loc_operands): Handle
18914 DW_OP_GNU_entry_value.
18915
59839b36 189162011-03-25 Kai Tietz <ktietz@redhat.com>
18917
18918 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
18919 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
18920 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
18921 comment and use macro TARGET_64BIT_MS_ABI instead.
18922 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
18923 and change default behavior for 32-bit MS_ABI.
18924 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
18925 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
18926 32-bit, too.
18927 (ix86_cfun_abi): Likewise.
18928 (ix86_maybe_switch_abi): Adjust comment.
18929 (init_cumulative_args): Check for bit-ness in MS_ABI case.
18930 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
18931 instead of checking for SYSV_ABI.
18932 (ix86_nsaved_sseregs): Likewise.
18933 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
18934 to 16 bytes.
18935 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
18936 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
18937 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
18938 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
18939 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
18940
fd7ad53b 189412011-03-25 Richard Guenther <rguenther@suse.de>
18942
18943 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
18944 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18945 (verify_gimple): Remove.
18946 * tree-cfg.c (verify_gimple_call): Merge verification
18947 from verify_stmts.
18948 (verify_gimple_phi): Merge verification from verify_stmts.
18949 (verify_gimple_label): New function.
18950 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
18951 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18952 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
18953 (verify_stmts): Rename to verify_gimple_in_cfg.
18954 (verify_gimple_in_cfg): New function.
18955 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
18956 * tree-ssa.c (verify_ssa): Likewise.
18957 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
18958
526b36a8 189592011-03-25 Richard Guenther <rguenther@suse.de>
18960
18961 * passes.c (init_optimization_passes): Add FRE pass after
18962 early SRA.
18963
a651f34d 189642011-03-25 Bernd Schmidt <bernds@codesourcery.com>
18965 Andrew Stubbs <ams@codesourcery.com>
18966
18967 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
18968 for Cortex-A8.
18969 (arm_movdi_vfp_cortexa8): New pattern.
18970 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
18971 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
18972 instructions when tuning for Cortex-A8. Set attribute "arch".
18973 * config/arm/arm.md: Move include arm-tune.md up a bit.
18974 (define_attr "arch"): Add "onlya8" and "nota8" values.
18975 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
18976
ca8a2945 189772011-03-25 Nathan Froyd <froydnj@codesourcery.com>
18978
e0450140 18979 PR bootstrap/48282
ca8a2945 18980 Revert:
18981 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
18982
18983 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18984 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
18985 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18986 * passes.c (init_optimization_passes): Move
18987 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18988
309303cf 189892011-03-25 Kai Tietz <ktietz@redhat.com>
18990
18991 * c-typeck.c (comptypes_internal): Replace target
18992 hook call of comp_type_attributes by version in tree.c file.
18993 * gimple.c (gimple_types_compatible_p_1): Likewise.
18994 * tree-ssa.c (useless_type_conversion_p): Likewise.
18995 * tree.c (build_type_attribute_qual_variant): Likewise.
18996 (attribute_value_equal): New static helper function.
18997 (comp_type_attributes): New function.
18998 (merge_attributes): Use attribute_value_equal for comparison.
18999 (attribute_list_contained): Likewise.
19000 * tree.h (comp_type_attributes): New prototype.
19001
5717187b 190022011-03-25 Richard Guenther <rguenther@suse.de>
19003
19004 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
19005 of complex types at -O0.
19006 (verify_gimple_assign_binary): Likewise.
19007 (verify_gimple_assign_ternary): Likewise.
19008
5c550782 190092011-03-24 Mark Wielaard <mjw@redhat.com>
19010
19011 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
19012 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
19013
b3ba5e8d 190142011-03-24 Mark Wielaard <mjw@redhat.com>
19015
19016 PR debug/48041
19017 * dwarf2out.c (output_abbrev_section): Only write table when
19018 abbrev_die_table_in_use > 1.
19019
7a20d8cd 190202011-02-24 Richard Henderson <rth@redhat.com>
19021
19022 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
19023 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
19024 (alpha_expand_unaligned_load_words): Use extql.
19025 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
19026 (emit_insxl): Handle all modes for consistency.
19027
9bab4302 190282011-02-24 Richard Henderson <rth@redhat.com>
19029
19030 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
19031 (alpha_expand_unaligned_load): Likewise.
19032 (alpha_expand_unaligned_store): Likewise.
19033 (alpha_expand_unaligned_load_words): Likewise.
19034 (alpha_expand_unaligned_store_words): Likewise.
19035 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
19036 (alpha_split_lock_test_and_set_12): Likewise.
19037 (print_operand, alpha_fold_builtin_extxx): Likewise.
19038 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
19039 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
19040 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
19041 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
19042 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
19043 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
19044 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
19045 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
19046 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
19047 (extwl, extll, extql): Similarly.
19048 (inswh, inslh, insqh): Similarly.
19049 (mskbl, mskwl, mskll, mskql): Similarly.
19050 (mskwh, msklh, mskqh): Similarly.
19051
6bcf8cab 190522011-02-24 Richard Henderson <rth@redhat.com>
19053
19054 * config/alpha/alpha.md (attribute isa): Add er, ner.
19055 (attribute enabled): Handle them.
19056 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
19057
baa0ecef 190582011-02-24 Richard Henderson <rth@redhat.com>
19059
19060 * config/alpha/alpha.md (attribute isa): Add vms.
19061 (attribute enabled): Handle it.
19062 (*movsf): Merge *movsf_{nofix,fix,nofp}.
19063 (*movdf): Merge *movdf_{nofix,fix,nofp}.
19064 (*movtf): Rename from *movtf_internal for consistency.
19065 (*movsi): Merge with *movsi_nt_vms.
19066 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
19067 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
19068 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
19069 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
19070
8b2983a3 190712011-02-24 Richard Henderson <rth@redhat.com>
19072
19073 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
19074 (extendqisi2, extendhisi2): Likewise.
19075 (extendqidi2): Simplify BWX/non-BWX expansions.
19076 (extendhidi2): Similarly.
19077
e31a3157 190782011-02-24 Richard Henderson <rth@redhat.com>
19079
19080 * config/alpha/alpha.md (attribute isa): New.
19081 (attribute enabled): New.
19082 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
19083 (zero_extendqisi2, zero_extendqidi2): Similarly.
19084 (zero_extendhisi2, zero_extendhidi2): Similarly.
19085 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
19086
3351cef0 190872011-02-24 Richard Henderson <rth@redhat.com>
19088
19089 * config/alpha/predicates.md (input_operand): Revert last change;
19090 update comment to mention 32-bit VMS rather than Windows.
19091
d304b9e1 190922011-03-24 Nathan Froyd <froydnj@codesourcery.com>
19093
19094 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
19095 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
19096 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
19097 * passes.c (init_optimization_passes): Move
19098 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
19099
3064d0d2 191002011-03-24 Eric Botcazou <ebotcazou@adacore.com>
19101
19102 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
19103
92676954 191042011-03-24 Uros Bizjak <ubizjak@gmail.com>
19105
19106 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
19107 correctly.
19108
21be4257 191092011-03-24 Jakub Jelinek <jakub@redhat.com>
19110
19111 PR debug/48204
19112 * simplify-rtx.c (simplify_const_unary_operation): Call
19113 real_convert when changing mode class with FLOAT_EXTEND.
19114
9f9a3b39 191152011-03-24 Nick Clifton <nickc@redhat.com>
19116
19117 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
19118 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
19119 * config/rx/rx.c (rx_option_override): Set align_jumps,
19120 align_loops and align_labels if not set by the user.
19121 (rx_align_for_label): New function.
19122 (rx_max_skip_for_label): New function.
19123 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
19124 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
19125 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
19126 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
19127 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
19128
46fc03c6 191292011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19130
19131 PR rtl-optimization/48263
19132 * optabs.c (expand_binop_directly): Reinstate convert_modes code
19133 and original commutative_p handling. Use maybe_gen_insn.
19134
b5fe590a 191352011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19136
19137 * reload.c (find_reloads_subreg_address): Add address_reloaded
19138 parameter and return true there if the full address has been
19139 reloaded.
19140 (find_reloads_toplev): Pass address_reloaded flag.
19141 (find_reloads_address_1): Don't use address_reloaded parameter.
19142
4392e906 191432011-03-24 Jeff Law <law@redhat.com>
19144
19145 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
19146 unused variable "ann".
19147 (remove_unused_locals): Likewise.
19148
19149 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
19150 statement.
19151
19152 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
19153 after it is freed.
19154
08d88e72 191552011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19156
19157 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
19158 for invalid symbolic addresses.
19159 (s390_secondary_reload): Don't use s390_check_symref_alignment for
19160 larl operands.
19161
30d202de 191622011-03-24 Eric Botcazou <ebotcazou@adacore.com>
19163
19164 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
19165 the argument in calls to fold_truth_not_expr.
19166
1cbe3047 191672011-03-24 Nathan Froyd <froydnj@codesourcery.com>
19168
19169 * tree.c (record_node_allocation_statistics): New function.
19170 (make_node_stat, copy_node_stat, build_string): Call it.
19171 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
19172 (build1_stat, build_omp_clause): Likewise.
19173
45c0b118 191742011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19175
19176 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
19177 last commit.
19178
07eeb468 191792011-03-24 Richard Guenther <rguenther@suse.de>
19180
19181 PR tree-optimization/48271
19182 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
19183 blocks that still exist.
19184
2473bfb7 191852011-03-24 Richard Guenther <rguenther@suse.de>
19186
19187 PR tree-optimization/48270
19188 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
19189 not free datarefs before ddrs.
19190
453d5246 191912011-03-24 Eric Botcazou <ebotcazou@adacore.com>
19192
19193 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
19194 from the address built for a reference with variable offset.
19195
a23f3c3c 191962011-03-24 Uros Bizjak <ubizjak@gmail.com>
19197
19198 PR target/48237
19199 * config/i386/i386.md (*movdf_internal_rex64): Do not split
19200 alternatives that can be handled with movq or movabsq insn.
19201 (*movdf_internal): Disable for !TARGET_64BIT.
19202 (*movdf_internal_nointeger): Ditto.
19203 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
19204
81bcd36c 192052011-03-24 Nathan Froyd <froydnj@codesourcery.com>
19206
19207 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19208 (FUNCTION_ARG_ADVANCE): Likewise.
19209 * tm.texi.in: Change references to them to hook references.
19210 * tm.texi: Regenerate.
a23f3c3c 19211 * targhooks.c (default_function_arg): Eliminate check for target macro.
81bcd36c 19212 (default_function_incoming_arg): Likewise.
19213 (default_function_arg_advance): Likewise.
a23f3c3c 19214 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
81bcd36c 19215 (function_arg_advance): Likewise.
19216 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19217
1688dd20 192182011-03-24 Richard Guenther <rguenther@suse.de>
19219
19220 PR middle-end/48269
19221 * tree-object-size.c (addr_object_size): Do not double-account
19222 for MEM_REF offsets.
19223
284cc480 192242011-03-24 Diego Novillo <dnovillo@google.com>
19225
19226 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
a23f3c3c 19227 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
284cc480 19228 (lto_input_data_block): Move from lto-opts.c. Make extern.
19229 Update all users.
19230 (lto_input_string): Rename from input_string. Make extern.
19231 Update all users.
19232 * lto-streamer-out.c (lto_output_string_with_length): Rename from
19233 output_string_with_length.
19234 Output 0 to indicate a non-NULL string. Update all callers to
19235 not emit 0.
19236 (lto_output_string): Rename from output_string. Make extern.
19237 Update all users.
19238 (lto_output_decl_state_streams): Make extern.
19239 (lto_output_decl_state_refs): Make extern.
19240 * lto-streamer.h (lto_input_string): Declare.
19241 (lto_input_data_block): Declare.
19242 (lto_output_string): Declare.
19243 (lto_output_string_with_length): Declare.
19244 (lto_output_decl_state_streams): Declare.
19245 (lto_output_decl_state_refs): Declare.
19246
1d0b727d 192472011-03-24 Richard Guenther <rguenther@suse.de>
19248
19249 PR tree-optimization/46562
19250 * tree.c (build_invariant_address): New function.
19251 * tree.h (build_invariant_address): Declare.
19252 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
19253 a renamed function moved ...
19254 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
19255 Take valueization callback parameter.
19256 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
19257 * gimple-fold.h: New file.
19258 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
19259 (ccp_fold, fold_const_aggregate_ref,
19260 fold_ctor_reference, fold_nonarray_ctor_reference,
19261 fold_array_ctor_reference, fold_string_cst_ctor_reference,
19262 get_base_constructor): Move ...
19263 * gimple-fold.c: ... here.
19264 (gimple_fold_stmt_to_constant_1): New function
19265 split out from ccp_fold. Take a valueization callback parameter.
19266 Valueize all operands.
19267 (gimple_fold_stmt_to_constant): New wrapper function.
19268 (fold_const_aggregate_ref_1): New function split out from
19269 fold_const_aggregate_ref. Take a valueization callback parameter.
19270 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
19271 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
19272 invariant POINTER_PLUS_EXPRs to invariant form.
19273 (vn_valueize): New function.
19274 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
19275 * tree-vrp.c (vrp_valueize): New function.
19276 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
19277 to fold statements to constants.
19278 * tree-ssa-pre.c (eliminate): Properly guard propagation of
19279 function declarations.
19280 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
19281 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
19282
92070737 192832011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19284
19285 * config/h8300/predicates.md (jump_address_operand): Fix register
19286 mode check.
19287
ec611e12 192882011-03-24 Ira Rosen <ira.rosen@linaro.org>
19289
19290 * doc/invoke.texi (max-stores-to-sink): Document.
19291 * params.h (MAX_STORES_TO_SINK): Define.
19292 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
19293 if either vectorization or if-conversion is disabled.
19294 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
19295 tree-vect-data-refs.c vect_equal_offsets.
19296 (dr_equal_offsets_p): New function.
19297 (find_data_references_in_bb): Remove static.
19298 * tree-data-ref.h (find_data_references_in_bb): Declare.
19299 (dr_equal_offsets_p): Likewise.
19300 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
19301 (vect_drs_dependent_in_basic_block): Update calls to
19302 vect_equal_offsets.
19303 (vect_check_interleaving): Likewise.
19304 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
19305 (cond_if_else_store_replacement): Rename to...
19306 (cond_if_else_store_replacement_1): ... this. Change arguments and
19307 documentation.
19308 (cond_if_else_store_replacement): New function.
19309 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
19310 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
19311
d022fa24 193122011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
19313
19314 PR target/46934
19315 * config/arm/arm.md (casesi): Use the gen_int_mode() function
19316 to subtract lower bound instead of GEN_INT().
19317
145f7c33 193182011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
19319
19320 PR other/48179
19321 PR other/48221
19322 PR other/48234
19323 * doc/extend.texi (Alignment): Move section to match order in TOC.
19324 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
19325 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
19326
d5321455 193272011-03-23 Jeff Law <law@redhat.com>
19328
19329 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
19330 before removing the edge.
19331
19332 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
19333 it may have been freed by redirect_branch_edge or
19334 redirect_edge_succ_nodup.
19335
de508de3 193362011-03-23 Richard Guenther <rguenther@suse.de>
19337
a23f3c3c 19338 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
de508de3 19339 (check_va_list_escapes): Likewise.
19340 (check_all_va_list_escapes): Likewise.
19341
210a8eb6 193422011-03-23 Richard Guenther <rguenther@suse.de>
19343
19344 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
19345 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
19346 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
19347 (alias.o): Likewise.
19348 (ipa-type-escape.o): Remove.
19349 (ipa-struct-reorg.o): Likewise.
19350 (GTFILES): Remove ipa-struct-reorg.c.
19351 * alias.c: Do not include ipa-type-escape.h.
19352 * tree-ssa-alias.c: Likewise.
19353 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
19354 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
19355 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
19356 and ipa-type-escape passes.
19357 * tree-pass.h (pass_ipa_type_escape): Remove.
19358 (pass_ipa_struct_reorg): Likewise.
19359 * ipa-struct-reorg.h: Remove.
19360 * ipa-struct-reorg.c: Likewise.
19361 * ipa-type-escape.h: Likewise.
19362 * ipa-type-escape.c: Likewise.
19363 * doc/invoke.texi (-fipa-struct-reorg): Remove.
19364 (--param struct-reorg-cold-struct-ratio): Likewise.
19365 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19366 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19367 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
19368
7fe62d25 193692011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19370
19371 * config/s390/2084.md: Enable all insn reservations also for z9_ec
19372 cpu attribute value.
19373 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
19374 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
19375 * config/s390/s390.c (processor_flags_table): New constant array.
19376 (s390_handle_arch_option): Remove.
19377 (s390_handle_option): Remove s390_handle_arch_option invocations
19378 and OPT_mwarn_framesize_ handling.
19379 (s390_option_override): Remove s390_handle_arch_option invocation.
19380 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
19381 warnings.
19382 * config/s390/s390.md (cpu attribute): Add z9_ec value.
19383 * config/s390/s390.opt (s390_tune, s390_arch)
19384 (march=): Replace s390_arch_option enum and values with
19385 processor_type. Set variable name to s390_arch. Set
19386 initialization value.
19387 (mtune=): Replace s390_arch_option with processor_type. Set
19388 variable name to s390_tune. Set initialization value.
19389
4087dccd 193902011-03-23 Julian Brown <julian@codesourcery.com>
19391
19392 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
19393 accesses which are not naturally aligned.
19394
d7b3fc5b 193952011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
19396
19397 PR target/47553
19398 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
19399
8786db1e 194002011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
19401
19402 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
19403 parameter from "int" to "enum insn_code".
19404 (expand_operand_type): New enum.
19405 (expand_operand): New structure.
19406 (create_expand_operand): New function.
19407 (create_fixed_operand, create_output_operand): Likewise
19408 (create_input_operand, create_convert_operand_to): Likewise.
19409 (create_convert_operand_from, create_address_operand): Likewise.
19410 (create_integer_operand): Likewise.
19411 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
19412 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19413 (expand_insn, expand_jump_insn): Likewise.
19414 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
19415 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
19416 (expand_movstr, expand_builtin___clear_cache): Likewise.
19417 (expand_builtin_lock_release): Likewise.
19418 * explow.c (allocate_dynamic_stack_space): Likewise.
19419 (probe_stack_range): Likewise. Allow check_stack to FAIL,
19420 and use the default handling in that case.
19421 * expmed.c (check_predicate_volatile_ok): Delete.
19422 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
19423 (emit_cstore): Likewise.
19424 * expr.c (emit_block_move_via_movmem): Likewise.
19425 (set_storage_via_setmem, expand_assignment): Likewise.
19426 (emit_storent_insn, try_casesi): Likewise.
19427 (emit_single_push_insn): Likewise. Allow the expansion to fail.
19428 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
19429 (expand_vec_shift_expr, expand_binop_directly): Likewise.
19430 (expand_twoval_unop, expand_twoval_binop): Likewise.
19431 (expand_unop_direct, emit_indirect_jump): Likewise.
19432 (emit_conditional_move, vector_compare_rtx): Likewise.
19433 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
19434 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
19435 (expand_sync_lock_test_and_set): Likewise.
19436 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
19437 (emit_unop_insn): Likewise.
19438 (expand_copysign_absneg): Change icode to an insn_code.
19439 (create_convert_operand_from_type): New function.
19440 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
19441 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19442 (expand_insn, expand_jump_insn): Likewise.
19443 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
19444 than const_int_operand for operand 2.
19445
10d06e9c 194462011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19447
19448 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
19449 if possible.
19450
5f7c5ddd 194512011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19452
19453 * emit-rtl.c (emit_pattern_before_noloc): New function.
19454 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
19455 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
19456 (emit_pattern_after_noloc): New function.
19457 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
19458 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
19459
8761b9a1 194602011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19461
19462 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
19463 (__ffsDI2): Likewise.
19464
4505d022 194652011-03-22 Richard Henderson <rth@redhat.com>
19466
19467 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
19468 of !TARGET_ABI_OPEN_VMS.
19469 (alpha_trampoline_init, alpha_start_function): Likewise.
19470 (alpha_expand_epilogue, alpha_file_start): Likewise.
19471 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
19472 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
19473 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
19474 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
19475 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
19476
8ad6fff9 194772011-03-22 Joseph Myers <joseph@codesourcery.com>
19478
19479 * config/s390/s390-opts.h: New.
19480 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
19481 s390_arch_flags, s390_warn_framesize, s390_stack_size,
19482 s390_stack_guard): Remove.
19483 (s390_handle_arch_option): Return void. Take enum
19484 s390_arch_option value instead of string and searching array.
19485 (s390_handle_option): Don't assert that global structures are in
19486 use. Access variables via opts pointer. Use error_at. Don't use
19487 sscanf for -mstack-guard= or -mstack-size=. Update call to
19488 s390_handle_arch_option.
19489 (s390_option_override): Update call to s390_handle_arch_option.
19490 (s390_emit_prologue): Use %d format for s390_stack_size in
19491 diagnostic. Use %wd for HOST_WIDE_INT.
19492 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
19493 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
19494 * config/s390/s390.opt (config/s390/s390-opts.h): New
19495 HeaderInclude entry.
19496 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
19497 s390_arch_flags, s390_warn_framesize): New Variable entries.
19498 (s390_arch_option): New Enum and EnumValue entries.
19499 (march=): Use Enum instead of Var.
19500 (mstack-guard=, mstack-size=): Use UInteger and Var.
19501 (mtune=): Use Enum.
19502
3f002263 195032011-03-22 Joseph Myers <joseph@codesourcery.com>
19504
19505 * config/score/score.c (score_handle_option): Don't assert that
19506 global structures are in use. Access target_flags via opts
19507 pointer. Use value of -march= option to determine target_flags
19508 settings.
19509 * config/score/score.opt (march=): Use Enum.
19510 (score_arch): New Enum and EnumValue entries.
19511
e9e3a45a 195122011-03-22 Joseph Myers <joseph@codesourcery.com>
19513
19514 * config/mep/mep.c (option_mtiny_specified): Remove.
19515 (mep_option_override): Move register handling for -mivc2 from
19516 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
19517 instead of option_mtiny_specified.
19518 (mep_handle_option): Access target_flags via opts pointer. Don't
19519 assert that global structures are in use. Defer part of -mivc2
19520 handling and move it to mep_option_override.
19521 * config/mep/mep.opt (IVC2): New Mask entry.
19522 (mivc2): Use Var and Defer instead of Mask.
19523
34491a51 195242011-03-22 Joseph Myers <joseph@codesourcery.com>
19525
19526 * config/v850/v850-opts.h: New.
19527 * config/v850/v850.c (small_memory): Replace with
19528 small_memory_physical_max array. Make that array static const.
19529 (v850_handle_memory_option): Take integer value of argument. Take
19530 gcc_options pointer, option text and location. Return void.
19531 Update for changes to small memory structures.
19532 (v850_handle_option): Access target_flags via opts pointer. Don't
19533 assert that global structures are in use. Update calls to
19534 v850_handle_memory_option.
a23f3c3c 19535 (v850_encode_data_area): Update references to small memory settings.
19536 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
34491a51 19537 (enum small_memory_type): Move to v850-opts.h.
19538 * config/v850/v850.opt (config/v850/v850-opts.h): New
19539 HeaderInclude entry.
19540 (small_memory_max): New Variable entry.
19541 (msda): Replace by pair of options msda= and msda-. Use UInteger.
19542 (mtda, mzda): Likewise.
19543
a7f36b8e 195442011-03-22 Joseph Myers <joseph@codesourcery.com>
19545
19546 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
19547 pointer. Don't assert that global structures are in use.
19548
952466b5 195492011-03-22 Joseph Myers <joseph@codesourcery.com>
19550
19551 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
19552 via opts pointer. Don't assert that global structures are in use.
19553
d09dbe0a 195542011-03-22 Joseph Myers <joseph@codesourcery.com>
19555
19556 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
19557 (munix=93): Use Var.
19558 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
19559 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
19560 * config/pa/pa-opts.h: New.
19561 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
19562 (pa_handle_option): Don't assert that global structures are in
19563 use. Access target_flags via opts pointer. Don't handle
19564 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
19565 OPT_munix_98 here.
19566 (pa_option_override): Handle deferred OPT_mfixed_range_.
19567
177dbc5b 195682011-03-22 Joseph Myers <joseph@codesourcery.com>
19569
19570 * config/mn10300/mn10300-opts.h: New.
19571 * config/mn10300/mn10300.c (mn10300_processor,
19572 mn10300_tune_string): Remove.
19573 (mn10300_handle_option): Don't assert that global structures are
19574 in use. Access mn10300_processor via opts pointer. Don't handle
19575 OPT_mtune_ here.
19576 * config/mn10300/mn10300.h (enum processor_type): Move to
19577 mn10300-opts.h.
19578 (mn10300_processor): Remove.
19579 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
19580 HeaderInclude entry.
19581 (mn10300_processor): New Variable entry.
19582 (mtune=): Use Var.
19583
5d28209b 195842011-03-22 Joseph Myers <joseph@codesourcery.com>
19585
19586 * config/microblaze/microblaze.c: Don't include opts.h.
19587 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
19588 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
19589 (mno-clearbss): Use Var and Warn.
19590
e3d1b41b 195912011-03-22 Joseph Myers <joseph@codesourcery.com>
19592
19593 * config/m32r/m32r-opts.h: New.
19594 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
19595 (m32r_handle_option): Don't assert that global structures are in
19596 use. Access target_flags and m32r_cache_flush_func via opts
19597 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
19598 OPT_mno_flush_trap here.
19599 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
19600 include of m32r-opts.h.
19601 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
19602 HeaderInclude entry.
19603 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
19604 (mmodel=): Use Enum and Var.
19605 (m32r_model): New Enum and EnumValue entries.
19606 (mno-flush-trap): Use Var.
19607 (msdata=): Use Enum and Var.
19608 (m32r_sdata): New Enum and EnumValue entries.
19609
eea6e787 196102011-03-22 Joseph Myers <joseph@codesourcery.com>
19611
19612 * config/m32c/m32c.c: Don't include opts.h.
19613 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
19614 m32c_handle_option): Remove.
19615 (m32c_option_override): Check global_options_set.x_target_memregs
19616 instead of target_memregs_set.
19617 * config/m32c/m32c.h (target_memregs): Remove.
19618 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
19619 variable.
19620
3263bbb3 196212011-03-22 Joseph Myers <joseph@codesourcery.com>
19622
19623 * config/iq2000/iq2000-opts.h: New.
19624 * config/iq2000/iq2000.c: Don't include opts.h.
19625 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
a23f3c3c 19626 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
3263bbb3 19627 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
19628 HeaderInclude entry.
19629 (iq2000_tune): New Variable entry.
19630 (march=): Add comment. Use Enum.
19631 (iq2000_arch): New Enum and EnumValue entries.
19632 (mcpu=): Use Enum and Var.
19633 (iq2000_tune): New Enum and EnumValue entries.
19634
c0bfee3d 196352011-03-22 Joseph Myers <joseph@codesourcery.com>
19636
19637 * config/ia64/ia64-opts.h: New.
19638 * config/ia64/ia64.c (ia64_tune): Remove.
19639 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
19640 here. Use error_at.
19641 (ia64_option_override): Handle deferred OPT_mfixed_range_.
19642 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
19643 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
19644 HeaderInclude entry.
19645 (ia64_tune): New Variable entry.
19646 (mfixed-range=): Use Defer and Var.
19647 (mtune=): Use Enum and Var.
19648 (ia64_tune): New Enum and EnumValue entries.
19649
09f31110 196502011-03-22 Joseph Myers <joseph@codesourcery.com>
19651
19652 * config/frv/frv-opts.h: New.
19653 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
19654 frv-opts.h.
19655 (frv_cpu_type): Remove.
19656 * config/frv/frv.c: Don't include opts.h.
19657 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
a23f3c3c 19658 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
09f31110 19659 (frv_cpu_type): New Variable entry.
19660 (frv_cpu): New Enum and EnumValue entries.
19661
98a12a50 196622011-03-22 Joseph Myers <joseph@codesourcery.com>
19663
19664 * config/cris/cris.c (cris_handle_option): Access target_flags via
19665 opts pointer. Don't assert that global structures are in use.
19666 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
19667 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
19668
33c9a3e7 196692011-03-22 Joseph Myers <joseph@codesourcery.com>
19670
19671 * config/bfin/bfin-opts.h: New.
19672 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
19673 bfin_si_revision, bfin_workarounds): Remove.
19674 (bfin_cpus): Make static const.
19675 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
19676 not bfin_lib_id_given.
19677 (bfin_handle_option): Don't set bfin_lib_id_given. Access
19678 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
a23f3c3c 19679 pointer. Use error_at. Don't assert that global structures are in use.
33c9a3e7 19680 * config/bfin/bfin.h: Include bfin-opts.h.
19681 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
19682 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
19683 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
19684 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
19685 entries.
19686
7e21f84a 196872011-03-22 Joseph Myers <joseph@codesourcery.com>
19688
19689 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
19690 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
19691 or -msoft-float here.
19692 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
19693 -msoft-float and -mhard-float.
a23f3c3c 19694 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
7e21f84a 19695 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19696 msoft-float.
19697 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
19698 -msoft-float.
19699 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
19700 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
19701 not mhard-float.
19702 (LIBGCC_SPEC): Don't handle -msoft-float.
19703 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
19704 -mhard-float.
19705 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19706 msoft-float.
19707 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
19708 -mfloat-abi=*, not -msoft-float and -mhard-float.
19709 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
19710 -msoft-float.
19711 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
19712 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
19713 mhard-float and msoft-float.
19714 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
19715 mfloat-abi=soft in comments, not mhard-float and msoft-float.
19716 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19717 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
19718 mhard-float.
19719 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
19720 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
19721 msoft-float.
19722 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
19723 not mhard-float.
19724 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
19725 not msoft-float.
19726
1b803a4f 197272011-03-22 Richard Henderson <rth@redhat.com>
19728
19729 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
19730 TARGET_ABI_WINDOWS_NT.
19731 (alpha_output_function_end_prologue): Likewise.
19732 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
19733 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19734 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
19735 (trap, *movsi_nt_vms): Likewise.
19736 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
19737 (*tablejump_osf_nt_internal): Remove.
19738 * config/alpha/predicates.md (input_operand): Only test Pmode.
19739
b7ae8115 197402011-03-22 Joseph Myers <joseph@codesourcery.com>
19741
19742 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
19743 via opts pointer. Use error_at. Don't assert that global
19744 structures are in use.
19745
b54fbaf9 197462011-03-22 Joseph Myers <joseph@codesourcery.com>
19747
19748 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
19749 (ix86_handle_option): Access ix86_isa_flags and
19750 ix86_isa_flags_explicit via opts pointer. Don't assert that
19751 global structures are in use.
19752 (ix86_function_specific_save, ix86_function_specific_restore):
19753 Update ix86_isa_flags_explicit field name.
a23f3c3c 19754 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
b54fbaf9 19755 (ix86_isa_flags_explicit): Rename TargetSave entry to
19756 x_ix86_isa_flags_explicit.
19757
04d75965 197582011-03-22 Richard Henderson <rth@redhat.com>
19759
19760 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
19761 (alpha_option_override, direct_return): Likewise.
19762 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
19763 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
19764 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
19765 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19766 (alpha_expand_epilogue, alpha_end_function): Likewise.
19767 (alpha_init_libfuncs): Likewise.
19768 (struct machine_function): Remove unicosmk members.
19769 (print_operand) ['t']: Remove.
19770 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
19771 unicosmk_output_module_name, unicosmk_output_common,
19772 current_section_align, unicosmk_output_text_section_asm_op,
19773 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
19774 unicosmk_section_type_flags, unicosmk_unique_section,
19775 unicosmk_asm_named_section, unicosmk_insert_attributes,
19776 unicosmk_output_align, unicosmk_defer_case_vector,
19777 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
19778 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
19779 unicosmk_output_ssib, unicosmk_add_call_info_word,
19780 unicosmk_extern_head, unicosmk_output_default_externs,
19781 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
19782 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
19783 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
19784 * config/alpha/alpha-protos.h: Update.
19785 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
19786 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
19787 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
19788 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
19789 (*mulsi_se, mulvsi3): Likewise.
19790 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
19791 (*divmodsi_internal, call, call_value, realign): Likewise.
19792 (moddi3, umoddi3): Likewise; remove duplicate expander.
19793 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
19794 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
19795 (*movdi_nofix): Remove r/U alternative.
19796 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
19797 * config/alpha/constraints.md ("U"): Remove.
19798 * config/alpha/predicates.md (call_operand"): Don't test
19799 TARGET_ABI_UNICOSMK.
19800
fba5dd52 198012011-03-22 Joseph Myers <joseph@codesourcery.com>
19802
19803 * target.def (handle_option): Take gcc_options and
19804 cl_decoded_option pointers and location_t.
19805 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
19806 * doc/tm.texi: Regenerate.
19807 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
19808 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
19809 * lto-opts.c (lto_reissue_options): Generate option structure for
19810 targetm.handle_option call.
19811 * opts.c (target_handle_option): Update call to
19812 targetm.handle_option. Remove assertions about values now passed
19813 down to hook.
19814 * targhooks.c (default_target_handle_option): New.
19815 * targhooks.h (default_target_handle_option): Declare.
19816 * config/alpha/alpha.c: Include opts.h.
19817 (alpha_handle_option): Update to new hook interface.
19818 * config/arm/arm.c: Include opts.h.
19819 (arm_handle_option): Update to new hook interface.
19820 * config/arm/t-arm (arm.o): Update dependencies.
19821 * config/bfin/bfin.c: Include opts.h.
19822 (bfin_handle_option): Update to new hook interface.
19823 * config/cris/cris.c: Include opts.h.
19824 (cris_handle_option): Update to new hook interface.
19825 * config/frv/frv.c: Include opts.h.
19826 (frv_handle_option): Update to new hook interface.
19827 * config/i386/i386.c: Include opts.h.
19828 (ix86_handle_option): Update to new hook interface.
19829 (ix86_valid_target_attribute_inner_p): Generate option structure
19830 for call to ix86_handle_option.
19831 * config/i386/t-i386 (i386.o): Update dependencies.
19832 * config/ia64/ia64.c: Include opts.h.
19833 (ia64_handle_option): Update to new hook interface.
19834 * config/ia64/t-ia64 (ia64.o): Update dependencies.
19835 * config/iq2000/iq2000.c: Include opts.h.
19836 (iq2000_handle_option): Update to new hook interface.
19837 * config/m32c/m32c.c: Include opts.h.
19838 (m32c_handle_option): Update to new hook interface.
19839 * config/m32r/m32r.c: Include opts.h.
19840 (m32r_handle_option): Update to new hook interface.
19841 * config/m68k/m68k.c: Include opts.h.
19842 (m68k_handle_option): Update to new hook interface.
19843 * config/mep/mep.c: Include opts.h.
19844 (mep_handle_option): Update to new hook interface.
19845 * config/microblaze/microblaze.c: Include opts.h.
19846 (microblaze_handle_option): Update to new hook interface.
19847 * config/mips/mips.c: Include opts.h.
19848 (mips_handle_option): Update to new hook interface.
19849 * config/mn10300/mn10300.c: Include opts.h.
19850 (mn10300_handle_option): Update to new hook interface.
19851 * config/pa/pa.c: Include opts.h.
19852 (pa_handle_option): Update to new hook interface.
19853 * config/pdp11/pdp11.c: Include opts.h.
19854 (pdp11_handle_option): Update to new hook interface.
19855 * config/rs6000/rs6000.c: Include opts.h.
19856 (rs6000_handle_option): Update to new hook interface.
19857 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
19858 * config/rx/rx.c: Include opts.h.
19859 (rx_handle_option): Update to new hook interface.
19860 * config/s390/s390.c: Include opts.h.
19861 (s390_handle_option): Update to new hook interface.
19862 * config/score/score.c: Include opts.h.
19863 (score_handle_option): Update to new hook interface.
19864 * config/sh/sh.c: Include opts.h.
19865 (sh_handle_option): Update to new hook interface.
19866 * config/sparc/sparc.c: Include opts.h.
19867 (sparc_handle_option): Update to new hook interface.
19868 * config/v850/v850.c: Include opts.h.
19869 (v850_handle_option): Update to new hook interface.
19870
a4e747a2 198712011-03-22 Joseph Myers <joseph@codesourcery.com>
19872
19873 * gcc.c (driver_unknown_option_callback): Only permit and save
19874 unknown -Wno- options.
19875 (driver_wrong_lang_callback): Save options directly instead of via
19876 driver_unknown_option_callback.
19877
e4ffbd30 198782011-03-22 Eric Botcazou <ebotcazou@adacore.com>
19879
19880 * combine.c (simplify_set): Try harder to find the best CC mode when
19881 simplifying a nested COMPARE on the RHS.
19882
17b3d2a8 198832011-03-22 Joseph Myers <joseph@codesourcery.com>
19884
19885 * config/alpha/gnu.h: Remove.
19886 * config/arc: Remove directory.
19887 * config/arm/netbsd.h: Remove.
19888 * config/arm/t-pe: Remove.
19889 * config/crx: Remove directory.
19890 * config/i386/netbsd.h: Remove.
19891 * config/m68hc11: Remove directory.
19892 * config/m68k/uclinux-oldabi.h: Remove.
19893 * config/mcore/mcore-pe.h: Remove.
19894 * config/mcore/t-mcore-pe: Remove.
19895 * config/netbsd-aout.h: Remove.
19896 * config/rs6000/gnu.h: Remove.
19897 * config/sh/sh-symbian.h: Remove.
19898 * config/sh/symbian-base.c: Remove.
19899 * config/sh/symbian-c.c: Remove.
19900 * config/sh/symbian-cxx.c: Remove.
19901 * config/sh/symbian-post.h: Remove.
19902 * config/sh/symbian-pre.h: Remove.
19903 * config/sh/t-symbian: Remove.
19904 * config/svr3.h: Remove.
19905 * config/vax/netbsd.h: Remove.
19906 * config.build: Don't handle i[34567]86-*-pe.
19907 * config.gcc: Remove handling of deprecations for most deprecated
19908 targets.
19909 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
19910 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
19911 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
19912 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
19913 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
19914 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
19915 Remove cases.
19916 * config.host: Don't handle i[34567]86-*-pe.
19917 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
19918 (ASM_SPEC32): Don't handle -mcall-gnu.
19919 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
19920 -mcall-gnu.
19921 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
19922 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
19923 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
19924 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
19925 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
19926 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
19927 conditional on SYMBIAN.
19928 * configure.ac: Don't handle powerpc*-*-gnu*.
19929 * configure: Regenerate.
19930 * doc/extend.texi (interrupt attribute): Don't mention CRX.
19931 * doc/install-old.texi (m6811, m6812): Don't mention.
19932 * doc/install.texi (arc-*-elf*): Don't document multilib option.
19933 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
19934 (m68k-uclinuxoldabi): Don't mention.
19935 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
19936 Remove.
19937 (-mcall-gnu): Remove.
19938 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
19939 families): Remove constraint documentation.
19940
bae8bb65 199412011-03-22 Marius Strobl <marius@FreeBSD.org>
19942
19943 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
19944 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
19945 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
19946
6da85e21 199472011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
19948
19949 PR target/48226
19950 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
19951 vector when peeking at the next token for vector, don't expand the
19952 keywords.
19953
32969c63 199542011-03-21 Georg-Johann Lay <avr@gjlay.de>
19955
19956 * config/avr/avr-protos.h (expand_epilogue): Change prototype
19957 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
19958 * config/avr/avr.c (init_cumulative_args)
19959 (avr_function_arg_advance): Use it.
19960 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
19961 sibcall epilogues.
19962 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
19963 (avr_function_ok_for_sibcall): ...this new function.
19964 (avr_lookup_function_attribute1): New static Function.
19965 (avr_naked_function_p, interrupt_function_p)
19966 (signal_function_p, avr_OS_task_function_p)
19967 (avr_OS_main_function_p): Use it.
19968 * config/avr/avr.md ("sibcall", "sibcall_value")
19969 ("sibcall_epilogue"): New expander.
19970 ("*call_insn", "*call_value_insn"): New insn.
19971 ("call_insn", "call_value_insn"): Remove
19972 ("call", "call_value", "epilogue"): Change expander to handle
19973 sibling calls.
19974
2bd4d851 199752011-03-21 Nick Clifton <nickc@redhat.com>
19976
19977 * doc/invoke.texi (Overall Options): Move closing brace to end of
19978 options list.
19979 (Optimization Options): Add missing @gol.
19980 (Directory Options): Likewise.
19981 (i386 and x86-64 Options): Likewise.
19982 (RS6000 and PowerPC Options): Likewise.
19983 (i386 and x86-64 Windows Options): Likewise.
19984 (V850 Options): Add text missing from descriptions.
19985
e484266f 199862011-03-22 Richard Henderson <rth@redhat.com>
19987
19988 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
19989 (avr_incoming_return_addr_rtx): New.
19990 (emit_push_byte): New.
19991 (expand_prologue): Use it. Remove incorrect dwarf annotation for
19992 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
19993 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
19994 (emit_pop_byte): New.
19995 (expand_epilogue): Use it. Pop frame pointer by bytes.
19996 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
19997 (INCOMING_RETURN_ADDR_RTX): New.
19998 (INCOMING_FRAME_SP_OFFSET): New.
19999 (ARG_POINTER_CFA_OFFSET): New.
20000 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
20001 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
20002 (pophi): Remove.
20003
cf840280 20004 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
20005
8761b9a1 200062011-03-22 Nathan Froyd <froydnj@codesourcery.com>
20007
20008 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
20009 (FUNCTION_ARG_ADVANCE): Likewise.
20010 * tm.texi.in: Change references to them to hook references.
20011 * tm.texi: Regenerate.
20012 * targhooks.c (default_function_arg): Eliminate check for target
20013 macro.
20014 (default_function_incoming_arg): Likewise.
20015 (default_function_arg_advance): Likewise.
a23f3c3c 20016 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
8761b9a1 20017 (function_arg_advance): Likewise.
20018 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
20019
0b81155f 200202011-03-22 Nathan Froyd <froydnj@codesourcery.com>
20021
20022 * tree.c (build_call_1): New function.
20023 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
20024
1e400367 200252011-03-22 Richard Guenther <rguenther@suse.de>
20026
20027 PR tree-optimization/48228
20028 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
20029 for single-arg PHIs.
20030
68ff067d 200312011-03-22 Andrey Belevantsev <abel@ispras.ru>
20032
20033 PR rtl-optimization/48143
20034 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
20035 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
20036 sse2_cvtps2pd): Likewise.
20037
0a01a6f5 200382011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20039
20040 * recog.c (canonicalize_change_group): Use validate_unshare_change.
20041
c86930b0 200422011-03-22 Richard Guenther <rguenther@suse.de>
20043
20044 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
20045 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
20046 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
20047 and REALIGN_LOAD_EXPR.
20048 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
20049 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
20050 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
20051 DOT_PROD_EXPR case ...
20052 (expand_expr_real_2): ... here.
20053 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
20054 and REALIGN_LOAD_EXPR.
20055 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
20056 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
20057 (vect_create_epilog_for_reduction): Likewise.
20058 (vectorizable_reduction): Likewise.
20059 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
20060 * tree-vect-stmts.c (vectorizable_load): Likewise.
20061
00044e94 200622011-03-22 Eric Botcazou <ebotcazou@adacore.com>
20063
20064 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
20065
b6382e93 200662011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20067
20068 * config/s390/s390.c (s390_delegitimize_address): Fix offset
20069 handling for PLTOFF/GOTOFF.
20070
baa89d5a 200712011-03-22 Nick Clifton <nickc@redhat.com>
20072
20073 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
20074 trailing backslash from the end of the macro definition.
20075
2b2b857a 200762011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20077
20078 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
20079 and PLT unspecs.
20080
39c56a89 200812011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
20082
20083 * expr.h (prepare_operand): Move to...
20084 * optabs.h (prepare_operand): ...here and change the insn code
20085 parameter from "int" to "enum insn_code".
20086 (insn_operand_matches): Declare.
20087 * expr.c (init_expr_target): Use insn_operand_matches.
20088 (compress_float_constant): Likewise.
20089 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
20090 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
20091 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
a23f3c3c 20092 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
20093 Likewise.
39c56a89 20094 (gen_cond_trap): Likewise.
20095 (prepare_operand): Likewise. Change icode to an insn_code.
20096 (insn_operand_matches): New function.
20097 * reload.c (find_reloads_address_1): Use insn_operand_matches.
20098 * reload1.c (gen_reload): Likewise.
20099 * targhooks.c (default_secondary_reload): Likewise.
20100
38557452 201012011-03-21 Uros Bizjak <ubizjak@gmail.com>
20102
af9af376 20103 * config/alpha/alpha.md (unspec): New define_c_enum.
20104 (unspecv): Ditto.
20105
201062011-03-21 Uros Bizjak <ubizjak@gmail.com>
20107
20108 PR debug/48214
38557452 20109 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
20110 between a call and its CALL_ARG_LOCATION note.
20111
8d683dc1 201122011-03-21 Eric Botcazou <ebotcazou@adacore.com>
20113
20114 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
20115
201162011-03-21 Jakub Jelinek <jakub@redhat.com>
119d06b2 20117
20118 PR c/42544
20119 PR c/48197
20120 * c-common.c (shorten_compare): If primopN is first sign-extended
20121 to opN and then zero-extended to result type, set primopN to opN.
20122
cac9dbbd 201232011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
20124
20125 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
20126 for barrier handlers.
20127
00e59df9 201282011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
20129
20130 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
20131 UNSPEC constants to be in the unspec enumeration, and redefine
20132 all UNSPECV constants to be in the unspecv enumeration, so that
20133 dumps print which unspec/unspec_volatile this is.
20134 * config/rs6000/vector.md (UNSPEC_*): Ditto.
20135 * config/rs6000/paired.md (UNSPEC_*): Ditto.
20136 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
20137 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
20138 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
20139
20140 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
20141 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
20142 UNSPECV_LWSYNC, since these are used as unspec_volatile.
20143 * config/rs6000/sync.md (isync, lwsync): Ditto.
20144
3f1507c5 201452011-03-21 Richard Guenther <rguenther@suse.de>
20146
20147 * params.def (lto-min-partition): Fix typo.
20148
4c59b58b 201492011-03-21 Richard Guenther <rguenther@suse.de>
20150
20151 PR c/47939
20152 * c-decl.c (grokdeclarator): Drop to the main variant only
20153 for array types. Drop flag_gen_aux_info check.
20154
faddffca 201552011-03-21 Richard Guenther <rguenther@suse.de>
20156
20157 PR translation/47911
20158 * params.def (lto-partitions): Fix typo.
20159 (lto-min-partition): Fix wording.
20160
af1c85c3 201612011-03-21 Andreas Tobler <andreast@fgznet.ch>
20162
20163 * config/rs6000/t-freebsd: Remove duplication from file.
20164
4c76cf91 201652011-03-21 Richard Guenther <rguenther@suse.de>
20166
20167 PR middle-end/47661
20168 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
20169
f94df44d 201702011-03-21 Richard Guenther <rguenther@suse.de>
20171
20172 PR lto/48210
20173 * params.def (lto-partitions): Require at least 1 partition.
20174
05caec57 201752011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20176
20177 * gthr-solaris.h: Remove.
20178 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
20179 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
20180 (LIB_SPEC): Likewise.
20181 * config/sol2.opt (threads): Remove.
38557452 20182 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
05caec57 20183 (sparc*-*-solaris2*): Likewise.
20184 * configure.ac (enable_threads): Enable solaris support.
20185 * configure: Regenerate.
38557452 20186 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
05caec57 20187 * doc/install.texi (Configuration, --enable-threads=lib): Remove
20188 solaris.
20189
67a9e807 201902011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20191
20192 * config.gcc: Obsolete *-*-solaris2.8*.
20193 * doc/install.texi (Specific, *-*-solaris2*): Document it.
20194
4180f00a 201952011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20196
20197 PR bootstrap/48135
20198 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
20199 reference. Solaris 8 perl works.
20200
72e55818 202012011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20202
20203 PR bootstrap/48135
20204 * doc/install.texi (Prerequisites): Move jar etc. up.
20205 Explain support library version requirements.
20206
bb6ca4d0 202072011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20208
20209 PR bootstrap/48135
20210 * doc/install.texi (Prerequisites): Move Perl to build
20211 requirements. Always necessary on Solaris 2 with Sun ld.
20212
0165b97c 202132011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20214
20215 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
20216 binutils 2.21.
20217 (Specific, i?86-*-solaris2.[89]): Likewise.
20218 (Specific, i?86-*-solaris2.10): Likewise.
20219 (Specific, mips-sgi-irix6): Likewise.
20220 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
20221 Update for binutils 2.21.
20222
f95617d7 202232011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20224
20225 * configure.ac (gcc_cv_lto_plugin): Fix typo.
20226 Allow -fuse-linker-plugin for non-default plugin linker.
20227 * configure: Regenerate.
20228
b8f73c52 202292011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
20230
20231 PR bootstrap/48167
20232 * gengtype.c (files_rules): Added rule for cp/parser.h.
20233
2b03de53 202342011-03-21 Jakub Jelinek <jakub@redhat.com>
20235
20236 PR target/48213
20237 * config/s390/s390.c (s390_delegitimize_address): Don't call
20238 lowpart_subreg if orig_x has BLKmode.
20239
ac86af5d 202402011-03-21 Kai Tietz <ktietz@redhat.com>
20241
20242 PR target/12171
38557452 20243 * doc/plugins.texi: Adjust documentation for plugin register_callback.
20244 * tree.h (attribute_spec): Add new member affects_type_identity.
20245 * attribs.c (empty_attribute_table): Adjust attribute_spec
20246 initializers.
ac86af5d 20247 * config/alpha/alpha.c: Likewise.
20248 * config/arc/arc.c: Likewise.
20249 * config/arm/arm.c: Likewise.
20250 * config/avr/avr.c: Likewise.
20251 * config/bfin/bfin.c: Likewise.
20252 * config/crx/crx.c: Likewise.
20253 * config/darwin.h: Likewise.
20254 * config/h8300/h8300.c: Likewise.
20255 * config/i386/cygming.h: Likewise.
20256 * config/i386/i386.c: Likewise.
20257 * config/ia64/ia64.c: Likewise.
20258 * config/m32c/m32c.c: Likewise.
20259 * config/m32r/m32r.c: Likewise.
20260 * config/m68hc11/m68hc11.c: Likewise.
20261 * config/m68k/m68k.c: Likewise.
20262 * config/mcore/mcore.c: Likewise.
20263 * config/mep/mep.c: Likewise.
20264 * config/microblaze/microblaze.c: Likewise.
20265 * config/mips/mips.c: Likewise.
20266 * config/rs6000/rs6000.c: Likewise.
20267 * config/rx/rx.c: Likewise.
20268 * config/sh/sh.c: Likewise.
20269 * config/sol2.h: Likewise.
20270 * config/sparc/sparc.c: Likewise.
20271 * config/spu/spu.c: Likewise.
20272 * config/stormy16/stormy16.c: Likewise.
20273 * config/v850/v850.c: Likewise.
20274
37b591fd 202752011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
20276
20277 * simplify-rtx.c (simplify_binary_operation_1): Handle
20278 (xor (and A B) C) case when B and C are both constants.
20279
84769dee 202802011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
20281
20282 * tree-dfa.c (add_referenced_var): Fix typo in comment.
20283
5ac11cfb 202842011-03-20 Eric Botcazou <ebotcazou@adacore.com>
20285
20286 PR bootstrap/48168
20287 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
20288
3693f86f 202892011-03-20 Jakub Jelinek <jakub@redhat.com>
20290
20291 PR rtl-optimization/48156
20292 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
20293 assume df and df_lr are not NULL.
20294
393edd62 202952011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20296
20297 PR debug/48023
20298 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
20299 between a call and its CALL_ARG_LOCATION note.
20300
06dfeb27 203012011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
20302
20303 PR debug/48178
20304 * config/sh/sh.c (find_barrier): Don't emit a constant pool
20305 between a call and its corresponding CALL_ARG_LOCATION note.
20306
771d4616 203072011-03-19 Anatoly Sokolov <aesok@post.ru>
20308
20309 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
20310 instead of loop. Use HARD_REGISTER_NUM_P predicate.
20311 * haifa-sched.c (setup_ref_regs): Ditto.
20312 * caller-save.c (add_used_regs_1): Ditto.
20313 * dse.c (look_for_hardregs): Ditto.
20314 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
20315 * sched-rgn.c (check_live_1): Ditto.
20316
ff889d78 203172011-03-18 Joseph Myers <joseph@codesourcery.com>
20318
20319 * c-decl.c (diagnose_mismatched_decls): Give an error for
20320 redefining a typedef with variably modified type.
20321
9b280b35 203222011-03-18 Joseph Myers <joseph@codesourcery.com>
20323
20324 * c-decl.c (grokfield): Don't allow typedefs for structures or
20325 unions with no tag by default.
20326 * doc/extend.texi (Unnamed Fields): Update.
20327
c3fa352f 203282011-03-18 Uros Bizjak <ubizjak@gmail.com>
20329
20330 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
20331 Rewrite using indirect functions.
20332 (lwp_slwpcb): Ditto.
20333 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
20334 (avx_vinsertf128<mode>): Ditto.
20335
4796d433 203362011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20337
20338 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
20339 unspecs.
20340
7ba1ff79 203412011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20342
20343 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
38557452 20344 splitting between a call and its corresponding CALL_ARG_LOCATION note.
7ba1ff79 20345
c96e0a0a 203462011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
20347
20348 PR rtl-optimization/48170
20349 * gcse.c (hoist_code): Remove bogus asserts.
20350
7da20978 203512011-03-18 Georg-Johann Lay <avr@gjlay.de>
20352
20353 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
20354 computation for prologue/epilogue.
20355
34cb2f5e 203562011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20357
20358 * Makefile.in (check-consistency): Remove.
20359
8db230f7 203602011-03-18 Jakub Jelinek <jakub@redhat.com>
20361
20362 PR debug/48176
20363 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
20364 arange_table_in_use is 0, but either text_section_used or
20365 cold_text_section_used is true. Don't call it if
20366 !info_section_emitted.
20367
73475e84 203682011-03-18 Anatoly Sokolov <aesok@post.ru>
20369
20370 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
20371 FUNCTION_VALUE_REGNO_P): Remove.
20372 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
20373 Remove.
20374 * config/avr/avr.c (avr_ret_register): Make static inline.
20375 (avr_function_value_regno_p): New function.
20376 (avr_libcall_value): Make static. Add 'func' argument.
20377 (avr_function_value): Make static. Rename 'func' argument to
20378 'fn_decl_or_type', forward it to avr_libcall_value. Call
20379 avr_ret_register function instead of RET_REGISTER macro.
c50e6579 20380 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
73475e84 20381
0a362bb5 203822011-03-18 Jason Merrill <jason@redhat.com>
20383
20384 PR c++/23372
20385 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
20386
5b91c59c 203872011-03-18 Richard Guenther <rguenther@suse.de>
20388
20389 * doc/install.texi (--enable-gold): Remove.
20390 (--with-plugin-ld): Document.
20391 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
20392
7da20978 203932011-03-18 Andrew Pinski <pinskia@gmail.com>
c4532f22 20394
20395 PR middle-end/47790
20396 * expr.c (optimize_bitfield_assignment_op): Revamp to work
20397 again after expansion changes.
20398
54a61993 203992011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
20400
20401 * combine.c (try_combine): Do simplification only call of
20402 subst() on i2 even when i1 is present. Update comments.
20403
ebd1f2ea 204042011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
20405
20406 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
20407 and UNSPEC_PCREL_SYMOFF.
20408
292ce034 204092011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20410
20411 * config/s390/s390.md: Use define_c_enum for the unspec constant
20412 definitions.
20413
88ff2f0d 204142011-03-18 Richard Henderson <rth@redhat.com>
20415 Jakub Jelinek <jakub@redhat.com>
20416
20417 PR bootstrap/48161
20418 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
20419 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
20420
6d0d55a1 204212011-03-17 Anatoly Sokolov <aesok@post.ru>
20422
20423 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20424 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
20425 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
20426 Change return type to bool.
20427 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20428
56fe7223 204292011-03-17 Jakub Jelinek <jakub@redhat.com>
20430
e3a8f582 20431 PR debug/48163
20432 * var-tracking.c (prepare_call_arguments): If CALL target
20433 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
20434 pc instead of looking it up using cselib_lookup and use
20435 Pmode for it if x has VOIDmode.
20436 * dwarf2out.c (gen_subprogram_die): If also both first and
20437 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
20438
56fe7223 20439 PR debug/48163
20440 * function.c (assign_parms): For data.passed_pointer parms
20441 use MEM of data.entry_parm instead of data.entry_parm itself
20442 as DECL_INCOMING_RTL.
20443 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
20444 also when passed and declared mode is the same, DECL_RTL
20445 is a MEM with pseudo as address and DECL_INCOMING_RTL is
20446 a MEM too.
20447
be03890a 204482011-03-16 Jeff Law <law@redhat.com>
20449
20450 PR rtl-optimization/37273
20451 * ira-costs.c (scan_one_insn): Detect constants living in memory and
20452 handle them like argument loads from stack slots. Do not double
20453 count memory for memory constants and argument loads from stack slots.
20454
4a55735d 204552011-03-17 H.J. Lu <hongjiu.lu@intel.com>
20456
20457 PR debug/48160
20458 * var-tracking.c (prepare_call_arguments): Check SUBREG.
20459
102a8e0c 204602011-03-17 H.J. Lu <hongjiu.lu@intel.com>
20461
20462 PR target/48171
20463 * config/i386/i386.opt: Add Save to -mavx and -mfma.
20464
2f5e9511 204652011-03-17 Jakub Jelinek <jakub@redhat.com>
20466
3651a95c 20467 PR bootstrap/48153
20468 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
20469 if dwarf_strict.
20470 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
20471 Clear call_arg_locations and call_arg_loc_last always.
20472
2f5e9511 20473 PR middle-end/48152
20474 * var-tracking.c (prepare_call_arguments): If argument needs to be
20475 passed by reference, adjust argtype and mode.
20476
02a562db 204772011-03-17 Richard Guenther <rguenther@suse.de>
20478
20479 PR middle-end/48134
20480 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
20481 a value make sure to fold the statement.
20482
b4344328 204832011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
20484
20485 PR target/43872
20486 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
20487 return condition with !cfun->calls_alloca.
20488
5e9e6543 204892011-03-17 Richard Guenther <rguenther@suse.de>
20490
20491 PR bootstrap/48148
20492 * lto-cgraph.c (input_overwrite_node): Clear the abstract
20493 origin for decls in other ltrans units.
20494 (input_varpool_node): Likewise.
20495
c5c23f27 204962011-03-17 Richard Guenther <rguenther@suse.de>
20497
20498 PR middle-end/48165
20499 * tree-object-size.c (compute_object_offset): Properly return
20500 the offset operand of MEM_REFs as sizetype.
20501
c75be2fe 205022011-03-17 Jakub Jelinek <jakub@redhat.com>
20503
1242bee6 20504 PR rtl-optimization/48141
20505 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
20506 * dse.c: Include params.h.
20507 (active_local_stores_len): New variable.
20508 (add_wild_read, dse_step1): Clear it when setting active_local_stores
20509 to NULL.
20510 (record_store, check_mem_read_rtx): Decrease it when removing
20511 from the chain.
20512 (scan_insn): Likewise. Increase it when adding to chain, if it
20513 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
20514 set active_local_stores to NULL before the addition.
20515 * Makefile.in (dse.o): Depend on $(PARAMS_H).
20516
c75be2fe 20517 PR rtl-optimization/48141
20518 * dse.c (record_store): If no positions are needed in an insn
20519 that cannot be deleted, at least unchain it from active_local_stores.
20520
37b41f90 205212011-03-16 Dodji Seketeli <dodji@redhat.com>
20522
20523 PR debug/47510
20524 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
20525 (lookup_type_die_strip_naming_typedef): ... here.
20526 (get_context_die): Use it.
20527 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
20528 the anonymous struct named by the naming typedef.
20529
4a9c429f 205302011-03-16 H.J. Lu <hongjiu.lu@intel.com>
20531
20532 PR target/48154
20533 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
20534 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20535
69978c67 205362011-03-16 Jeff Law <law@redhat.com>
20537
20538 * tree-vrp.c (identify_jump_threads): Slightly simplify type
c3fa352f 20539 check for operands of conditional. Allow type to be a pointer.
69978c67 20540
12bf1231 205412011-03-16 Richard Guenther <rguenther@suse.de>
20542
20543 PR tree-optimization/48149
20544 * fold-const.c (fold_binary_loc): Fold
20545 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
20546
8ba0d70d 205472011-03-16 Richard Guenther <rguenther@suse.de>
20548
20549 PR tree-optimization/26134
20550 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
20551 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
20552 (non_rewritable_mem_ref_base): Handle complex type component
20553 accesses, constrain offsets for vector and complex extracts
20554 more properly.
20555
63eb2430 205562011-03-16 Richard Guenther <rguenther@suse.de>
20557
20558 PR tree-optimization/48146
20559 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
20560 operands avoiding the need for renaming.
20561
c701e5d5 205622011-03-16 Richard Guenther <rguenther@suse.de>
20563
20564 * gimple-fold.c (maybe_fold_reference): Open-code relevant
20565 constant folding. Move MEM_REF canonicalization first.
20566 Rely on fold_const_aggregate_ref for initializer folding.
20567 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
20568
c5af5828 205692011-03-16 Jakub Jelinek <jakub@redhat.com>
20570
e55c8585 20571 PR middle-end/48136
20572 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20573 arg0/arg1 or their arguments are always fold converted to matching
20574 types.
20575
c5af5828 20576 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
20577 to nargs.
20578
c5f741b3 205792011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20580
20581 PR lto/46944
20582 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
20583 Handle in-tree gold.
20584 (ld_vers): Extract binutils version for gold.
20585 (gcc_cv_ld_hidden): Handle gold here.
20586 (gcc_cv_lto_plugin): Determine level of linker plugin support.
20587 * configure: Regenerate.
20588 * config.in: Regenerate.
20589 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
20590 -fuse-linker-plugin otherwise.
20591 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
20592 (LINK_COMMAND_SPEC): Use it.
20593 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
20594
4143d08b 205952011-03-16 Jakub Jelinek <jakub@redhat.com>
20596
18b7c118 20597 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
20598 * calls.c: Remove debug.h include.
20599 (emit_call_1): Don't call virtual_call_token debug hook.
20600 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
20601 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
20602 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
20603 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
20604 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
20605 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
20606 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
20607 dwarf2out_virtual_call): Remove.
20608 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
20609 copy_call_info and virtual_call hooks.
20610 (dwarf2out_init): Don't initialize vcall_insn_table,
20611 debug_dcall_section and debug_vcall_section.
20612 (prune_unused_types): Don't mark nodes from dcall_table.
20613 (dwarf2out_finish): Don't output dcall or vcall tables.
20614 * final.c (final_scan_insn): Don't call direct_call or
20615 virtual_call debug hooks.
20616 * debug.h (struct gcc_debug_hooks): Remove direct_call,
20617 virtual_call_token, copy_call_info and virtual_call hooks.
20618 (debug_nothing_uid): Remove prototype.
20619 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
20620 copy_call_info and virtual_call hooks.
20621 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20622 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20623 * debug.c (do_nothing_debug_hooks): Likewise.
20624 (debug_nothing_uid): Remove.
20625 * doc/invoke.texi (-fenable-icf-debug): Remove.
20626 * common.opt (-fenable-icf-debug): Likewise.
20627
57999964 20628 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
20629 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
20630 call's MEM. Handle functions returning aggregate through a hidden
20631 first pointer. For virtual calls add clobbered pc to call arguments
20632 chain.
20633 * dwarf2out.c (gen_subprogram_die): Emit
20634 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
20635 can't be emitted.
20636
a5701bde 20637 PR debug/45882
20638 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
20639 * rtl.h (ENTRY_VALUE_EXP): Define.
20640 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
20641 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
20642 * print-rtl.c (print_rtx): Likewise.
20643 * gengtype.c (adjust_field_rtx_def): Likewise.
20644 * var-tracking.c (vt_add_function_parameter): Adjust
20645 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
20646 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
20647 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
20648 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
20649 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
20650
4143d08b 20651 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
20652 Call var_location debug hook even on CALL_INSNs.
20653 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
20654 * rtl.def (ENTRY_VALUE): New.
20655 * dwarf2out.c: Include cfglayout.h.
20656 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
20657 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
20658 (struct call_arg_loc_node): New type.
20659 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
20660 tail_call_site_count): New variables.
20661 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
20662 DW_TAG_GNU_call_site_parameter.
20663 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
20664 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
20665 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
20666 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
20667 and DW_AT_GNU_all_source_call_sites.
20668 (mem_loc_descriptor): Handle ENTRY_VALUE.
20669 (add_src_coords_attributes): Don't add enything if
20670 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
20671 (dwarf2out_abstract_function): Save and clear call_arg_location,
20672 call_site_count and tail_call_site_count around dwarf2out_decl call.
20673 (gen_call_site_die): New function.
20674 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
20675 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
20676 (dwarf2out_function_decl): Clear call_arg_locations,
20677 call_arg_loc_last, set call_site_count and tail_call_site_count
20678 to -1 and free block_map.
20679 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
20680 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
20681 followed by any real instructions.
20682 (dwarf2out_begin_function): Set call_site_count and
20683 tail_call_site_count to 0.
20684 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
20685 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
20686 attempt to force a DIE for it and worst case remove the attribute.
20687 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
20688 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
20689 the decl itself.
20690 * var-tracking.c: Include tm_p.h.
20691 (vt_stack_adjustments): For calls call note_register_arguments.
20692 (argument_reg_set): New variable.
20693 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
20694 ensure the VALUE is resolved.
20695 (call_arguments): New variable.
20696 (prepare_call_arguments): New function.
20697 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
20698 (struct expand_loc_callback_data): Add ignore_cur_loc field.
20699 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
20700 always use the best expression.
20701 (vt_expand_loc): Add ignore_cur_loc argument.
20702 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
20703 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
20704 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
20705 note for all calls.
20706 (vt_add_function_parameter): Use cselib_lookup_from_insn.
20707 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
20708 argument. Don't call cselib_preserve_only_values and
20709 cselib_reset_table.
20710 (note_register_arguments): New function.
20711 (vt_initialize): Compute argument_reg_set. Call
20712 vt_add_function_parameters before processing basic blocks instead of
20713 afterwards. For calls call prepare_call_arguments before calling
20714 cselib_process_insn.
20715 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
20716 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
20717 (var-tracking.o): Depend on $(TM_P_H).
20718 * cfglayout.h (insn_scope): New prototype.
20719 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
20720 * cfglayout.c (insn_scope): No longer static.
20721 * insn-notes.def (CALL_ARG_LOCATION): New.
20722 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
20723 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
20724 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
20725 nothing for DECL_EXTERNAL BLOCK_VARS.
20726
381d8e21 207272011-03-16 Alan Modra <amodra@gmail.com>
20728
20729 PR target/45844
20730 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
20731 create invalid offset address for vsx splat insn.
20732 * config/rs6000/predicates.md (splat_input_operand): New.
20733 * config/rs6000/vsx.md (vsx_splat_*): Use it.
20734
3751887c 207352011-03-15 Xinliang David Li <davidxl@google.com>
20736
20737 PR c/47837
20738 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
20739 (normalize_preds): New function.
20740 (is_use_properly_guarded): Normalize def predicates.
20741
aabe09ac 207422011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20743
e6af1b8d 20744 PR target/46788
aabe09ac 20745 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
20746 in the output template.
20747
8eb81823 207482011-03-15 Richard Guenther <rguenther@suse.de>
20749
20750 PR middle-end/47650
20751 * tree-pretty-print.c (dump_function_declaration): Properly
20752 dump unprototyped and varargs function types.
20753
77c7051b 207542011-03-15 Richard Guenther <rguenther@suse.de>
20755
20756 PR tree-optimization/13954
20757 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
20758 and friends.
20759
8a62fbb0 207602011-03-15 Richard Guenther <rguenther@suse.de>
20761
20762 PR tree-optimization/48037
20763 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
20764 selects into BIT_FIELD_REFs.
20765 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
20766 vector select.
20767
1914d98e 207682011-03-15 Jakub Jelinek <jakub@redhat.com>
20769
20770 PR tree-optimization/48129
20771 * builtins.c (fold_builtin_snprintf): Convert to type of
20772 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
20773 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
20774
2109076a 207752011-03-15 Richard Guenther <rguenther@suse.de>
20776
20777 PR tree-optimization/41490
20778 * tree-ssa-dce.c (propagate_necessity): Handle returns without
20779 value but with VUSE.
20780 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
20781 return statements.
20782 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
20783 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
20784 * tree-tailcall.c (find_tail_calls): Ignore returns.
20785
ac5ffdb4 207862011-03-15 Richard Guenther <rguenther@suse.de>
20787
20788 PR middle-end/48031
20789 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
20790 or variable-indexed array accesses when in gimple form.
20791
8d86260d 207922011-03-15 Richard Guenther <rguenther@suse.de>
20793
c3fa352f 20794 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
8d86260d 20795
a93b6189 207962011-03-15 Alan Modra <amodra@gmail.com>
20797
20798 PR target/48032
20799 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
20800 presume symbol_refs without a symbol_ref_decl are suitably
20801 aligned, nor other trees we may see here. Handle anchor symbols.
20802 (legitimate_constant_pool_address_p): Comment. Add mode param.
20803 Check cmodel=medium addresses. Adjust all calls.
20804 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
20805 creating cmodel=medium optimized access to locals.
20806 * config/rs6000/constraints.md (R): Pass QImode to
20807 legitimate_constant_pool_address_p.
20808 * config/rs6000/predicates.md (input_operand): Pass mode to
20809 legitimate_constant_pool_address_p.
20810 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
20811 Update prototype.
20812
86b9699b 208132011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
20814
20815 PR target/48053
20816 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
20817 64-bit constants being loaded into registers other than GPRs such
20818 as loading 0 into a VSX register.
20819
a6d6d956 208202011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20821
c3fa352f 20822 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
a6d6d956 20823
89ec8421 208242011-03-14 Jakub Jelinek <jakub@redhat.com>
20825
750d7b16 20826 PR middle-end/47917
20827 * builtins.c (fold_builtin_snprintf): New function.
20828 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
20829 (fold_builtin_4): Likewise.
20830
36370f11 20831 PR middle-end/38878
20832 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
20833 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
20834 and C - X == X also strip nops from +/-/p+ operand.
20835 When optimizing -X == C, fold C to arg0's type.
20836
89ec8421 20837 PR debug/47946
20838 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
20839 emit it as add_AT_int instead of add_AT_unsigned.
20840
208412011-03-14 Tom Tromey <tromey@redhat.com>
f77bcf96 20842
20843 * unwind-dw2.c: Include sys/sdt.h if it exists.
20844 (_Unwind_DebugHook): Use STAP_PROBE2.
20845 * config.in, configure: Rebuild.
20846 * configure.ac: Check for sys/sdt.h.
20847
475f05b7 208482011-03-14 Uros Bizjak <ubizjak@gmail.com>
20849
20850 * config/i386/i386.md (ROUND_FLOOR): New constant.
20851 (ROUND_CEIL): Ditto.
20852 (ROUND_TRUNC): Ditto.
20853 (ROUND_MXCSR): Ditto.
20854 (ROUND_NO_EXC): Ditto.
20855 (rint<mode>2): Use new defines instead of numerical constants.
20856 (floor<mode>2): Ditto.
20857 (ceil<mode>2): Ditto.
20858 (btrunc<mode>2): Ditto.
20859 * config/i386/i386-builtin-types.def: Define ROUND function type
20860 aliases.
20861 * config/i386/i386.c (enum ix86_builtins): Add
20862 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
20863 (struct builtin_description): Add
20864 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
20865 (ix86_expand_sse_round): New static function.
20866 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
20867 function types.
20868 (ix86_builtin_vectorized_function): Handle
20869 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20870
88c86c27 208712011-03-14 Tom Tromey <tromey@redhat.com>
20872
20873 * c-parser.c (c_parser_asm_string_literal): Clear
20874 warn_overlength_strings.
20875
4e9eacab 208762011-03-14 Tom Tromey <tromey@redhat.com>
20877
20878 * c-parser.c (disable_extension_diagnostics): Save
20879 warn_overlength_strings.
20880 (restore_extension_diagnostics): Restore warn_overlength_strings.
20881
caec3e67 208822011-03-14 Jakub Jelinek <jakub@redhat.com>
20883
20884 * BASE-VER: Change to 4.7.0.
20885
29928c8f 208862011-03-14 Richard Guenther <rguenther@suse.de>
20887
20888 PR middle-end/48098
20889 * tree.c (build_vector_from_val): Adjust assert to requirements
20890 and reality.
20891
fa4116b9 208922011-03-14 Jakub Jelinek <jakub@redhat.com>
20893
20894 PR bootstrap/48102
475f05b7 20895 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
fa4116b9 20896
48914aa5 208972011-03-14 Andreas Tobler <andreast@fgznet.ch>
20898
dcab66ec 20899 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
48914aa5 20900 terms of target_flags_explicit. Adjust copyright year.
20901
20902 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
20903 * config/rs6000/t-freebsd: New file. Add override for
20904 LIB2FUNCS_EXTRA.
20905
b6b39e83 209062011-03-13 Chris Demetriou <cgd@google.com>
20907
20908 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
20909 (-fno-diagnostics-show-option): this, to reflect current default.
20910 (-Werror=): Update text about -fno-diagnostics-show-option.
20911
54ade85b 209122011-03-12 Peter Bergner <bergner@vnet.ibm.com>
20913
20914 PR target/48053
20915 * config/rs6000/predicates.md (easy_vector_constant_add_self,
20916 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
20917 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
20918 mode is not V2DImode or V2DFmode.
20919 (vspltis_constant): Do not handle V2DImode and V2DFmode.
20920 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
20921 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
20922 registers to 0.
20923 (movdi_internal64): Likewise.
20924
98b9957e 209252011-03-12 Sebastian Pop <sebastian.pop@amd.com>
20926
20927 PR tree-optimization/47127
20928 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
20929 parameter.
20930 (set_cloog_options): Same.
20931 (scop_to_clast): Same.
20932 (print_clast_stmt): Do not call cloog_state_malloc and
20933 cloog_state_free.
20934 (print_generated_program): Same.
20935 (gloog): Same.
20936 * graphite-clast-to-gimple.h (cloog_state): Declared.
20937 (scop_to_clast): Adjust declaration.
20938 * graphite.c (cloog_state): Defined here.
20939 (graphite_initialize): Call cloog_state_malloc.
20940 (graphite_finalize): Call cloog_state_free.
20941
9bf1c74e 209422011-03-11 Jason Merrill <jason@redhat.com>
20943
20944 * attribs.c (lookup_attribute_spec): Take const_tree.
20945 * tree.h: Adjust.
20946
28c3349d 209472011-03-11 Joseph Myers <joseph@codesourcery.com>
20948
20949 * config/sparc/sparc.c (sparc_option_override): Use
20950 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
20951
805ad414 209522011-03-11 Richard Guenther <rguenther@suse.de>
20953
20954 PR tree-optimization/48067
20955 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
20956 multiplication result will be only used once on the target
20957 stmt.
20958
dac8c013 209592011-03-11 Richard Guenther <rguenther@suse.de>
20960
20961 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
20962
9abb7e57 209632011-03-11 Richard Guenther <rguenther@suse.de>
20964
20965 PR lto/48073
20966 * tree.c (find_decls_types_r): Do not walk types only reachable
20967 from IDENTIFIER_NODEs.
20968
5db2ca47 209692011-03-11 Jakub Jelinek <jakub@redhat.com>
20970
20971 PR middle-end/48044
20972 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
20973 all vnode->force_output nodes as needed.
20974
bc7331b6 209752011-03-11 Jason Merrill <jason@redhat.com>
20976
20977 PR c++/48069
20978 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
20979 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
20980
7019fd3f 209812011-03-11 Martin Jambor <mjambor@suse.cz>
20982
20983 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
20984 cgraph_node.
20985
071bc3bd 209862011-03-11 Jakub Jelinek <jakub@redhat.com>
20987
20988 PR tree-optimization/48063
20989 * ipa-inline.c (cgraph_decide_inlining): Don't try to
20990 inline functions called once if !tree_can_inline_p (node->callers).
20991
613a2120 209922011-03-11 Chen Liqin <liqin.gcc@gmail.com>
b8e22756 20993
613a2120 20994 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
20995 extra_objs.
b8e22756 20996 * config/score/score3.c: Delete.
20997 * config/score/score3.h: Delete.
20998 * config/score/mul-div.S: Delete.
20999 * config/score/sfp-machine.h: Add new file.
21000 * config/score/constraints.md: Add new file.
21001 * config/score/t-score-softfp: Add new file.
613a2120 21002 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
b8e22756 21003 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
21004 (score7_extra_constraint): Delete.
613a2120 21005 (score7_option_override): Remove unused code.
b8e22756 21006 * config/score/score.c: Remove score3 and score5 define and code.
21007 * config/score/score.h: Remove score3 and score5 define and code.
613a2120 21008 * config/score/score.md: Remove score3 template and unusual insn.
b8e22756 21009 * config/score/score.opt: Remove score3 and score5 options.
21010
383e9a69 210112011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21012
21013 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
21014 when _HPUX_SOURCE is defined.
21015 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
21016
47c2386f 210172011-03-10 Jason Merrill <jason@redhat.com>
21018
21019 PR c++/48029
21020 * stor-layout.c (layout_type): Don't set structural equality
21021 on arrays of incomplete type.
21022 * tree.c (type_hash_eq): Handle comparing them properly.
21023
54cb44a3 210242011-03-10 Jakub Jelinek <jakub@redhat.com>
21025
21026 PR debug/48043
47c2386f 21027 * config/s390/s390.c (s390_delegitimize_address): Make sure the
54cb44a3 21028 result mode matches original rtl mode.
21029
e3fa4645 210302011-03-10 Nick Clifton <nickc@redhat.com>
21031
21032 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
cf7823c3 21033 (andsi3, andsi3_flags): Fix timings for three operand alternative.
e3fa4645 21034
a7101bd3 210352011-03-09 Jakub Jelinek <jakub@redhat.com>
21036
21037 PR rtl-optimization/47866
21038 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
21039 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
21040 if target wasn't scalar.
21041 * function.c (assign_stack_temp_for_type): Assert that neither
21042 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
21043 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
21044 macro.
21045 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
21046
6d0afa28 210472011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21048
21049 * config/s390/s390-protos.h (s390_label_align): New prototype.
21050 * config/s390/s390.c (s390_label_align): New function.
21051 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
21052
f8c7556f 210532011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
21054
21055 PR target/47755
21056 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
21057 V2DI/V2DF constants. Only all 0's or all 1's are easy.
21058 (output_vec_const_move): Ditto.
21059
53bb95d9 210602011-03-08 Anatoly Sokolov <aesok@post.ru>
21061
21062 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
21063 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
21064 * config/mips/mips.c (mips_preferred_reload_class): Make static.
21065 Change 'rclass' argument and result type to reg_class_t.
21066 (TARGET_PREFERRED_RELOAD_CLASS): Define.
21067
dfc1e3e4 210682011-03-08 Georg-Johann Lay <avr@gjlay.de>
21069
38557452 21070 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21071 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
21072 (TARGET_MEMORY_MOVE_COST): Define.
21073 (avr_register_move_cost, avr_memory_move_cost): New Functions.
dfc1e3e4 21074
29b369d0 210752011-03-08 Jakub Jelinek <jakub@redhat.com>
21076
7a76e05f 21077 PR debug/47881
21078 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
21079 removed anything.
21080
29b369d0 21081 PR tree-optimization/48022
21082 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
21083 for EQ/NE_EXPR.
21084
88948300 210852011-03-07 Jakub Jelinek <jakub@redhat.com>
21086
21087 PR debug/47991
21088 * var-tracking.c (find_use_val): Return NULL for
21089 cui->sets && cui->store_p BLKmode MEMs.
21090
3d451f7c 210912011-03-07 Anatoly Sokolov <aesok@post.ru>
21092
21093 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
21094 Remove.
21095 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
21096 xstormy16_print_operand_address): Remove.
21097 * config/stormy16/stormy16.c (xstormy16_print_operand,
21098 xstormy16_print_operand_address): Make static.
21099 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21100
613a2120 211012011-03-07 Pat Haugen <pthaugen@us.ibm.com>
d9350d7a 21102
21103 PR target/47862
21104 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
21105 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
21106 before definition.
21107
68fb4bc0 211082011-03-07 Zdenek Dvorak <ook@ucw.cz>
21109
21110 PR bootstrap/48000
21111 * cfgloopmanip.c (fix_bb_placements): Return immediately
21112 if FROM is BASE_LOOP's header.
21113
6b37ba94 211142011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
21115
21116 * gimplify.c (gimplify_function_tree): Fix building calls
21117 to __builtin_return_address.
21118
7a2d6ba2 211192011-03-07 Alan Modra <amodra@gmail.com>
21120
21121 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
21122 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
21123 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
21124 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
21125 return_mode args.
21126 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
21127 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
21128 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
21129 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
21130 * config/rs6000/rs6000.c
21131 (rs6000_elf_end_indicate_exec_stack): Rename to..
21132 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
21133 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
21134 (rs6000_file_start): ..here.
21135 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
21136 file scope variables.
21137 (call_ABI_of_interest): New function.
21138 (init_cumulative_args): Set above vars when function return value
21139 is a float, vector, or small struct.
21140 (rs6000_function_arg_advance_1): Likewise for function args.
21141 (rs6000_va_start): Set rs6000_passes_float if variable arg function
21142 references float args.
21143
83a53524 211442011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
21145
21146 * doc/cfg.texi: Remove "See" before @ref.
21147 * doc/invoke.texi: Likewise.
21148
e21b716e 211492011-03-05 Jason Merrill <jason@redhat.com>
21150
21151 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
21152
01a092a9 211532011-03-05 Anthony Green <green@moxielogic.com>
21154
21155 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
21156
6e05e600 211572011-03-05 Zdenek Dvorak <ook@ucw.cz>
21158
21159 PR rtl-optimization/47899
21160 * cfgloopmanip.c (fix_bb_placements): Fix first argument
21161 to flow_loop_nested_p when moving the loop upward.
21162
85e02ccb 211632011-03-05 Richard Earnshaw <rearnsha@arm.com>
21164
21165 PR target/47719
21166 * arm.md (movhi_insn_arch4): Accept any immediate constant.
21167
f9e9b574 211682011-03-05 Jakub Jelinek <jakub@redhat.com>
21169
21170 PR tree-optimization/47967
21171 * ipa-cp.c (build_const_val): Return NULL instead of creating
21172 VIEW_CONVERT_EXPR for mismatching sizes.
21173 (ipcp_create_replace_map): Return NULL if build_const_val failed.
21174 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
21175 give up on versioning.
21176
e06d1367 211772011-03-05 Alan Modra <amodra@gmail.com>
21178
21179 PR target/47986
21180 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21181 full cmodel medium/large lo_sum + high addresses.
21182
cf8ffe7d 211832011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21184
21185 * config/s390/s390.c (s390_decompose_address): Reject non-literal
21186 pool references in UNSPEC_LTREL_OFFSET.
21187
aa29908f 211882011-03-04 Jan Hubicka <jh@suse.cz>
21189
21190 PR lto/47497
21191 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
21192 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
475f05b7 21193 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
21194 Add node pointers.
aa29908f 21195 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
21196 cgraph_add_thunk): Add node pointers.
21197 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
21198 associated to right node.
21199 (input_node): Update use of cgraph_same_body_alias
21200 and cgraph_add_thunk.
21201
3852c2b6 212022011-03-04 Changpeng Fang <changpeng.fang@amd.com>
21203
21204 * config/i386/i386.opt (mprefer-avx128): New flag.
475f05b7 21205 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
21206 modes when the flag -mprefer-avx128 is on.
3852c2b6 21207
3f311b17 212082011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
21209
21210 * dwarf2out.c (compare_loc_operands): Fix address handling.
21211
2c91799f 212122011-03-04 Alan Modra <amodra@gmail.com>
21213
21214 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
21215
d5f2f2c4 212162011-03-04 Richard Guenther <rguenther@suse.de>
21217
21218 PR middle-end/47968
21219 * expmed.c (extract_bit_field_1): Prefer vector modes that
21220 vec_extract patterns can handle.
21221
4ea35dcb 212222011-03-04 Richard Guenther <rguenther@suse.de>
21223
21224 PR middle-end/47975
21225 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
21226
e9c97615 212272011-03-04 Richard Henderson <rth@redhat.com>
21228
21229 * explow.c (emit_stack_save): Remove 'after' parameter.
21230 (emit_stack_restore): Likewise.
21231 * expr.h: Update to match.
21232 * builtins.c, calls.c, stmt.c: Likewise.
21233 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
21234 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
21235 * function.c (expand_function_end): Insert the emit_stack_save
21236 sequence before parm_birth_insn instead of after.
21237
1fda60c6 212382011-03-03 Uros Bizjak <ubizjak@gmail.com>
21239
21240 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
21241 (ssse3_pmaddubsw128): Ditto.
21242 (ssse3_pmaddubsw): Ditto.
21243
f4210abd 212442011-03-03 Steve Ellcey <sje@cup.hp.com>
21245
21246 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
21247
e488c25f 212482011-03-03 Jakub Jelinek <jakub@redhat.com>
21249
9b695a53 21250 PR c/47963
21251 * gimplify.c (omp_add_variable): Only call omp_notice_variable
21252 on TYPE_SIZE_UNIT if it is a DECL.
21253
e488c25f 21254 PR debug/47283
21255 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
21256 first operand is not is_gimple_mem_ref_addr, try to fold it.
21257 If the operand still isn't is_gimple_mem_ref_addr, clear
21258 MEM_EXPR on op0.
21259
9c01641d 212602011-03-03 Richard Guenther <rguenther@suse.de>
21261
21262 PR middle-end/47283
21263 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
21264 match comment.
21265 (refs_may_alias_p_1): For release branches return true if
21266 we are confused by our input.
21267
dc3b3062 212682011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21269
21270 * config/s390/s390.c (s390_function_value): Rename to ...
21271 (s390_function_and_libcall_value): ... this.
21272 (s390_function_value): New function.
21273 (s390_libcall_value): New function.
1fda60c6 21274 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
dc3b3062 21275 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
21276 target macro definitions.
21277 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
21278
5c377a13 212792011-03-02 Joseph Myers <joseph@codesourcery.com>
21280
21281 * config/i386/freebsd64.h (CC1_SPEC): Define.
21282 * config/i386/linux64.h (CC1_SPEC): Define.
21283 * config/i386/x86-64.h (CC1_SPEC): Don't define.
21284
f9fd3680 212852011-03-02 Anatoly Sokolov <aesok@post.ru>
21286
21287 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21288 Remove.
21289 * config/stormy16/stormy16.c: Include reload.h.
21290 (xstormy16_memory_move_cost): New function.
21291 (TARGET_MEMORY_MOVE_COST): Define.
21292
46313beb 212932011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
21294
21295 PR rtl-optimization/47925
21296 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
21297 with side effects. Remove the more-specific check for volatile asms.
21298
f6b38d5f 212992011-03-02 Alan Modra <amodra@gmail.com>
21300
21301 PR target/47935
21302 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
21303 toc relative addresses for valid offsets.
21304
ffb35eed 213052011-03-01 Richard Guenther <rguenther@suse.de>
21306
21307 PR tree-optimization/47890
21308 * tree-vect-loop.c (get_initial_def_for_induction): Set
21309 related stmt properly.
21310
4525baee 213112011-03-01 Richard Guenther <rguenther@suse.de>
21312
21313 PR lto/47924
21314 * lto-streamer.c (lto_record_common_node): Also register
21315 the canonical type.
21316
f69f16c8 213172011-03-01 Richard Guenther <rguenther@suse.de>
21318
21319 PR lto/46911
21320 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21321 Do not stream DECL_ABSTRACT_ORIGIN.
21322 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21323 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21324 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21325 Do not stream DECL_ABSTRACT_ORIGIN.
21326 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21327 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21328
65bf7507 213292011-02-28 Anatoly Sokolov <aesok@post.ru>
21330
21331 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
21332 FUNCTION_VALUE_REGNO_P): Remove.
50fd5b8b 21333 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
65bf7507 21334 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
21335 Add 'outgoing' argument.
21336 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
21337 function.
21338 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21339 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21340
875ffd1d 213412011-02-28 Kai Tietz <kai.tietz@onevision.com>
21342
21343 PR debug/28047
21344 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
21345 (lookup_filename): Likewise.
50fd5b8b 21346 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
875ffd1d 21347
943d8723 213482011-02-28 Bernd Schmidt <bernds@codesourcery.com>
21349 Jakub Jelinek <jakub@redhat.com>
21350
21351 PR middle-end/47893
21352 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
21353 (assign_stack_local_1): Change last argument type to int.
21354 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
21355 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
50fd5b8b 21356 don't record padding space into frame_space_list nor use those areas.
943d8723 21357 (assign_stack_local): Adjust caller.
21358 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
21359 of assign_stack_local, pass 0 as last argument.
21360 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
21361 callers.
21362
34edf61b 213632011-02-28 Jakub Jelinek <jakub@redhat.com>
21364
cd799492 21365 PR debug/47283
21366 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
21367 Use target address_mode and pointer_mode hooks instead of hardcoded
21368 Pmode and ptr_mode. Handle some simple cases of extending if
21369 POINTERS_EXTEND_UNSIGNED < 0.
21370 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
21371 Call convert_debug_memory_address.
21372 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
21373 convert_debug_memory_address.
21374
34edf61b 21375 PR middle-end/46790
21376 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
21377 * configure: Regenerated.
21378 * config.in: Regenerated.
21379 * varasm.c (default_function_section): Return NULL
50fd5b8b 21380 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
34edf61b 21381
ef725e2a 213822011-02-28 Martin Jambor <mjambor@suse.cz>
21383
21384 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
21385 the description to match the printed values.
21386
a6519462 213872011-02-28 Richard Guenther <rguenther@suse.de>
21388
21389 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
21390 of the copied scope tree.
21391
0695a9f1 213922011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21393
21394 * doc/extend.texi (Function Attributes): Avoid deeply (and
21395 wrongly) nested tables.
21396
776f6fe8 213972011-02-27 Jakub Jelinek <jakub@redhat.com>
21398
21399 PR middle-end/47903
21400 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
21401 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
21402 r isn't op0 nor op1.
21403
dfa3cb1f 214042011-02-23 Georg-Johann Lay <avr@gjlay.de>
21405
21406 * config/avr/avr.md: Remove magic comment for emacs.
21407
db17070c 214082011-02-23 Georg-Johann Lay <avr@gjlay.de>
21409
21410 PR target/45261
21411 * config/avr/avr.c (avr_option_override): Use error on bad options.
21412 (avr_help): New function.
21413 (TARGET_HELP): Define.
21414
1f959902 214152011-02-22 Georg-Johann Lay <avr@gjlay.de>
21416
21417 PR target/42240
21418 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
21419 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
21420
30f499b1 214212011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
21422
21423 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
21424 (ARM Options): Ditto.
21425 (i386 and x86-64 Options): Ditto.
21426 (RX Options): Ditto.
21427 (SPARC Options): Ditto.
21428
0be8ff0a 214292011-02-26 Tijl Coosemans <tijl@coosemans.org>
21430
21431 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
21432 FreeBSD 6 and later. Generally use cpu generic.
21433
80778a8f 214342011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
50fd5b8b 21435
80778a8f 21436 * doc/cpp.texi: Update copyright years.
21437
ba6ea72b 214382011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
a965af21 21439
ba6ea72b 21440 PR target/46898
a965af21 21441 * config/lm32/lm32.md (ashrsi3): Added needed variable.
21442
ba6ea72b 214432011-02-25 Jon Beniston <jon@beniston.com>
a965af21 21444
ba6ea72b 21445 PR target/46898
a965af21 21446 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
21447 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
21448 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
21449 (lm32_block_move_inline): Add type cast to remove warning.
50fd5b8b 21450 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
a965af21 21451 (gen_int_relational): Move declarations to start of function.
21452
96b07a49 214532011-02-25 Eric Botcazou <ebotcazou@adacore.com>
21454
21455 PR tree-optimization/45470
21456 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
21457 can throw internally only.
21458 * tree-vect-stmts.c (vectorizable_call): Likewise.
21459
8fe62af3 214602011-02-24 Anatoly Sokolov <aesok@post.ru>
21461
21462 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
21463 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21464 * config/stormy16/stormy16-protos.h
21465 (xstormy16_preferred_reload_class): Remove.
21466 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
21467 static. Change 'rclass' argument and return type to reg_class_t.
21468 (TARGET_PREFERRED_RELOAD_CLASS,
21469 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21470
c7f193a9 214712011-02-24 Richard Guenther <rguenther@suse.de>
21472
21473 * lto-streamer-in.c (input_bb): Do not find referenced vars
21474 in debug statements.
21475
4d7aaf8e 214762011-02-23 Jason Merrill <jason@redhat.com>
21477
21478 * common.opt (fabi-version): Document v5 and v6.
21479
1d9199d5 214802011-02-23 Richard Guenther <rguenther@suse.de>
21481
21482 PR tree-optimization/47849
21483 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
21484
fde5bd5c 214852011-02-23 Jie Zhang <jie@codesourcery.com>
21486
21487 * opts-common.c (decode_cmdline_option): Print empty string
21488 argument as "" in decoded->orig_option_with_args_text.
21489 * gcc.c (execute): Print empty string argument as ""
21490 in the verbose output.
21491 (do_spec_1): Keep empty string argument.
21492
269a3896 214932011-02-23 Nathan Froyd <froydnj@codesourcery.com>
21494
21495 * config.gcc: Declare score-* and crx-* obsolete.
21496
90db8e34 214972011-02-23 Jie Zhang <jie@codesourcery.com>
21498
21499 PR rtl-optimization/47763
21500 * web.c (web_main): Ignore naked clobber when replacing register.
21501
50ff388b 215022011-02-22 Anatoly Sokolov <aesok@post.ru>
21503
21504 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
21505 Remove.
21506
d4bd50d9 215072011-02-22 Sebastian Pop <sebastian.pop@amd.com>
21508
21509 PR doc/47848
21510 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
21511
b8a3bb74 215122011-02-22 Mike Stump <mikestump@comcast.net>
21513
21514 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
21515 assembler.
21516 * configure: Regenerate.
21517
a79c1c05 215182011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
21519
21520 PR rtl-optimization/46002
21521 * ira-color.c (update_copy_costs): Change class intersection
21522 test to reg_class_contents[] test of 'hard_regno'.
21523
93cc2636 215242011-02-21 Joseph Myers <joseph@codesourcery.com>
21525
21526 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
21527 than Driver option.
21528 * config/hpux11.opt (mt): Likewise.
21529 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
21530 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
21531 * config/vax/elf.opt (mno-asm-pic): Likewise.
21532 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
21533
820c090b 215342011-02-21 Mike Stump <mikestump@comcast.net>
21535
21536 PR target/47822
21537 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
21538 tree so we can get save the type.
21539 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
21540 for CFString instead of trying to use past the end of the builtins.
21541 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
21542 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
21543 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
21544 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
21545 Rename to darwin_builtin_cfstring.
21546 (darwin_init_cfstring_builtins): Return the built type.
21547
63bd35a7 215482011-02-21 Uros Bizjak <ubizjak@gmail.com>
21549
21550 PR target/47840
21551 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
21552 (_mm256_insert_epi64): Use _mm_insert_epi64.
21553
e53c7df3 215542011-02-21 Anatoly Sokolov <aesok@post.ru>
21555
21556 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21557 * config/stormy16/stormy16-protos.h
21558 (xstormy16_mode_dependent_address_p): Remove.
21559 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
21560 Make static. Change return type to bool. Change argument type to
21561 const_rtx. Remove dead code.
21562 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21563
03d20231 215642011-02-21 Richard Guenther <rguenther@suse.de>
21565
21566 PR lto/47820
21567 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21568 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21569 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
21570 TUs context.
63bd35a7 21571 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
03d20231 21572 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21573
b1e3921b 215742011-02-20 Richard Guenther <rguenther@suse.de>
21575
21576 PR lto/47822
21577 * tree.c (free_lang_data_in_decl): Clean builtins from
21578 the TU decl BLOCK_VARS.
63bd35a7 21579
82467e60 215802011-02-19 Alexandre Oliva <aoliva@redhat.com>
21581
21582 PR debug/47620
21583 PR debug/47630
21584 * haifa-sched.c (fix_tick_ready): Skip tick computation
21585 for debug insns.
21586
d892298f 215872011-02-19 Richard Guenther <rguenther@suse.de>
21588
21589 PR lto/47647
21590 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
21591 Remove lazy BLOCK_VARS streaming.
21592 (lto_input_ts_block_tree_pointers): Likewise.
21593 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
21594
8c35683d 215952011-02-19 Joseph Myers <joseph@codesourcery.com>
21596
21597 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
21598
4295c97b 215992011-02-19 Joseph Myers <joseph@codesourcery.com>
21600
21601 * config/i386/biarch32.h, config/i386/mach.h,
21602 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
21603
ff8e131f 216042011-02-19 Jakub Jelinek <jakub@redhat.com>
21605
21606 PR target/47800
21607 * config/i386/i386.md (peephole2 for shift and plus): Use
21608 operands[1] original mode in the first insn.
21609
828a4913 216102011-02-18 Mike Stump <mikestump@comcast.net>
21611
5f41e8fd 21612 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
828a4913 21613
84283c29 216142011-02-18 Jan Hubicka <jh@suse.cz>
21615
21616 PR middle-end/47788
5f41e8fd 21617 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
21618 to zero when the function is not inlinable at all.
84283c29 21619
22c4d420 216202011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21621
21622 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
21623 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21624 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
21625 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
21626 * config/pa/t-pa64: Likewise.
21627 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
21628
60c10fe6 216292011-02-18 Jakub Jelinek <jakub@redhat.com>
21630
21631 PR driver/47787
21632 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
21633
c7f840ef 216342011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21635
21636 PR target/47792
21637 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
21638
bb10104e 216392011-02-18 Anatoly Sokolov <aesok@post.ru>
21640
21641 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
21642 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
21643 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
21644 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21645 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
21646 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
21647 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
21648 m32r_load_postinc_p, m32r_store_preinc_predec_p,
21649 m32r_legitimate_address_p): New functions.
21650 * config/m32r/constraints.md (constraint "S"): Don't use
21651 STORE_PREINC_PREDEC_P.
21652 (constraint "U"): Don't use LOAD_POSTINC_P.
21653
6b629457 216542011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
21655
21656 PR rtl-optimization/46178
21657 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
21658 compute ira_hard_regno_cover_class[].
21659
30865946 216602011-02-18 Richard Guenther <rguenther@suse.de>
21661
21662 PR lto/47798
21663 * lto-streamer.h (lto_global_var_decls): Declare.
21664 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
21665 statics for global var processing.
21666
b533d4c1 216672011-02-18 Richard Guenther <rguenther@suse.de>
21668
21669 PR tree-optimization/47737
21670 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
21671 edge dominance check.
21672
ce6d059c 216732011-02-18 Jakub Jelinek <jakub@redhat.com>
21674
21675 PR debug/47780
21676 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
21677 avoid invalid rtx sharing.
21678
159581d2 216792011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
21680
21681 * doc/cpp.texi (Obsolete Features): Add background on the
21682 origin of assertions.
21683
267785bc 216842011-02-17 Iain Sandoe <iains@gcc.gnu.org>
21685
21686 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
63bd35a7 21687 objc_abi == 2.
267785bc 21688 * config/darwin.c (output_objc_section_asm_op): Added support for
21689 ABI v1 and v2.
21690 (is_objc_metadata): New.
21691 (darwin_objc2_section): New.
21692 (darwin_objc1_section): New.
21693 (machopic_select_section): Added support for ABI v1 and v2.
21694 (darwin_emit_objc_zeroed): New.
21695 (darwin_output_aligned_bss): Detect objc metadata and treat it
21696 appropriately.
21697 (darwin_asm_output_aligned_decl_common): Same.
21698 (darwin_asm_output_aligned_decl_local): Same.
21699 * config/darwin-sections.def: Updated for ABI v1 and v2.
21700 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
21701 compiling Objective-C code for the NeXT runtime, default to using
21702 ABI version 0 for 32-bit, and version 2 for 64-bit.
21703
d2807aa3 217042011-02-17 Joseph Myers <joseph@codesourcery.com>
21705
21706 * common.opt (optimize_fast): New Variable.
21707 * opts.c (default_options_optimization): Use opts->x_optimize_fast
21708 instead of local variable ofast.
21709
29cf2335 217102011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
21711
21712 * doc/invoke.texi (fobjc-abi-version): Documented.
21713 (fobjc-nilcheck): Documented.
21714 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
21715 version.
21716
455188e9 217172011-02-17 Joseph Myers <joseph@codesourcery.com>
21718
21719 PR driver/47390
21720 * common.opt (export-dynamic): New Driver option.
21721 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
21722
e29d44c5 217232011-02-17 Joseph Myers <joseph@codesourcery.com>
21724
21725 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
21726
649597af 217272011-02-17 Alexandre Oliva <aoliva@redhat.com>
21728 Jan Hubicka <jh@suse.cz>
21729
21730 PR debug/47106
21731 PR debug/47402
21732 * cfgexpand.c (account_used_vars_for_block): Remove.
21733 (estimated_stack_frame_size): Use referenced vars.
21734 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
21735 that were referenced in the original function. Test src_fn
21736 rather than cfun. Drop redundant get_var_ann.
21737 (setup_one_parameter): Drop redundant get_var_ann.
21738 (declare_return_variable): Likewise.
21739 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
21740 (copy_arguments_for_versioning): Drop redundant get_var_ann.
21741 * ipa-inline.c (compute_inline_parameters): Do not compute
21742 disregard_inline_limits here.
649597af 21743 (compute_inlinable_for_current, pass_inlinable): New.
21744 (pass_inline_parameters): Require PROP_referenced_vars.
21745 * cgraphunit.c (cgraph_process_new_functions): Don't run
63bd35a7 21746 compute_inline_parameters explicitly unless function is in SSA form.
649597af 21747 (cgraph_analyze_function): Set .disregard_inline_limits.
21748 * tree-sra.c (convert_callers): Compute inliner parameters
21749 only for functions already in SSA form.
21750
c146feab 217512011-02-17 Joseph Myers <joseph@codesourcery.com>
21752
21753 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
21754 -mlittle-endian-data.
21755
b13e238b 217562011-02-17 Joseph Myers <joseph@codesourcery.com>
21757
21758 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
21759 -mno-fpu, not -fpu and -no-fpu.
21760 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
21761 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
21762
9fd3a486 217632011-02-17 Uros Bizjak <ubizjak@gmail.com>
21764
21765 PR target/43653
21766 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
21767 input reload with PLUS RTX.
21768
358db628 217692011-02-16 Joseph Myers <joseph@codesourcery.com>
21770
21771 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
21772 of InverseVar(MDMX).
21773
3032caa3 217742011-02-16 Joseph Myers <joseph@codesourcery.com>
21775
21776 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
21777 --m4-340.
21778
4b23df5b 217792011-02-16 Joseph Myers <joseph@codesourcery.com>
21780
21781 * config/mn10300/mn10300.opt (mno-crt0): New.
21782
10c4d368 217832011-02-16 Joseph Myers <joseph@codesourcery.com>
21784
21785 * config/m68k/uclinux.opt (static-libc): New Driver option.
21786
01440cd1 217872011-02-16 Joseph Myers <joseph@codesourcery.com>
21788
21789 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
21790
efe49cb9 217912011-02-16 Joseph Myers <joseph@codesourcery.com>
21792
21793 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
21794 %{muser-extend-enabled}.
21795
e5d5c850 217962011-02-16 Richard Guenther <rguenther@suse.de>
21797
21798 PR tree-optimization/47738
21799 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
21800 the TODO from tree_predictive_commoning.
21801
18669cea 218022011-02-15 Jeff Law <law@redhat.com>
21803
21804 Revert
21805 2011-01-25 Jeff Law <law@redhat.com>
21806
21807 PR rtl-optimization/37273
21808 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21809 handle them like argument loads from stack slots. Do not double
21810 count memory for memory constants and argument loads from stack slots.
21811
4252f7fe 218122011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
21813
21814 PR target/47755
21815 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
21816 mode for vector constants. Remove code that checks for TImode.
21817
22bbc9c1 218182011-02-15 Alexandre Oliva <aoliva@redhat.com>
21819
21820 PR debug/47106
21821 PR debug/47402
21822 * cgraph.h (compute_inline_parameters): Return void.
21823 * ipa-inline.c (compute_inline_parameters): Adjust.
21824
970270ba 218252011-02-15 Alexandre Oliva <aoliva@redhat.com>
21826
21827 PR debug/47106
21828 PR debug/47402
21829 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
21830 rather than decl.
21831 * cfgexpand.c (estimated_stack_frame_size): Likewise.
21832 * ipa-inline.c (compute_inline_parameters): Adjust.
21833
a23e00ae 218342011-02-15 Alexandre Oliva <aoliva@redhat.com>
21835
21836 PR debug/47106
21837 PR debug/47402
21838 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
21839 Adjust all users. Pass FN to...
21840 * tree-flow-inline.h (first_referenced_var): ... this. Add
21841 fn argument.
21842 * ipa-struct-reorg.c: Adjust.
21843 * tree-dfa.c: Adjust.
21844 * tree-into-ssa.c: Adjust.
21845 * tree-sra.c: Adjust.
21846 * tree-ssa-alias.c: Adjust.
21847 * tree-ssa-live.c: Adjust.
21848 * tree-ssa.c: Adjust.
21849 * tree-ssanames.c: Adjust.
21850 * tree-tailcall.c: Adjust.
21851
29e4566c 218522011-02-15 Alexandre Oliva <aoliva@redhat.com>
21853
21854 PR debug/47106
21855 PR debug/47402
21856 * tree-flow.h (referenced_var_lookup): Add fn parameter.
21857 Adjust all callers.
21858 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
21859 * tree-flow-inline.h: Adjust.
21860 * gimple-pretty-print.c: Adjust.
21861 * tree-into-ssa.c: Adjust.
21862 * tree-ssa.c: Adjust.
21863 * cfgexpand.c: Adjust.
21864
8ba7ed0c 218652011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21866
9fd3a486 21867 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
21868 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21869 (EXTRA_CONSTRAINT): Delete.
21870 * config/iq2000/constraints.md: New file.
21871 * config/iq2000/iq2000.md: Include it.
8ba7ed0c 21872 (define_insn ""): Delete.
21873 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
21874 unsupported constraint letters from patterns.
21875 (call_value, call_value_internal1): Likewise.
21876 (call_value_multiple_internal1): Likewise.
21877
e7076c21 218782011-02-15 Nick Clifton <nickc@redhat.com>
21879
21880 * config/mn10300/mn10300.c: Include tm-constrs.h.
21881 (struct liw_data): New data structure describing an LIW candidate
21882 instruction.
21883 (extract_bundle): Use struct liw_data. Allow small integer
21884 operands for some instructions.
21885 (check_liw_constraints): Use struct liw_data. Remove swapped
21886 parameter. Add comments describing the checks. Fix bug when
21887 assigning the source of liw1 to the source of liw2.
21888 (liw_candidate): Delete. Code moved into extract_bundle.
21889 (mn10300_bundle_liw): Use struct liw_data. Check constraints
21890 before swapping.
21891 * config/mn10300/predicates.md (liw_operand): New predicate.
21892 Allows registers and small integer constants.
21893 * config/mn10300/constraints.md (O): New constraint. Accetps
21894 integers in the range -8 to +7 inclusive.
21895 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
21896 for moving a small integer into a register. Give this alternative
21897 LIW attributes.
21898 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
21899 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
21900 using the J,K,L and M constraints,
21901 (liw): Remove SI mode on second operands to allow for HI and QI
21902 mode values.
21903 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
21904 instruction.
21905
80b5fa01 219062011-02-15 Richard Guenther <rguenther@suse.de>
21907
21908 PR tree-optimization/47743
21909 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
21910 for a non-type-compatible VN lookup bail out.
21911
a81ae224 219122011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21913
21914 * config/fr30/constraints.md: New file.
21915 * config/fr30/fr30.md: Include it.
21916 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
21917 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21918 (EXTRA_CONSTRAINT): Delete.
21919
759348d2 219202011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21921
21922 * config/frv/constraints.md: New file.
21923 * config/frv/predicates.md: Include it.
21924 * config/frv/frv.c (reg_class_from_letter): Delete.
21925 (frv_option_override): Don't initialize it.
21926 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
21927 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
21928 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
21929 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21930 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
21931 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21932 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
21933 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
21934 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
21935 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
21936 (REG_CLASS_FROM_CONSTRAINT): Delete.
21937
29fe2e47 219382011-02-15 Jakub Jelinek <jakub@redhat.com>
21939
21940 PR middle-end/47581
21941 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
21942 if frame size is 0 in a leaf function.
21943
2ffa7c6a 219442011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21945
21946 PR pch/14940
21947 * config/alpha/host-osf.c: New file.
21948 * config/alpha/x-osf: New file.
21949 * config.host (alpha*-dec-osf*): Use it.
21950
5afe50d9 219512011-02-14 Anatoly Sokolov <aesok@post.ru>
21952
21953 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21954 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
21955 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
21956 (rx_mode_dependent_address_p): ...this. Make static. Change argument
21957 type to const_rtx.
21958 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21959
ee34ed40 219602011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21961
21962 * config/stormy16/constraints.md: New file.
21963 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
21964 Use satisfies_constraint_Q and satisfies_constraint_R.
21965 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
21966 Delete.
21967 (xstormy16_legitiamte_address_p): Declare.
21968 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
21969 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21970 (EXTRA_CONSTRAINT): Delete.
9fd3a486 21971 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
ee34ed40 21972 Un-staticize.
21973 (xstormy16_extra_constraint_p): Delete.
21974
a2676c4f 219752011-02-14 Eric Botcazou <ebotcazou@adacore.com>
21976
21977 PR tree-optimization/46494
21978 * loop-unroll.c (split_edge_and_insert): Adjust comment.
21979 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
21980 (pass_rtl_loop_done): Add TODO_verify_flow.
21981 * fwprop.c (pass_rtl_fwprop): Likewise.
21982 * modulo-sched.c (pass_sms): Likewise.
21983 * tree-ssa-dom.c (pass_dominator): Likewise.
21984 * tree-ssa-loop-ch.c (pass_ch): Likewise.
21985 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
21986 (pass_tree_loop_done): Likewise.
21987 * tree-ssa-pre.c (execute_pre): Likewise.
21988 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
21989 * tree-ssa-sink.c (pass_sink_code): Likewise.
21990 * tree-vrp.c (pass_vrp): Likewise.
21991
48fd9d16 219922011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21993
a2676c4f 21994 * config/v850/constraints.md: New file.
21995 * config/v850/v850.md: Include it.
21996 * config/v850/predicates.md (reg_or_0_operand): Use
21997 satisfies_constraint_G.
21998 (special_symbolref_operand): Use satisfies_constraint_K.
21999 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
22000 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
22001 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
22002 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
22003 (EXTRA_CONSTRAINT): Delete.
22004 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
22005 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
22006 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
48fd9d16 22007
b1db1470 220082011-02-14 Anatoly Sokolov <aesok@post.ru>
22009
22010 PR target/47696
22011 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
22012 description.
22013
e11f7186 220142011-02-14 Nathan Froyd <froydnj@codesourcery.com>
22015
22016 * config/mcore/constraints.md: New file.
22017 * config/mcore/mcore.md: Include it.
22018 * config/mcore/mcore.c (reg_class_from_letter): Delete.
22019 * config/mcore/mcore.h (reg_class_from_letter): Delete.
22020 (REG_CLASS_FROM_LETTER): Delete.
22021 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
22022 insn_const_int_ok_for_constraint.
22023 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
22024 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
22025 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22026 (EXTRA_CONSTRAINT): Delete.
22027
96727600 220282011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22029
22030 PR ada/41929
22031 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
22032 (IS_SIGHANDLER): Define.
22033 (sparc64_is_sighandler): New function, split off from
22034 sparc64_fallback_frame_state.
22035 (sparc_is_sighandler): New function, split off from
22036 sparc_fallback_frame_state.
22037 (sparc64_fallback_frame_state): Merge with ...
22038 (sparc_fallback_frame_state): ... this into ...
22039 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
9fd3a486 22040 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
22041 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
22042 stack instead of hardcoded offsets.
96727600 22043
9fd3a486 220442011-02-14 Andriy Gapon <avg@freebsd.org>
54a8b32d 22045
22046 PR target/45808
22047 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
22048
4b20b68c 220492011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22050
22051 * configure: Regenerate.
22052
a4a58ea8 220532011-02-12 Joseph Myers <joseph@codesourcery.com>
22054
22055 PR driver/45731
22056 * gcc.c (asm_options): Correct spec matching --target-help.
22057
c2b7e854 220582011-02-12 Martin Jambor <mjambor@suse.cz>
22059
22060 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
22061 to gimple call error.
22062
ffad481e 220632011-02-12 Mike Stump <mikestump@comcast.net>
22064
22065 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
22066 comments in backslash regions.
22067
c854f114 220682011-02-12 Mike Stump <mikestump@comcast.net>
22069 Jakub Jelinek <jakub@redhat.com>
22070 Iain Sandoe <iains@gcc.gnu.org>
22071
22072 PR target/47324
22073 * dwarf2out.c (output_cfa_loc): When required, apply the
22074 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
22075 (output_loc_sequence): Likewise.
22076 (output_loc_operands_raw): Likewise.
22077 (output_loc_sequence_raw): Likewise.
22078 (output_cfa_loc): Likewise.
22079 (output_loc_list): Suppress register number adjustment when
22080 calling output_loc_sequence()
22081 (output_die): Likewise.
22082
156d021f 220832011-02-12 Anatoly Sokolov <aesok@post.ru>
22084
22085 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
22086 Remove macros.
22087 * config/xtensa/xtensa.c (xtensa_register_move_cost,
22088 xtensa_memory_move_cost): New functions.
22089 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
22090
98de5262 220912011-02-12 Alexandre Oliva <aoliva@redhat.com>
22092
22093 PR lto/47225
22094 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
22095 in the current directory.
22096 * configure: Rebuilt.
22097
5886e9ab 220982011-02-12 Iain Sandoe <iains@gcc.gnu.org>
22099
22100 * config/darwin.c (darwin_override_options): Add a hunk missed
9fd3a486 22101 from the commit of r168571. Trim comment line lengths and
5886e9ab 22102 correct indents of the preceding block.
22103
accf4556 221042011-02-12 Iain Sandoe <iains@gcc.gnu.org>
22105
22106 * gcc.c (driver_handle_option): Concatenate the argument to -F with
22107 the switch.
22108
286f96fe 221092011-02-11 Joseph Myers <joseph@codesourcery.com>
22110
22111 * common.opt (nostartfiles): New Driver option.
22112
0c2b2fc8 221132011-02-11 Xinliang David Li <davidxl@google.com>
22114
22115 PR tree-optimization/47707
22116 * tree-chrec.c (convert_affine_scev): Keep type precision.
22117
892c141e 221182011-02-11 Eric Botcazou <ebotcazou@adacore.com>
22119
22120 PR tree-optimization/47420
22121 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
22122
221232011-02-11 Pat Haugen <pthaugen@us.ibm.com>
017b7047 22124
22125 PR rtl-optimization/47614
22126 * rtl.h (check_for_inc_dec): Declare.
22127 * dse.c (check_for_inc_dec): Externalize...
22128 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
22129 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
22130
5585cfe8 221312011-02-11 Joseph Myers <joseph@codesourcery.com>
22132
22133 PR driver/47678
22134 * gcc.c (main): Do not compile inputs if there were errors in
22135 option handling.
22136 * opts-common.c (read_cmdline_option): Check for wrong language
22137 after other error checks.
22138
0a10fd82 221392011-02-11 Nathan Froyd <froydnj@codesourcery.com>
22140
22141 * cgraph.c: Fix comment typos.
22142 * cgraph.h: Likewise.
22143 * cgraphunit.c: Likewise.
22144 * ipa-cp.c: Likewise.
22145 * ipa-inline.c: Likewise.
22146 * ipa-prop.c: Likewise.
22147 * ipa-pure-const.c: Likewise.
22148 * ipa-ref.c: Likewise.
22149 * ipa-reference.c: Likewise.
22150
db16e52d 221512011-02-11 Jakub Jelinek <jakub@redhat.com>
22152
58dcd970 22153 PR debug/47684
22154 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
db16e52d 22155
26ece10c 221562011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22157
22158 PR testsuite/47400
22159 * doc/sourcebuild.texi (Require Support): Document
22160 dg-require-ascii-locale.
22161
9d320e9e 221622011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
22163
22164 * doc/lto.texi (Write summary): Fix missing parentheses.
22165
45bba533 221662011-02-10 DJ Delorie <dj@redhat.com>
22167
22168 * config/m32c/m32c.c (m32c_option_override): Disable
22169 -fcombine-stack-adjustments until flag value tracking and compare
22170 optimization can be rewritten.
22171
bcc2fca8 221722011-02-10 Peter Bergner <bergner@vnet.ibm.com>
22173
22174 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
22175 PROCESSOR_POWER7.
22176 (PROCESSOR_DEFAULT64): Likewise.
22177
24ad6c43 221782011-02-10 Richard Henderson <rth@redhat.com>
22179
22180 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
22181 change from 2011-02-03.
22182 * config/rx/rx.c (flags_from_code): Likewise.
22183 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
22184 is valid, n/pz otherwise.
22185 (rx_select_cc_mode): Return CCmode if Y is not zero.
22186
02b63808 221872011-02-10 Richard Guenther <rguenther@suse.de>
22188
5b0332ff 22189 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
02b63808 22190
b1296be0 221912011-02-10 Richard Guenther <rguenther@suse.de>
22192
22193 PR tree-optimization/47677
22194 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
22195
952f9aab 221962011-02-10 Jakub Jelinek <jakub@redhat.com>
22197
22198 PR target/47665
22199 * combine.c (make_compound_operation): Only change shifts into
22200 multiplication for SCALAR_INT_MODE_P.
22201
de963f40 222022011-02-10 Jie Zhang <jie@codesourcery.com>
22203
22204 PR testsuite/47622
22205 Revert
22206 2011-02-05 Jie Zhang <jie@codesourcery.com>
22207 PR debug/42631
22208 * web.c (entry_register): Don't clobber the number of the
22209 first uninitialized reference in used[].
22210
1292392a 222112011-02-09 Richard Guenther <rguenther@suse.de>
22212
22213 PR tree-optimization/47664
22214 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
22215 all edges again.
22216
5231b132 222172011-02-09 David Edelsohn <dje.gcc@gmail.com>
22218
8f9d4e4d 22219 PR target/46481
22220 PR target/47032
5231b132 22221 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
22222 PROCESSOR_POWER7.
22223 (PROCESSOR_DEFAULT64): Same.
22224 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
22225
1a680d32 222262011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22227
22228 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
22229
f21e6d7c 222302011-02-09 Martin Jambor <mjambor@suse.cz>
22231
22232 PR middle-end/45505
22233 * tree-sra.c (struct access): New flags grp_scalar_read and
22234 grp_scalar_write. Changed description of assignment read and write
22235 flags.
22236 (dump_access): Dump new flags, reorder all of them.
22237 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
22238 to detect multiple scalar reads.
22239 (analyze_access_subtree): Use the new scalar read write flags instead
22240 of the old flags. Adjusted comments.
22241
ee5533ba 222422011-02-08 DJ Delorie <dj@redhat.com>
22243
22244 PR target/47548
22245 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
22246 patterns.
22247
99c2a9e3 222482011-02-08 Joseph Myers <joseph@codesourcery.com>
22249
22250 * config/m68k/uclinux.opt: New.
22251 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
22252
400e0edf 222532011-02-08 Joseph Myers <joseph@codesourcery.com>
22254
22255 * config/cris/elf.opt (sim): New Driver option.
22256
b0a67e36 222572011-02-08 Joseph Myers <joseph@codesourcery.com>
22258
22259 * config/xtensa/elf.opt: New.
22260 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
22261
6b9d66b3 222622011-02-08 Joseph Myers <joseph@codesourcery.com>
22263
22264 * config/vax/elf.opt: New.
22265 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
22266
19e04b72 222672011-02-08 Joseph Myers <joseph@codesourcery.com>
22268
22269 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
22270
55d8cecf 222712011-02-08 Joseph Myers <joseph@codesourcery.com>
22272
22273 * config/gnu-user.opt: New.
22274 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
22275 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
22276 *-*-uclinux*): Use gnu-user.opt.
22277
143c96ad 222782011-02-08 Thomas Schwinge <thomas@schwinge.name>
22279
22280 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
22281 * config/i386/gnu.h (CPP_SPEC): Likewise.
22282
ecee1b29 222832011-02-08 Ian Lance Taylor <iant@google.com>
22284
22285 * common.opt (fcx-limited-range): Add SetByCombined flag.
22286 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
22287 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
22288 (fassociative-math, freciprocal-math): Likewise.
22289 (funsafe-math-optimizations): Likewise.
22290 * opth-gen.awk: Handle SetByCombined.
22291 * optc-gen.awk: Likewise.
5b0332ff 22292 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
ecee1b29 22293 (set_unsafe_math_optimizations_flags): Likewise.
22294 * doc/options.texi (Option properties): Document SetByCombined.
22295
a7359760 222962011-02-08 Joseph Myers <joseph@codesourcery.com>
22297
22298 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
22299 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
22300 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
22301 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
22302 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
22303
2528d7cf 223042011-02-08 Sebastian Pop <sebastian.pop@amd.com>
22305
22306 PR tree-optimization/46834
22307 PR tree-optimization/46994
22308 PR tree-optimization/46995
22309 * graphite-sese-to-poly.c (used_outside_reduction): New.
22310 (detect_commutative_reduction): Call used_outside_reduction.
22311 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
22312 translate_scalar_reduction_to_array only when at least one
22313 loop-phi/close-phi tuple has been detected.
22314
82f9a36f 223152011-02-08 Richard Guenther <rguenther@suse.de>
22316
22317 PR middle-end/47639
22318 * tree-vect-generic.c (expand_vector_operations_1): Update
22319 stmts here ...
22320 (expand_vector_operations): ... not here. Cleanup EH info
22321 and the CFG if required.
22322
ef618bb8 223232011-02-08 Richard Guenther <rguenther@suse.de>
22324
22325 PR tree-optimization/47641
22326 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
22327 require type compatibility.
22328
417a43d7 223292011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22330
22331 * gimple-low.c (lower_function_body): Don't remove the location of
22332 the return statement here.
22333 (lower_gimple_return): Do it here instead but only if the return
22334 statement is actually used twice.
22335
5d2361b0 223362011-02-08 Richard Guenther <rguenther@suse.de>
22337
22338 PR tree-optimization/47632
22339 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
22340 unused up_to_stmt parameter, return whether cfg-cleanup is
22341 necessary, remove EH info properly.
22342 (forward_propagate_into_gimple_cond): Adjust caller.
22343 (forward_propagate_into_cond): Likewise.
22344 (forward_propagate_comparison): Likewise.
22345 (tree_ssa_forward_propagate_single_use_vars): Make
22346 forward_propagate_comparison case similar to the two others.
22347
f9e46c25 223482011-02-08 Nick Clifton <nickc@redhat.com>
22349
22350 * config/mn10300/mn10300.opt (mliw): New command line option.
22351 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
22352 (liw_bundling): New automaton.
22353 (liw): New attribute.
22354 (liw_op): New attribute.
22355 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
22356 (movsi_internal): Add LIW attributes.
22357 (andsi3): Likewise.
22358 (iorsi3): Likewise.
22359 (xorsi3): Likewise.
22360 (addsi3): Separate register and immediate alternatives.
22361 Add LIW attributes.
22362 (subsi3): Likewise.
22363 (cmpsi): Likewise.
22364 (aslsi3): Likewise.
22365 (lshrsi3): Likewise.
22366 (ashrsi3): Likewise.
22367 (liw): New pattern.
22368 * config/mn10300/mn10300.c (liw_op_names): New
22369 (mn10300_print_operand): Handle 'W' operand descriptor.
22370 (extract_bundle): New function.
22371 (check_liw_constraints): New function.
22372 (liw_candidate): New function.
22373 (mn10300_bundle_liw): New function.
22374 (mn10300_reorg): New function.
22375 (TARGET_MACHINE_DEPENDENT_REORG): Define.
22376 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
22377 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
22378 __LIW__ or __NO_LIW__.
22379 * doc/invoke.texi: Describe the -mliw command line option.
22380
dfdc9106 223812011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22382
22383 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
22384 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
22385 pthread_mutex_unlock): Remove.
22386 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
22387 * config/pa/t-pa64: Likewise.
22388 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
22389 shared libc if not linking against libpthread.
22390 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
22391
f52cfb2b 223922011-02-07 Iain Sandoe <iains@gcc.gnu.org>
22393
22394 PR target/47558
22395 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
22396 on 10.6 and later to ensure that we always use the unwinder from
22397 the system. Only add -no_compact_unwind when tarteting darwin
22398 10.6 or later.
22399
ce519b06 224002011-02-07 Steve Ellcey <sje@cup.hp.com>
22401
22402 PR target/46997
22403 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
22404 (vec_interleave_lowv2sf): Ditto.
22405 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
22406 (vec_extract_oddv2sf): Ditto.
22407
f6829196 224082011-02-07 Mike Stump <mikestump@comcast.net>
22409
dc9a6d82 22410 PR target/42333
f6829196 22411 Add __ieee_divdc3 entry point.
22412 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
22413 entry point.
22414 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
22415 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
22416 * config/darwin.c (darwin_rename_builtins): Add.
22417 * config/darwin-protos.h (darwin_rename_builtins): Add.
22418
029247e8 224192011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
22420
22421 PR target/47636
22422 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
22423 for the condition.
22424
80fcd515 224252011-02-07 Mike Stump <mikestump@comcast.net>
22426
5b0332ff 22427 * config/darwin.opt (mmacosx-version-min): Update default OS version.
80fcd515 22428
0d6ffd24 224292011-02-07 Denis Chertykov <chertykov@gmail.com>
22430
22431 PR target/47534
22432 * config/avr/libgcc.S (exit): Move .endfunc
22433
8f190c8a 224342011-02-07 Richard Guenther <rguenther@suse.de>
22435
22436 PR tree-optimization/47615
22437 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
22438 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
22439 (run_scc_vn): Initialize it.
22440 (visit_reference_op_load): Use it.
22441 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
22442
5825ec3f 224432011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22444
22445 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
22446 DImode trapping arithmetic libfuncs.
22447
b88d109e 224482011-02-07 Richard Guenther <rguenther@suse.de>
22449
22450 PR tree-optimization/47621
22451 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
22452 two duplicates ...
22453 (execute_update_addresses_taken): ... here. Make it more
22454 conservative in what we accept.
22455
9c9946f1 224562011-02-06 Joseph Myers <joseph@codesourcery.com>
22457
22458 * config/sparc/freebsd.h (ASM_SPEC): Define.
22459 * config/sparc/vxworks.h (ASM_SPEC): Define.
22460
c2c533dd 224612011-02-06 Joseph Myers <joseph@codesourcery.com>
22462
22463 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22464
3636b47c 224652011-02-06 Steven Bosscher <steven@gcc.gnu.org>
22466
22467 * doc/invoke.texi: Remove reference to compiler internals from
22468 user documentation.
22469
22470 * reg-notes.def: Remove REG_VALUE_PROFILE.
22471 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
22472
77e22628 224732011-02-05 Jakub Jelinek <jakub@redhat.com>
22474
22475 PR middle-end/47610
22476 * varasm.c (default_section_type_flags): If decl is NULL,
2e8ba7b3 22477 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
77e22628 22478
51a13f08 224792011-02-05 Jie Zhang <jie@codesourcery.com>
22480
22481 PR debug/42631
22482 * web.c (entry_register): Don't clobber the number of the
22483 first uninitialized reference in used[].
22484
ba3fc4d0 224852011-02-04 Sebastian Pop <sebastian.pop@amd.com>
22486
22487 PR tree-optimization/46194
22488 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
22489 (build_classic_dist_vector_1): Do not represent classic distance
22490 vectors when the access functions are variating in different loops.
22491
a1073f2a 224922011-02-04 Joseph Myers <joseph@codesourcery.com>
22493
22494 * config/mips/iris6.opt: New.
22495 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
22496
0cbc5fc8 224972011-02-04 Richard Henderson <rth@redhat.com>
22498 Steve Ellcey <sje@cup.hp.com>
22499
22500 PR target/46997
22501 * config/ia64/predicates.md (mux1_brcst_element): New.
22502 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
22503 * config/ia64/ia64.c (ia64_unpack_assemble): New.
22504 (ia64_unpack_sign): New.
22505 (ia64_expand_unpack): Rewrite using new routines.
22506 (ia64_expand_widen_sum): Ditto.
22507 (ia64_expand_dot_prod_v8qi): Ditto.
22508 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
22509 routines, add endian check.
22510 (pmpy2_even): Rename from pmpy2_r, add endian check.
22511 (pmpy2_odd): Rename from pmpy2_l, add endian check.
22512 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
22513 (vec_widen_smult_hi_v4hi): Ditto.
22514 (vec_widen_umult_lo_v4hi): Ditto.
22515 (vec_widen_umult_hi_v4hi): Ditto.
22516 (mulv2si3): Change endian checks.
22517 (sdot_prodv4hi): Rewrite with new calls.
22518 (udot_prodv4hi): New.
22519 (vec_pack_ssat_v4hi): Add endian check.
22520 (vec_pack_usat_v4hi): Ditto.
22521 (vec_pack_ssat_v2si): Ditto.
22522 (max1_even): Rename from max1_r, add endian check.
22523 (max1_odd): Rename from max1_l, add endian check.
22524 (*mux1_rev): Format change.
22525 (*mux1_mix): Ditto.
22526 (*mux1_shuf): Ditto.
22527 (*mux1_alt): Ditto.
22528 (*mux1_brcst_v8qi): Use new predicate.
22529 (vec_extract_evenv8qi): Remove endian check.
22530 (vec_extract_oddv8qi): Ditto.
22531 (vec_interleave_lowv4hi): Format change.
22532 (vec_interleave_highv4hi): Ditto.
22533 (mix2_even): Rename from mix2_r, add endian check.
22534 (mix2_odd): Rename from mux2_l, add endian check.
22535 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
22536 (vec_extract_evenodd_helper): Format change.
22537 (vec_extract_evenv4hi): Remove endian check.
22538 (vec_extract_oddv4hi): Remove endian check.
22539 (vec_interleave_lowv2si): Format change.
22540 (vec_interleave_highv2si): Format change.
22541 (vec_initv2si): Remove endian check.
22542 (vecinit_v2si): Add endian check.
22543 (reduc_splus_v2sf): Add endian check.
22544 (reduc_smax_v2sf): Ditto.
22545 (reduc_smin_v2sf): Ditto.
22546 (vec_initv2sf): Remove endian check.
22547 (fpack): Add endian check.
22548 (fswap): Add endian check.
22549 (vec_interleave_highv2sf): Add endian check.
22550 (vec_interleave_lowv2sf): Add endian check.
22551 (fmix_lr): Add endian check.
22552 (vec_setv2sf): Format change.
22553 (*vec_extractv2sf_0_be): Use shift to extract operand.
22554 (*vec_extractv2sf_1_be): New.
22555 (vec_pack_trunc_v4hi): Add endian check.
22556 (vec_pack_trunc_v2si): Format change.
22557
351b6ccf 225582011-02-04 Jakub Jelinek <jakub@redhat.com>
22559
22560 PR inline-asm/23200
22561 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
2e8ba7b3 22562 do bb, locus and block comparison and disallow loads if it is not set.
351b6ccf 22563 (stmt_is_replaceable_p): New function.
22564 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
22565 callers.
22566 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
22567 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
22568 SSA_NAME_DEF_STMT.
22569 * tree-flow.h (stmt_is_replaceable_p): New prototype.
22570
8119d935 225712011-02-04 Joseph Myers <joseph@codesourcery.com>
22572
22573 * config/rs6000/xilinx.opt: New.
22574 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
22575
5791dadc 225762011-02-04 Joseph Myers <joseph@codesourcery.com>
22577
22578 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
22579
d7198e1f 225802011-02-03 Anatoly Sokolov <aesok@post.ru>
22581
22582 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
22583 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
22584 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
22585 secondary_reload_info, xtensa_secondary_reload): Remove.
22586 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
22587 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
22588 (xtensa_preferred_reload_class): Make static. Change return and
22589 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
22590 Use CONST_DOUBLE_P predicate.
22591 (xtensa_preferred_output_reload_class): New function.
22592 (xtensa_secondary_reload): Make static.
22593
ef83cafb 225942011-02-03 Joseph Myers <joseph@codesourcery.com>
22595
22596 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
22597 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
22598 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
22599
91da0f1c 226002011-02-03 Jakub Jelinek <jakub@redhat.com>
22601
22602 PR middle-end/31490
22603 * output.h (SECTION_RELRO): Define.
22604 (SECTION_MACH_DEP): Adjust.
22605 (get_variable_section): New prototype.
22606 * varpool.c (varpool_finalize_named_section_flags): New function.
22607 (varpool_assemble_pending_decls): Call it.
22608 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
22609 * cgraphunit.c (cgraph_output_in_order): Call
22610 varpool_finalize_named_section_flags.
22611 * varasm.c (get_section): Allow section flags conflicts between
22612 relro and read-only sections if the section hasn't been declared yet.
22613 Set SECTION_OVERRIDE after diagnosing section type conflict.
22614 (get_variable_section): No longer static.
22615 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
22616 readonly sections that need relocations.
22617 (decl_readonly_section_1): New function.
22618 (decl_readonly_section): Use it.
22619
22620 Revert:
ba6ea72b 22621 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
91da0f1c 22622 Steve Ellcey <sje@cup.hp.com>
22623
22624 PR middle-end/31490
22625 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
22626 if section attribute used.
22627
61aeb501 226282011-02-03 Jakub Jelinek <jakub@redhat.com>
22629
22630 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
22631 * config/darwin.c (SECTION_NO_ANCHOR): Define.
22632 (darwin_init_sections): Remove assertion.
22633
dd0e87b5 226342011-02-03 Nick Clifton <nickc@redhat.com>
22635
22636 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
22637 lt and ge.
2e8ba7b3 22638 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
dd0e87b5 22639 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
22640 instead of "n" and "pz".
22641 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
22642 CC_FLAG_S.
22643
7b29dd2f 226442011-02-03 Jakub Jelinek <jakub@redhat.com>
22645
d325c8f4 22646 PR target/47312
22647 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
22648 fma, expand FMA_EXPR as fma{,f,l} call.
22649
806416f6 22650 PR lto/47274
22651 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
22652 copy them into a unsigned char variable and pass address of it to
22653 lto_output_data_stream.
22654
7b29dd2f 22655 PR target/47564
22656 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
22657 around backend_init_target and lang_dependent_init_target calls.
22658 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
22659 (verify_cgraph_node): Don't call set_cfun here. Use
22660 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
22661 Set error_found for incorrectly represented calls to thunks.
22662
1f864115 226632011-02-03 Alexandre Oliva <aoliva@redhat.com>
22664
22665 PR debug/43092
22666 PR rtl-optimization/43494
22667 * rtl.h (for_each_inc_dec_fn): New type.
22668 (for_each_inc_dec): Declare.
22669 * rtlanal.c (struct for_each_inc_dec_ops): New type.
22670 (for_each_inc_dec_find_inc_dec): New fn.
22671 (for_each_inc_dec_find_mem): New fn.
22672 (for_each_inc_dec): New fn.
22673 * dse.c (struct insn_size): Remove.
22674 (replace_inc_dec, replace_inc_dec_mem): Remove.
22675 (emit_inc_dec_insn_before): New fn.
22676 (check_for_inc_dec): Use it, along with for_each_inc_dec.
22677 (canon_address): Pass mem modes to cselib_lookup.
22678 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
22679 (cselib_lookup_from_insn): Likewise.
22680 (cselib_subst_to_values): Likewise.
22681 * cselib.c (find_slot_memmode): New var.
22682 (cselib_find_slot): New fn. Use it instead of
22683 htab_find_slot_with_hash everywhere.
22684 (entry_and_rtx_equal_p): Use find_slot_memmode.
22685 (autoinc_split): New fn.
22686 (rtx_equal_for_cselib_p): Rename and implement in terms of...
22687 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
22688 Deal with autoinc. Special-case recursion into MEMs.
22689 (cselib_hash_rtx): Likewise.
22690 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
22691 address and MEM modes.
22692 (cselib_subst_to_values): Add memmode, pass it on.
22693 Deal with autoinc.
22694 (cselib_lookup): Add memmode argument, pass it on.
22695 (cselib_lookup_from_insn): Add memmode.
22696 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
22697 (struct cselib_record_autoinc_data): New.
22698 (cselib_record_autoinc_cb): New fn.
22699 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
22700 mode to cselib_lookup. Reset autoinced REGs here instead of...
22701 (cselib_process_insn): ... here.
22702 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
22703 to cselib_lookup.
22704 (add_uses): Likewise, also to cselib_subst_to_values.
22705 (add_stores): Likewise.
e0691b9a 22706 * sched-deps.c (add_insn_mem_dependence): Pass mode to
1f864115 22707 cselib_subst_to_values.
22708 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
22709 * gcse.c (do_local_cprop): Adjusted.
22710 * postreload.c (reload_cse_simplify_set): Adjusted.
22711 (reload_cse_simplify_operands): Adjusted.
22712 * sel-sched-dump (debug_mem_addr_value): Pass mode.
22713
4f2bfa26 227142011-02-03 Alexandre Oliva <aoliva@redhat.com>
22715
22716 PR tree-optimization/45122
22717 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
22718 unsafe assumptions when there's more than one loop exit.
22719
a501acda 227202011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
22721
22722 PR target/47272
22723 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
22724 Document using vector double with the load/store builtins, and
22725 that the load/store builtins always use Altivec instructions.
22726
22727 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
22728 to use altivec memory instructions, even on VSX.
22729 (vector_altivec_store_<mode>): Ditto.
22730
22731 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
22732 function.
22733
22734 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22735 V2DF, V2DI support to load/store overloaded builtins.
22736
22737 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
22738 altivec load/store builtins for V2DF/V2DI types.
22739
22740 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22741 set avoid indexed addresses on power6 if -maltivec.
22742 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
22743 vector_altivec_load/vector_altivec_store builtins.
22744 (altivec_expand_st_builtin): Ditto.
22745 (altivec_expand_builtin): Add VSX memory builtins.
22746 (rs6000_init_builtins): Add V2DI types to internal types.
22747 (altivec_init_builtins): Add support for V2DF/V2DI altivec
22748 load/store builtins.
22749 (rs6000_address_for_altivec): Insure memory address is appropriate
22750 for Altivec.
22751
22752 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
22753 vec_vsx_ld and vec_vsx_st.
22754 (vsx_store_<mode>): Ditto.
22755
22756 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
22757 variables to hold long long types for VSX vector memory builtins.
22758 (RS6000_BTI_unsigned_long_long): Ditto.
22759 (long_long_integer_type_internal_node): Ditti.
22760 (long_long_unsigned_type_internal_node): Ditti.
22761
22762 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
22763 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
22764 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
22765
22766 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
22767 short cuts.
22768 (vec_vsx_st): Ditto.
22769
4d15365c 227702011-02-02 Joseph Myers <joseph@codesourcery.com>
22771
22772 * config/pa/pa-hpux10.opt: New.
22773 * config/hpux11.opt (pthread): New Driver option.
22774 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
22775 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
22776
2ade2b93 227772011-02-02 Joseph Myers <joseph@codesourcery.com>
22778
22779 * config/ia64/vms.opt: New.
22780 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
22781
71314d3d 227822011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
22783
22784 PR target/47580
22785 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
22786 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
22787 generator functions.
22788 (vsx_floatuns<VSi><mode>2): Ditto.
22789 (vsx_fix_trunc<mode><VSi>2): Ditto.
22790 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
22791
bdcbb638 227922011-02-02 Joseph Myers <joseph@codesourcery.com>
22793
22794 * config/i386/djgpp.opt (posix): New Driver option.
22795
ea722d26 227962011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
22797
22798 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
22799 Move to the unsupported targets list.
22800
486f84fd 228012011-02-02 Peter Bergner <bergner@vnet.ibm.com>
22802
22803 PR rtl-optimization/47525
22804 * df-scan.c: Update copyright years.
22805 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
22806 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
22807
521e3dc9 228082011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22809
22810 * config/i386/sysv4.h (TARGET_VERSION): Remove.
22811 (SUBTARGET_RETURN_IN_MEMORY): Remove.
22812 (ASM_OUTPUT_ASCII): Remove.
22813 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
22814
8e4f36fa 228152011-02-02 Jeff Law <law@redhat.com>
22816
22817 PR middle-end/47543
22818 * reload.c (find_reloads_address): Handle reg+d address where both
22819 components are invalid by reloading the entire address.
22820
46c50a88 228212011-02-02 Sebastian Pop <sebastian.pop@amd.com>
22822 Richard Guenther <rguenther@suse.de>
22823
22824 PR tree-optimization/40979
22825 PR bootstrap/47044
22826 * passes.c (init_optimization_passes): After LIM call copy_prop
22827 and DCE to clean up.
22828 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
22829
99df7432 228302011-02-02 Sebastian Pop <sebastian.pop@amd.com>
22831
22832 PR tree-optimization/47576
22833 PR tree-optimization/47555
22834 * doc/invoke.texi (scev-max-expr-complexity): Documented.
22835 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22836 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
22837 * tree-scalar-evolution.c (follow_ssa_edge): Use
22838 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
22839
f6c35aa4 228402011-02-02 Richard Guenther <rguenther@suse.de>
22841
22842 PR tree-optimization/47566
22843 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
22844
f665f7bb 228452011-02-02 Alexandre Oliva <aoliva@redhat.com>
22846
619349e6 22847 PR debug/47106
22848 PR debug/47402
22849 * tree-inline.c (declare_return_variable): Remove unused caller
22850 variable.
22851
f665f7bb 22852 PR debug/47106
22853 PR debug/47402
22854 * tree-flow-inline.h (clear_is_used, is_used_p): New.
22855 * cfgexpand.c (account_used_vars_for_block): Use them.
22856 * tree-nrv.c (tree_nrv): Likewise.
22857 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
22858 (dump_scope_block): Likewise.
22859 (remove_unused_locals): Likewise.
22860
e81986ab 22861 PR debug/47106
22862 PR debug/47402
22863 * tree-inline.c (declare_return_variable): Add result decl to
22864 local decls only once.
22865 * gimple-low.c (record_vars_into): Mark newly-created variables
22866 as referenced.
22867
9221ec44 228682011-02-02 Alexandre Oliva <aoliva@redhat.com>
22869
22870 PR debug/47498
22871 PR debug/47501
22872 PR debug/45136
22873 PR debug/45130
22874 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22875 debug insns.
22876 (no_real_insns_p, schedule_block, set_priorities): Drop special
22877 treatment of boundary debug insns.
2e8ba7b3 22878 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9221ec44 22879 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
22880 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22881 (BOUNDARY_DEBUG_INSN_P): Likewise.
22882 (SCHEDULE_DEBUG_INSN_P): Likewise.
22883 * sched-rgn.c (init_ready_list): Drop special treatment of
22884 boundary debug insns.
22885 * final.c (rest_of_clean_state): Clear notes' BB.
22886
31eea452 228872011-02-01 Joseph Myers <joseph@codesourcery.com>
22888
22889 * config/openbsd.opt (assert=): New Driver option.
22890
9453823e 228912011-02-01 Joseph Myers <joseph@codesourcery.com>
22892
22893 * config/i386/nto.opt: New.
22894 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
22895
bc63be20 228962011-02-01 Joseph Myers <joseph@codesourcery.com>
22897
22898 * config/i386/netware.opt: New.
22899 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
22900
7af14b9b 229012011-02-01 Joseph Myers <joseph@codesourcery.com>
22902
22903 * config/interix.opt (posix): New Driver option.
22904
1facaf0d 229052011-02-01 DJ Delorie <dj@redhat.com>
22906
d00812be 22907 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
22908
1facaf0d 22909 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
22910 class for A0/A1.
22911
63c5b29f 229122011-02-01 Sebastian Pop <sebastian.pop@amd.com>
22913
22914 PR tree-optimization/47561
22915 * toplev.c (process_options): Print the Graphite flags. Add
22916 flag_loop_flatten to the list of options requiring Graphite.
22917
c80fcc70 229182011-02-01 Joseph Myers <joseph@codesourcery.com>
22919
22920 * config/i386/cygming.opt (posix): New Driver option.
22921
8afdaa80 229222011-02-01 Joseph Myers <joseph@codesourcery.com>
22923
22924 * config/arm/vxworks.opt: New.
22925 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
22926
0b803a91 229272011-02-01 Joseph Myers <joseph@codesourcery.com>
22928
22929 * config/alpha/elf.opt: New.
22930 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
22931 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
22932
16d9b5d8 229332011-02-01 Richard Guenther <rguenther@suse.de>
22934
22935 PR tree-optimization/47559
22936 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
22937 store-motion on references that can throw.
22938
329b9588 229392011-02-01 Bernd Schmidt <bernds@codesourcery.com>
22940
22941 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
22942 * tree-pass.h (TDF_CSELIB): New macro.
22943 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
22944 cselib_lookup): Check for it rather than for TDF_DETAILS.
22945
ad905e43 229462011-02-01 H.J. Lu <hongjiu.lu@intel.com>
22947
22948 PR driver/47547
22949 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
22950 is HOST_BIT_BUCKET.
22951
22952 * opts.c (finish_options): Don't add x_aux_base_name if it is
22953 HOST_BIT_BUCKET.
22954
58dcbc36 229552011-02-01 Richard Guenther <rguenther@suse.de>
22956
22957 PR tree-optimization/47555
22958 Revert
22959 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
22960
22961 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22962
fc887755 229632011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
22964
22965 PR gcc/46692
22966 * config/lm32/t-lm32: Add multilib for all CPU options.
22967
f82bdab4 229682011-02-01 Richard Guenther <rguenther@suse.de>
22969
22970 PR tree-optimization/47541
22971 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
22972 sure to have a field at offset zero.
22973
afd8d709 229742011-01-31 Joseph Myers <joseph@codesourcery.com>
22975
22976 * config/arc/arc.opt (EB, EL): New Driver options.
22977
4f5bbfa4 229782011-01-31 Joseph Myers <joseph@codesourcery.com>
22979
22980 * config/alpha/osf5.opt: New.
22981 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
22982
deeaf98d 229832011-01-31 Joseph Myers <joseph@codesourcery.com>
22984
22985 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
22986
464a406e 229872011-01-31 Sebastian Pop <sebastian.pop@amd.com>
22988
22989 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
22990 -floop-interchange.
22991 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
22992 is an alias of -floop-interchange and that it requires the
22993 Graphite infrastructure.
22994 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
22995 flag_loop_interchange based on the value of flag_tree_loop_linear.
22996
90c0f5b7 229972011-01-31 Jakub Jelinek <jakub@redhat.com>
22998 Richard Guenther <rguenther@suse.de>
22999
23000 PR tree-optimization/47538
23001 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
23002 type instead of r1type, except for comparisons. For right
23003 shifts and comparisons punt if there are mismatches in
23004 sizetype vs. non-sizetype types.
23005
a2b522e7 230062011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23007
23008 * doc/sourcebuild.texi (Effective-Target Keywords): Document
23009 avx_runtime.
23010
839ff241 230112011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23012
23013 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
23014 version number.
23015 * configure: Regenerate.
23016
e6937b3a 230172011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23018
23019 * configure.ac (gcc_cv_ld_static_option): Define.
23020 (gcc_cv_ld_dynamic_option): Define.
23021 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
23022 instead.
23023 (HAVE_LD_STATIC_DYNAMIC): Update message.
23024 (LD_STATIC_OPTION): Define.
23025 (LD_DYNAMIC_OPTION): Define.
23026 * configure: Regenerate.
23027 * config.in: Regenerate.
23028 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
23029 HAVE_LD_STATIC_DYNAMIC]: Use them.
23030
382ffb70 230312011-01-31 Nick Clifton <nickc@redhat.com>
23032
23033 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
23034 registers inside interrupt handlers if the handler is not a leaf
23035 function.
23036
c2fa9c24 230372011-01-31 Nick Clifton <nickc@redhat.com>
23038
23039 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
23040 reg_renumber returning an INVALID_REGNUM.
23041
0e4d1862 230422011-01-31 Alexandre Oliva <aoliva@redhat.com>
23043
23044 PR libgcj/44341
23045 * doc/install.texi: Document host options discarded when cross
23046 configuring target libraries.
23047
7fb29e63 230482011-01-31 Alexandre Oliva <aoliva@redhat.com>
23049
23050 Reverted:
23051 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
23052 PR debug/45136
23053 PR debug/45130
23054 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23055 debug insns.
23056 (no_real_insns_p, schedule_block, set_priorities): Drop special
23057 treatment of boundary debug insns.
2e8ba7b3 23058 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
7fb29e63 23059 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23060 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23061 (BOUNDARY_DEBUG_INSN_P): Likewise.
23062 (SCHEDULE_DEBUG_INSN_P): Likewise.
23063 * sched-rgn.c (init_ready_list): Drop special treatment of
23064 boundary debug insns.
23065 * final.c (rest_of_clean-state): Clear notes' BB.
23066
3968fd16 230672011-01-31 Alan Modra <amodra@gmail.com>
23068
23069 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
23070 toc relative expressions as we do in print_operand_address.
23071
7e44812a 230722011-01-30 Kazu Hirata <kazu@codesourcery.com>
23073
23074 * doc/extend.texi: Follow spelling conventions.
23075 * doc/invoke.texi: Fix a typo.
23076
593c1adb 230772011-01-30 Joseph Myers <joseph@codesourcery.com>
23078
23079 * config/hpux11.opt: New.
23080 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
23081 ia64*-*-hpux*): Use hpux11.opt.
23082
ba6ea72b 230832011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
20684623 23084
23085 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
23086 to tmake_file.
23087
f2a584ac 230882011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
23089
23090 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
23091 support sites.
23092
f4e302ca 230932011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
23094
e75e9a75 23095 * doc/install.texi (Binaries): Remove outdated reference for
23096 Motorola 68HC11/68HC12 downloads.
23097
230982011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
3968fd16 23099
f4e302ca 23100 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
23101 Drepper's paper.
23102
7f90e96e 231032011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
23104
23105 PR bootstrap/47147
23106 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
23107 used by NetBSD.
23108
2e8ba7b3 231092011-01-28 Ahmad Sharif <asharif@google.com>
81c388fd 23110
23111 * value-prof.c (check_counter): Corrected error message.
23112
a4f7f36c 231132011-01-29 Jie Zhang <jie@codesourcery.com>
23114
23115 * config/arm/arm.c (arm_legitimize_reload_address): New.
23116 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
23117 arm_legitimize_reload_address.
2e8ba7b3 23118 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
a4f7f36c 23119
826a8d9b 231202011-01-28 Ian Lance Taylor <iant@google.com>
23121
23122 * godump.c (go_define): Ignore macros whose definitions include
23123 two adjacent operands.
23124
722c0f6e 231252011-01-28 Jakub Jelinek <jakub@redhat.com>
23126
23127 PR target/42894
23128 * varasm.c (force_const_mem): Store copy of x in desc->constant
23129 instead of x itself.
23130 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
23131 itself into REG_EQUAL note.
23132
5be9590a 231332011-01-28 Joseph Myers <joseph@codesourcery.com>
23134
23135 * config/freebsd.opt (posix, rdynamic): New Driver options.
23136
a54f3ef3 231372011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23138
23139 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
23140 -Bstatic/-Bdynamic.
23141 * configure: Regenerate.
23142
5f9dac96 231432011-01-27 Joseph Myers <joseph@codesourcery.com>
23144
23145 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
23146 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
23147
3359ccfd 231482011-01-27 Anatoly Sokolov <aesok@post.ru>
23149
23150 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
23151 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
23152 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
23153 (s390_preferred_reload_class): Make static. Change return and
23154 'rclass' argument type to reg_class_t.
23155
40b32d93 231562011-01-27 Jan Hubicka <jh@suse.cz>
23157
23158 PR middle-end/46949
23159 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
23160 (process_function_and_variable_attributes): Check defined weakrefs.
23161
1fd38f81 231622011-01-27 Martin Jambor <mjambor@suse.cz>
23163
23164 PR tree-optimization/47228
23165 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
23166 build_ref_for_offset.
23167
afcc4e86 231682011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23169
23170 * config/spu/spu-elf.h (ASM_SPEC): Remove.
23171
ba6ea72b 231722011-01-26 Mikael Pettersson <mikpe@it.uu.se>
33b7314b 23173
23174 PR rtl-optimization/46856
23175 * postreload.c (reload_combine_recognize_const_pattern): Do not
23176 separate cc0 setter and user on cc0 targets.
23177
a43fc97e 231782011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
23179
23180 PR c/43082
23181 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
23182 passed a VOID_TYPE expression, immediately emit an error and
23183 return error_mark_node.
23184
9bd1408a 231852011-01-26 Jeff Law <law@redhat.com>
23186
23187 PR rtl-optimization/47464
23188 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
23189 rather than may_trap_p as needed.
23190
c0ed6498 231912011-01-26 DJ Delorie <dj@redhat.com>
23192
23193 PR rtl-optimization/46878
23194 * combine.c (insn_a_feeds_b): Check for the implicit cc0
23195 setter/user dependency as well.
23196
2decfaa7 231972011-01-26 Eric Botcazou <ebotcazou@adacore.com>
23198
23199 PR rtl-optimization/44469
23200 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
23201 after removing trivially dead basic blocks.
23202
76db74b6 232032011-01-26 Joseph Myers <joseph@codesourcery.com>
23204
23205 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
23206 * config/frv/frv.h (LINK_SPEC): Likewise.
23207 * config/i386/netware.h (LINK_SPEC): Likewise.
23208 * config/m68k/linux.h (ASM_SPEC): Likewise.
23209 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
23210 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23211 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23212 * config/sparc/linux.h (ASM_SPEC): Likewise.
23213 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23214 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23215
63713d4f 232162011-01-26 Joseph Myers <joseph@codesourcery.com>
23217
23218 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
23219 * config/frv/frv.h (ASM_SPEC): Likewise.
23220 * config/m68k/linux.h (ASM_SPEC): Likewise.
23221 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23222 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
23223 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23224 * config/sparc/linux.h (ASM_SPEC): Likewise.
23225 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23226 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23227
02b94076 232282011-01-26 Joseph Myers <joseph@codesourcery.com>
23229
23230 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
23231 * config/frv/frv.h (LINK_SPEC): Likewise.
23232 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23233
5c8a1984 232342011-01-26 Joseph Myers <joseph@codesourcery.com>
23235
23236 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
23237 * config/frv/frv.h (ASM_SPEC): Likewise.
23238 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
23239 * config/m68k/linux.h (ASM_SPEC): Likewise.
23240 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23241 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
23242 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23243 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
23244 * config/sparc/linux.h (ASM_SPEC): Likewise.
23245 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23246 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23247 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
23248
6d6a23ae 232492011-01-26 Steve Ellcey <sje@cup.hp.com>
23250
23251 PR target/46997
23252 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
23253 (*mux2): Ditto.
23254 (vec_extract_evenodd_help): Ditto.
23255 (vec_extract_evenv4hi): Ditto.
23256 (vec_extract_oddv4hi): Ditto.
23257 (vec_interleave_lowv2si): Ditto.
23258 (vec_interleave_highv2si): Ditto.
23259 (vec_extract_evenv2si): Ditto.
23260 (vec_extract_oddv2si: Ditto.
23261 (vec_pack_trunc_v2si): Ditto.
23262
269b8d98 232632011-01-22 Jan Hubicka <jh@suse.cz>
23264
23265 PR target/47237
23266 * cgraph.h (cgraph_local_info): New field can_change_signature.
23267 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
23268 signature can change.
23269 (ipcp_estimate_growth): Call sequence simplify only if calle signature
23270 can change.
23271 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
23272 (cgraph_function_versioning): We can not change signature of functions
23273 that don't allow that.
23274 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
23275 (lto_input_node): Likewise.
2e8ba7b3 23276 * ipa-inline.c (compute_inline_parameters): Compute
23277 local.can_change_signature.
269b8d98 23278 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
2e8ba7b3 23279 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
23280 functions that can not change signature.
269b8d98 23281 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
2e8ba7b3 23282 init_cumulative_args): Do not use local calling conventions
23283 for functions that can not change signature.
269b8d98 23284
781e865e 232852011-01-22 Jan Hubicka <jh@suse.cz>
23286
23287 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
23288
d05db70d 232892011-01-26 Richard Guenther <rguenther@suse.de>
23290
23291 PR tree-optimization/47190
3968fd16 23292 * cgraphunit.c (process_common_attributes): New function.
23293 (process_function_and_variable_attributes): Use it.
d05db70d 23294
b13addbf 232952011-01-26 Richard Guenther <rguenther@suse.de>
23296
23297 PR lto/47423
23298 * cgraphbuild.c (record_eh_tables): Record reference to personality
23299 function.
23300
995ca335 233012011-01-26 Alexandre Oliva <aoliva@redhat.com>
23302
23303 PR debug/45454
23304 * sel-sched.c (moveup_expr): Don't let debug insns prevent
23305 non-debug insns from moving up.
23306
abfe0c5b 233072011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
23308
23309 PR target/40125
23310 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
23311 t-dlldir{,-x} fragment for build and add it to tmake_file.
23312 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
23313 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
23314 * config/i386/t-dlldir: New file.
23315 (SHLIB_DLLDIR): Define.
23316 * config/i386/t-dlldir-x: New file.
23317 (SHLIB_DLLDIR): Define.
23318 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
23319 (SHLIB_INSTALL): Use it.
23320
06a9ac97 233212011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
23322
23323 PR target/47246
23324 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
23325 lower bound of the allowed Thumb-2 coprocessor load/store
23326 index range to -256. Add explaining comment.
23327
509475fd 233282011-01-25 Ian Lance Taylor <iant@google.com>
23329
23330 * godump.c (go_define): Improve lexing of macro expansion to only
23331 accept expressions which match Go spec.
23332
0675168d 233332011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
23334
e8911163 23335 PR c++/43601
0675168d 23336 * tree.c (handle_dll_attribute): Handle it.
23337 * doc/extend.texi (@item dllexport): Mention it.
23338 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
23339
f583ffd4 233402011-01-25 Ian Lance Taylor <iant@google.com>
23341
23342 PR tree-optimization/26854
23343 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
23344 (decl_jump_unsafe): Move higher in file, with no other change.
23345 (bind): Set has_jump_unsafe_decl if appropriate.
23346 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
23347 (check_earlier_gotos): Likewise.
23348 (c_check_switch_jump_warnings): Likewise.
23349
f6c6eba4 233502011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
23351
23352 * doc/invoke.texi (Warning Options): Add missing hyphen.
23353 (-fprofile-dir): Minor grammatical fixes.
23354 (-fbranch-probabilities): Likewise.
23355
ce784932 233562011-01-25 Alexandre Oliva <aoliva@redhat.com>
23357
23358 PR debug/45136
23359 PR debug/45130
23360 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23361 debug insns.
23362 (no_real_insns_p, schedule_block, set_priorities): Drop special
23363 treatment of boundary debug insns.
2e8ba7b3 23364 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ce784932 23365 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23366 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23367 (BOUNDARY_DEBUG_INSN_P): Likewise.
23368 (SCHEDULE_DEBUG_INSN_P): Likewise.
23369 * sched-rgn.c (init_ready_list): Drop special treatment of
23370 boundary debug insns.
23371 * final.c (rest_of_clean-state): Clear notes' BB.
23372
e01f9f1f 233732011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23374
23375 * Makefile.in (LAMBDA_H): Removed.
23376 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
23377 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
23378 lambda-trans.o, and tree-loop-linear.o.
23379 (lto-symtab.o): Remove dependence on LAMBDA_H.
23380 (tree-loop-linear.o): Remove rule.
23381 (lambda-mat.o): Same.
23382 (lambda-trans.o): Same.
23383 (lambda-code.o): Same.
23384 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
23385 (tree-vect-slp.o): Same.
23386 * hwint.h (gcd): Moved here.
23387 (least_common_multiple): Same.
23388 * lambda-code.c: Removed.
23389 * lambda-mat.c: Removed.
23390 * lambda-trans.c: Removed.
23391 * lambda.h: Removed.
23392 * tree-loop-linear.c: Removed.
23393 * lto-symtab.c: Do not include lambda.h.
23394 * omega.c (gcd): Removed.
23395 * passes.c (init_optimization_passes): Remove pass_linear_transform.
23396 * tree-data-ref.c (print_lambda_vector): Moved here.
23397 (lambda_vector_copy): Same.
23398 (lambda_matrix_copy): Same.
23399 (lambda_matrix_id): Same.
23400 (lambda_vector_first_nz): Same.
23401 (lambda_matrix_row_add): Same.
23402 (lambda_matrix_row_exchange): Same.
23403 (lambda_vector_mult_const): Same.
23404 (lambda_vector_negate): Same.
23405 (lambda_matrix_row_negate): Same.
23406 (lambda_vector_equal): Same.
23407 (lambda_matrix_right_hermite): Same.
23408 * tree-data-ref.h: Do not include lambda.h.
23409 (lambda_vector): Moved here.
23410 (lambda_matrix): Same.
23411 (dependence_level): Same.
23412 (lambda_transform_legal_p): Removed declaration.
23413 (lambda_collect_parameters): Same.
23414 (lambda_compute_access_matrices): Same.
23415 (lambda_vector_gcd): Same.
23416 (lambda_vector_new): Same.
23417 (lambda_vector_clear): Same.
23418 (lambda_vector_lexico_pos): Same.
23419 (lambda_vector_zerop): Same.
23420 (lambda_matrix_new): Same.
23421 * tree-flow.h (least_common_multiple): Removed declaration.
23422 * tree-parloops.c (lambda_trans_matrix): Moved here.
23423 (LTM_MATRIX): Same.
23424 (LTM_ROWSIZE): Same.
23425 (LTM_COLSIZE): Same.
23426 (LTM_DENOMINATOR): Same.
23427 (lambda_trans_matrix_new): Same.
23428 (lambda_matrix_vector_mult): Same.
23429 (lambda_transform_legal_p): Same.
23430 * tree-pass.h (pass_linear_transform): Removed declaration.
23431 * tree-ssa-loop.c (tree_linear_transform): Removed.
23432 (gate_tree_linear_transform): Removed.
23433 (pass_linear_transform): Removed.
23434 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
23435 flag_loop_interchange.
23436
628ce22b 234372011-01-25 Jakub Jelinek <jakub@redhat.com>
23438
23439 PR tree-optimization/47265
23440 PR tree-optimization/47443
23441 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
23442 if name still has some uses.
23443
114227c3 234442011-01-25 Martin Jambor <mjambor@suse.cz>
23445
23446 PR tree-optimization/47382
23447 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
23448 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
23449
ba6ea72b 234502011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
16a1c7a3 23451
23452 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
23453 sjlj_except_unwind_info.
23454
12d9baf9 234552011-01-25 Richard Guenther <rguenther@suse.de>
23456
23457 PR tree-optimization/47426
23458 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
23459 visible functions results escape.
23460
37f09426 234612011-01-25 Jakub Jelinek <jakub@redhat.com>
23462
23463 PR target/45701
23464 * config/arm/arm.c (any_sibcall_uses_r3): New function.
23465 (arm_get_frame_offsets): Use it.
23466
5790abbc 234672011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23468 Jakub Jelinek <jakub@redhat.com>
23469
23470 PR tree-optimization/47271
23471 * tree-if-conv.c (bb_postdominates_preds): New.
23472 (if_convertible_bb_p): Call bb_postdominates_preds.
23473 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
23474 (predicate_scalar_phi): Call bb_postdominates_preds.
23475
02f06d23 234762011-01-25 Nick Clifton <nickc@redhat.com>
23477
23478 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
23479 * config/rx/rx.c (rx_function_value): Likewise.
23480 (rx_promote_function_mode): Likewise.
23481 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
23482 in order to make it legitimate.
2e8ba7b3 23483 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
23484 make sure that the first operand is the same as the result register.
02f06d23 23485 (addsi3_unspec): Delete.
23486 (subdi3): Do not accept immediate operands.
23487 (subdi3_internal): Likewise.
23488
fad2bf3e 234892011-01-25 Jeff Law <law@redhat.com>
23490
23491 PR rtl-optimization/37273
23492 * ira-costs.c (scan_one_insn): Detect constants living in memory and
23493 handle them like argument loads from stack slots. Do not double
23494 count memory for memory constants and argument loads from stack slots.
23495
3e101e60 234962011-01-25 Jakub Jelinek <jakub@redhat.com>
23497
23498 PR tree-optimization/47427
23499 PR tree-optimization/47428
23500 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
23501 coalesce if the new root var would be TREE_READONLY.
23502
c2af9e57 235032011-01-25 Richard Guenther <rguenther@suse.de>
23504
23505 PR middle-end/47414
23506 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
23507 correct type for TBAA.
23508
fa6ed0e9 235092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23510
23511 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
23512 (close_phi_written_to_memory): Call for_each_index with
23513 dr_indices_valid_in_loop.
23514
93f9c161 235152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23516
23517 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
23518 when it is initialized.
23519
221a697e 235202011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23521
23522 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
23523 call to graphite_find_data_references_in_stmt.
23524 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
23525 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
23526 call to graphite_find_data_references_in_stmt.
23527 (analyze_drs_in_stmts): Same.
23528 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
23529 in which the scalar analysis of indices is performed.
23530 (create_data_ref): Same. Update call to dr_analyze_indices.
23531 (find_data_references_in_stmt): Update call to create_data_ref.
23532 (graphite_find_data_references_in_stmt): Same.
23533 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
23534 declaration.
23535 (create_data_ref): Same.
23536 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
23537 call to create_data_ref.
23538
c5409e1f 235392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23540
23541 * graphite-sese-to-poly.c (build_poly_scop): Move
2e8ba7b3 23542 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
c5409e1f 23543
041f1b34 235442011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23545
23546 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
23547 VAR_DECL, PARM_DECL, and RESULT_DECL.
23548
fc2372d9 235492011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23550
23551 * graphite-dependences.c (reduction_dr_1): Allow several reductions
23552 in a reduction PBB.
23553 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
23554 that have already been marked as PBB_IS_REDUCTION.
23555
3225ff53 235562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23557
23558 * graphite-scop-detection.c (same_close_phi_node): New.
23559 (remove_duplicate_close_phi): New.
23560 (make_close_phi_nodes_unique): New.
23561 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
23562
a0630a8d 235632011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23564
23565 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
23566 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
23567 of both data references to be the same.
23568
07141610 235692011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23570
2e8ba7b3 23571 * graphite-dependences.c (build_lexicographical_constraint): Remove
23572 the gdim parameter.
23573 (build_lexicographical_constraint): Adjust call to
23574 ppl_powerset_is_empty.
07141610 23575 (dependence_polyhedron): Same.
23576 (graphite_legal_transform_dr): Same.
23577 (graphite_carried_dependence_level_k): Same.
2e8ba7b3 23578 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
23579 parameter.
07141610 23580 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
23581
53b5bc41 235822011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23583
23584 * graphite-sese-to-poly.c
23585 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
23586 (close_phi_written_to_memory): New.
23587 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
23588 and unshare_expr.
23589
11ce391e 235902011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23591
23592 * doc/install.texi: Update the expected version number of PPL to 0.11.
23593 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
23594 #if PPL_VERSION_MINOR < 11.
23595
1877ea6b 235962011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23597
23598 * graphite-dependences.c: Include graphite-cloog-util.h.
23599 (new_poly_ddr): Inlined into dependence_polyhedron.
23600 (free_poly_ddr): Moved close by new_poly_ddr.
23601 (dependence_polyhedron_1): Renamed dependence_polyhedron.
23602 Early return NULL when ppl_powerset_is_empty returns true.
23603 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
23604 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
23605 (graphite_legal_transform_dr): Call new_poly_ddr.
23606 (graphite_carried_dependence_level_k): Same.
23607 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
23608 (dot_transformed_deps_stmt_1): Removed.
23609 (dot_deps_stmt_1): Call dot_deps_stmt_2.
23610 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
23611 (dot_deps_1): Call dot_deps_2.
23612 * Makefile.in (graphite-dependences.o): Add missing dependence on
23613 graphite-cloog-util.h.
23614
b40e3432 236152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23616
23617 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
23618 (build_lexicographical_constraint): Same.
23619 (dependence_polyhedron_1): Same.
23620 (graphite_legal_transform_dr): Same.
23621 (graphite_carried_dependence_level_k): Same.
23622 * graphite-ppl.c (ppl_powerset_is_empty): New.
23623 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
23624 * tree-data-ref.c (dump_data_reference): Print the basic block index.
23625
37578f49 236262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23627
23628 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
23629 the "a followed by b" relation and document it.
23630
c4b17226 236312011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23632
23633 * graphite-dependences.c (build_lexicographical_constraint): Stop the
23634 iteration when the bag of constraints is empty.
23635
eb165288 236362011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23637
23638 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
23639
8f1020f8 236402011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23641
23642 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
23643 nest and two loop depths as parameters.
23644 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
23645 lst_perfect_nestify.
23646
a3936cf6 236472011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23648
23649 * graphite-dependences.c (print_pddr): Call
23650 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
23651
f093228e 236522011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23653
23654 * graphite-ppl.c (debug_gmp_value): New.
23655 * graphite-ppl.h (debug_gmp_value): Declared.
23656
20ec32e2 236572011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
23658
23659 * doc/install.texi: Document availability of cloog-0.16.
23660
2acf5550 236612011-01-25 Vladimir Kargov <kargov@gmail.com>
23662
23663 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
23664 invalid postdominance info.
23665
fbdda6a7 236662011-01-24 Jan Hubicka <jh@suse.cz>
23667
23668 PR c/21659
23669 * doc/extend.texi (weak pragma): Drop claim that it must
23670 appear before definition.
23671 * varasm.c (merge_weak, declare_weak): Only sanity check
23672 that DECL is not output at a time it is declared weak.
23673
7f24e187 236742011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
23675
23676 * machmode.def: Fixed comments.
2acf5550 23677
e19e0a33 236782011-01-24 Kai Tietz <kai.tietz@onevision.com>
23679
23680 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
23681
236822011-01-24 Paul Koning <ni1d@arrl.net>
ad8f8e52 23683
23684 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
2acf5550 23685 WORDS_BIG_ENDIAN.
ad8f8e52 23686
bc189236 236872011-01-24 H.J. Lu <hongjiu.lu@intel.com>
23688
23689 PR target/46519
23690 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
23691 (block_info): Add scanned and prev.
23692 (move_or_delete_vzeroupper_2): Return if the basic block
23693 has been scanned and the upper 128bit state is unchanged
23694 from the last scan.
23695 (move_or_delete_vzeroupper_1): Return true if the exit
23696 state is changed.
23697 (move_or_delete_vzeroupper): Visit basic blocks using the
23698 work-list based algorithm based on vt_find_locations in
23699 var-tracking.c.
23700
23701 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
23702
fabc2065 237032011-01-24 Nick Clifton <nickc@redhat.com>
23704
23705 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
23706 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
23707 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
23708 then define __v850e1__.
23709 * doc/invoke.texi: Document -mv850es.
23710
d9b5adbb 237112011-01-24 Richard Henderson <rth@redhat.com>
23712
23713 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
23714 compound unordered comparisons.
23715 * config/rx/rx.c (rx_split_fp_compare): Remove.
23716 * config/rx/rx-protos.h: Update.
23717 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
23718 (cbranchsf4): Don't call rx_split_fp_compare.
23719 (*cbranchsf4): Use rx_split_cbranch.
23720 (*cmpsf): Don't accept "i" constraint.
23721 (*conditional_branch): Only valid after reload.
23722 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
23723
18aeab2a 237242011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
23725
23726 PR target/47385
23727 * config/rs6000/altivec.md (vector constant splitters): Add
23728 support for creating vector single precision constants if -mvsx is
23729 used and we would create the constant using Altivec primitives.
23730
a10441ee 237312011-01-23 Bernd Schmidt <bernds@codesourcery.com>
23732 Richard Sandiford <rdsandiford@googlemail.com>
23733
23734 PR rtl-optimization/47166
23735 * reload1.c (emit_reload_insns): Disable the spill_reg_store
23736 mechanism for PRE_MODIFY and POST_MODIFY.
23737 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
23738 reloadreg.
23739
97c6ec6a 237402011-01-23 Andreas Schwab <schwab@linux-m68k.org>
23741
ab78ddd4 23742 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
97c6ec6a 23743
efa5dc14 237442011-01-22 Jan Hubicka <jh@suse.cz>
23745
23746 PR lto/47333
23747 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
23748
dcfc8dc0 237492011-01-22 Jan Hubicka <jh@suse.cz>
23750
23751 PR tree-optimization/43884
23752 PR lto/44334
ab78ddd4 23753 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
dcfc8dc0 23754 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
23755
fa7a995b 237562011-01-22 Anatoly Sokolov <aesok@post.ru>
23757
23758 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23759 * config/s390/s390.c (s390_register_move_cost,
23760 s390_memory_move_cost): New.
23761 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
23762
e5aa6e8b 237632011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23764
23765 PR middle-end/47401
23766 * except.c (sjlj_assign_call_site_values): Move setting the
23767 crtl->uses_eh_lsda flag to ...
23768 (sjlj_mark_call_sites): ... here.
23769 (sjlj_emit_function_enter): Support NULL dispatch label.
23770 (sjlj_build_landing_pads): In a function with no landing pads
23771 that still has must-not-throw regions, generate code to register
23772 a personality function with empty LSDA.
23773
a50372fe 237742011-01-21 Richard Henderson <rth@redhat.com>
23775
77de4b78 23776 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
23777
08207c2f 23778 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
23779
a50372fe 23780 * compare-elim.c: New file.
23781 * Makefile.in (OBJS-common): Add it.
23782 (compare-elim.o): New.
23783 * common.opt (fcompare-elim): New.
23784 * opts.c (default_options_table): Add OPT_fcompare_elim.
23785 * tree-pass.h (pass_compare_elim_after_reload): New.
23786 * passes.c (init_optimization_passes): Add it.
23787 * recog.h: Protect against re-inclusion.
23788 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
23789 * doc/invoke.texi (-fcompare-elim): Document it.
23790 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
23791 * doc/tm.texi: Rebuild.
23792
13f89fe5 237932011-01-22 Nick Clifton <nickc@redhat.com>
23794
23795 * config/rx/rx.md (cstoresf4): Pass comparison operator to
23796 rx_split_fp_compare.
23797
95272799 237982011-01-22 Nick Clifton <nickc@redhat.com>
23799
23800 * config/rx/rx.md (UNSPEC_CONST): New.
23801 (deallocate_and_return): Wrap the amount popped off the stack in
23802 an UNSPEC_CONST in order to stop it being rejected by
23803 -mmax-constant-size.
23804 (pop_and_return): Add a "(return)" rtx.
23805 (call): Drop the immediate operand.
23806 (call_internal): Likewise.
23807 (call_value): Likewise.
23808 (call_value_internal): Likewise.
23809 (sibcall_internal): Likewise.
23810 (sibcall_value_internal): Likewise.
23811 (sibcall): Likewise. Generate an explicit call using
23812 sibcall_internal.
23813 (sibcall_value): Likewise.
23814 (mov<>): FAIL if a constant operand is not legitimate.
23815 (addsi3_unpsec): New pattern.
13f89fe5 23816
2e8ba7b3 23817 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
95272799 23818 (ok_for_max_constant): New function.
23819 (gen_safe_add): New function.
23820 (rx_expand_prologue): Use gen_safe_add.
23821 (rx_expand_epilogue): Likewise.
23822 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
23823 UNSPEC CONSTs.
23824
d02c8339 238252011-01-21 Jeff Law <law@redhat.com>
23826
23827 PR tree-optimization/47053
23828 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
23829 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
23830 statements are deleted.
23831 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
23832 is nonempty, then purge dead edges and cleanup the CFG.
23833
81598b62 238342011-01-21 Alexandre Oliva <aoliva@redhat.com>
23835
23836 PR debug/47402
23837 Temporarily revert:
23838 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
23839 PR debug/47106
23840 * tree-dfa.c (create_var_ann): Mark variable as used.
23841
f9460785 238422011-01-21 Jakub Jelinek <jakub@redhat.com>
23843
e30ff7b1 23844 PR middle-end/45566
23845 * except.c (convert_to_eh_region_ranges): Emit queued no-region
23846 notes from other section in hot/cold partitioning even if
23847 last_action is -3. Increment call_site_base.
23848
f9460785 23849 PR rtl-optimization/47366
23850 * fwprop.c (forward_propagate_into): Return bool. If
23851 any changes are made, -fnon-call-exceptions is used and
23852 REG_EH_REGION note is present, call purge_dead_edges
23853 and return true if it purged anything.
23854 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
23855 any EH edges were purged.
23856
0268f1d4 238572011-01-21 Jeff Law <law@redhat.com>
23858
23859 PR rtl-optimization/41619
23860 * caller-save.c (setup_save_areas): Break out code to determine
23861 which hard regs are live across calls by examining the reload chains
23862 so that it is always used.
23863 Eliminate code which checked REG_N_CALLS_CROSSED.
23864
6e21b2e0 238652011-01-21 Jakub Jelinek <jakub@redhat.com>
23866
23867 PR tree-optimization/47355
23868 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
23869 NOP has non-debug uses beyond PHIs in new_bb.
23870
1bc4cf65 238712011-01-21 Alexandre Oliva <aoliva@redhat.com>
23872
23873 PR debug/47106
23874 * cfgexpand.c (account_used_vars_for_block): Only account vars
23875 that are annotated as used.
23876 (estimated_stack_frame_size): Don't set TREE_USED.
23877 * tree-dfa.c (create_var_ann): Mark variable as used.
23878
da82f093 238792011-01-21 Richard Guenther <rguenther@suse.de>
23880
23881 PR middle-end/47395
23882 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
23883
8ecc6b38 238842011-01-21 Richard Guenther <rguenther@suse.de>
23885
23886 PR tree-optimization/47365
23887 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
23888 (vn_reference_lookup_pieces): Adjust.
23889 (vn_reference_lookup): Likewise.
23890 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
23891 (vn_reference_lookup_3): Only look through kills if in
23892 VN_WALKREWRITE mode.
23893 (vn_reference_lookup_pieces): Adjust.
23894 (vn_reference_lookup): Likewise.
23895 (visit_reference_op_load): Likewise.
23896 (visit_reference_op_store): Likewise.
23897 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
23898 (compute_avail): Likewise.
23899 (eliminate): Likewise.
23900
2d8c1786 239012011-01-21 Jakub Jelinek <jakub@redhat.com>
23902
23903 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
23904 DECL_IGNORED_P non-reg vars if they are used.
23905
2fbbab30 23906 PR tree-optimization/47391
23907 * varpool.c (const_value_known_p): Return false if
23908 decl is volatile.
23909
6a457a13 239102011-01-21 Kai Tietz <kai.tietz@onevision.com>
23911
23912 PR bootstrap/47215
23913 * config/i386/i386.c (ix86_local_alignment): Handle
23914 case for va_list_type_node is nil.
23915 (ix86_canonical_va_list_type): Likewise.
23916
17681ddd 239172011-01-21 Alan Modra <amodra@gmail.com>
23918
23919 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
23920 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
23921
013b9671 239222011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23923
23924 * config/arm/arm.md (define_attr type): Rename f_load
23925 and f_store to f_fpa_load and f_fpa_store. Update.
23926 (write_conflict): Deal with rename fallout.
23927 (*push_fp_multi): Likewise.
23928 * config/arm/fpa.md (f_load): Use f_fpa_load.
23929 (f_store): Use f_fpa_store.
23930 (*movsf_fpa): Likewise.
23931 (*movdf_fpa): Likewise.
23932 (*movxf_fpa): Likewise.
23933 (*thumb2_movsf_fpa): Likewise.
23934 (*thumb2_movdf_fpa): Likewise.
23935 (*thumb2_movxf_fpa): Likewise.
23936 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
23937 f_loadd and f_stored.
23938 (*thumb2_movdi_vfp): Likewise.
23939 (*thumb2_movsf_vfp): Fix attribute to f_loads.
23940 (*thumb2_movsi_vfp): Likewise.
23941 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
23942 Use f_loads instead of f_load.
23943 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
23944
5cae3439 239452011-01-20 Anatoly Sokolov <aesok@post.ru>
23946
23947 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23948 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
23949 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23950 (xtensa_mode_dependent_address_p): New function.
23951 (constantpool_address_p): Make static. Change return type to bool.
23952 Change argument type to const_rtx. Use CONST_INT_P predicate.
23953
29bcbc13 239542011-01-20 Alexandre Oliva <aoliva@redhat.com>
23955
23956 PR debug/46583
23957 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
23958
f87ea39e 239592011-01-20 Jakub Jelinek <jakub@redhat.com>
23960
23961 PR debug/47283
23962 * cfgexpand.c (expand_debug_expr): Instead of generating
23963 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
23964 etc. handling.
23965
7003a7e5 239662011-01-20 Richard Guenther <rguenther@suse.de>
23967
23968 PR middle-end/47370
23969 * tree-inline.c (remap_gimple_op_r): Recurse manually for
23970 the pointer operand of MEM_REFs.
23971
9aa9c1e6 239722011-01-20 Jakub Jelinek <jakub@redhat.com>
23973
23974 PR tree-optimization/46130
23975 * ipa-split.c (consider_split): If return_bb contains non-virtual
23976 PHIs other than for retval or if split_function would not adjust it,
23977 refuse to split.
23978
34d5f36d 239792011-01-20 Richard Guenther <rguenther@suse.de>
23980
23981 PR tree-optimization/47167
23982 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
23983 Revert previous change, only avoid enumeral type changes.
23984
18695bc1 239852011-01-19 Mike Stump <mikestump@comcast.net>
23986
23987 * doc/tm.texi.in (BRANCH_COST): Englishify.
23988 * doc/tm.texi (BRANCH_COST): Likewise.
23989
02db81fa 239902011-01-19 Dodji Seketeli <dodji@redhat.com>
23991
23992 PR c++/47291
23993 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
3968fd16 23994 (gen_scheduled_generic_parms_dies): New functions.
23995 (gen_struct_or_union_type_die): Schedule template parameters DIEs
23996 generation for the end of CU compilation.
23997 (dwarf2out_finish): Generate template parameters DIEs here.
02db81fa 23998
36a2709b 239992011-01-19 Alexandre Oliva <aoliva@redhat.com>
24000
24001 PR debug/46240
24002 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
24003 debug bind stmt on merge edges.
24004
95b985e5 240052011-01-19 Alexandre Oliva <aoliva@redhat.com>
24006
24007 PR debug/47079
24008 PR debug/46724
24009 * function.c (instantiate_expr): Instantiate incoming rtl of
24010 implicit arguments, and recurse on VALUE_EXPRs.
24011 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
24012 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
24013
65d95190 240142011-01-19 Alexandre Oliva <aoliva@redhat.com>
24015
24016 * c-parser.c (c_parser_for_statement): Initialize
24017 collection_expression.
24018
82a4f0ea 240192011-01-19 Joseph Myers <joseph@codesourcery.com>
24020
24021 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
24022
111de144 240232011-01-19 Joseph Myers <joseph@codesourcery.com>
24024
24025 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
24026 (LINK_SHLIB_SPEC): Don't use %(link_path).
24027 (SUBTARGET_EXTRA_SPECS): Remove link_path.
24028
4e62d313 240292011-01-19 Joseph Myers <joseph@codesourcery.com>
24030
24031 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
24032 (NO_SHARED_LIB_SUPPORT): Remove.
24033 (LINK_SHLIB_SPEC): Remove one conditional definition.
24034
1572b5b7 240352011-01-19 Joseph Myers <joseph@codesourcery.com>
24036
24037 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
24038 %{call_shared}.
24039 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
24040 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
24041 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
24042 %{call_shared} and conditionals on these options not being passed.
24043 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
24044 %{call_shared}.
24045
574c4ab5 240462011-01-19 Jakub Jelinek <jakub@redhat.com>
24047
b234c94d 24048 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
24049 simplify.
24050
574c4ab5 24051 * ipa-split.c: Spelling fixes.
24052
e1a5ebc0 240532011-01-19 Richard Henderson <rth@redhat.com>
24054
24055 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
24056 (*mulsi3): Likewise.
24057
8d596102 24058 * longlong.h [__mn10300__] (count_leading_zeros): New.
24059 [__mn10300__] (umul_ppmm, smul_ppmm): New.
24060 [__mn10300__] (add_ssaaaa, subddmmss): New.
24061 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
24062 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
24063
fd1ec18e 240642011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24065
24066 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
24067
edad0637 240682011-01-19 Richard Henderson <rth@redhat.com>
24069
cff84f05 24070 * config/mn10300/mn10300.md (addsi3_flags): New.
24071 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
24072 (subsi3_flags, subc_internal, subdi3): New.
24073 (subdi3_internal, *subdi3_degenerate): New.
24074 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
24075
ad3e6900 24076 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
24077 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
24078 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
24079 * config/mn10300/mn10300-protos.h: Update.
24080 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
24081 (return_ret): Likewise. Rename from return_internal_regs.
24082 (return_internal): Remove.
24083
6f22c3b4 24084 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
24085 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
24086 (mn10300_legitimate_constant_p): Likewise.
24087 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
24088 (mn10300_frame_size): New.
24089 (mn10300_expand_prologue): Use it.
24090 (mn10300_expand_epilogue): Likewise.
24091 (mn10300_initial_offset): Likewise.
24092 * config/mn10300/mn10300-protos.h: Update.
24093 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
24094 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
24095 (prologue, epilogue, return_internal): Tidy output code.
24096 (mn10300_store_multiple_operation, return): Likewise.
24097 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
24098 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
24099 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
24100 (load_pic, am33_load_pic): New.
24101 (mn10300_load_pic0, mn10300_load_pic1): New.
24102
990679af 24103 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
24104 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
24105 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
24106 (cc_flags_for_mode, cc_flags_for_code): New.
24107 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
24108 overflow flag is not valid. Validate that the flags we need
24109 for the comparison are valid.
24110 (mn10300_output_cmp): Remove.
24111 (mn10300_output_add): New.
24112 (mn10300_select_cc_mode): Use cc_flags_for_code.
24113 (mn10300_split_cbranch): New.
24114 (mn10300_match_ccmode): New.
24115 (mn10300_split_and_operand_count): New.
24116 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
24117 to the function.
24118 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
24119 (addsi3): ... here. Use mn10300_output_add.
24120 (*addsi3_flags): New.
24121 (*am33_subsi3, *mn10300_subsi3): Merge...
24122 (subsi3): ... here. Use attribute isa.
24123 (*subsi3_flags): New.
24124 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
24125 when possible.
24126 (*am33_andsi3, *mn10300_andsi3): Merge...
24127 (andsi3): ... here.
24128 (*andsi3_flags): New.
24129 (andsi3 splitters): New.
24130 (*am33_iorsi3, *mn10300_iorsi3): Merge...
24131 (iorsi3): ... here.
24132 (*iorsi3_flags): New.
24133 (*am33_xorsi3, *mn10300_xorsi3): Merge...
24134 (xorsi3): ... here.
24135 (*xorsi3_flags): New.
24136 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
24137 (one_cmplsi2): ... here.
24138 (*one_cmplsi2_flags): New.
24139 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
24140 instead of "dax" in constraints. Use mn10300_split_cbranch.
24141 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
24142 use matching constraints to eliminate a self-comparison.
24143 (*integer_conditional_branch): Rename from integer_conditional_branch.
24144 Use int_mode_flags to match CC_REG.
24145 (*cbranchsi4_btst, *btstsi): New.
24146 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
24147 mn10300_split_cbranch.
24148 (*am33_cmpsf): Rename from am33_cmpsf.
24149 (*float_conditional_branch): Rename from float_conditional_branch.
24150 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
24151 (zero_extendqisi2): ... here.
24152 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
24153 (zero_extendhisi2): ... here.
24154 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
24155 (extendqisi2): ... here.
24156 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
24157 (extendhisi2): ... here.
24158 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
24159 (ashlsi3): ... here.
24160 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
24161 (lshrsi3): ... here.
24162 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
24163 (ashrsi3): ... here.
24164 (consecutive add peephole): Remove.
24165 * config/mn10300/predicates.md (label_ref_operand): New.
24166 (int_mode_flags): New.
24167 (CCZN_comparison_operator): New.
24168
5babaf81 24169 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
24170 (throughput_42_latency_43): New reservation.
24171 (mulsidi3, umulsidi3): New expanders.
24172 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
24173 the MDR register to allocation; separately allocate the low and
24174 high parts of the DImode result.
24175 (umulsidi3_internal): Similarly.
24176 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
24177 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
24178 (udivsi3, umodsi3): Remove.
24179 (udivmodsi4, divmodsi4): New expanders.
24180 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
24181 (*divmodsi4): Simiarly.
24182 (ext_internal): New.
24183
85a6eed4 24184 * config/mn10300/constraints.md ("z"): New constraint.
24185 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
24186 (FIXED_REGISTERS): Don't fix MDR.
24187 (CALL_USED_REGSITERS): Reformat nicely.
24188 (REG_ALLOC_ORDER): Add MDR.
24189 (enum regclass): Add MDR_REGS.
24190 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
24191 (IRA_COVER_CLASSES): Add MDR_REGS.
24192 (REGNO_REG_CLASS): Handle MDR_REG.
24193 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
24194 (mn10300_register_move_cost): Likewise.
24195 * config/mn10300/mn10300.md (MDR_REG): New.
24196 (*movsi_internal): Handle moves to/from MDR_REGS.
24197
c8a596d6 24198 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
24199 POST_MODIFY.
24200 (mn10300_secondary_reload): Tidy combination reload classes.
24201 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
24202 addresses for AM33. Allow symbolic offsets for reg+imm.
24203 (mn10300_regno_in_class_p): New.
24204 (mn10300_legitimize_reload_address): New.
24205 * config/mn10300/mn10300.h (enum reg_class): Remove
24206 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
24207 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
24208 SP_OR_GENERAL_REGS.
24209 (REG_CLASS_NAMES): Update to match.
24210 (REG_CLASS_CONTENTS): Likewise.
24211 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
24212 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
24213 (REGNO_IN_RANGE_P): Remove.
24214 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
24215 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
24216 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
24217 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
24218 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
24219 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
24220 (REGNO_GENERAL_P): New.
24221 (HAVE_POST_MODIFY_DISP): New.
24222 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
24223 (LEGITIMIZE_RELOAD_ADDRESS): New.
24224 * config/mn10300/mn10300-protos.h: Update.
24225
c78ac668 24226 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
24227 DATA_REGS for AM33 stack-pointer destination.
24228 (mn10300_preferred_output_reload_class): Likewise.
24229 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
24230 into a form appropriate for ...
24231 (TARGET_SECONDARY_RELOAD): New.
24232 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
24233 * config/mn10300/mn10300-protos.h: Update.
24234 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
24235 reload_insi; use the "A" constraint for the scratch; handle AM33
24236 moves of sp to non-address registers.
24237
edad0637 24238 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
24239 (*movqi_internal): ... here.
24240 (*am33_movhi, *mn10300_movhi): Merge into...
24241 (*movhi_internal): ... here.
24242 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
24243 as the source/destination of moves from/to SP.
24244 (movsf): Only allow for AM33-2.
2acf5550 24245 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
edad0637 24246 any integer constant constraint. Only allow for AM33-2. Tidy
24247 all of the alternative outputs.
24248 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
24249 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
24250 for MN103.
24251 (udivsi3, umodsi3): New patterns for MN103 only.
24252
15edf55e 242532011-01-19 Joern Rennecke <amylaar@spamcop.net>
24254
24255 * doc/tm.texi.in: Spell out that a lack of register class unions
24256 can lead to ICEs.
24257 * doc/tm.texi: Regenerate.
24258
a9309f85 242592011-01-19 Jakub Jelinek <jakub@redhat.com>
24260
85e2842b 24261 PR rtl-optimization/47337
24262 * dce.c (check_argument_store): New function.
24263 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
24264
a9309f85 24265 PR tree-optimization/47290
24266 * tree-eh.c (infinite_empty_loop_p): New function.
24267 (cleanup_empty_eh): Use it.
24268
b6315407 242692011-01-18 Steve Ellcey <sje@cup.hp.com>
24270
24271 PR target/46997
24272 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
24273 (a64_expand_widen_sum): Ditto.
24274 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
24275 (vec_extract_evenodd_help): Ditto.
24276 (vec_extract_evenv4hi): Ditto.
24277 (vec_extract_oddv4hi): Ditto.
24278 (vec_extract_evenv2si): Ditto.
24279 (vec_extract_oddv2si): Ditto.
24280 (vec_extract_evenv2sf): Ditto.
24281 (vec_extract_oddv2sf): Ditto.
24282 (vec_pack_trunc_v4hi: Ditto.
24283 (vec_pack_trunc_v2si): Ditto.
24284 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
24285 (vec_interleave_highv8qi): Ditto.
24286 (mix1_r): Ditto.
24287 (vec_extract_oddv8qi): Ditto.
24288 (vec_interleave_lowv4hi): Ditto.
24289 (vec_interleave_highv4hi): Ditto.
24290 (vec_interleave_lowv2si): Ditto.
24291 (vec_interleave_highv2si): Ditto.
24292
0f9c87cc 242932011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24294
24295 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
24296 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
24297 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
24298 (pa_c_mode_for_suffix): New.
24299 (TARGET_EXPAND_BUILTIN): Define.
24300 (TARGET_C_MODE_FOR_SUFFIX): Define.
24301 (pa_builtins): Define.
24302 (pa_init_builtins): Register __float128 type and init new support
24303 builtins.
24304 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
24305 * config/pa/quadlib.c (_U_Qfcopysign): New.
24306
156512c1 243072011-01-18 Eric Botcazou <ebotcazou@adacore.com>
24308
24309 PR middle-end/46894
24310 * explow.c (allocate_dynamic_stack_space): Do not assume more than
24311 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
24312 are defined.
24313
329c1e4e 243142011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24315
24316 PR tree-optimization/47179
24317 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
24318 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
24319
73eb0a09 243202011-01-18 Richard Guenther <rguenther@suse.de>
24321
24322 PR rtl-optimization/47216
24323 * emit-rtl.c: Include tree-flow.h.
24324 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
24325 of replicating it with different semantics.
24326 * Makefile.in (emit-rtl.o): Adjust.
24327
c54f1e1f 243282011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24329
2e8ba7b3 24330 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
3968fd16 24331 (cortex_a9_dp): Handle neon types correctly.
c54f1e1f 24332
38ba30bf 243332011-01-18 Jakub Jelinek <jakub@redhat.com>
24334
24335 PR rtl-optimization/47299
24336 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
2e8ba7b3 24337 subtarget. Use normal multiplication if both operands are constants.
38ba30bf 24338 * expmed.c (expand_widening_mult): Don't try to optimize constant
24339 multiplication if op0 has VOIDmode. Convert op1 constant to mode
24340 before using it.
24341
304fe4ff 243422011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24343
24344 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
24345 spacing after 'e.g.', typos, comma, hyphenation.
24346
8b8777b9 243472011-01-17 Richard Henderson <rth@redhat.com>
24348
9b192813 24349 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
24350 (rx_restricted_mem_operand): New.
24351 (rx_shift_operand): Use register_operand.
24352 (rx_source_operand, rx_compare_operand): Likewise.
24353 * config/rx/rx.md (addsi3_flags): New expander.
24354 (adddi3): Rewrite as expander.
24355 (adc_internal, *adc_flags, adddi3_internal): New patterns.
24356 (subsi3_flags): New expander.
24357 (subdi3): Rewrite as expander.
24358 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
24359
cefd18fa 24360 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
24361 (rx_init_builtins): Remove sat builtin.
24362 (rx_expand_builtin): Likewise.
24363 * config/rx/rx.md (ssaddsi3): New.
24364 (*sat): Rename from sat. Represent the CC_REG input.
24365
f0fcb36d 24366 * config/rx/predicates.md (rshift_operator): New.
24367 * config/rx/rx.c (rx_expand_insv): Remove.
24368 * config/rx/rx-protos.h: Update.
24369 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
24370 operand to the canonical position.
24371 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
24372 (*bitclr, *bitclr_in_memory): Similarly.
24373 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
24374 (insv): Retain the zero_extract in the expansion.
24375
2eccffc4 24376 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
24377 (bswaphi2, bitinvert, revw): Likewise.
24378
51e241f8 24379 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
24380 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
24381 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
24382 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
24383 (bitset, bitset_in_memory): Likewise.
24384 (bitinvert, bitinvert_in_memory): Likewise.
24385 (bitclr, bitclr_in_memory): Likewise.
24386 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
24387 (rx_strend, rx_cmpstrn): Likewise.
24388 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
24389 (bitop peep2 patterns): Remove.
24390
fc3b02a9 24391 * config/rx/rx.c (rx_match_ccmode): New.
24392 * config/rx/rx-protos.h: Update.
24393 * config/rx/rx.md (abssi2): Clobber, don't set flags.
24394 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
24395 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
24396 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
24397 (fix_truncsfsi2, floatsisf2): Likewise.
24398 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
24399 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
24400 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
24401 (*subsi3_flags, *xorsi3_flags): New.
24402
2e978fdc 24403 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
24404
6f04f6f0 24405 * config/rx/rx.c (rx_print_operand): Remove workaround for
24406 unsplit comparison operations.
24407
71a06535 24408 * config/rx/rx.md (movsicc): Split after reload.
24409 (*movsicc): Merge *movsieq and *movsine via match_operator.
24410 (*stcc): New pattern.
24411
39a76221 24412 * config/rx/rx.c (rx_float_compare_mode): Remove.
24413 * config/rx/rx.h (rx_float_compare_mode): Remove.
24414 * config/rx/rx.md (cstoresi4): Split after reload.
24415 (*sccc): New pattern.
24416
ccfccd66 24417 * config/rx/predicates.md (label_ref_operand): New.
24418 (rx_z_comparison_operator): New.
24419 (rx_zs_comparison_operator): New.
24420 (rx_fp_comparison_operator): New.
24421 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
24422 Validate that the flags are set properly for the comparison.
24423 (rx_gen_cond_branch_template): Remove.
24424 (rx_cc_modes_compatible): Remove.
24425 (mode_from_flags): New.
24426 (flags_from_code): Rename from flags_needed_for_conditional.
24427 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
24428 (rx_select_cc_mode): Likewise.
24429 (rx_split_fp_compare): New.
24430 (rx_split_cbranch): New.
24431 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
24432 (*cbranchsi4): Use match_operator and rx_split_cbranch.
24433 (*cbranchsf4): Similarly.
24434 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
24435 match_operator and rx_split_cbranch.
24436 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
24437 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
24438 (*cmpsi): Rename from cmpsi.
24439 (*tstsi): Rename from tstsi.
24440 (*cmpsf): Rename from cmpsf; use CC_Fmode.
24441 (*conditional_branch): Rename from conditional_branch.
24442 (*reveresed_conditional_branch): Remove.
24443 (b<code>): Remove expander.
24444 * config/rx/rx-protos.h: Update.
24445
f1ccf245 24446 * config/rx/rx.c (rx_compare_redundant): Remove.
24447 * config/rx/rx.md (cmpsi): Don't use it.
24448 * config/rx/rx-protos.h: Update.
24449
8b8777b9 24450 * config/rx/rx-modes.def (CC_F): New mode.
24451 * config/rx/rx.c (rx_select_cc_mode): New.
24452 * config/rx/rx.h (SELECT_CC_MODE): Use it.
24453 * config/rx/rx-protos.h: Update.
24454
6b8f34b9 244552011-01-17 Richard Henderson <rth@redhat.com>
24456
24457 * except.c (dump_eh_tree): Fix stray ; after for statement.
24458
c6ba6fb8 244592011-01-17 Richard Guenther <rguenther@suse.de>
24460
24461 PR tree-optimization/47313
24462 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
24463 handling before copying the body. Properly deal with
24464 by-reference result in SSA form.
24465
07133e98 244662011-01-17 Ian Lance Taylor <iant@google.com>
24467
6b2039df 24468 PR target/47219
07133e98 24469 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
24470 (struct_value_alias_set): Don't define.
24471 (sparc_option_override): Don't set sparc_sr_alias_set and
24472 struct_value_alias_set.
24473 (save_or_restore_regs): Use gen_frame_mem rather than calling
24474 set_mem_alias_set.
24475 (sparc_struct_value_rtx): Likewise.
24476
8196f263 244772011-01-17 H.J. Lu <hongjiu.lu@intel.com>
24478
24479 PR target/47318
656e2b9d 24480 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
8196f263 24481 (_mm_maskstore_pd): Likewise.
24482 (_mm_maskload_ps): Likewise.
24483 (_mm_maskstore_ps): Likewise.
24484 (_mm256_maskload_pd): Change mask to __m256i.
24485 (_mm256_maskstore_pd): Likewise.
24486 (_mm256_maskload_ps): Likewise.
24487 (_mm256_maskstore_ps): Likewise.
24488
24489 * config/i386/i386-builtin-types.def: Updated.
24490 (ix86_expand_special_args_builtin): Likewise.
24491
24492 * config/i386/i386.c (bdesc_special_args): Update
24493 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
24494 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
24495 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
24496 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
24497
24498 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
24499 Use <avxpermvecmode> on mask register.
24500 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
24501
37e66d5b 245022011-01-17 Olivier Hainque <hainque@adacore.com>
3968fd16 24503 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24504 Eric Botcazou <ebotcazou@adacore.com>
37e66d5b 24505
24506 PR target/46655
24507 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
24508 if <= USHRT_MAX in 32-bit mode.
24509
a9efefe1 245102011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24511
24512 * doc/install.texi (Configuration, Specific): Wrap long
24513 lines in examples. Allow line wrapping in long options
24514 and URLs where beneficial for PDF output.
24515
e84c8ab1 245162011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
24517
24518 * config/mips/mips.c (mips_classify_symbol): Don't return
24519 SYMBOL_PC_RELATIVE for nonlocal labels.
24520
e9d410bb 245212011-01-15 Eric Botcazou <ebotcazou@adacore.com>
6e6aba5d 24522
e9d410bb 24523 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
24524
245252011-01-15 Jan Hubicka <jh@suse.cz>
24526
24527 PR tree-optimization/47276
6e6aba5d 24528 * ipa.c (function_and_variable_visibility): Do not try to mark alias
24529 declarations as needed.
24530
16358a63 245312011-01-15 Martin Jambor <mjambor@suse.cz>
24532
24533 * common.opt (fdevirtualize): New flag.
24534 * doc/invoke.texi (Option Summary): Document it.
24535 * opts.c (default_options_table): Add devirtualize flag.
24536 * ipa-prop.c (detect_type_change): Return immediately if
24537 devirtualize flag is not set.
24538 (detect_type_change_ssa): Likewise.
24539 (compute_known_type_jump_func): Likewise.
24540 (ipa_analyze_virtual_call_uses): Likewise.
24541
7af23aa4 245422011-01-14 Martin Jambor <mjambor@suse.cz>
24543
24544 PR tree-optimization/45934
24545 PR tree-optimization/46302
24546 * ipa-prop.c (type_change_info): New type.
24547 (stmt_may_be_vtbl_ptr_store): New function.
24548 (check_stmt_for_type_change): Likewise.
24549 (detect_type_change): Likewise.
24550 (detect_type_change_ssa): Likewise.
24551 (compute_complex_assign_jump_func): Check for dynamic type change.
24552 (compute_complex_ancestor_jump_func): Likewise.
24553 (compute_known_type_jump_func): Likewise.
24554 (compute_scalar_jump_functions): Likewise.
24555 (ipa_analyze_virtual_call_uses): Likewise.
24556 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
24557
89222b99 245582011-01-14 Joseph Myers <joseph@codesourcery.com>
24559
24560 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
24561 * config/i386/i386.opt (msse5): New Alias.
24562
40ccd6e8 245632011-01-14 Joseph Myers <joseph@codesourcery.com>
24564
24565 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24566 * config/sparc/linux64.h (CC1_SPEC): Likewise.
24567 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24568 * config/sparc/sparc.h (CC1_SPEC): Likewise.
24569
a03467a2 245702011-01-14 Joseph Myers <joseph@codesourcery.com>
24571
24572 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
24573 -mcpu options.
24574 * config/sparc/linux64.h (CC1_SPEC): Likewise.
24575 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24576 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
24577 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
24578 Likewise.
24579 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
24580
229e169b 245812011-01-14 Joseph Myers <joseph@codesourcery.com>
24582
2e8ba7b3 24583 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
229e169b 24584
102f9f10 245852011-01-14 Mike Stump <mikestump@comcast.net>
24586
24587 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
24588 * config/fr30/fr30.md: Likweise
24589 (movsi_push): Likewise.
24590 (movsi_pop): Likewise.
24591 (enter_func): Likewise.
24592 * config/moxie/moxie.md (movsi_push): Likewise.
24593 (movsi_pop): Likewise.
24594
4792d6fe 245952011-01-14 Joseph Myers <joseph@codesourcery.com>
24596
24597 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
24598 %{no_archive} %{exact_version}.
24599 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
24600 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
24601 %{no_archive} %{exact_version}.
24602 * config/mips/openbsd.h (LINK_SPEC): Likewise.
24603 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
24604 * config/mips/vxworks.h: Likewise.
24605
3ca0b262 246062011-01-14 Joseph Myers <joseph@codesourcery.com>
24607
2e8ba7b3 24608 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
3ca0b262 24609
c7e8df0a 246102011-01-14 Joseph Myers <joseph@codesourcery.com>
24611
24612 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
24613 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
24614
ced834db 246152011-01-14 Joseph Myers <joseph@codesourcery.com>
24616
24617 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
24618 -nodefaultlib.
24619
8fe30b37 246202011-01-14 Joseph Myers <joseph@codesourcery.com>
24621
24622 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
24623 for mcpu not cpu.
24624 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
24625 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
24626 not cpu.
24627 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
24628 Don't handle -shlib.
24629
d89fb5e4 246302011-01-14 Joseph Myers <joseph@codesourcery.com>
24631
24632 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
24633 (CC1_SPEC): Don't handle -profile.
24634
68952919 246352011-01-14 Joseph Myers <joseph@codesourcery.com>
24636
24637 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
24638 * config/mips/mips.h (CC1_SPEC): Likewise.
24639
ebd5c429 246402011-01-14 Joseph Myers <joseph@codesourcery.com>
24641
24642 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
24643 * config/mips/mips.h (CC1_SPEC): Likewise.
24644
137caf9f 246452011-01-14 Joseph Myers <joseph@codesourcery.com>
24646
24647 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
24648 * config/m32r/linux.h (LINK_SPEC): Likewise.
24649 * config/mips/linux.h (LINK_SPEC): Likewise.
24650 * config/mips/linux64.h (LINK_SPEC): Likewise.
24651 * config/sparc/linux.h (LINK_SPEC): Likewise.
24652 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
24653 LINK_SPEC): Likewise.
24654 * config/xtensa/linux.h (LINK_SPEC): Likewise.
24655
0dfe0898 246562011-01-14 Joseph Myers <joseph@codesourcery.com>
24657
24658 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
24659 %{version:-v}.
24660 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
24661
5fd4e2f4 246622011-01-14 Joseph Myers <joseph@codesourcery.com>
24663
24664 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
24665 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
24666
8495a137 246672011-01-14 Joseph Myers <joseph@codesourcery.com>
24668
24669 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
24670
92ff09c4 246712011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24672
24673 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
24674 supports -Bstatic/-Bdynamic.
24675 * configure: Regenerate.
24676
f067760b 246772011-01-14 Jan Hubicka <jh@suse.cz>
ba6ea72b 24678 Jack Howarth <howarth@bromo.med.uc.edu>
f067760b 24679
24680 PR target/46037
24681 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
24682 when checking debug_info_level. Test write_symbols instead of
24683 debug_hooks->var_location when setting flag_var_tracking_uninit.
24684
be97d4b6 246852011-01-14 Richard Guenther <rguenther@suse.de>
24686
24687 PR tree-optimization/47179
24688 * target.def (ref_may_alias_errno): New target hook.
24689 * targhooks.h (default_ref_may_alias_errno): Declare.
24690 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
24691 (default_ref_may_alias_errno): New function.
24692 * target.h (struct ao_ref_s): Declare.
24693 * tree-ssa-alias.c: Include target.h.
24694 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
24695 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
24696 (targhooks.o): Likewise.
24697 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
24698 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
24699
8de57388 247002011-01-14 Richard Guenther <rguenther@suse.de>
24701
24702 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
24703
b69d1cb6 247042011-01-14 Richard Guenther <rguenther@suse.de>
24705
24706 PR tree-optimization/47280
24707 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
24708 return CFG changes.
24709 (tree_ssa_forward_propagate_single_use_vars): Deal with
24710 CFG changes from associate_plusminus.
24711
0e020218 247122011-01-14 Richard Guenther <rguenther@suse.de>
24713
24714 PR middle-end/47281
24715 Revert
24716 2011-01-11 Richard Guenther <rguenther@suse.de>
24717
43f05945 24718 PR tree-optimization/46076
24719 * tree-ssa.c (useless_type_conversion_p): Conversions from
24720 unprototyped to empty argument list function types are useless.
0e020218 24721
72210aa1 247222011-01-14 Richard Guenther <rguenther@suse.de>
24723
24724 PR tree-optimization/47286
43f05945 24725 * tree-ssa-structalias.c (new_var_info): Register variables are global.
72210aa1 24726
b819947c 247272011-01-14 Martin Jambor <mjambor@suse.cz>
24728
24729 PR middle-end/46823
24730 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
24731
7af7466c 247322011-01-13 Anatoly Sokolov <aesok@post.ru>
24733
24734 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
24735 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24736 * config/xtensa/xtensa.c (xtensa_libcall_value,
24737 xtensa_function_value_regno_p): New functions.
24738 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24739
de0e5a52 247402011-01-13 Kai Tietz <kai.tietz@onevision.com>
24741
24742 PR c++/47213
24743 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
24744 PE specific hook.
24745 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
24746 New function prototype.
24747 * config/i386/winnt.c (i386_pe_assemble_visibility):
24748 Warn only if attribute was specified by user.
24749
6a0b65d3 247502011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
24751
24752 PR target/47251
24753 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
24754 floating point.
24755 (floatunsdidf2_fcfidu): Ditto.
24756
902602ef 247572011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24758
24759 * config/s390/s390.c (print_operand_address): Replace 'error' with
24760 'output_operand_lossage'.
24761 (print_operand): Likewise.
24762
b89c219c 247632011-01-13 Jeff Law <law@redhat.com>
24764
43f05945 24765 PR rtl-optimization/39077
b89c219c 24766 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
24767 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
24768 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
24769 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
24770 * gcse.c (prune_insertions_deletions): New function.
24771 (compute_pre_data): Use it.
24772
49a8ca48 247732011-01-13 Dodji Seketeli <dodji@redhat.com>
24774
24775 PR debug/PR46973
24776 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
24777 static function.
3968fd16 24778 (prune_unused_types_mark): Use it.
49a8ca48 24779
946d6c2b 247802011-01-13 Andrey Belevantsev <abel@ispras.ru>
24781
24782 PR rtl-optimization/45352
2acf5550 24783 * sel-sched.c: Update copyright years.
946d6c2b 24784 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
2acf5550 24785 in the advancing loop when we have issued issue_rate insns.
946d6c2b 24786
3562cea7 247872011-01-12 Richard Henderson <rth@redhat.com>
24788
7de3ada8 24789 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
24790 (TARGET_MD_ASM_CLOBBERS): New.
24791
4c6c308e 24792 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
24793 (TARGET_DELEGITIMIZE_ADDRESS): New.
24794
ae011785 24795 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
24796 (clzsi2, *bsch): New patterns.
24797
1a5a7888 24798 * config/mn10300/mn10300.md (INT): New mode iterator.
24799 (*mov<INT>_clr): New pattern, and peep2 to generate it.
24800
731049b6 24801 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
24802 flag_split_wide_types.
24803
3562cea7 24804 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
24805 (mn10300_trampoline_init): Rewrite without a template, an immediate
24806 load and a direct branch.
24807 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
24808
1a561788 248092011-01-12 Anatoly Sokolov <aesok@post.ru>
24810
24811 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
24812 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
24813 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
24814 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
24815
f2278eba 248162011-01-12 Kai Tietz <kai.tietz@onevision.com>
24817
24818 PR debug/47209
24819 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
24820 of type.
24821
0f8cfb36 248222011-01-12 Jan Hubicka <jh@suse.cz>
24823
24824 PR driver/47244
24825 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
24826 (PLUGIN_COND_CLOSE): New macro.
24827 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
24828
30eff873 248292011-01-12 Richard Guenther <rguenther@suse.de>
24830
24831 PR lto/47259
24832 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
24833 register variables in a MEM_REF.
24834
deb14f24 248352011-01-12 Joseph Myers <joseph@codesourcery.com>
24836
24837 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
24838 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
24839 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
24840 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
24841 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
24842 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
24843 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
24844 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
24845 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
24846 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
24847 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
24848 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
24849 * config/gnu-user.h: New. Copied from linux.h.
24850 (LINUX_TARGET_STARTFILE_SPEC): Rename to
24851 GNU_USER_TARGET_STARTFILE_SPEC.
24852 (LINUX_TARGET_ENDFILE_SPEC): Rename to
24853 GNU_USER_TARGET_ENDFILE_SPEC.
24854 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
24855 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
24856 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
24857 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
24858 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
24859 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
24860 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
24861 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
24862 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
24863 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
24864 * config/arm/linux-eabi.h (CC1_SPEC): Use
24865 GNU_USER_TARGET_CC1_SPEC.
24866 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
24867 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
24868 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
24869 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
24870 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
24871 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
24872 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
24873 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
24874
5c70c066 248752011-01-12 Richard Guenther <rguenther@suse.de>
24876
24877 PR other/46946
24878 * doc/invoke.texi (ffast-math): Document it is turned on
24879 with -Ofast.
24880
02a5f2b9 248812011-01-12 Jan Hubicka <jh@suse.cz>
24882
24883 PR tree-optimization/47233
17da0372 24884 * opts.c (common_handle_option): Disable ipa-reference with profile
24885 feedback.
02a5f2b9 24886
2acf5550 248872011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
ffbb3d61 24888
24889 * c-parser.c (c_parser_objc_at_property_declaration): Improved
17da0372 24890 error message.
24891
ffbb3d61 248922011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
24893
24894 * c-parser.c (c_lex_one_token): Updated and reindented some
24895 comments. No changes in code.
24896
3c6b311d 248972011-01-11 Ian Lance Taylor <iant@google.com>
24898
24899 * godump.c (go_output_var): Don't output the variable if there is
24900 already a type with the same name.
24901
5070eb47 249022011-01-11 Ian Lance Taylor <iant@google.com>
24903
24904 * godump.c (go_format_type): Don't generate float80.
24905
5d4ffb1c 249062011-01-11 Richard Henderson <rth@redhat.com>
24907
28f32607 24908 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
24909 declaration. Rewrite for both speed and size.
24910 (mn10300_address_cost_1): Remove.
24911 (mn10300_register_move_cost): New.
24912 (mn10300_memory_move_cost): New.
24913 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
24914 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
24915 extensions, shifts, BSWAP, CLZ.
24916 (mn10300_wide_const_load_uses_clr): Remove.
24917 (TARGET_REGISTER_MOVE_COST): New.
24918 (TARGET_MEMORY_MOVE_COST): New.
24919 * config/mn10300/mn10300-protos.h: Update.
24920 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
24921
59328a09 24922 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
24923 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
24924 * config/mn10300/mn10300-protos.h: Update.
24925 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
24926 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
24927 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
24928 (*test_int_bitfield, *test_byte_bitfield): Remove.
24929 (*bit_test, *subreg_bit_test): Remove.
c8196a0c 24930 * config/mn10300/predicates.md (const_8bit_operand): Remove.
59328a09 24931
2225047a 24932 * config/mn10300/constraints.md ("c"): Rename from "A".
24933 ("A", "D"): New constraint letters.
24934 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
24935 (fmssf4, fnmasf4, fnmssf4): Likewise.
24936
8af291b5 24937 * config/mn10300/mn10300.md (isa): New attribute.
24938 (enabled): New attribute.
24939
361bb6ad 24940 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
24941 (abssf2, negsf2): Define only for hardware fp.
24942 (sqrtsf2): Reformat.
24943 (addsf3, subsf3, mulsf3): Merge expander and insn.
24944
224cda8f 24945 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
24946 (DEBUGGER_AUTO_OFFSET): Remove.
24947 (DEBUGGER_ARG_OFFSET): Remove.
24948
32f9c04a 24949 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
24950 Emit register stores with the same offsets as the hardware.
24951 (mn10300_store_multiple_operation): Don't check that the register
24952 save offsets are monotonic.
24953 * config/mn10300/mn10300-protos.h: Update.
24954
059593e3 24955 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
24956
5d4ffb1c 24957 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
24958 in terms of the value on the stack, not the MDR register.
24959
232c9ac7 249602011-01-11 Jan Hubicka <jh@suse.cz>
24961
24962 PR lto/45721
24963 PR lto/45375
24964 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
24965 (symbol_alias_set_destroy, symbol_alias_set_contains,
24966 propagate_aliases_backward): Declare.
24967 * lto-streamer-out.c (struct sets): New sturcture.
24968 (trivally_defined_alias): New function.
24969 (output_alias_pair_p): Rewrite.
24970 (output_unreferenced_globals): Fix output of alias pairs.
24971 (produce_symtab): Likewise.
24972 * ipa.c (function_and_variable_visibility): Set weak alias destination
24973 as needed in lto.
24974 * varasm.c (symbol_alias_set_t): Remove.
24975 (symbol_alias_set_destroy): Export.
24976 (propagate_aliases_forward, propagate_aliases_backward): New functions
24977 based on ...
24978 (compute_visible_aliases): ... this one; remove.
24979 (trivially_visible_alias): New
24980 (trivially_defined_alias): New.
24981 (remove_unreachable_alias_pairs): Rewrite.
24982 (finish_aliases_1): Reorganize code checking if alias is defined.
24983 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
24984 in LTO mode.
24985
25fe7e3d 249862011-01-11 Richard Guenther <rguenther@suse.de>
24987
24988 PR tree-optimization/46076
24989 * tree-ssa.c (useless_type_conversion_p): Conversions from
24990 unprototyped to empty argument list function types are useless.
24991
a33a5782 249922011-01-11 Richard Guenther <rguenther@suse.de>
24993
24994 PR middle-end/45235
24995 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
24996 volatile MEMs as MEM_READONLY_P.
24997
57862ab5 249982011-01-11 Richard Guenther <rguenther@suse.de>
24999
25000 PR tree-optimization/47239
25001 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
25002
6623b33f 250032011-01-11 Jeff Law <law@redhat.com>
25004
c6d146ce 25005 PR tree-optimization/47086
6623b33f 25006 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
25007 IVs from statements that might throw.
25008
a3efa241 250092011-01-10 Jan Hubicka <jh@suse.cz>
25010
25011 PR lto/45375
25012 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
25013
566d3fc7 250142011-01-10 Jan Hubicka <jh@suse.cz>
25015
25016 PR lto/45375
25017 * profile.c (read_profile_edge_counts): Ignore profile inconistency
25018 when correcting profile.
25019
3ef2cbcf 250202011-01-10 Jan Hubicka <jh@suse.cz>
25021
25022 PR lto/46083
25023 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
25024 DECL_FINI_PRIORITY.
25025 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
25026 Restore DECL_FINI_PRIORITY.
25027
3580a9f3 250282011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25029
25030 * doc/gimple.texi: Fix quoting of multi-word return values in
25031 @deftypefn statements. Ensure presence of return value. Wrap
25032 overlong @deftypefn lines.
25033 (is_gimple_operand, is_gimple_min_invariant_address): Remove
25034 descriptions of removed functions.
25035 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
25036 of multi-word return value in @deftypefn statement.
25037
cd8dcc05 250382011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
25039
25040 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
25041 (Conditional Expressions, Logical Operators)
25042 (Statement and operand traversals): Do not indent smallexample
25043 code. Fix duplicate function argument in example.
25044
c13d6d8f 250452011-01-10 Jeff Law <law@redhat.com>
25046
c6d146ce 25047 PR tree-optimization/47141
c13d6d8f 25048 * ipa-split.c (split_function): Handle case where we are
25049 returning a value and the return block has a virtual operand phi.
25050
a15d5ede 250512011-01-10 Jan Hubicka <jh@suse.cz>
25052
2acf5550 25053 PR tree-optimization/47234
a15d5ede 25054 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
25055 (pass_feedback_split_functions): Declare.
25056 * passes.c (init_optimization_passes): Add ipa-split as subpass of
25057 tree-profile.
25058 * ipa-split.c (gate_split_functions): Update comments; disable
25059 split-functions for profile_arc_flag and branch_probabilities.
25060 (gate_feedback_split_functions): New function.
25061 (execute_feedback_split_functions): New function.
25062 (pass_feedback_split_functions): New global var.
25063
759a30b2 250642011-01-10 H.J. Lu <hongjiu.lu@intel.com>
25065
25066 PR lto/46760
25067 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
25068 calling gimple_call_set_cannot_inline.
25069
1f65a68a 250702011-01-10 Iain Sandoe <iains@gcc.gnu.org>
25071
25072 * config/darwin-sections.def: Remove unused section.
25073
aed6e608 250742011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
25075
25076 PR c++/47218
25077 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
25078
3b77900e 250792011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
25080
25081 PR objc/47232
25082 * c-parser.c (c_parser_declaration_or_fndef): Improved
25083 error message.
25084
c32bb9a3 250852011-01-09 Kai Tietz <kai.tietz@onevision.com>
25086
25087 * config/i386/winnt.c (i386_pe_start_function): Make sure
25088 to switch back to function's section.
25089
bbcdd327 250902011-01-09 Iain Sandoe <iains@gcc.gnu.org>
25091
25092 PR gcc/46902
25093 PR testsuite/46912
25094 * plugin.c: Move include of dlfcn.h from here...
25095 * system.h: ... to here.
25096
250972011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7ac54e71 25098
25099 * doc/cpp.texi (C++ Named Operators): Fix markup for header
25100 file name.
25101 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
25102 two extra empty pages in PDF output.
25103
14a3bc63 251042011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
25105
25106 PR objc/47078
25107 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
25108 for error recovery purposes behave as if it was not specified so
25109 that the default type is usd.
25110
87ac7f21 251112011-01-07 Jan Hubicka <jh@suse.cz>
25112
25113 PR tree-optmization/46469
25114 * ipa.c (function_and_variable_visibility): Clear needed flags on
25115 nodes with external decls; handle weakrefs merging correctly.
25116
ae6f03e2 251172011-01-07 Joseph Myers <joseph@codesourcery.com>
25118
25119 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
25120 not false.
25121
de4d280b 251222011-01-07 Jan Hubicka <jh@suse.cz>
25123
dcab66ec 25124 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
de4d280b 25125 and no longer claim that gold is required for linker plugin.
25126 * configure: Regenerate.
25127 * gcc.c (PLUGIN_COND): New macro.
25128 (LINK_COMMAND_SPEC): Use it.
25129 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
25130 * config.in (HAVE_LTO_PLUGIN): New.
25131 * configure.ac (--with-lto-plugin): New parameter; autodetect
25132 HAVE_LTO_PLUGIN.
25133
01765fa2 251342011-01-07 Jan Hubicka <jh@suse.cz>
25135
25136 PR tree-optimization/46367
25137 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
25138 when we can update original.
25139 (cgraph_mark_inline_edge): Sanity check.
25140 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
25141
49397308 251422011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25143
25144 * config/spu/spu.h (ASM_COMMENT_START): Define.
25145
5c1421d7 251462011-01-07 H.J. Lu <hongjiu.lu@intel.com>
25147
25148 PR driver/42445
25149 * gcc.c (%>S): New.
25150 (SWITCH_KEEP_FOR_GCC): Likewise.
25151 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
25152 (do_spec_1): Handle "%>".
25153
25154 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
25155
bb217be2 251562011-01-07 Jakub Jelinek <jakub@redhat.com>
25157
a0b41ee2 25158 PR target/47201
25159 * config/i386/i386.c (ix86_delegitimize_address): If
25160 simplify_gen_subreg fails, return orig_x.
25161
bb217be2 25162 PR bootstrap/47187
25163 * value-prof.c (gimple_stringop_fixed_value): Handle
25164 lhs of the call properly.
25165
cee60343 251662011-01-07 Jan Hubicka <jh@suse.cz>
25167
25168 PR lto/45375
25169 * lto-opt.c (lto_reissue_options): Set flag_shlib.
25170
3b3edcd4 251712011-01-07 Iain Sandoe <iains@gcc.gnu.org>
25172
63e7c5f4 25173 * target.def (function_switched_text_sections): New hook.
25174 * doc/tm.texi: Regenerated.
25175 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
3b3edcd4 25176 * final.c (default_function_switched_text_sections): New.
63e7c5f4 25177 (final_scan_insn): Call function_switched_text_sections when a
25178 mid-function section change occurs.
3b3edcd4 25179 * output.h (default_function_switched_text_sections): Declare.
63e7c5f4 25180 * config/darwin-protos.h (darwin_function_switched_text_sections):
25181 Likewise.
3b3edcd4 25182 * config/darwin.c (darwin_function_switched_text_sections): New.
63e7c5f4 25183 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
3b3edcd4 25184
1fce10e8 251852011-01-07 Iain Sandoe <iains@gcc.gnu.org>
25186
25187 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
25188 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
25189 the secondary code fragment when outputting for DWARF == 2.
25190
77a69f9f 251912011-01-07 Anatoly Sokolov <aesok@post.ru>
25192
25193 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25194 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
25195 Remove.
25196 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
25197 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25198
0dcc88b6 251992011-01-06 Eric Botcazou <ebotcazou@adacore.com>
25200
25201 PR debug/46704
43f05945 25202 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
25203 when it is not empty.
0dcc88b6 25204
252052011-01-06 Changpeng Fang <changpeng.fang@amd.com>
a97faf6b 25206
5d1e0109 25207 Bobcat Enablement
a97faf6b 25208 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
5d1e0109 25209 (case ${target}): Add btver1.
a97faf6b 25210 * config/i386/driver-i386.c (host_detect_local_cpu): Let
5d1e0109 25211 -march=native recognize btver1 processors.
a97faf6b 25212 * config/i386/i386-c.c (ix86_target_macros_internal): Add
5d1e0109 25213 btver1 def_and_undef
a97faf6b 25214 * config/i386/i386.c (struct processor_costs btver1_cost): New
5d1e0109 25215 btver1 cost table.
25216 (m_BTVER1): New definition.
25217 (m_AMD_MULTIPLE): Includes m_BTVER1.
25218 (initial_ix86_tune_features): Add btver1 tune.
25219 (processor_target_table): Add btver1 entry.
25220 (static const char *const cpu_names): Add btver1 entry.
25221 (software_prefetching_beneficial_p): Add btver1.
25222 (ix86_option_override_internal): Add btver1 instruction sets.
25223 (ix86_issue_rate): Add btver1.
25224 (ix86_adjust_cost): Add btver1.
a97faf6b 25225 * config/i386/i386.h (TARGET_BTVER1): New definition.
5d1e0109 25226 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
25227 (enum processor_type): Add PROCESSOR_BTVER1.
a97faf6b 25228 * config/i386/i386.md (define_attr "cpu"): Add btver1.
25229
361905db 252302011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25231
25232 PR target/43309
25233 * config/i386/i386.c (legitimize_tls_address)
25234 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
25235 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
25236 (tls_initial_exec_64_sun): New pattern.
25237
056df0a5 252382011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
25239
25240 * doc/invoke.texi (Overall Options): Improve wording and markup
25241 of the description of -wrapper.
25242
fef758e3 252432011-01-06 Joseph Myers <joseph@codesourcery.com>
25244
25245 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
25246 rdynamic, threads): New Driver options.
25247
256aa638 252482011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25249
25250 PR target/38118
25251 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
25252 if coming from .tdata.
25253 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
25254
bcac4551 252552011-01-06 Jan Hubicka <jh@suse.cz>
25256
25257 PR lto/47188
25258 * collect2.c (main): Do not enable LTOmode when plugin is active.
25259
ecaf5e86 252602011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25261
25262 PR other/45915
25263 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
25264 --version output if supported.
25265 * configure: Regenerate.
25266
a2d308f3 252672011-01-06 Joseph Myers <joseph@codesourcery.com>
25268
25269 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
25270 Driver options.
25271
a7d4dc67 252722011-01-06 Jakub Jelinek <jakub@redhat.com>
25273
25274 PR c/47150
25275 * c-convert.c (convert): When converting a complex expression
25276 other than COMPLEX_EXPR to a different complex type, ensure
25277 c_save_expr is called instead of save_expr, unless in_late_binary_op.
25278 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
25279 when converting COMPLEX_TYPE.
25280
caf6df13 252812011-01-06 Ira Rosen <irar@il.ibm.com>
25282
25283 PR tree-optimization/47139
25284 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
25285 only the last reduction value is used outside the loop. Update
25286 documentation.
25287
d6959f51 252882011-01-05 Joseph Myers <joseph@codesourcery.com>
25289
25290 * config/rtems.opt: New.
25291 * config.gcc (*-*-rtems*): Use rtems.opt.
25292
b978e3c6 252932011-01-05 Changpeng Fang <changpeng.fang@amd.com>
25294
25295 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
25296 processors do not support 3DNow instructions.
25297
e0b840fc 252982011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25299
25300 * config/spu/spu.c (spu_option_override): Set parameter
25301 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
25302
c7d28f13 253032011-01-05 Jan Hubicka <jh@suse.cz>
25304
25305 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
25306 at the command line.
25307
2b36ac0b 253082011-01-05 Martin Jambor <mjambor@suse.cz>
25309
25310 PR lto/47162
25311 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
25312 deltas on streamed outgoing edges.
25313 (output_node_opt_summary): Output info for outgoing edges only when
25314 the node is in new parameter set.
25315 (output_cgraph_opt_summary): New parameter set, passed to the two
25316 aforementioned functions. Update its forward declaration and its
25317 callee too.
25318
fdd84b77 253192011-01-05 Tom Tromey <tromey@redhat.com>
25320
25321 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
25322 operator to c_finish_omp_atomic.
25323 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
25324 (build_unary_op): Update.
25325 (build_modify_expr): Update.
25326 (build_asm_expr): Update.
25327
2fbdf9ef 253282011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25329
25330 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
25331 newly inserted insns.
25332 (pad_bb): Likewise.
25333 (spu_emit_branch_hint): Likewise.
25334 (insert_hbrp_for_ilb_runout): Likewise.
25335 (spu_machine_dependent_reorg): Call df_finish_pass after
25336 schedule_insns returns.
25337
a512540d 253382011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25339
25340 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
25341
da1084b7 253422011-01-05 Eric Botcazou <ebotcazou@adacore.com>
25343
25344 PR tree-optimization/47005
25345 * tree-sra.c (struct access): Add 'non_addressable' bit.
25346 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
25347 (decide_one_param_reduction): Return 0 if the parameter is passed by
25348 reference and one of the accesses in the group is non_addressable.
25349
4c06d6f7 253502011-01-04 Eric Botcazou <ebotcazou@adacore.com>
25351
25352 PR tree-optimization/47056
25353 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
25354 (mark_load): Likewise. Handle FUNCTION_DECL specially.
25355 (mark_store): Likewise. Pass STMT to ipa_record_reference.
25356
8ce094c3 253572011-01-04 Eric Botcazou <ebotcazou@adacore.com>
25358
25359 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
25360 initializer. Skip view conversions from aggregate types.
25361
ee2c1561 253622011-01-04 Kai Tietz <kai.tietz@onevision.com>
25363
25364 PR bootstrap/47055
25365 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
25366
ba6ea72b 253672011-01-04 Philipp Thomas <pth@suse.de>
7cecf4c1 25368
25369 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
25370 obvious typo.
25371
11efe736 253722011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25373
25374 * function.c (thread_prologue_and_epilogue_insns): Do not crash
25375 on empty epilogue sequences.
25376
5db972bd 253772011-01-04 Joseph Myers <joseph@codesourcery.com>
25378
25379 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
25380 non-static): New Driver options.
25381
871aed8a 253822011-01-04 Jie Zhang <jie@codesourcery.com>
25383
25384 PR driver/47137
25385 * gcc.c (default_compilers[]): Set combinable field to 0
25386 for all assembly languages.
25387
a9790f8f 253882011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
25389
25390 * config/mips/loongson3a.md: New file.
25391 * config/mips/mips.md: Include loongson3a.md.
25392 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
25393 TUNE_LOONGSON_3A.
25394
86347018 253952011-01-03 Eric Botcazou <ebotcazou@adacore.com>
25396
25397 PR middle-end/47017
25398 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
25399 instead of convert_memory_address_addr_space on the base expression.
25400
8e181c9d 254012011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25402
25403 * config/spu/spu.c (spu_option_override): Update error text
25404 for bad -march= / -mtune= values.
25405
0ef14db8 254062011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25407
25408 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
25409 if branch-hint optimization will be performed.
25410
af9b9305 254112011-01-03 Jakub Jelinek <jakub@redhat.com>
25412
e65564ab 25413 PR tree-optimization/47148
25414 * ipa-split.c (split_function): Convert arguments to
25415 DECL_ARG_TYPE if possible.
25416
c9831663 25417 PR tree-optimization/47155
25418 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
25419 when computing uns.
25420
af9b9305 25421 PR rtl-optimization/47157
25422 * combine.c (try_combine): If undobuf.other_insn becomes
25423 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
25424 and set *new_direct_jump_p too.
25425
a1b6cd6a 254262011-01-03 Sebastian Pop <sebastian.pop@amd.com>
25427
25428 PR tree-optimization/47021
25429 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
25430
e487a6af 254312011-01-03 Jakub Jelinek <jakub@redhat.com>
25432
25433 * gcc.c (process_command): Update copyright notice dates.
25434 * gcov.c (print_version): Likewise.
25435 * gcov-dump.c (print_version): Likewise.
25436 * mips-tfile.c (main): Likewise.
25437 * mips-tdump.c (main): Likewise.
25438
dac98159 254392011-01-03 Martin Jambor <mjambor@suse.cz>
25440
25441 PR tree-optimization/46801
25442 * tree-sra.c (type_internals_preclude_sra_p): Check whether
25443 aggregate fields start at byte boundary instead of the bit-field flag.
25444
9dbb005d 254452011-01-03 H.J. Lu <hongjiu.lu@intel.com>
25446
25447 PR driver/47137
25448 * gcc.c (main): Revert revision 168407.
25449
783bc09c 254502011-01-03 Martin Jambor <mjambor@suse.cz>
25451
25452 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
25453
948d7007 254542011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4d5b2207 25455
25456 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
25457 vector optab to expand vector/scalar shift, update gimple to vector.
25458
76f3f3ab 254592011-01-03 Martin Jambor <mjambor@suse.cz>
25460
25461 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
25462 a thunk.
25463
9bab6a70 254642011-01-03 Martin Jambor <mjambor@suse.cz>
25465
25466 PR tree-optimization/46984
25467 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
25468 HOST_WIDE_INT.
25469 (cgraph_create_indirect_edge): Fixed line length.
25470 (cgraph_indirect_call_info): Declare.
25471 (cgraph_make_edge_direct) Update declaration.
25472 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
25473 (cgraph_create_indirect_edge): Use it.
25474 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
25475 callees.
25476 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
25477 the new thunk_delta representation.
25478 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
25479 HOST_WIDE_INT.
25480 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
25481 (ipa_read_indirect_edge_info): Likewise.
25482 * lto-cgraph.c (output_edge_opt_summary): New function.
25483 (output_node_opt_summary): Call it on all outgoing edges.
25484 (input_edge_opt_summary): New function.
25485 (input_node_opt_summary): Call it on all outgoing edges.
25486
4d81f9fa 254872011-01-02 H.J. Lu <hongjiu.lu@intel.com>
25488
25489 PR driver/47137
25490 * gcc.c (main): Don't check have_o when settting combine_inputs.
25491
9f3e3774 254922011-01-02 Eric Botcazou <ebotcazou@adacore.com>
25493
25494 * regrename.c: Add general comment describing the pass.
25495 (struct du_head): Remove 'length' field.
25496 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
25497 (regrename_optimize): Do not sort chains. Rework comments, add others.
25498 Force renaming to the preferred class (if any) in the first pass and do
25499 not consider registers that belong to it in the second pass.
25500 (create_new_chain): Do not set 'length' field.
25501 (scan_rtx_reg): Likewise.
25502
4547eca6 255032011-01-02 Jakub Jelinek <jakub@redhat.com>
25504
e47d81e0 25505 PR tree-optimization/47140
25506 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
25507 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
25508 to bit_value_binop.
25509
4547eca6 25510 PR rtl-optimization/47028
9f3e3774 25511 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
25512 parm_birth_insn instead of at the beginning of first bb.
4547eca6 25513
c22368c0 255142011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
1f071633 25515
25516 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
25517 Remove the word "see" before "@pxref".
25518 * doc/rtl.texi: Remove the word "see" before "@pxref".
25519
95f41c04 255202011-01-01 Jan Hubicka <jh@suse.cz>
25521
9f3e3774 25522 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
25523 memory.
95f41c04 25524
99a71bbc 255252011-01-01 Kai Tietz <kai.tietz@onevision.com>
25526
25527 PR target/38662
9f3e3774 25528 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
99a71bbc 25529
7dfbd804 25530\f
cd8b0daa 25531Copyright (C) 2011 Free Software Foundation, Inc.
7dfbd804 25532
25533Copying and distribution of this file, with or without modification,
25534are permitted in any medium without royalty provided the copyright
25535notice and this notice are preserved.