1 2011-08-11 Romain Geissler <romain.geissler@gmail.com>
2 Brian Hackett <bhackett1024@gmail.com>
4 * plugin.def: Add event for finish_decl.
5 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
6 * c-decl.c (finish_decl): Invoke callbacks on above event.
7 * doc/plugins.texi: Document above event.
9 2011-08-11 Richard Guenther <rguenther@suse.de>
11 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
12 lookups, make looking through aggregate copies stronger.
14 2011-08-11 Richard Henderson <rth@redhat.com>
17 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
19 2011-08-11 Richard Guenther <rguenther@suse.de>
21 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
22 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
23 (vrp_visit_stmt): Likewise.
25 2011-08-11 Richard Guenther <rguenther@suse.de>
28 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
29 load of the other piece with TREE_NO_WARNING.
30 * tree-flow.h (warn_uninit): Adjust prototype.
31 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
32 the base variable and the expression that is used separately.
33 Properly query all TREE_NO_WARNING flags.
34 (struct walk_data): Remove.
35 (warn_uninitialized_var): Likewise.
36 (warn_uninitialized_vars): Do not walk gimple pieces but simply
37 look at all SSA uses of the statement. Handle unused memory
39 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
41 2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
43 * config/rx/rx.md (movsicc): Allow register to register
46 (*stcc): Restrict this pattern to EQ and NE compares.
47 (*stcc_reg): New pattern. Works for any comparison but only for
50 2011-08-11 Diego Novillo <dnovillo@google.com>
52 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
53 Call stream_write_tree instead of output_record_start.
54 (lto_output_ts_binfo_tree_pointers): Likewise.
56 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
57 Convert it to a macro.
58 (stream_read_tree): Likewise.
60 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
61 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
63 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
64 and tree_read_bitfields.
65 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
66 (lto_write_tree): Call it.
67 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
68 * streamer-hooks.h (struct streamer_hooks): Remove fields
69 name, is_streamable and alloc_tree. Update all users.
70 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
71 (lto_materialize_tree): ... here.
72 Handle CALL_EXPR codes.
73 Remove call to lto_streamer_cache_append.
74 * tree-streamer-out.c (lto_output_tree_header): Handle
76 * tree-streamer.h (tree_read_bitfields): Declare.
78 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
79 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
80 * tree-streamer.h (stream_read_tree): New. Replace all calls
81 to lto_input_tree with it.
82 (stream_write_tree): New. Replace all calls to lto_output_tree,
83 lto_output_tree_ref and lto_output_tree_or_ref with it.
84 * lto-streamer-in.c (lto_read_tree): Inline code from
85 lto_streamer_read_tree.
86 (lto_input_tree): Move from tree-streamer-in.c.
87 * lto-streamer-out.c (lto_output_tree_ref): Make static.
88 Remove handling of NULL values for EXPR.
89 Do not handle EXPRs that are not indexable.
90 (lto_write_tree): Move from tree-streamer-out.c.
91 Inline lto_streamer_write_tree.
92 (lto_output_tree): Move from tree-streamer-out.c.
93 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
94 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
95 (lto_preload_common_nodes): Likewise.
96 Remove assertions and adjustments for nodes
97 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
98 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
99 lto_output_tree and streamer_hooks.read_tree to
101 * lto-streamer.h (lto_input_tree): Declare.
102 (lto_output_tree_ref): Remove.
103 * streamer-hooks.h (struct streamer_hooks): Remove fields
104 preload_common_nodes, indexable_with_decls_p,
105 pack_value_fields, unpack_value_fields and output_tree_header.
107 * tree-streamer-in.c (lto_materialize_tree): Make extern.
108 (lto_input_tree_pointers): Likewise.
109 (lto_read_tree): Move to lto-streamer-in.c.
110 (lto_input_integer_cst): Make extern.
111 (lto_get_pickled_tree): Likewise.
112 (lto_get_builtin_tree): Likewise.
113 (lto_input_tree): Move to lto-streamer-in.c.
114 * tree-streamer-out.c (pack_value_fields): Make extern.
115 (lto_output_tree_or_ref): Remove. Replace all callers with
116 calls to stream_write_tree.
117 (lto_output_builtin_tree): Make extern.
118 (lto_streamer_write_tree): Inline into lto_write_tree.
119 (lto_output_tree_pointers): Make extern.
120 (lto_output_tree_header): Likewise.
121 (lto_output_integer_cst): Likewise.
122 (lto_write_tree): Move to lto-streamer-out.c.
123 (lto_output_tree): Likewise.
124 * tree-streamer.c (lto_record_common_node): Move from
126 (preload_common_nodes): Likewise.
127 (lto_streamer_cache_create): Call it.
128 * tree-streamer.h: Include streamer-hooks.h.
129 (stream_write_tree): New.
130 (stream_read_tree): New.
131 (lto_input_tree): Remove.
132 (lto_materialize_tree): Declare.
133 (lto_input_tree_pointers): Declare.
134 (lto_get_pickled_tree): Declare.
135 (lto_get_builtin_tree): Declare.
136 (lto_input_integer_cst): Declare.
137 (lto_output_tree_header): Declare.
138 (pack_value_fields): Declare.
139 (lto_output_tree_pointers): Declare.
140 (lto_output_integer_cst): Declare.
141 (lto_output_builtin_tree): Declare.
143 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
145 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
146 only if producer writes to the register given by regno.
148 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
149 Alexander Monakov <amonakov@ispras.ru>
151 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
152 (sched_get_condition_with_rev_uncached): ... this. Factor out
153 condition caching logic into ...
154 (sched_get_condition_with_rev): ... this. Reimplement. Do not
155 attempt to use cache for instructions with zero luid.
156 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
157 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
159 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
161 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
162 get_seqno_for_a_jump. Update the caller.
163 (get_seqno_by_succs): New. Use it ...
164 (get_seqno_for_a_jump): ... here to find a seqno if looking at
165 predecessors was not sufficient.
166 (get_seqno_by_preds): Include head in iteration range, exclude insn.
168 2011-08-11 Dmitry Melnik <dm@ispras.ru>
170 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
172 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
174 * sel-sched-ir.h (register_unavailable_p): Declare.
175 * sel-sched-ir.c (register_unavailable_p): New. Use it...
176 (set_unavailable_target_for_expr): ... here to properly test
177 availability of a register.
178 (speculate_expr): Ditto.
179 * sel-sched.c (substitute_reg_in_expr): Ditto.
180 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
182 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
184 * sel-sched.c (verify_target_availability): Fix usage of
187 2011-08-11 Dmitry Melnik <dm@ispras.ru>
189 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
190 recognized by cannot_copy_insn_p hook and volatile instructions.
192 2011-08-11 Dmitry Melnik <dm@ispras.ru>
194 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
196 2011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
198 * doc/md.texi (define_bypass): Say that the instruction names can
199 be filename-style globs.
200 * Makefile.in (FNMATCH_H): Define.
201 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
202 * genattrtab.c: Include fnmatch.h.
203 (bypass_list): Change field name from "insn" to "pattern".
204 (gen_bypass_1): Update accordingly.
205 (process_bypasses): Use fnmatch to check for matches between
206 insn reservations and define_bypasses.
207 * genautomata.c: Include fnmatch.h.
208 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
209 and out_pattern respectively.
210 (gen_bypass, insert_bypass): Update accordingly.
211 (for_each_matching_insn, process_bypass_2, process_bypass_1)
212 (process_bypass): New functions.
213 (process_decls): Use process_bypass. Update after field name changes.
215 2011-08-11 Georg-Johann Lay <avr@gjlay.de>
218 * config/avr/avr.md (smulqi3_highpart): New insn.
219 (umulqi3_highpart): New insn.
220 (*subqi3.ashiftrt7): New insn.
221 (smulhi3_highpart): New expander.
222 (umulhi3_highpart): Nex expander.
223 (*smulhi3_highpart_call): New insn.
224 (*umulhi3_highpart_call): New insn.
225 (extend_u): New code attribute.
226 (extend_prefix): Rename code attribute to extend_su.
227 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
228 widening QI/HI multiply.
230 2011-08-11 Ira Rosen <ira.rosen@linaro.org>
232 PR tree-optimization/50039
233 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
234 that DEF_STMT has a stmt_vec_info.
236 2011-08-10 Richard Guenther <rguenther@suse.de>
238 * tree.h (can_trust_pointer_alignment): Remove.
239 * builtins.c (can_trust_pointer_alignment): Remove.
241 2011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
243 * c-typeck.c (scalar_to_vector): New function. Try scalar to
245 (stv_conv): New enum for scalar_to_vector return type.
246 (build_binary_op): Adjust.
247 * doc/extend.texi: Description of scalar to vector expansion.
249 2011-08-10 Richard Guenther <rguenther@suse.de>
251 * tree.h (get_pointer_alignment): Remove max-align argument.
252 (get_object_alignment): Likewise.
253 * builtins.c (get_object_alignment_1): Adjust.
254 (get_object_alignment): Remove max-align argument.
255 (get_pointer_alignment): Likewise.
256 (expand_builtin_strlen): Adjust.
257 (expand_builtin_memcpy): Likewise.
258 (expand_builtin_mempcpy_args): Likewise.
259 (expand_builtin_strncpy): Likewise.
260 (expand_builtin_memset_args): Likewise.
261 (expand_builtin_memcmp): Likewise.
262 (expand_builtin_strcmp): Likewise.
263 (expand_builtin_strncmp): Likewise.
264 (get_builtin_sync_mem): Likewise.
265 (fold_builtin_memset): Likewise.
266 (fold_builtin_memory_op): Likewise.
267 (expand_builtin_memory_chk): Likewise.
268 * emit-rtl.c (get_mem_align_offset): Likewise.
269 (set_mem_attributes_minus_bitpos): Likewise.
270 * expr.c (expand_assignment): Likewise.
271 (expand_expr_real_1): Likewise.
272 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
273 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
274 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
275 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
276 * value-prof.c (gimple_stringops_transform): Likewise.
278 2011-08-10 Paulo J. Matos <paulo.matos@csr.com>
280 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
281 * doc/tm.texi: Regenerate.
283 2011-08-10 Georg-Johann Lay <avr@gjlay.de>
286 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
287 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
288 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
289 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
290 shift target is unused.
292 2011-08-10 Richard Guenther <rguenther@suse.de>
294 PR tree-optimization/49937
295 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
296 using get_object_alignment_1.
298 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
300 * config/i386/i386.c (ix86_emit_i387_round): New function.
301 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
302 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
303 Use ix86_emit_i387_round to expand round function for i387 math.
304 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
305 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
307 2011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
309 * config/sync.c: Move to ../libgcc.
310 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
311 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
314 2011-08-09 Anatoly Sokolov <aesok@post.ru>
316 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
317 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
318 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
319 Change 'from' and 'to' arguments type to reg_class_t.
320 (TARGET_REGISTER_MOVE_COST): Define.
322 2011-08-09 Vladimir Makarov <vmakarov@redhat.com>
326 PR rtl-optimization/49990
327 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
328 ignore classes which can not change mode.
329 (find_costs_and_classes): Ditto.
331 2011-08-09 Richard Guenther <rguenther@suse.de>
333 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
334 information for ranges with only negative values.
335 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
336 BIT_AND_EXPR handling to handle ranges with negative values.
338 2011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
340 * config/i386/i386.c: Remove traling spaces.
341 * config/i386/sse.md: Likewise.
342 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
343 (*fma_fmsub_<mode>): Likewise.
344 (*fma_fnmadd_<mode>): Likewise.
345 (*fma_fnmsub_<mode>): Likewise.
347 2011-08-09 Nick Clifton <nickc@redhat.com>
349 * config/rx/rx.md: Disable extender peepholes at -O3.
351 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
354 * config/i386/i386.md (reload_noff_load): New.
355 (reload_noff_store): Ditto.
356 * config/i386/i386.c (ix86_secondary_reload): Use
357 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
358 double-word moves from/to non-offsetable addresses instead of
359 generating XMM temporary.
361 2011-08-09 Anatoly Sokolov <aesok@post.ru>
363 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
365 2011-08-09 Ira Rosen <ira.rosen@linaro.org>
367 PR tree-optimization/50014
368 * tree-vect-loop.c (vectorizable_reduction): Get def type before
369 calling vect_get_vec_def_for_stmt_copy ().
371 2011-08-08 Vladimir Makarov <vmakarov@redhat.com>
373 PR rtl-optimization/49990
374 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
375 ignore classes which can not change mode.
376 (find_costs_and_classes): Ditto.
378 2011-08-08 Richard Henderson <rth@redhat.com>
381 * config/i386/i386.c (ix86_expand_prologue): Call
382 for SEH target gen_prologue_use instead of gen_blockage
385 2011-08-08 Martin Jambor <mjambor@suse.cz>
388 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
391 2011-08-08 Diego Novillo <dnovillo@google.com>
393 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
394 (DATA_STREAMER_H): New.
395 (GIMPLE_STREAMER_H): New.
396 (TREE_STREAMER_H): New.
397 (STREAMER_HOOKS_H): New.
398 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
399 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
400 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
401 (data-streamer.o): New.
402 (data-streamer-in.o): New.
403 (data-streamer-out.o): New.
404 (gimple-streamer-in.o): New.
405 (gimple-streamer-out.o): New.
406 (streamer-hooks.o): New.
407 (tree-streamer.o): New.
408 (tree-streamer-in.o): New.
409 (tree-streamer-out.o): New.
410 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
411 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
412 GIMPLE_STREAMER_H and TREE_STREAMER_H.
413 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
414 GIMPLE_STREAMER_H and TREE_STREAMER_H.
415 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
416 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
417 (ipa-inline-analysis.o): Likewise.
418 (ipa-pure-const.o): Likewise.
419 * data-streamer-in.c: New.
420 * data-streamer-out.c: New.
421 * data-streamer.c: New.
422 * data-streamer.h: New.
423 * gimple-streamer-in.c: New.
424 * gimple-streamer-out.c: New.
425 * gimple-streamer.h: New.
426 * ipa-inline-analysis.c: Include data-streamer.h.
427 * ipa-prop.c: Include data-streamer.h.
428 * ipa-pure-const.c: Include data-streamer.h.
429 * lto-cgraph.c: Include data-streamer.h.
430 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
431 (lto_input_widest_uint_uleb128): Likewise.
432 (lto_input_sleb128): Likewise.
433 (bp_unpack_var_len_unsigned): Likewise.
434 (bp_unpack_var_len_int): Likewise.
435 * lto-section-out.c (lto_output_uleb128_stream): Move to
437 (lto_output_widest_uint_uleb128_stream): Likewise.
438 (lto_output_sleb128_stream): Likewise.
439 (bp_pack_var_len_unsigned): Likewise.
440 (bp_pack_var_len_int): Likewise.
441 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
442 (struct string_slot): Remove. Update all users.
443 (lto_tag_check_set): Make extern.
444 (lto_tag_check_range): Move to lto-streamer.h.
445 (lto_tag_check): Likewise.
446 (hash_string_slot_node): Remove. Update all users.
447 (eq_string_slot_node): Remove. Update all users.
448 (string_for_index): Move to data-streamer-in.c
449 (input_string_internal): Likewise.
450 (input_string_cst): Move to tree-streamer-in.c.
451 (input_identifier): Likewise.
452 (lto_input_string): Move to data-streamer-in.c
453 (input_record_start): Move to data-streamer.h
454 (canon_file_name): Use new definition of struct string_slot
455 from data-streamer.h. Set S_SLOT.LEN.
456 (lto_input_location): Make extern.
457 (lto_input_chain): Move to tree-streamer-in.c.
458 (lto_init_eh): Make extern.
459 (input_phi): Move to gimple-streamer-in.c.
460 (input_gimple_stmt): Likewise.
461 (input_bb): Likewise.
462 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
463 (unpack_ts_real_cst_value_fields): Likewise.
464 (unpack_ts_fixed_cst_value_fields): Likewise.
465 (unpack_ts_decl_common_value_fields): Likewise.
466 (unpack_ts_decl_wrtl_value_fields): Likewise.
467 (unpack_ts_decl_with_vis_value_fields): Likewise.
468 (unpack_ts_function_decl_value_fields): Likewise.
469 (unpack_ts_type_common_value_fields): Likewise.
470 (unpack_ts_block_value_fields): Likewise.
471 (unpack_ts_translation_unit_decl_value_fields): Likewise.
472 (unpack_value_fields): Likewise.
473 (lto_materialize_tree): Likewise.
474 (lto_input_ts_common_tree_pointers): Likewise.
475 (lto_input_ts_vector_tree_pointers): Likewise.
476 (lto_input_ts_complex_tree_pointers): Likewise.
477 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
478 (lto_input_ts_decl_common_tree_pointers): Likewise.
479 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
480 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
481 (lto_input_ts_field_decl_tree_pointers): Likewise.
482 (lto_input_ts_function_decl_tree_pointers): Likewise.
483 (lto_input_ts_type_common_tree_pointers): Likewise.
484 (lto_input_ts_type_non_common_tree_pointers): Likewise.
485 (lto_input_ts_list_tree_pointers): Likewise.
486 (lto_input_ts_vec_tree_pointers): Likewise.
487 (lto_input_ts_exp_tree_pointers): Likewise.
488 (lto_input_ts_block_tree_pointers): Likewise.
489 (lto_input_ts_binfo_tree_pointers): Likewise.
490 (lto_input_ts_constructor_tree_pointers): Likewise.
491 (lto_input_ts_target_option): Likewise.
492 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
493 (lto_input_tree_pointers): Likewise.
494 (lto_get_pickled_tree): Likewise.
495 (lto_get_builtin_tree): Likewise.
496 (lto_read_tree): Likewise.
497 (lto_input_integer_cst): Likewise.
498 (lto_input_tree): Likewise.
499 * lto-streamer-out.c: Include data-streamer.h,
500 gimple-streamer.h and streamer-hooks.h.
501 (struct string_slot): Move to data-streamer.h.
502 (hash_string_slot_node): Likewise.
503 (eq_string_slot_node): Likewise.
504 (lto_string_index): Move to data-streamer-out.c.
505 (lto_output_string_with_length): Likewise.
506 (lto_output_string): Likewise.
507 (output_string_cst): Move to tree-streamer-out.c.
508 (output_identifier): Likewise.
509 (output_zero): Move to data-streamer-out.c
510 (output_uleb128): Likewise.
511 (output_sleb128): Likewise.
512 (output_record_start): Move to data-streamer.h
513 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
514 (pack_ts_real_cst_value_fields): Likewise.
515 (pack_ts_fixed_cst_value_fields): Likewise.
516 (pack_ts_decl_common_value_fields): Likewise.
517 (pack_ts_decl_wrtl_value_fields): Likewise.
518 (pack_ts_decl_with_vis_value_fields): Likewise.
519 (pack_ts_function_decl_value_fields): Likewise.
520 (pack_ts_type_common_value_fields): Likewise.
521 (pack_ts_block_value_fields): Likewise.
522 (pack_ts_translation_unit_decl_value_fields): Likewise.
523 (pack_value_fields): Likewise.
524 (lto_output_chain): Likewise.
525 (lto_output_ts_common_tree_pointers): Likewise.
526 (lto_output_ts_vector_tree_pointers): Likewise.
527 (lto_output_ts_complex_tree_pointers): Likewise.
528 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
529 (lto_output_ts_decl_common_tree_pointers): Likewise.
530 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
531 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
532 (lto_output_ts_field_decl_tree_pointers): Likewise.
533 (lto_output_ts_function_decl_tree_pointers): Likewise.
534 (lto_output_ts_type_common_tree_pointers): Likewise.
535 (lto_output_ts_type_non_common_tree_pointers): Likewise.
536 (lto_output_ts_list_tree_pointers): Likewise.
537 (lto_output_ts_vec_tree_pointers): Likewise.
538 (lto_output_ts_exp_tree_pointers): Likewise.
539 (lto_output_ts_block_tree_pointers): Likewise.
540 (lto_output_ts_binfo_tree_pointers): Likewise.
541 (lto_output_ts_constructor_tree_pointers): Likewise.
542 (lto_output_ts_target_option): Likewise.
543 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
544 (lto_output_tree_pointers): Likewise.
545 (lto_output_tree_header): Likewise.
546 (lto_output_builtin_tree): Likewise.
547 (lto_write_tree): Likewise.
548 (lto_output_integer_cst): Likewise.
549 (lto_output_tree): Likewise.
550 (output_phi): Move to gimple-streamer-out.c.
551 (output_gimple_stmt): Likewise.
552 (output_bb): Likewise.
553 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
554 (streamer_hooks): Move to streamer-hooks.c.
555 (check_handled_ts_structures): Move to tree-streamer.c
556 (lto_streamer_cache_add_to_node_array): Likewise.
557 (lto_streamer_cache_insert_1): Likewise.
558 (lto_streamer_cache_insert): Likewise.
559 (lto_streamer_cache_insert_at): Likewise.
560 (lto_streamer_cache_append): Likewise.
561 (lto_streamer_cache_lookup): Likewise.
562 (lto_streamer_cache_get): Likewise.
563 (lto_record_common_node): Likewise.
564 (lto_preload_common_nodes): Likewise.
565 (lto_streamer_cache_create): Likewise.
566 (lto_streamer_cache_delete): Likewise.
567 (streamer_hooks_init): Move to streamer-hooks.c.
568 * lto-streamer.h: Include diagnostic.h
569 (struct output_block, struct lto_input_block,
570 struct data_in, struct bitpack_d): Remove forward declarations.
571 (struct bitpack_d): Move to data-streamer.h.
572 (struct lto_streamer_cache_d): Move to tree-streamer.h.
573 (struct streamer_hooks): Move to streamer-hooks.h.
574 (bp_pack_var_len_unsigned): Move to data-streamer.h.
575 (bp_pack_var_len_int): Likewise.
576 (bp_unpack_var_len_unsigned): Likewise.
577 (bp_unpack_var_len_int): Likewise.
578 (lto_input_location): Declare.
579 (lto_tag_check_set): Declare.
580 (lto_init_eh): Declare.
581 (lto_output_tree_ref): Declare.
582 (lto_output_location): Declare.
583 (bitpack_create): Move to data-streamer.h.
584 (bp_pack_value): Likewise.
585 (lto_output_bitpack): Likewise.
586 (lto_input_bitpack): Likewise.
587 (bp_unpack_value): Likewise.
588 (lto_output_1_stream): Likewise.
589 (lto_input_1_unsigned): Likewise.
590 (lto_output_int_in_range): Likewise.
591 (lto_input_int_in_range): Likewise.
592 (bp_pack_int_in_range): Likewise.
593 (bp_unpack_int_in_range): Likewise.
594 (lto_output_enum): Likewise.
595 (lto_input_enum): Likewise.
596 (bp_pack_enum): Likewise.
597 (bp_unpack_enum): Likewise.
598 * streamer-hooks.c: New.
599 * streamer-hooks.h: New.
600 * tree-streamer-in.c: New.
601 * tree-streamer-out.c: New.
602 * tree-streamer.c: New.
603 * tree-streamer.h: New.
605 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
607 * gthr-posix95.h: Remove.
608 * gthr.h [_PTHREADS95]: Remove.
609 * configure.ac (enable_threads): Remove posix95.
610 * configure: Regenerate.
611 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
613 2011-08-08 Uros Bizjak <ubizjak@gmail.com>
616 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
618 (ix86_print_operand_address): Handle zero-extended addresses.
619 (memory_address_length): Add length of addr32 prefix for
620 zero-extended addresses.
621 (ix86_secondary_reload): Handle moves to/from double-word general
622 registers from/to zero-extended addresses.
623 * config/i386/predicates.md (lea_address_operand): Reject
624 zero-extended operands.
626 2011-08-08 H.J. Lu <hongjiu.lu@intel.com>
629 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
631 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
632 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
634 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
635 (_Unwind_Context_Reg_Val): Likewise.
636 (_Unwind_Get_Unwind_Word): Likewise.
637 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
638 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
639 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
640 for EXTENDED_CONTEXT_BIT.
641 (__frame_state_for): Likewise.
642 (uw_init_context_1): Likewise.
643 (_Unwind_GetGR): Updated.
644 (_Unwind_SetGR): Likewise.
645 (_Unwind_GetGRPtr): Likewise.
646 (_Unwind_SetGRPtr): Likewise.
647 (_Unwind_SetGRValue): Likewise.
648 (_Unwind_GRByValue): Likewise.
649 (uw_install_context_1): Likewise.
651 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
652 ASSUME_EXTENDED_UNWIND_CONTEXT.
653 * doc/tm.texi: Regenerated.
655 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
657 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
659 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
661 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
663 (DEC Alpha Options, -mtune): Likewise.
664 (MIPS Options, -march): native is supported on IRIX.
666 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
668 * config/sparc/driver-sparc.c: New file.
669 * config/sparc/x-sparc: New file.
670 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
671 * config/sparc/sparc.opt (native): New value for enum processor_type.
672 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
673 * config/sparc/sparc.c (sparc_option_override): Abort if
674 PROCESSOR_NATIVE gets here.
675 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
676 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
677 DRIVER_SELF_SPECS): Define.
678 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
679 (SPARC Options, -mtune): Likewise.
680 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
682 * configure: Regenerate.
683 * Makefile.in (EXTRA_GCC_LIBS): Set.
684 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
685 (cpp$(exeext)): Likewise.
687 2011-08-08 Richard Guenther <rguenther@suse.de>
689 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
691 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
694 2011-08-08 Mikael Pettersson <mikpe@it.uu.se>
696 PR tree-optimization/50005
697 * ipa-inline-analysis (remap_predicate): Add cast to
698 silence signed/unsigned comparison warning.
700 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
702 * modulo-sched.c (get_sched_window): Use a table for the debug output.
703 Print the current ii.
704 (sms_schedule_by_order): Reduce whitespace in dump line.
706 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
708 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
709 and one loop for successors. Fix upper bound of memory range.
711 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
714 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
715 (TARGET_INSTANTIATE_DECLS): New define.
717 2011-08-06 Paolo Bonzini <bonzini@gnu.org>
718 Mikael Morin <mikael.morin@sfr.fr>
720 * Makefile.in (INCLUDES_FOR_TARGET): New.
721 (LIBGCC2_CFLAGS): Use it.
722 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
724 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
726 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
727 frame->save_regs_using_mov calculation.
729 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
731 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
732 * config/i386/sse.md (castmode): New mode attribute.
733 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
734 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
736 2011-08-05 Jan Hubicka <jh@suse.cz>
739 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
741 2011-08-05 Jan Hubicka <jh@suse.cz>
744 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
746 (create_emultls_var):New function.
747 (ipa_lower_emutls): Handle aliases correctly.
749 2011-08-05 Jan Hubicka <jh@suse.cz>
752 * ipa-inline.c (recursive_inlining): Look through aliases.
754 2011-08-05 Jason Merrill <jason@redhat.com>
756 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
757 declarations to beginning of function.
759 2011-08-05 Bernd Schmidt <bernds@codesourcery.com>
761 PR rtl-optimization/49900
762 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
763 ensure basic blocks stay in the same order.
765 2011-08-05 Aldy Hernandez <aldyh@redhat.com>
767 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
769 (s390_expand_atomic): Same.
771 2011-08-05 Richard Henderson <rth@redhat.com>
774 * dwarf2cfi.c (scan_insn_after): Split out of ...
775 (scan_trace): ... here. Correctly place notes wrt sequences.
777 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
778 Richard Henderson <rth@redhat.com>
781 * expr.c (fixup_args_size_notes): Look through no-op moves.
783 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
785 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
786 of "m" for operand 0. Add type and mode attribute.
787 (*pushxf_nointeger"): Use "<" constraint for operand 0.
788 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
789 constraint instead of "o" for opreand 1.
790 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
791 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
792 operand 0, alternative 4.
793 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
795 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
797 * config/i386/predicates.md (lea_address_operand): Rename from
798 no_seg_address_operand.
799 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
800 (*lea_1_zext): Ditto.
802 (*lea_2_zext): Ditto.
804 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
806 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
807 parts.base and parts.index.
808 * config/i386/predicates.md (aligned_operand): Ditto.
809 (cmpxchg8b_pic_memory_operand): Ditto.
811 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
813 * config/soft-fp: Move to ../libgcc.
814 * Makefile.in (SFP_MACHINE): Remove.
815 (libgcc-support): Remove $(SFP_MACHINE) dependency.
816 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
817 * config/arm/t-arm-softfp: Move to
818 ../libgcc/config/arm/t-softfp.
819 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
820 * config/c6x/t-c6x-softfp: Remove.
821 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
822 * config/i386/t-fprules-softfp: Move to
823 ../libgcc/config/t-softfp-tf.
824 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
825 * config/ia64/t-fprules-softfp: Remove.
826 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
827 * config/lm32/t-fprules-softfp: Remove.
828 * config/moxie/sfp-machine.h: Remove.
829 * config/moxie/t-moxie-softfp: Remove.
830 * config/rs6000/darwin-ldouble-format: Move to
831 ../libgcc/config/rs6000/ibm-ldouble-format.
832 * config/rs6000/darwin-ldouble.c: Move to
833 ../libgcc/config/rs6000/ibm-ldouble.c
834 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
835 * config/rs6000/libgcc-ppc64.ver: Likewise.
836 * config/rs6000/sfp-machine.h: Likewise.
837 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
838 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
839 (LIB2FUNCS_EXTRA): Remove.
840 (TARGET_LIBGCC2_CFLAGS): Remove.
841 * config/rs6000/t-aix52: Likewise
842 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
843 $(srcdir)/config/rs6000/darwin-ldouble.c.
844 (SHLIB_MAPFILES): Remove.
845 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
846 $(srcdir)/config/rs6000/darwin-ldouble.c.
847 * config/rs6000/t-fprules-softfp: Move to
848 ../libgcc/config/t-softfp-sfdf.
849 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
850 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
851 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
852 $(srcdir)/config/rs6000/darwin-ldouble.c.
853 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
854 * config/score/t-score-softfp: Remove.
855 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
856 soft-fp/t-softfp from tmake_file.
857 (arm*-*-uclinux*): Likewise.
858 (arm*-*-ecos-elf): Likewise.
859 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
860 (arm*-*-rtems*): Likewise.
861 (arm*-*-elf): Likewise.
862 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
864 (moxie-*-uclinux*): Likewise.
865 (moxie-*-rtems*): Likewise.
866 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
868 (lm32-*-rtems*): Likewise.
869 (lm32-*-uclinux*): Likewise.
870 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
871 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
872 (powerpc-*-linux*, powerpc64-*-linux*): Remove
873 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
874 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
876 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
878 (tic6x-*-uclinux): Likewise.
879 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
880 soft-fp/t-softfp from tmake_file.
881 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
882 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
883 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
884 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
885 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
887 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
889 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
890 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
891 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
893 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
894 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
896 * config/arm/t-vxworks: Likewise.
897 * config/arm/t-wince-pe: Likewise.
898 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
899 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
900 * config/bfin/t-bfin-elf: Likewise.
901 * config/bfin/t-bfin-linux: Likewise.
902 * config/bfin/t-bfin-uclinux: Likewise.
903 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
905 * config/fr30/t-fr30: Likewise.
906 * config/frv/t-frv: Likewise.
907 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
908 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
909 * config/m32c/t-m32c: Likewise.
910 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
911 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
912 * config/mcore/t-mcore: Likewise.
913 * config/mep/t-mep: Likewise.
914 * config/microblaze/t-microblaze: Likewise.
915 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
916 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
917 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
918 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
919 * config/mn10300/t-linux: Remove.
920 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
921 * config/pdp11/t-pdp11: Likewise.
922 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
923 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
924 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
925 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
926 * config/rs6000/t-aix52: Likewise.
927 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
928 $(srcdir)/config/rs6000/ppc64-fp.c.
929 * config/rs6000/t-fprules-fpbit: Remove.
930 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
931 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
932 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
933 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
934 * config/sparc/t-elf: Likewise.
935 * config/sparc/t-leon: Likewise.
936 * config/sparc/t-leon3: Likewise.
937 * config/spu/t-spu-elf: Likewise.
938 (DPBIT_FUNCS): Remove.
939 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
940 * config/v850/t-v850: Likewise.
941 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
943 (h8300-*-rtems*): Set libgcc_tm_file.
944 (h8300-*-elf*): Likewise.
945 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
947 (powerpc-*-eabisim*): Likewise.
948 (powerpc-*-elf*): Likewise.
949 (powerpc-*-eabialtivec*): Likewise.
950 (powerpc-xilinx-eabi*): Likewise.
951 (powerpc-*-eabi*): Likewise.
952 (powerpc-*-rtems*): Likewise.
953 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
954 (powerpcle-*-elf*): Likewise.
955 (powerpcle-*-eabisim*): Likewise.
956 (powerpcle-*-eabi*): Likewise.
957 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
958 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
959 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
962 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
964 * Makefile.in (UNWIND_H): Remove.
965 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
966 ../libgcc/Makefile.in.
967 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
968 (LIBUNWINDDEP): Remove.
969 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
970 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
971 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
972 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
973 Don't copy $(UNWIND_H).
974 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
975 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
976 * aclocal.m4: Regenerate.
977 * configure: Regenerate.
978 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
979 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
980 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
981 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
982 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
983 * config/arm/libunwind.S, config/arm/pr-support.c,
984 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
985 ../libgcc/config/arm.
986 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
987 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
988 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
989 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
990 ($(T)frvend$(objext)): Likewise.
991 * config/ia64/t-glibc (LIB2ADDEH): Remove.
992 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
993 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
994 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
995 ../libgcc/config/ia64.
996 * config/ia64/t-hpux (LIB2ADDEH): Remove.
997 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
998 * config/ia64/t-vms (LIB2ADDEH): Remove.
999 * config/ia64/vms.h (UNW_IVMS_MODE,
1000 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1001 * config/picochip/t-picochip (LIB2ADDEH): Remove.
1002 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1003 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1004 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1005 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1006 $(srcdir)/../libgcc to refer to unwinder sources.
1007 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1008 * config/t-darwin (LIB2ADDEH): Remove.
1009 * config/t-freebsd (LIB2ADDEH): Remove.
1010 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1011 * config/t-libunwind-elf: Move to ../libgcc/config.
1012 * config/t-linux (LIB2ADDEH): Remove.
1013 * config/t-sol2 (LIB2ADDEH): Remove.
1014 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1015 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1017 2011-08-05 H.J. Lu <hongjiu.lu@intel.com>
1019 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1021 * doc/invoke.texi: Document core-avx-i.
1023 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1025 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1027 2011-08-05 Ira Rosen <ira.rosen@linaro.org>
1029 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1030 result of multiple results reduction when extracting the final
1031 value using scalar code.
1033 2011-08-05 Richard Guenther <rguenther@suse.de>
1035 PR tree-optimization/49984
1036 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1038 2011-08-05 Richard Guenther <rguenther@suse.de>
1040 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1041 return true for constant integer ranges.
1042 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1043 BIT_IOR_EXPR handling.
1045 2011-08-04 Kai Tietz <ktietz@redhat.com>
1047 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1048 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1050 2011-08-04 Ira Rosen <ira.rosen@linaro.org>
1052 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1053 pattern def statement, and its access macro.
1054 (NUM_PATTERNS): Set to 5.
1055 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1056 pattern def statement.
1057 (vect_transform_loop): Likewise.
1058 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1059 function vect_recog_over_widening_pattern ().
1060 (vect_operation_fits_smaller_type): New function.
1061 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1063 (vect_pattern_recog_1): Move the code that marks pattern
1064 statements to vect_mark_pattern_stmts (), and call it. Update
1066 * tree-vect-stmts.c (vect_supportable_shift): New function.
1067 (vect_analyze_stmt): Handle pattern def statement.
1068 (new_stmt_vec_info): Initialize pattern def statement.
1070 2011-08-04 Richard Henderson <rth@redhat.com>
1073 * config/i386/i386.c (ix86_expand_call): Don't create nested
1074 PARALLELs for TARGET_VZEROUPPER.
1075 (ix86_split_call_vzeroupper): Fix extraction of the original call.
1076 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1077 recognize nested PARALLELs.
1078 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1079 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1080 *sibcall_value_pop_vzeroupper): Likewise.
1082 2011-08-04 Richard Henderson <rth@redhat.com>
1085 * calls.c (expand_call): Use fixup_args_size_notes for
1087 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1088 in non-standard modes.
1090 2011-08-04 Jakub Jelinek <jakub@redhat.com>
1092 * gcc.c (self_spec): New variable.
1093 (static_specs): Add self_spec.
1094 (main): Call do_self_spec on "self_spec" specs after reading
1095 user specs files. Move compare_debug handling right after that.
1097 2011-08-04 Richard Guenther <rguenther@suse.de>
1099 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1100 (value_range_nonnegative_p): New function.
1101 (ssa_name_nonnegative_p): Use it.
1102 (value_range_constant_singleton): New function.
1103 (op_with_constant_singleton_value_range): Use it.
1104 (extract_range_from_binary_expr_1): New function, split out from ...
1105 (extract_range_from_binary_expr): ... this. Remove fallback
1106 constant folding done here.
1108 2011-08-04 Richard Guenther <rguenther@suse.de>
1110 PR tree-optimization/49806
1111 * tree-vrp.c (op_with_boolean_value_range_p): New function.
1112 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
1113 a new statement for a final conversion to bool.
1115 2011-08-04 Romain Geissler <romain.geissler@gmail.com>
1117 * gengtype-state.c: Include "bconfig.h" if
1118 GENERATOR_FILE is defined, "config.h" otherwise.
1119 * gengtype.c: Likewise.
1120 * gengtype-lex.l: Likewise.
1121 * gengtype-parse.c: Likewise.
1122 * Makefile.in (gengtype-lex.o-warn): New variable.
1123 (plugin_resourcesdir): Likewise.
1124 (plugin_bindir): Likewise.
1125 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1126 (MOSTLYCLEANFILES): Add gengtype$(exeext).
1127 (native): Depend on gengtype$(exeext) is $enable_plugin
1129 (gtype.state): Depend on s-gtype. Use temporary file.
1130 (gengtype-lex.o): New rule.
1131 (gengtype-parse.o): Likewise.
1132 (gengtype-state.o): Likewise.
1133 (gengtype$(exeext)): Likewise.
1134 (install-gengtype): Likewise.
1135 (gengtype.o): Likewise.
1136 (build/gengtype.o): Depend on version.h.
1137 (build/gengtype-state): Depend on double-int.h, version.h,
1138 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1139 (install-plugin): Depend on install-gengtype.
1141 2011-08-04 Jakub Jelinek <jakub@redhat.com>
1144 * tree.h (init_attributes): New prototype.
1145 * attribs.c (init_attributes): No longer static.
1147 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1149 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1152 2011-08-03 David Li <davidxl@google.com>
1154 * tree-optimize.c (execute_fixup_cfg): Fix up entry
1155 outgoing edge counts after inlining.
1157 2011-08-03 David Li <davidxl@google.com>
1159 * profile.c (compute_branch_probabilities): Compute
1160 function frequency after profile annotation.
1162 2011-08-04 Alan Modra <amodra@gmail.com>
1164 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1165 use_backchain_to_restore_sp initialisation.
1166 (rs6000_legitimate_offset_address_p): Simplify offset test.
1168 2011-08-03 Richard Henderson <rth@redhat.com>
1170 * config/spu/spu.md: Use define_c_enum instead of define_constants.
1171 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1174 2011-08-03 Richard Henderson <rth@redhat.com>
1177 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1179 2011-08-03 Jakub Jelinek <jakub@redhat.com>
1181 PR tree-optimization/49948
1182 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1184 2011-08-03 Anatoly Sokolov <aesok@post.ru>
1186 * config/m32c/m32c.c (class_sizes): Remove.
1187 (reduce_class): Change arguments and return type to reg_class_t.
1188 Change type cc var to HARD_REG_SET. Change type best var to
1189 reg_class_t. Change type best_size var to unsigned int. Remove
1190 initialization class_sizes var. Use reg_class_size array instead
1191 of class_sizes. Use reg_class_contents array instead
1194 2011-08-03 Richard Guenther <rguenther@suse.de>
1197 * fold-const.c (fold_binary_loc): Only associate
1198 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1201 2011-08-03 Alan Modra <amodra@gmail.com>
1203 PR rtl-optimization/49941
1204 * jump.c (mark_jump_label): Comment.
1205 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1206 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1207 (mark_used_flags): Don't mark RETURN.
1209 2011-08-03 Richard Guenther <rguenther@suse.de>
1211 PR tree-optimization/49938
1212 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1213 deal with a POLYNOMIAL_CHREC.
1215 2011-08-03 Revital Eres <revital.eres@linaro.org>
1217 * modulo-sched.c (calculate_stage_count,
1218 calculate_must_precede_follow, get_sched_window,
1219 try_scheduling_node_in_cycle, remove_node_from_ps): Add
1221 (update_node_sched_params, set_must_precede_follow, optimize_sc):
1223 (reset_sched_times): Call update_node_sched_params.
1224 (sms_schedule): Call optimize_sc.
1225 (get_sched_window): Change function arguments.
1226 (sms_schedule_by_order): Update call to get_sched_window.
1227 Call set_must_precede_follow.
1228 (calculate_stage_count): Add function argument.
1230 2011-08-02 Richard Henderson <rth@redhat.com>
1234 * reg-notes.def (REG_ARGS_SIZE): New.
1235 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1236 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1237 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1238 different stack levels.
1239 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1240 (maybe_move_args_size_note): New.
1241 (combine_stack_adjustments_for_block): Use it.
1242 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1243 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1244 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1245 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1247 (queued_args_size): Remove.
1248 (add_cfi_args_size): Assert size is non-negative.
1249 (stack_adjust_offset, dwarf2out_args_size): Remove.
1250 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1251 (notice_args_size, notice_eh_throw): New.
1252 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1253 (dwarf2out_frame_debug_adjust_cfa): Likewise.
1254 (dwarf2out_frame_debug_cfa_offset): Likewise.
1255 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
1256 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1257 (change_cfi_row): Don't emit args_size.
1258 (maybe_record_trace_start_abnormal): Split out from ...
1259 (maybe_record_trace_start): Here. Set args_size_undefined.
1260 (create_trace_edges): Update to match.
1261 (scan_trace): Handle REG_ARGS_SIZE.
1262 (connect_traces): Connect args_size between EH insns.
1263 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1264 * explow.c (suppress_reg_args_size): New.
1265 (adjust_stack_1): Split out from ...
1266 (adjust_stack): ... here.
1267 (anti_adjust_stack): Use it.
1268 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1269 * expr.c (mem_autoinc_base): New.
1270 (fixup_args_size_notes): New.
1271 (emit_single_push_insn_1): Rename from emit_single_push_insn.
1272 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
1273 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1274 * reload1.c (reload_as_needed): Likewise.
1275 * rtl.h (fixup_args_size_notes): Declare.
1277 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
1280 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1282 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1283 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1285 2011-08-02 Richard Henderson <rth@redhat.com>
1287 * config/h8300/h8300.c (push, pop): Return the insn.
1288 (h8300_swap_into_er6): Generate correct unwind info.
1289 (h8300_swap_out_of_er6): Likewise.
1290 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1291 complex cfa expression.
1292 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1294 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
1296 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1298 2011-08-02 Richard Henderson <rth@redhat.com>
1301 * config/h8300/h8300.c (h8300_move_ok): New.
1302 * config/h8300/h8300-protos.h: Declare it.
1303 * config/h8300/h8300.md (P): New mode iterator.
1304 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1305 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1306 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1307 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1308 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1309 and pushqi1_h8300hs_normal; use PRE_MODIFY and
1310 register_no_sp_elim_operand.
1311 (*pushhi1_h8300hs_<P>): Similarly.
1312 (pushqi1, pushhi1, pushhi1_h8300): Remove.
1313 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1315 2011-08-02 Richard Henderson <rth@redhat.com>
1318 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1320 2011-08-02 Jakub Jelinek <jakub@redhat.com>
1322 * c-parser.c (enum c_parser_prec): New enum, moved from within
1323 c_parser_binary_expression.
1324 (c_parser_binary_expression): Add PREC argument. Stop parsing
1325 if operator has lower or equal precedence than PREC.
1326 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1328 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1329 Adjust c_finish_omp_atomic caller.
1330 (c_parser_omp_taskyield): New function.
1331 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1332 (c_parser_omp_clause_name): Handle final and mergeable clauses.
1333 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1335 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1336 and PRAGMA_OMP_CLAUSE_MERGEABLE.
1337 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1338 (c_parser_omp_clause_reduction): Handle min and max.
1339 * c-typeck.c (c_finish_omp_clauses): Don't complain about
1340 const qualified predetermined vars in firstprivate clause.
1341 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1342 Handle MIN_EXPR and MAX_EXPR.
1343 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1344 and OMP_CLAUSE_MERGEABLE.
1345 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1346 and OMP_ATOMIC_CAPTURE_NEW.
1347 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1348 OMP_CLAUSE_MERGEABLE.
1349 (omp_clause_code_name): Likewise.
1350 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1351 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1352 and OMP_CLAUSE_MERGEABLE.
1353 (OMP_CLAUSE_FINAL_EXPR): Define.
1354 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1355 OMP_CLAUSE_MERGEABLE.
1356 (expand_task_call): Likewise.
1357 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1358 (expand_omp_atomic_fetch_op): Handle cases where old or new
1359 value is needed afterwards.
1360 (expand_omp_atomic): Call expand_omp_atomic_load resp.
1361 expand_omp_atomic_store.
1362 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1363 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1364 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1365 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1366 * tree-nested.c (convert_nonlocal_omp_clauses,
1367 convert_local_omp_clauses): Likewise.
1368 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1369 OMP_ATOMIC_CAPTURE_NEW): New.
1370 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1371 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1373 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1374 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1375 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1377 2011-08-02 Kai Tietz <ktietz@redhat.com>
1379 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1381 (ssa_forward_propagate_and_combine): Interprete result of
1382 forward_propagate_comparison.
1383 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1384 boolean-typed operands for comparisons.
1386 2011-08-02 Georg-Johann Lay <avr@gjlay.de>
1388 * config/avr/libgcc.S: Gather related function in the
1390 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1391 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1393 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1394 __udivmodsi4, __divmodsi4, __prologue_saves__,
1395 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1396 __do_copy_data, __do_clear_bss, __do_global_ctors,
1397 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1399 2011-08-02 Uros Bizjak <ubizjak@gmail.com>
1402 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1403 (stack_protect_test): The pattern compares ptr_mode value.
1405 2011-08-02 Alan Modra <amodra@gmail.com>
1407 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1408 note for save_LR_around_toc_setup sequence.
1410 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1412 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1414 2011-08-01 Sebastian Pop <sebastian.pop@amd.com>
1415 Joseph Myers <joseph@codesourcery.com>
1417 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1418 * hwint.c: Include diagnostic-core.h.
1420 (gcd): Moved here...
1423 (least_common_multiple): Moved here...
1424 * hwint.h (gcd): ... from here.
1425 (least_common_multiple): ... from here.
1426 (HOST_WIDE_INT_MIN): New.
1427 (HOST_WIDE_INT_MAX): New.
1428 (abs_hwi): Declared.
1430 (pos_mul_hwi): Declared.
1431 (mul_hwi): Declared.
1432 (least_common_multiple): Declared.
1433 * omega.c (check_pos_mul): Removed.
1434 (check_mul): Removed.
1435 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1436 mul_hwi instead of check_mul.
1438 2011-08-01 Richard Henderson <rth@redhat.com>
1441 * config/avr/avr.h (PUSH_ROUNDING): New.
1442 * config/avr/avr.md (pushqi1): Rename from *pushqi.
1443 (*pushhi, *pushsi, *pushsf): Remove.
1444 (MPUSH): New mode iterator.
1445 (push<MPUSH>1): New expander.
1447 2011-08-01 Anatoly Sokolov <aesok@post.ru>
1449 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1450 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1451 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1452 mmix_preferred_output_reload_class): Remove.
1453 * config/mmix/mmix.c (mmix_preferred_reload_class,
1454 mmix_preferred_output_reload_class): Make static. Change rclass
1455 argument and return type to reg_class_t.
1456 (TARGET_PREFERRED_RELOAD_CLASS,
1457 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1459 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
1461 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1464 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1467 * config/i386/i386.md (PTR): New.
1468 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1469 (stack_protect_test): Likewise.
1470 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1471 (stack_tls_protect_set_<mode>): Likewise.
1472 (stack_tls_protect_test_<mode>): Likewise.
1474 2011-08-01 Uros Bizjak <ubizjak@gmail.com>
1477 * config/i386/i386.c (ix86_address_subreg_operand): New.
1478 (ix86_decompose_address): Use ix86_address_subreg_operand.
1479 (ix86_legitimate_address_p): Do not assert that subregs satisfy
1480 register_no_elim_operand in DImode.
1482 2011-08-01 Ira Rosen <ira.rosen@linaro.org>
1484 PR tree-optimization/49926
1485 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1486 in a chain doesn't have uses both inside and outside the loop.
1488 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1490 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1491 * config/avr/avr-devices.c (avr_mcu_types): Use it.
1492 * config/avr/avr-mcus.def (AVR_MCU): Use it.
1493 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1494 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1495 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1496 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1497 to detect if XJMP must not be skipped.
1499 2011-08-02 Alan Modra <amodra@gmail.com>
1501 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1503 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1504 (rs6000_emit_prologue): Don't prematurely return when
1505 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
1506 save_toc_in_prologue case.
1507 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1510 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1512 * config/avr/avr-devices.c: Delete SVN property svn:executable.
1513 * config/avr/predicates.md: Ditto.
1514 * config/avr/driver-avr.c: Ditto.
1515 * config/avr/genopt.sh: Set SVN property svn:executable to *.
1517 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1519 * calls.c (emit_library_call_value_1): Declare size only if
1520 BLOCK_REG_PADDING is defined.
1522 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
1525 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1526 (x86_64-*-*): Likewise.
1527 * config/i386/i386.opt (mlzcnt): New.
1528 * config/i386/abmintrin.h: File removed.
1529 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1530 * config/i386/lzcntintrin.h: ... here. New file.
1531 (__lzcnt): Rename to ...
1532 (__lzcnt32): ... this.
1533 * config/i386/bmiintrin.h (head): Update copyright year.
1534 (__lzcnt_u16): Removed.
1535 (__lzcnt_u32): Likewise.
1536 (__lzcnt_u64): Likewise.
1537 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1538 is defined, remove abmintrin.h.
1539 * config/i386/cpuid.h (bit_LZCNT): New.
1540 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1542 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1543 __LZCNT__ if needed.
1544 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1545 (ix86_option_override_internal): Handle LZCNT option.
1546 (ix86_valid_target_attribute_inner_p): Likewise.
1547 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1548 * config/i386/i386.h (TARGET_LZCNT): New.
1549 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1550 * config/i386/i386.md (clz<mode>2): Update insn constraint.
1551 (clz<mode>2_lzcnt): Likewise.
1552 * doc/invoke.texi: Mention -mlzcnt option.
1553 * doc/extend.texi: Likewise.
1555 2011-08-01 Julian Brown <julian@codesourcery.com>
1557 * configure.ac (fixed-point): Add ARM support.
1558 * configure: Regenerate.
1559 * config/arm/arm.c (arm_fixed_mode_set): New struct.
1560 (arm_set_fixed_optab_libfunc): New.
1561 (arm_set_fixed_conv_libfunc): New.
1562 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1564 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1565 return values in SImode.
1566 (arm_return_in_msb): Return fixed-point types in the msb.
1567 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1569 (arm_scalar_mode_supported_p): Support fixed-point modes.
1570 (arm_vector_mode_supported_p): Support vector fixed-point modes.
1571 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1572 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1573 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1574 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1575 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1577 (qaddsub_suf): New mode attribute.
1578 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1580 * config/arm/predicates.md (sat_shift_operator): New predicate.
1581 * config/arm/arm-fixed.md: New.
1582 * config/arm/arm.md: Include arm-fixed.md.
1583 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1585 2011-08-01 Julian Brown <julian@codesourcery.com>
1587 * calls.c (emit_library_call_value_1): Support padding for libcall
1588 arguments and return values.
1589 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1590 downwards in big-endian mode.
1592 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1595 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1596 * config/sol2-protos.h: Likewise.
1597 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1599 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1600 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1602 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1604 2011-08-01 Julian Brown <julian@codesourcery.com>
1606 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1608 2011-08-01 Julian Brown <julian@codesourcery.com>
1610 * final.c (output_addr_const): Print fixed-point constants as
1613 2011-08-01 Richard Guenther <rguenther@suse.de>
1615 * stor-layout.c (initialize_sizetypes): Properly sign-extend
1616 bitsiztype TYPE_MAX_VALUE.
1618 2011-08-01 Julian Brown <julian@codesourcery.com>
1620 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1623 2011-07-31 Richard Henderson <rth@redhat.com>
1625 * config/h8300/crti.asm: Add flags to .section directive.
1626 * config/h8300/crtn.asm: Likewise.
1628 2011-07-31 Richard Henderson <rth@redhat.com>
1630 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1631 * tree.c (build_common_tree_nodes): Likewise.
1633 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
1636 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1637 (divsi3_i1): Likewise.
1639 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1641 PR tree-optimization/49749
1642 * tree-ssa-reassoc.c (get_rank): New forward declaration.
1643 (PHI_LOOP_BIAS): New macro.
1644 (phi_rank): New function.
1645 (loop_carried_phi): Likewise.
1646 (propagate_rank): Likewise.
1647 (get_rank): Add calls to phi_rank and propagate_rank.
1649 2011-07-31 H.J. Lu <hongjiu.lu@intel.com>
1651 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1653 (PTRDIFF_TYPE): Likewise.
1655 2011-07-31 Uros Bizjak <ubizjak@gmail.com>
1658 * config/i386/i386.md (strset): Do not expand strset_singleop
1659 when %eax or $edi are fixed.
1660 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1661 (*strsetsi_1): Ditto.
1662 (*strsethi_1): Ditto.
1663 (*strsetqi_1): Ditto.
1664 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1665 (*rep_stossi): Ditto.
1666 (*rep_stosqi): Ditto.
1667 (*strlenqi_1): Ditto.
1668 (cmpstrnsi): Also fail when %ecx is fixed.
1669 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1670 (*cmpstrnqi_1): Ditto.
1671 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1672 (*strmovsi_1): Ditto.
1673 (*strmovhi_1): Ditto.
1674 (*strmovqi_1): Ditto.
1675 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1676 (*rep_movsi): Ditto.
1677 (*rep_movqi): Ditto.
1679 2011-07-31 Mikael Pettersson <mikpe@it.uu.se>
1682 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1683 Disable instruction scheduling for non-ColdFire targets.
1684 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1686 2011-07-31 Revital Eres <revital.eres@linaro.org>
1688 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1689 of anti-dep edge from a branch.
1690 (add_cross_iteration_register_deps): Create anti-dep edge from
1693 2011-07-31 Revital Eres <revital.eres@linaro.org>
1695 * modulo-sched.c: Change comment.
1696 (reset_sched_times): Fix print message.
1697 (print_partial_schedule): Add print info.
1699 2011-07-31 Tom de Vries <tom@codesourcery.com>
1702 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1703 get_object_alignment and TYPE_ALIGN.
1705 2011-07-30 Tom de Vries <tom@codesourcery.com>
1708 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1709 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1711 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1713 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1715 (cpu_types): New array.
1716 (cputype): New function.
1717 (host_detect_local_cpu): Only define buf, f if !__sgi__.
1718 Use scaninvent instead of /proc/cpuinfo if __sgi__.
1719 * config.host: Also use driver-native.o, mips/x-native on
1721 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1722 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1723 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1725 2011-07-29 Jakub Jelinek <jakub@redhat.com>
1729 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1730 in nested parallel and outer is a gimple_reg, mark it as addressable
1731 and set its bit in task_shared_vars bitmap too.
1733 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1735 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1737 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1739 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1740 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1741 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1742 AMASK_LOCKPFTCHOK): Define.
1743 (host_detect_local_cpu): Remove buf, f, cpu_names.
1744 Define cpu_types, implver, amask.
1745 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1747 * config.host: Also use driver-alpha.o, alpha/x-alpha on
1749 * config/alpha/osf5.h [__alpha__ || __alpha]
1750 (host_detect_local_cpu): Declare.
1751 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1752 (DRIVER_SELF_SPECS): Define.
1754 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1757 * config/i386/i386.md (*load_tp_x32): New.
1758 (*load_tp_x32_zext): Ditto.
1759 (*add_tp_x32): Ditto.
1760 (*add_tp_x32_zext): Ditto.
1761 (*load_tp_<mode>): Disable for TARGET_X32 targets.
1762 (*add_tp_<mode>): Ditto.
1763 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1764 ptr_mode and convert to Pmode if needed.
1766 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1769 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1770 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1771 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1772 Add X to register footprint: Clobber r26/r27.
1774 2011-07-29 Richard Guenther <rguenther@suse.de>
1776 * builtins.c (fold_builtin_signbit): Build the comparison
1779 2011-07-29 Richard Guenther <rguenther@suse.de>
1781 PR tree-optimization/49893
1782 * tree-predcom.c (suitable_reference_p): Volatile references
1785 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1788 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1789 (__ctzsi2): Result for 0 may be undefined.
1790 (__ctzhi2): Result for 0 may be undefined.
1791 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1792 (__popcountsi2): Ditto. And don't clobber r26.
1793 (__popcountdi2): Ditto. And don't clobber r27.
1794 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1795 (parityhi2): New expand.
1796 (paritysi2): New expand.
1797 (popcounthi2): New expand.
1798 (popcountsi2): New expand.
1799 (clzhi2): New expand.
1800 (clzsi2): New expand.
1801 (ctzhi2): New expand.
1802 (ctzsi2): New expand.
1803 (ffshi2): New expand.
1804 (ffssi2): New expand.
1805 (copysignsf3): New insn.
1806 (bswapsi2): New expand.
1807 (*parityhi2.libgcc): New insn.
1808 (*parityqihi2.libgcc): New insn.
1809 (*paritysihi2.libgcc): New insn.
1810 (*popcounthi2.libgcc): New insn.
1811 (*popcountsi2.libgcc): New insn.
1812 (*popcountqi2.libgcc): New insn.
1813 (*popcountqihi2.libgcc): New insn-and-split.
1814 (*clzhi2.libgcc): New insn.
1815 (*clzsihi2.libgcc): New insn.
1816 (*ctzhi2.libgcc): New insn.
1817 (*ctzsihi2.libgcc): New insn.
1818 (*ffshi2.libgcc): New insn.
1819 (*ffssihi2.libgcc): New insn.
1820 (*bswapsi2.libgcc): New insn.
1822 2011-07-29 Richard Guenther <rguenther@suse.de>
1824 * tree-vrp.c (get_value_range): Only set parameter default
1825 definitions to varying, leave others at undefined.
1826 (extract_range_from_binary_expr): Fix undefined handling.
1827 (vrp_visit_phi_node): Handle merged undefined state.
1829 2011-07-29 Wei Guozhi <carrot@google.com>
1831 PR rtl-optimization/49799
1832 * combine.c (make_compound_operation): Check if the bit field is valid
1833 before change it to bit field extraction.
1835 2011-07-29 Bernd Schmidt <bernds@codesourcery.com>
1837 PR rtl-optimization/49891
1838 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1839 newly created returnjumps.
1841 2011-07-28 DJ Delorie <dj@redhat.com>
1843 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1844 local frame in a naked function, and produce a suitable error for
1847 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1848 registers to be reloaded in HI classes when the target is HI.
1850 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1852 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1853 bound_one, bound_two.
1855 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1858 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1860 (translate_clast): Same.
1861 (translate_clast_assignment): New.
1863 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1865 PR tree-optimization/49876
1866 * sese.c (rename_uses): Do not return false on gloog_error: set
1867 the new_expr to integer_zero_node and continue code generation.
1868 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1870 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1873 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1874 arguments also check if they aren't initialized with a MODE_INT
1875 mode of the same size.
1877 2011-07-28 Aldy Hernandez <aldyh@redhat.com>
1879 * expr.c (get_bit_range): Handle *MEM_REF's.
1881 2011-07-28 Bernd Schmidt <bernds@codesourcery.com>
1883 * rtlanal.c (tablejump_p): False for returns.
1884 * reorg.c (first_active_target_insn): New static function.
1885 (find_end_label): Set JUMP_LABEL for a new returnjump.
1886 (optimize_skip, get_jump_flags, rare_destination,
1887 mostly_true_jump, get_branch_condition,
1888 steal_delay_list_from_target, own_thread_p,
1889 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1890 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1891 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1892 * jump.c (delete_related_insns): Likewise.
1893 (jump_to_label_p): New function.
1894 (redirect_target): New static function.
1895 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
1896 (redirect_jump_1): Assert that the new label is nonnull.
1897 (redirect_jump): Likewise.
1898 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1899 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1901 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
1902 changed. Ensure that the right label is passed to redirect_jump.
1903 * function.c (emit_return_into_block,
1904 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1905 ret_rtx in their JUMP_LABEL.
1906 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1907 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1908 pass ret_rtx as label.
1909 * cfglayout.c (fixup_reorder_chain): Use
1910 force_nonfallthru_and_redirect rather than force_nonfallthru.
1911 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1912 * rtl.h (ANY_RETURN_P): New macro.
1913 (jump_to_label_p): Declare.
1914 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1916 (mark_target_live_regs): Likewise.
1917 * basic-block.h (force_nonfallthru_and_redirect): Declare.
1918 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1919 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1920 alpha_tablejump_best_label): Remove functions.
1921 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1922 alpha_tablejump_best_label): Remove declarations.
1923 * config/sh/sh.c (barrier_align, split_branches): Adjust for
1924 ret_rtx in JUMP_LABELs.
1925 * config/arm/arm.c (is_jump_table): Likewise.
1927 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1929 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1930 special predicate. Remove explicit mode checks.
1932 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1934 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1935 DW_AT_data_member_location containing just DW_OP_plus_uconst.
1938 * dwarf2out.c (size_of_die, value_format, output_die): Use
1939 DW_FORM_udata instead of DW_FORM_data[48] for
1940 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1942 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1944 * config/i386/i386.md (*tls_global_dynamic_64): Update
1947 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1950 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1951 tls_symbolic_operand check. Update code sequence for TARGET_X32.
1952 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1953 (tls_dynamic_gnu2_64): Ditto.
1954 (*tls_dynamic_gnu2_lea_64): Ditto.
1955 (*tls_dynamic_gnu2_call_64): Ditto.
1956 (*tls_dynamic_gnu2_combine_64): Ditto.
1958 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1960 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1962 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1965 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1967 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1969 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1970 before the core constraints. Adjust attributes.
1971 ("*thumb2_movdf_vfp"): Likewise.
1973 2011-07-28 Kai Tietz <ktietz@redhat.com>
1975 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1976 (simplify_truth_ops_using_ranges): Likewise.
1977 (build_assert_expr_for): Likewise.
1978 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
1979 and handle BIT_NOT_EXPR for truth-operation.
1981 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
1984 Undo r176835 from trunk
1985 2011-07-27 Georg-Johann Lay
1987 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
1990 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
1991 Add _muluhisi3, _mulshisi3, _usmulhisi3.
1992 * config/avr/libgcc.S (__mulsi3): Rewrite.
1993 (__mulhisi3): Rewrite.
1994 (__umulhisi3): Rewrite.
1995 (__usmulhisi3): New.
1999 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2001 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2002 (pseudo_register_or_const_int_operand): New.
2003 (combine_pseudo_register_operand): New.
2007 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2008 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2009 (any_extend, any_extend2): New code iterators.
2010 (extend_prefix): New code attribute.
2011 (mulsi3): Rewrite. Turn insn to expander.
2014 (usmulhisi3): New expander.
2015 (*mulsi3): New insn-and-split.
2016 (mulu<mode>si3): New insn-and-split.
2017 (muls<mode>si3): New insn-and-split.
2018 (mulohisi3): New insn-and-split.
2019 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2020 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2021 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2022 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2024 (*mulsi3_call): Rewrite.
2025 (*mulhisi3_call): Rewrite.
2026 (*umulhisi3_call): Rewrite.
2027 (*usmulhisi3_call): New insn.
2028 (*muluhisi3_call): New insn.
2029 (*mulshisi3_call): New insn.
2030 (*mulohisi3_call): New insn.
2031 (extendqihi2): Use combine_pseudo_register_operand as predicate
2033 (extendqisi2): Ditto.
2034 (zero_extendqihi2): Ditto.
2035 (zero_extendqisi2): Ditto.
2036 (zero_extendhisi2): Ditto.
2037 (extendhisi2): Ditto. Don't early-clobber operand 0.
2039 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
2041 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2043 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2045 PR tree-optimization/49471
2046 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2047 iv only when the largest type is unsigned. Do not call
2048 lang_hooks.types.type_for_size.
2050 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2053 * graphite-poly.c (apply_poly_transforms): Disable legality check
2054 after an openscop read.
2056 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2059 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2060 copy_bb_and_scalar_dependences.
2061 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
2062 (graphite_copy_stmts_from_block): Update call to rename_uses.
2063 (copy_bb_and_scalar_dependences): Update call to
2064 graphite_copy_stmts_from_block.
2065 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2067 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
2070 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2071 (__ctzsi2): Result for 0 may be undefined.
2072 (__ctzhi2): Result for 0 may be undefined.
2073 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2074 (__popcountsi2): Ditto. And don't clobber r26.
2075 (__popcountdi2): Ditto. And don't clobber r27.
2076 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2077 (parityhi2): New expand.
2078 (paritysi2): New expand.
2079 (popcounthi2): New expand.
2080 (popcountsi2): New expand.
2081 (clzhi2): New expand.
2082 (clzsi2): New expand.
2083 (ctzhi2): New expand.
2084 (ctzsi2): New expand.
2085 (ffshi2): New expand.
2086 (ffssi2): New expand.
2087 (copysignsf3): New insn.
2088 (bswapsi2): New expand.
2089 (*parityhi2.libgcc): New insn.
2090 (*parityqihi2.libgcc): New insn.
2091 (*paritysihi2.libgcc): New insn.
2092 (*popcounthi2.libgcc): New insn.
2093 (*popcountsi2.libgcc): New insn.
2094 (*popcountqi2.libgcc): New insn.
2095 (*popcountqihi2.libgcc): New insn-and-split.
2096 (*clzhi2.libgcc): New insn.
2097 (*clzsihi2.libgcc): New insn.
2098 (*ctzhi2.libgcc): New insn.
2099 (*ctzsihi2.libgcc): New insn.
2100 (*ffshi2.libgcc): New insn.
2101 (*ffssihi2.libgcc): New insn.
2102 (*bswapsi2.libgcc): New insn.
2104 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
2106 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2107 the mode of symbolic_opreand RTXes.
2109 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
2111 * config/i386/predicates.md (x86_64_movabs_operand): Return false
2112 for pic_32bit_operand RTXes.
2113 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2116 2011-07-27 Kai Tietz <ktietz@redhat.com>
2118 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2120 (ix86_handle_abi_attribute): Allow function attributes
2121 ms_abi/sysv_abi in 32-bit mode, too.
2122 * doc/extend.texi: Adjust attribute documentation.
2124 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2125 expression handling.
2126 (and_var_with_comparison_1): Likewise.
2128 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
2130 * params.h (ALLOW_STORE_DATA_RACES): New.
2131 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2132 * Makefile.in (expr.o): Depend on PARAMS_H.
2133 * machmode.h (get_best_mode): Add argument.
2134 * fold-const.c (optimize_bit_field_compare): Add argument to
2136 (fold_truthop): Same.
2137 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2138 * expr.c (emit_group_store): Same.
2139 (copy_blkmode_from_reg): Same.
2140 (write_complex_part): Same.
2141 (optimize_bitfield_assignment_op): Add argument.
2142 Add argument to get_best_mode.
2143 (get_bit_range): New.
2144 (expand_assignment): Calculate maxbits and pass it down accordingly.
2145 (store_field): New argument.
2146 (expand_expr_real_2): New argument to store_field. Include params.h.
2147 * expr.h (store_bit_field): New argument.
2148 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2149 into account maxbits.
2150 * calls.c (store_unaligned_arguments_into_pseudos): New argument
2152 * expmed.c (store_bit_field_1): New argument. Use it.
2153 (store_bit_field): Same.
2154 (store_fixed_bit_field): Same.
2155 (store_split_bit_field): Same.
2156 (extract_bit_field_1): Pass new argument to get_best_mode.
2157 (extract_bit_field): Same.
2158 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2159 * doc/invoke.texi: Document parameter allow-store-data-races.
2161 2011-07-27 Jakub Jelinek <jakub@redhat.com>
2163 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2165 2011-07-27 Kai Tietz <ktietz@redhat.com>
2167 * tree-vrp.c (extract_range_from_binary_expr): Remove
2168 TRUTH-binary cases and add new bitwise-cases.
2169 (extract_range_from_assignment): Likewise.
2170 (register_edge_assert_for_1): Likeiwise.
2171 (register_edge_assert_for): Likewise.
2172 (simplify_truth_ops_using_ranges): Likewise.
2173 (simplify_stmt_using_ranges): Likewise.
2175 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
2178 * config/i386/i386.c (ix86_delegitimize_address): Call
2179 simplify_gen_subreg for PIC with mode of x only if modes of
2180 x and orig_x are different.
2182 2011-07-26 Jakub Jelinek <jakub@redhat.com>
2184 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2185 to GC allocated copy of the string.
2186 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2187 before .debug_line, not after it.
2189 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2192 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2193 evolution_function_is_affine_p on CHREC_RIGHT.
2195 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2197 * tree-data-ref.c (max_stmt_executions_tree): Do not call
2198 lang_hooks.types.type_for_size.
2200 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2203 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2204 loops using wrapping semantics.
2206 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2209 * tree-scalar-evolution.c (instantiate_scev_r): Return
2210 chrec_dont_know for ADDR_EXPR.
2212 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
2213 H.J. Lu <hongjiu.lu@intel.com>
2217 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2218 if legitimize_tls_address returned operand in wrong mode. Allow
2219 SImode and DImode symbolic operand for PIC. Call convert_to_mode
2220 if legitimize_pic_address returned operand in wrong mode.
2222 2011-07-26 Martin Jambor <mjambor@suse.cz>
2224 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2225 return false for invariants.
2227 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
2229 * config/i386/i386.md (add->lea splitter): Implement using SWI
2230 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
2231 (add->lea zext splitter): Change operand 2 predicate to
2232 x86_64_nonmemory_operand.
2234 2011-07-26 Richard Guenther <rguenther@suse.de>
2236 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2237 frequency makes everything hot.
2239 2011-07-26 Richard Guenther <rguenther@suse.de>
2241 PR tree-optimization/49840
2242 * tree-vrp.c (range_fits_type_p): Properly handle full
2243 double-int precision.
2245 2011-07-26 Martin Jambor <mjambor@suse.cz>
2248 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2250 (update_specialized_profile): Likewise.
2252 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
2253 H.J. Lu <hongjiu.lu@intel.com>
2258 * config/i386/i386.md (i): Change SImode attribute to "e".
2259 (g): Change SImode attribute to "rme".
2260 (di): Change SImode attribute to "nF".
2261 (general_operand): Change SImode attribute to x86_64_general_operand.
2262 (general_szext_operand): Change SImode attribute to
2263 x86_64_szext_general_operand.
2264 (immediate_operand): Change SImode attribute to
2265 x86_64_immediate_operand.
2266 (nonmemory_operand): Change SImode attribute to
2267 x86_64_nonmemory_operand.
2268 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2269 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
2270 (*lea_1): Use SWI48 mode iterator.
2271 (*lea_1_zext): New insn pattern.
2272 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2274 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2275 Update operand constraints.
2276 (addsi_1_zext): Ditto.
2277 (*add<mode>2): Ditto.
2278 (*addsi_3_zext): Ditto.
2279 (*subsi_1_zext): Ditto.
2280 (*subsi_2_zext): Ditto.
2281 (*subsi_3_zext): Ditto.
2282 (*addsi3_carry_zext): Ditto.
2283 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2284 (*mulsi3_1_zext): Ditto.
2286 (*andsi_1_zext): Ditto.
2287 (*andsi_2_zext): Ditto.
2288 (*<any_or:code>si_1_zext): Ditto.
2289 (*<any_or:code>si_2_zext): Ditto.
2290 (*test<mode>_1): Use <general_operand> predicate for operand 1.
2291 (*and<mode>_2): Ditto.
2292 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
2293 (add->lea splitter): Check operand modes in insn constraint. Extend
2294 operands less than SImode wide to SImode.
2295 (add->lea zext splitter): Do not extend input operands to DImode.
2296 (*lea_general_1): Handle only QImode and HImode operands.
2297 (*lea_general_2): Ditto.
2298 (*lea_general_3): Ditto.
2299 (*lea_general_1_zext): Remove.
2300 (*lea_general_2_zext): Ditto.
2301 (*lea_general_3_zext): Ditto.
2302 (*lea_general_4): Check operand modes in insn constraint. Extend
2303 operands less than SImode wide to SImode.
2304 (ashift->lea splitter): Ditto.
2305 * config/i386/i386.c (ix86_print_operand_address): Print address
2306 registers with 'q' modifier on 64bit targets.
2307 * config/i386/predicates.md (pic_32bit_opreand): Define as special
2308 predicate. Reject non-SI and non-DI modes.
2310 2011-07-25 Andrew Pinski <apinski@cavium.com>
2313 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2314 TREE_THIS_NOTRAP into the inner most MEM_REF.
2315 Always copy TREE_THIS_VOLATILE.
2316 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2317 arguments are not volatile references.
2319 2011-07-25 Richard Henderson <rth@redhat.com>
2321 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2322 * final.c (final_scan_insn): Don't test for it.
2323 (rest_of_clean_state): Likewise.
2325 2011-07-25 Richard Henderson <rth@redhat.com>
2328 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2329 (emit_frame_save): Likewise.
2330 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2331 insn onto a dummy blockage insn after the join label.
2333 2011-07-25 Richard Henderson <rth@redhat.com>
2335 * dwarf2cfi.c (dw_trace_info): Add ID member.
2336 (get_trace_index): Remove. Change users to use ID member.
2337 (before_next_cfi_note): New.
2338 (connect_traces): Remove unreachable traces before the main loop.
2339 Look across one trace and generate remember/restore_state if needed.
2341 2011-07-25 Richard Henderson <rth@redhat.com>
2343 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2345 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
2347 * genattr.c (write_upcase, gen_attr <enum definition writing>):
2349 * genattr-common.c ... here.
2350 (main): Call gen_attr.
2351 * optc-gen.awk: Make generated program include insn-attr-common.h .
2352 * Makefile.in (oprions.o): Depend on insn-attr-common.h
2354 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2356 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2357 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2358 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2359 m32c_print_operand, m32c_print_operand_address): Remove.
2360 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2361 Change return type to bool. Change argument type to bool.
2362 (m32c_print_operand, m32c_print_operand_address): Make static.
2363 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2364 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2366 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2368 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2369 attributes): Document mmap.
2371 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2373 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2374 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2375 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2376 mmix_print_operand, mmix_print_operand_address): Remove.
2377 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2378 Change return type to bool. Change argument type to bool.
2379 (mmix_print_operand, mmix_print_operand_address): Make static.
2380 (mmix_intval, mmix_output_condition): Change 'x' argument type
2382 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2383 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2385 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
2388 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2389 shift counter for x << x and x >> x shifts.
2391 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2394 * config.gcc: Reject *-*-solaris2 configuration.
2396 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
2398 PR tree-optimization/49809
2399 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2400 gimple_get_lhs instead of gimple_assign_lhs.
2402 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2404 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2406 2011-07-25 Richard Guenther <rguenther@suse.de>
2408 PR tree-optimization/49822
2409 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2410 more. Make sure to preserve stmts with side-effects. Properly
2411 handle virtual defs, follow a longer def chain.
2413 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
2418 * Makefile.in: Do not flatten c-family directory when installing
2421 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
2423 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2424 original nodes if we are dealing with virtual clones.
2426 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
2428 * common/config/c6x/c6x-common.c: New file.
2430 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
2432 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2434 2011-07-25 Richard Guenther <rguenther@suse.de>
2436 PR tree-optimization/49715
2437 * tree-vrp.c: Include expr.h and optabs.h.
2438 (range_fits_type_): New function.
2439 (simplify_float_conversion_using_ranges): Likewise.
2440 (simplify_stmt_using_ranges): Call it.
2441 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2442 * optabs.c (can_float_p): Export.
2443 * optabs.h (can_float_p): Declare.
2445 2011-07-25 Richard Guenther <rguenther@suse.de>
2447 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2448 (get_value_range): For out-of-range SSA names or names created
2449 after propagation return a read-only varying range.
2450 (dump_all_value_ranges): Adjust.
2451 (vrp_initialize): Likewise.
2452 (vrp_finalize): Likewise.
2454 2011-07-24 Richard Henderson <rth@redhat.com>
2457 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
2460 2011-07-24 Richard Henderson <rth@redhat.com>
2463 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2464 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2466 2011-07-24 Richard Henderson <rth@redhat.com>
2469 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2471 2011-07-24 Richard Henderson <rth@redhat.com>
2473 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2474 Zero args_size for abnormal edges. Adjust all callers.
2476 2011-07-24 Richard Henderson <rth@redhat.com>
2479 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2481 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
2484 * collect2.c (demangle_flag): Removed.
2486 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
2488 * configure.ac (demangler_in_ld): Default to yes.
2489 * configure: Regenerated.
2490 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2491 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2492 --no-demangle options straight through to ld. When
2493 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2494 way that has the intended effect on Windows.
2496 2011-07-23 Richard Henderson <rth@redhat.com>
2498 * dwarf2cfi.c: Include basic-block.h.
2499 (dw_label_info): Remove.
2500 (trace_work_list, trace_index): New.
2501 (remember_row, emit_cfa_remember): Remove.
2502 (dw_trace_info_hash, dw_trace_info_eq): New.
2503 (get_trace_index, get_trace_info): New.
2504 (save_point_p): New.
2505 (free_cfi_row): Remove.
2506 (add_cfi): Do not emit DW_CFA_remember_state.
2507 (cfa_row_equal_p): New.
2508 (barrier_args_size): Remove.
2509 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2510 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2511 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2512 (dwarf2out_cfi_begin_epilogue): Remove.
2513 (dwarf2out_frame_debug_restore_state): Remove.
2514 (connect_traces, create_pseudo_cfg): New.
2515 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2516 * Makefile.in (dwarf2cfi.o): Update.
2518 2011-07-23 Richard Henderson <rth@redhat.com>
2520 * dwarf2cfi.c (dw_trace_info): New.
2521 (dw_label_info): New.
2522 (cie_return_save): New.
2524 (queued_args_size): Rename from args_size. Update all users.
2525 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2526 (def_cfa_1): Use cur_trace instead of cfa_*.
2527 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2528 (clobbers_queued_reg_save, reg_saved_in): Likewise.
2529 (dwarf2out_frame_debug_expr): Likewise.
2530 (create_cie_data): Split out from ...
2531 (execute_dwarf2_frame): ... here. Initialize cur_trace.
2533 2011-07-23 Richard Henderson <rth@redhat.com>
2535 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2536 Update all users to match.
2537 (execute_dwarf2_frame): Free reg_saved_in_data.
2539 2011-07-23 Richard Henderson <rth@redhat.com>
2541 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
2542 (queued_reg_saves): Don't GTY. Change to a VEC.
2543 (queue_reg_save): Update to match.
2544 (dwarf2out_flush_queued_reg_saves): Likewise.
2545 (clobbers_queued_reg_save): Likewise.
2546 (reg_saved_in): Likewise.
2547 (execute_dwarf2_frame): Free queued_reg_saves.
2549 2011-07-23 Richard Henderson <rth@redhat.com>
2551 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
2553 2011-07-23 Richard Henderson <rth@redhat.com>
2555 * dwarf2cfi.c (add_cfi_args_size): Split out from...
2556 (dwarf2out_args_size): ... here.
2557 (add_cfi_restore): Split out from ...
2558 (dwarf2out_frame_debug_cfa_restore): ... here.
2559 (def_cfa_0): Split out from ...
2560 (def_cfa_1): ... here.
2561 (cfi_oprnd_equal_p, cfi_equal_p): New.
2562 (change_cfi_row): New.
2563 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2564 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2565 (output_cfis): Remove.
2566 * dwarf2out.c (output_fde): Simplify output_cfi loop.
2567 (dwarf2out_switch_text_section): Don't call output_cfis.
2568 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2569 * dwarf2out.h: Update decls.
2570 (enum dw_val_class): Add dw_val_class_none.
2572 2011-07-23 Richard Henderson <rth@redhat.com>
2574 * dwarf2cfi.c (update_row_reg_save): New.
2575 (dwarf2out_frame_debug_cfa_expression): Use it.
2576 (dwarf2out_frame_debug_cfa_restore): Likewise.
2577 (reg_save): Likewise. Do not emit DW_CFA_same_value.
2579 2011-07-23 Richard Henderson <rth@redhat.com>
2581 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
2583 2011-07-23 Richard Henderson <rth@redhat.com>
2585 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2587 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2588 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2589 (cur_row, remember_row): New.
2590 (def_cfa_1): Use cur_row instead of the old_* variables.
2591 (dwarf2out_frame_debug_restore_state): Similarly.
2592 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2593 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2594 (dwarf2out_frame_debug_adjust_cfa): Likewise.
2595 (dwarf2out_frame_debug_cfa_offset): Likewise.
2596 (dwarf2out_frame_debug_expr): Likewise.
2597 (execute_dwarf2_frame): Set up cur_row.
2598 * dwarf2out.h (struct cfa_loc): Mark for GTY.
2600 2011-07-23 Richard Henderson <rth@redhat.com>
2602 * basic-block.h (EDGE_PRESERVE): New.
2603 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2604 * bb-reorder.c: Include except.h.
2605 (fix_up_crossing_landing_pad): New.
2606 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2607 landing pads in the right partition. Duplicate as necessary.
2608 (partition_hot_cold_basic_blocks): Fix up DF info after
2609 duplicating landing pads.
2610 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2611 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2612 is set properly. Validate that EH edges are not CROSSING.
2613 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2614 (dw2_build_landing_pads): ... here.
2615 (convert_to_eh_region_ranges): Remove code to fixup crossing
2617 * except.h (expand_dw2_landing_pad_for_region): Declare.
2618 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2620 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
2623 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2625 2011-07-22 Jason Merrill <jason@redhat.com>
2627 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2629 2011-07-22 Richard Henderson <rth@redhat.com>
2631 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2633 2011-07-22 Richard Henderson <rth@redhat.com>
2635 * jump.c (maybe_propagate_label_ref): Split out of...
2636 (mark_all_labels): ... here. Do not attempt label_ref
2637 propagation while in cfglayout mode.
2639 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2641 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2642 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2643 (dwarf_attr_name): Handle DW_AT_GNU_macros.
2644 (dwarf2out_define): If the vector is empty and
2645 lineno is 0, emit a dummy entry first.
2646 (dwarf2out_undef): Likewise. Remove redundant semicolon.
2647 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2648 optimize_macinfo_range): New functions.
2649 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
2650 mergeable, optimize longer strings using
2651 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2652 optimize longer sequences of define/undef ops from headers
2653 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
2654 emit a section headers.
2655 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2656 and macinfo_section_label to DEBUG_MACRO_SECTION
2657 resp. DEBUG_MACRO_SECTION_LABEL.
2658 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2659 instead of DW_AT_macro_info.
2662 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2664 * dwarf2out.c: Include opts.h.
2665 (dchar_p): New typedef. Define heap VEC for it.
2666 (producer_string): New variable.
2667 (gen_producer_string): New function.
2668 (gen_compile_unit_die): Use it.
2669 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2670 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2671 * doc/invoke.texi: Document -grecord-gcc-switches and
2672 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2673 to -frecord-gcc-switches description.
2675 2011-07-22 Jason Merrill <jason@redhat.com>
2678 * c-decl.c (c_linkage_bindings): Define.
2680 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>
2683 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2685 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
2687 * config/i386/i386.c (ix86_option_override_internal): Disallow
2689 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2690 only for TARGET_LP64.
2691 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2693 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2695 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2696 avoid warnings when GCC is built with a C++ compiler.
2698 2011-07-22 Martin Jambor <mjambor@suse.cz>
2701 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2702 if decl node is in another partition, call cgraph_get_node only once.
2704 2011-07-22 Uros Bizjak <ubizjak@gmail.com>
2706 * config.gcc (x86_64-*-linux*): Set
2707 default_gnu_indirect_function to yes.
2709 2011-07-22 Richard Guenther <rguenther@suse.de>
2711 PR tree-optimization/45819
2712 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2713 preserve volatile and notrap flags.
2715 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2716 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2719 * configure.ac: Test AM_ICONV with CXX.
2720 * configure: Regenerate.
2721 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2723 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2726 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2727 (set_cloog_options): Use it.
2729 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2732 * gcc.c (main): Call stack_limit_increase (64MB).
2733 * toplev.c (toplev_main): Likewise.
2735 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2737 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2738 instead of force_reg.
2740 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2742 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2743 needed and use force_reg after convert.
2744 (ix86_expand_call): Likewise.
2745 (ix86_expand_special_args_builtin): Likewise.
2746 (ix86_expand_builtin): Likewise.
2748 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2752 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2753 in parameter. Initialize v1 and v2 based on the values returned
2754 by clast_name_to_lb_ub.
2755 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2757 (type_for_clast_bin): Same.
2758 (type_for_clast_expr): Same.
2759 (type_for_clast_eq): Update calls to type_for_clast_expr.
2760 (type_for_clast_for): Same.
2761 (build_iv_mapping): Same.
2762 * graphite-ppl.h (value_min): New.
2764 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2766 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2767 types whenever possible.
2769 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2771 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2773 (new_clast_name_index): Add lb and ub parameters.
2774 (free_clast_name_index): New.
2775 (clast_name_to_lb_ub): New.
2776 (save_clast_name_index): Add lb and ub parameters.
2777 (compute_bounds_for_param): New.
2778 (type_for_level): Removed.
2779 (type_for_clast_for): Removed level parameter. Do not call
2781 (graphite_create_new_loop): Store the lb and ub for the clast_name
2782 of the iterator of the loop that has been generated.
2783 (graphite_create_new_loop_guard): Remove parameter level.
2784 (create_params_index): Store the lb and ub of each parameter.
2785 (gloog): Use free_clast_name_index. Pass to create_params_index
2788 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2790 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2791 (max_precision_type): Inline max_signed_precision_type.
2792 (type_for_clast_red): Use max_precision_type.
2793 (type_for_clast_bin): Same.
2794 (type_for_clast_for): Same.
2796 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2798 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2800 (gcc_type_for_value): Renamed type_for_value.
2801 (gcc_type_for_clast_term): Renamed type_for_clast_term.
2802 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2803 (gcc_type_for_clast_red): Renamed type_for_clast_red.
2804 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2805 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2806 (graphite_translate_clast_equation): Update calls.
2807 (compute_type_for_level): Renamed type_for_level.
2808 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2809 (build_iv_mapping): Update calls.
2810 (graphite_create_new_loop_guard): Same.
2812 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2814 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2817 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2819 * graphite-clast-to-gimple.c (struct ivs_params): New.
2820 (clast_name_to_gcc): Use ivs_params to pass around parameters.
2821 (clast_to_gcc_expression): Same.
2822 (clast_to_gcc_expression_red): Same.
2823 (gcc_type_for_clast_term): Same.
2824 (gcc_type_for_clast_expr): Same.
2825 (gcc_type_for_clast_red): Same.
2826 (gcc_type_for_clast_bin): Same.
2827 (gcc_type_for_clast_eq): Same.
2828 (graphite_translate_clast_equation): Same.
2829 (graphite_create_guard_cond_expr): Same.
2830 (graphite_create_new_guard): Same.
2831 (graphite_create_new_loop): Same.
2832 (build_iv_mapping): Same.
2833 (translate_clast_user): Same.
2834 (graphite_create_new_loop_guard): Same.
2835 (translate_clast): Same.
2836 (translate_clast_for_loop): Same.
2837 (translate_clast_for): Same.
2838 (translate_clast_guard): Same.
2839 (initialize_cloog_names): Fix typo.
2840 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2842 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2844 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2845 (new_clast_name_index): Add level parameter.
2846 (clast_name_to_level): New.
2847 (save_clast_name_index): Add level parameter.
2848 (newivs_to_depth_to_newiv): Removed.
2849 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2850 (graphite_create_new_loop): Add level parameter. Pass level to
2851 save_clast_name_index.
2852 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2853 (create_params_index): Pass level to save_clast_name_index.
2855 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2857 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2858 recompute type, lb, and ub. Get them from...
2859 (graphite_create_new_loop_guard): ...here. Pass in parameter
2860 pointers to type, lb, and ub.
2861 (translate_clast_for_loop): Update function calls.
2862 (translate_clast_for): Same.
2864 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2866 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2868 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2869 (gcc_type_for_iv_of_clast_loop): Update use of level.
2870 (gloog): Start counting nesting level from 0.
2871 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2872 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2873 psct_dynamic_dim on level.
2875 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2877 * config/i386/i386.c (ix86_legitimize_address): Convert to
2880 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2882 * config/i386/i386.c (function_value_64): Always return pointers
2884 (ix86_promote_function_mode): New.
2885 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2887 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2889 PR tree-optimization/49749
2890 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2891 remove no-longer-used maxrank variable.
2893 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2895 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2897 2011-07-21 Jason Merrill <jason@redhat.com>
2899 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2900 * recog.h (struct insn_data_d): Check it instead of
2901 HAVE_DESIGNATED_INITIALIZERS.
2902 * genoutput.c (output_insn_data): Likewise.
2904 2011-07-21 Richard Guenther <rguenther@suse.de>
2906 PR tree-optimization/49770
2907 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2908 valueized any operand. Renamed from ...
2909 (valueize_refs): ... this. New wrapper around valueize_refs_1.
2910 (valueize_shared_reference_ops_from_ref): Return whether we
2911 valueized any operand.
2912 (vn_reference_lookup): Only when we valueized any operand
2913 use the valueized reference for alias analysis. Do not preserve
2914 the original reference tree in this case.
2916 2011-07-21 Uros Bizjak <ubizjak@gmail.com>
2918 * config/i386/i386.c (ix86_decompose_address): Reject all but
2919 register operands and subregs of DImode hard registers in index.
2921 2011-07-21 Kai Tietz <ktietz@redhat.com>
2923 * fold-const.c (fold_unary_loc): Preserve indirect
2924 comparison cast to none-boolean type.
2925 * tree-ssa.c (useless_type_conversion_p): Preserve cast
2926 from/to boolean-type.
2927 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2928 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2929 * tree-cfg.c (verify_gimple_comparison): Check result
2930 type of comparison expression.
2931 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2932 of condition result and disallow type-cast sinking into comparison.
2934 2011-07-21 Richard Guenther <rguenther@suse.de>
2936 * tree-ssa-forwprop.c (combine_conversions): Return whether
2937 we have to run cfg-cleanup. Properly remove dead stmts.
2938 (ssa_forward_propagate_and_combine): Adjust.
2940 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
2942 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2944 2011-07-21 Kai Tietz <ktietz@redhat.com>
2946 * tree-ssa-propagate.c (substitute_and_fold): Use
2947 do_dce flag to deside, if BB's statements are scanned
2948 in last to first, or first to last order.
2950 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2952 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2954 2011-07-20 H.J. Lu <hongjiu.lu@intel.com>
2955 Uros Bizjak <ubizjak@gmail.com>
2956 Richard Henderson <rth@redhat.com>
2958 * config/i386/constraints.md (w): New.
2960 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2961 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2963 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2964 instead of TARGET_64BIT.
2966 * config/i386/i386.md (indirect_jump): Replace
2967 nonimmediate_operand with indirect_branch_operand.
2968 (*indirect_jump): Likewise. Replace constraint "m" with "w".
2969 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2970 Convert operand 0 to Pmode for x32 if not PIC.
2971 (*tablejump_1): Replace nonimmediate_operand with
2972 indirect_branch_operand. Replace constraint "m" with "w".
2973 (*call_vzeroupper): Replace constraint "m" with "w".
2975 (*call_rex64_ms_sysv_vzeroupper): Likewise.
2976 (*call_rex64_ms_sysv): Likewise.
2977 (*call_value_vzeroupper): Likewise.
2978 (*call_value): Likewise.
2979 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
2980 (*call_value_rex64_ms_sysv): Likewise.
2981 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
2983 * config/i386/predicates.md (indirect_branch_operand): New.
2984 (call_insn_operand): Support x32.
2986 2011-07-20 Michael Eager <eager@eagercon.com>
2988 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
2990 2011-07-20 Richard Henderson <rth@redhat.com>
2992 * cfg.c (dump_bb_info): Dump basic_block->flags.
2993 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
2995 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
2997 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2998 of DImode hard registers in index.
2999 (ix86_legitimate_address_p): Allow subregs of base and index to span
3000 more than a word. Assert that subregs of base and index satisfy
3001 register_no_elim_operand predicates. Reject addresses where
3002 base and index have different modes.
3004 2011-07-20 Robert Millan <rmh@gnu.org>
3006 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3008 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3010 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3011 removing now-unnecessary assignment.
3013 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3015 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3016 memory address space to the type's address space.
3018 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
3022 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3023 and expand appropriately if there is a CONST_INT in operand2.
3024 (usmulqihi3): New insn.
3025 (*sumulqihi3): New insn.
3026 (*osmulqihi3): New insn.
3027 (*oumulqihi3): New insn.
3028 (*muluqihi3.uconst): New insn_and_split.
3029 (*muluqihi3.sconst): New insn_and_split.
3030 (*mulsqihi3.sconst): New insn_and_split.
3031 (*mulsqihi3.uconst): New insn_and_split.
3032 (*mulsqihi3.oconst): New insn_and_split.
3033 (*ashifthi3.signx.const): New insn_and_split.
3034 (*ashifthi3.signx.const7): New insn_and_split.
3035 (*ashifthi3.zerox.const): New insn_and_split.
3036 (mulsqihi3): New insn.
3037 (muluqihi3): New insn.
3038 (muloqihi3): New insn.
3039 * config/avr/predicates.md (const_2_to_7_operand): New.
3040 (const_2_to_6_operand): New.
3045 (register_or_s9_operand): New.
3047 2011-07-20 Kai Tietz <ktietz@redhat.com>
3049 * builtins.c (fold_builtin_expect): See through the cast
3050 from truthvalue_type_node to long.
3052 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3054 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3055 where we can use them from the standard and altivec instruction
3056 sets, instead of always using the 3 operand VSX forms that require
3057 the destination to overlap one of the inputs.
3062 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3064 (fmsdf4_fpr): Ditto.
3065 (nfmadf4_fpr): Ditto.
3066 (nfmsdf4_fpr): Ditto.
3068 2011-07-20 Sandra Loosemore <sandra@codesourcery.com>
3070 * genrecog.c (make_insn_sequence): Correct position numbering
3071 when filtering out match_scratch and match_dup.
3073 2011-07-20 Richard Guenther <rguenther@suse.de>
3075 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3076 against already removed statements.
3077 (forward_propagate_into_comparison): Remove dead defining stmts.
3078 (forward_propagate_into_gimple_cond): Likewise.
3079 (forward_propagate_into_cond): Simplify.
3080 (ssa_forward_propagate_and_combine): Handle changed cfg from
3081 forward_propagate_into_comparison.
3082 * tree-ssa-phiopt.c (conditional_replacement): Use proper
3083 locations for newly built statements.
3085 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
3087 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3089 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3091 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3092 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3094 2011-07-20 Richard Guenther <rguenther@suse.de>
3097 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3098 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3099 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
3101 2011-07-20 Vladimir Makarov <vmakarov@redhat.com>
3103 * config/frv/frv.c (frv_register_move_cost): Define explicitly
3104 costs for subclasses of GR_REGS.
3106 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
3109 * config/i386/predicates.md (no_seg_addres_operand): No more special.
3110 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3111 of DImode hard registers in base.
3112 (ix86_legitimate_address_p): Allow SImode and DImode base and index
3115 2011-07-20 Richard Guenther <rguenther@suse.de>
3117 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3118 (unify_nodes): Deal with that.
3119 (solve_graph): Likewise.
3121 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
3123 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3124 canonicalize left operand from ZERO_EXTEND to AND.
3126 2011-07-20 Anatoly Sokolov <aesok@post.ru>
3128 * target.def (class_max_nregs): New hook.
3129 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3130 * doc/tm.texi: Regenerate.
3131 * targhooks.c (default_class_max_nregs): New function.
3132 * targhooks.h (default_class_max_nregs): Declare.
3133 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3134 x_ira_reg_class_min_nregs arrays to unsigned char.
3135 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3136 hook instead of CLASS_MAX_NREGS macro.
3137 * reginfo.c (restore_register_info): Ditto.
3138 * ira-conflicts.c (process_regs_for_copy): Use
3139 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3140 Change type rclass and aclass vars to reg_class_t.
3141 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3142 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3144 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3145 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3147 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3148 * config/i386/i386.c (ix86_class_max_nregs): New function.
3149 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3150 instead of CLASS_MAX_NREGS macro.
3151 (TARGET_CLASS_MAX_NREGS): Define.
3152 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3153 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3154 * config/avr/avr.c (class_max_nregs): Remove function.
3155 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3156 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3157 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3158 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3159 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3160 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3161 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3162 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3163 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3164 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3165 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3166 * config/score/score.h (CLASS_MAX_NREGS): Remove.
3167 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3168 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3169 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3171 2011-07-19 Eric Botcazou <ebotcazou@adacore.com>
3173 * cif-code.def (OVERWRITABLE): Fix typo and move around.
3174 (TARGET_OPTIMIZATION_MISMATCH): Delete.
3175 (EH_PERSONALITY): Fix typo.
3176 (NON_CALL_EXCEPTIONS): Fix message.
3177 (OPTIMIZATION_MISMATCH): Adjust message.
3178 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3180 2011-07-19 Ian Lance Taylor <iant@google.com>
3182 * doc/install.texi (Configuration): Document
3183 --enable-build-poststage1-with-cxx.
3185 2011-07-19 Robert Millan <rmh@gnu.org>
3187 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
3188 (GLIBC_DYNAMIC_LINKER): Remove.
3190 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
3191 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3192 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3193 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3194 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3195 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3197 * config/mips/linux.h: Remove everything except for ...
3198 (GLIBC_DYNAMIC_LINKER): ... this macro.
3200 * config/mips/linux64.h: Remove everything except for ...
3201 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3202 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3203 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3204 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3205 (GNU_USER_LINK_EMULATIONN32): New macros.
3207 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3208 Use the new headers.
3210 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3212 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3213 Add offset_known_p and size_known_p fields.
3214 (MEM_OFFSET_KNOWN_P): Update accordingly.
3215 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3216 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3217 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3218 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3219 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3220 (init_emit_regs): Likewise.
3222 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3224 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3225 (MEM_OFFSET): Change from returning an rtx to returning a
3227 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3228 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3229 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3230 (clear_mem_offset): Declare.
3231 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3232 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3233 MEM_OFFSET to get a HOST_WIDE_INT offset.
3234 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
3235 (adjust_offset_for_component_ref): Take a bool "known_p"
3236 parameter and a HOST_WIDE_INT "offset" parameter.
3237 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3238 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3239 than an rtx. Use clear_mem_offset to clear the offset.
3240 * cfgcleanup.c (merge_memattrs): Likewise.
3241 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3242 * function.c (assign_parm_find_stack_rtl): Likewise.
3243 (assign_parm_setup_stack): Likewise.
3244 * print-rtl.c (print_rtx): Likewise.
3245 * reload.c (find_reloads_subreg_address): Likewise.
3246 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3247 * var-tracking.c (INT_MEM_OFFSET): Likewise.
3248 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3249 (get_mem_align_offset): Likewise.
3250 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3251 (clear_mem_offset): New function.
3252 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3253 offset rather than an rtx. Assume both the expressio and offset
3255 (r10k_needs_protection_p_1): Update accordingly, checking the
3256 expression and offset availability here instead.
3258 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3260 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3261 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3262 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3263 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3264 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3265 (clear_mem_size): Declare.
3266 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3267 (clear_mem_size): New function.
3268 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3269 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3270 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
3271 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
3273 (nonoverlapping_memrefs_p): Likewise.
3274 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3275 (expand_builtin_init_trampoline): Likewise.
3276 * calls.c (compute_argument_addresses): Likewise.
3277 * cfgcleanup.c (merge_memattrs): Likewise.
3278 * dce.c (find_call_stack_args): Likewise.
3279 * dse.c (record_store, scan_insn): Likewise.
3280 * dwarf2out.c (dw_sra_loc_expr): Likewise.
3281 * expr.c (emit_block_move_hints): Likewise.
3282 * function.c (assign_parm_find_stack_rtl): Likewise.
3283 * print-rtl.c (print_rtx): Likewise.
3284 * reload.c (find_reloads_subreg_address): Likewise.
3285 * rtlanal.c (may_trap_p_1): Likewise.
3286 * var-tracking.c (track_expr_p): Likewise.
3287 * varasm.c (assemble_trampoline_template): Likewise.
3288 * config/arm/arm.c (arm_print_operand): Likewise.
3289 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3290 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3291 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3292 (expand_constant_setmem_prologue): Likewise.
3293 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3294 * config/rs6000/rs6000.c (expand_block_move): Likewise.
3295 (adjacent_mem_locations): Likewise.
3296 * config/s390/s390.c (s390_expand_setmem): Likewise.
3297 (s390_expand_insv): Likewise.
3298 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3299 (*extendqi<mode>2_short_displ): Likewise.
3300 * config/sh/sh.c (expand_block_move): Likewise.
3301 * config/sh/sh.md (extv, extzv): Likewise.
3303 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3305 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3306 (mem_attrs_htab_eq): ...here.
3307 (find_mem_attrs): Replace with...
3308 (set_mem_attrs): ...this function. Take a mem_attrs structure
3309 rather than individual fields.
3310 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3311 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3312 (set_mem_size, change_address, adjust_address_1, offset_address)
3313 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3316 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3318 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3319 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3320 Provide a dummy definition of MEM_ADDR_SPACE for generators.
3321 (target_rtl): Add x_mode_mem_attrs.
3322 (mode_mem_attrs): New macro.
3323 (get_mem_attrs): New function.
3324 * emit-rtl.c (get_mem_attrs): Rename to...
3325 (find_mem_attrs): ...this.
3326 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3327 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3328 (set_mem_size, change_address, adjust_address_1, offset_address)
3329 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3331 (init_emit_regs): Initialize mode_mem_attrs.
3333 2011-07-19 Richard Guenther <rguenther@suse.de>
3335 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3336 TRUTH_*_EXPR handling.
3337 * tree-ssa-operands.c (get_expr_operands): Likewise.
3338 * tree-ssa-pre.c (fully_constant_expression): Likewise.
3339 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3341 (is_and_or_or): Likewise.
3342 (is_norm_cond_subset_of): Likewise.
3344 2011-07-19 Richard Guenther <rguenther@suse.de>
3346 * tree.h (fold_build_pointer_plus_loc): New helper function.
3347 (fold_build_pointer_plus_hwi_loc): Likewise.
3348 (fold_build_pointer_plus): Define.
3349 (fold_build_pointer_plus_hwi): Likewise.
3350 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3351 (fold_builtin_memory_op): Likewise.
3352 (fold_builtin_stpcpy): Likewise.
3353 (fold_builtin_memchr): Likewise.
3354 (fold_builtin_strstr): Likewise.
3355 (fold_builtin_strchr): Likewise.
3356 (fold_builtin_strrchr): Likewise.
3357 (fold_builtin_strpbrk): Likewise.
3358 (fold_builtin_strcat): Likewise.
3359 (expand_builtin_memory_chk): Likewise.
3360 (fold_builtin_memory_chk): Likewise.
3361 * c-typeck.c (build_unary_op): Likewise.
3362 * cgraphunit.c (thunk_adjust): Likewise.
3363 * fold-const.c (build_range_check): Likewise.
3364 (fold_binary_loc): Likewise.
3365 * omp-low.c (extract_omp_for_data): Likewise.
3366 (expand_omp_for_generic): Likewise.
3367 (expand_omp_for_static_nochunk): Likewise.
3368 (expand_omp_for_static_chunk): Likewise.
3369 * tree-affine.c (add_elt_to_tree): Likewise.
3370 * tree-data-ref.c (split_constant_offset_1): Likewise.
3371 * tree-loop-distribution.c (generate_memset_zero): Likewise.
3372 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3373 * tree-predcom.c (ref_at_iteration): Likewise.
3374 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3375 (add_to_parts): Likewise.
3376 (create_mem_ref): Likewise.
3377 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3378 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3379 (number_of_iterations_le): Likewise.
3380 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3381 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3382 (vect_create_addr_base_for_vector_ref): Likewise.
3383 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3384 (vect_create_cond_for_alias_checks): Likewise.
3385 * tree-vrp.c (extract_range_from_assert): Likewise.
3386 * config/alpha/alpha.c (alpha_va_start): Likewise.
3387 (alpha_gimplify_va_arg_1): Likewise.
3388 * config/i386/i386.c (ix86_va_start): Likewise.
3389 (ix86_gimplify_va_arg): Likewise.
3390 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3391 * config/mep/mep.c (mep_expand_va_start): Likewise.
3392 (mep_gimplify_va_arg_expr): Likewise.
3393 * config/mips/mips.c (mips_va_start): Likewise.
3394 (mips_gimplify_va_arg_expr): Likewise.
3395 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3396 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3397 (rs6000_gimplify_va_arg): Likewise.
3398 * config/s390/s390.c (s390_va_start): Likewise.
3399 (s390_gimplify_va_arg): Likewise.
3400 * config/sh/sh.c (sh_va_start): Likewise.
3401 (sh_gimplify_va_arg_expr): Likewise.
3402 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3403 * config/spu/spu.c (spu_va_start): Likewise.
3404 (spu_gimplify_va_arg_expr): Likewise.
3405 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3407 (xstormy16_gimplify_va_arg_expr): Likewise.
3408 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3409 (xtensa_gimplify_va_arg_expr): Likewise.
3411 2011-07-19 Richard Guenther <rguenther@suse.de>
3413 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3414 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3418 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3419 result of BIT_*_EXPR to bitfield precision.
3421 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
3423 PR tree-optimization/49742
3424 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3425 as a potential write.
3427 2011-07-19 Richard Guenther <rguenther@suse.de>
3429 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3430 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3431 (forward_propagate_comparison): Simplify, remove obsolete code.
3433 2011-07-19 Richard Guenther <rguenther@suse.de>
3435 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3436 BIT_XOR_EXPR, same as the RTL expander does.
3437 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3438 (verify_gimple_assign_unary): Likewise.
3439 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3440 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3441 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3443 2011-07-19 Jakub Jelinek <jakub@redhat.com>
3445 PR tree-optimization/49768
3446 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3447 if offset is smaller than bitoffset, but offset+size is bigger
3450 2011-07-19 Ira Rosen <ira.rosen@linaro.org>
3452 PR tree-optimization/49771
3453 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3454 zero step, set segment length to the size of the data-ref's type.
3456 2011-07-18 Martin Jambor <mjambor@suse.cz>
3458 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3460 (ipcp_values_pool): Declare.
3461 (ipcp_sources_pool): Likewise.
3462 (ipcp_lattice): Changed to forward declaration.
3463 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3464 cannot_devirtualize.
3465 (ipa_node_params): New fields descriptors, lattices, known_vals,
3466 clone_for_all_contexts and node dead, removed fields params and
3468 (ipa_set_param_count): Removed.
3469 (ipa_get_param_count): Made to work with descriptors vector.
3470 (ipa_get_param): Updated.
3471 (ipa_param_cannot_devirtualize_p): Removed.
3472 (ipa_param_types_vec_empty): Likewise.
3473 (ipa_set_param_used): New function.
3474 (ipa_get_param_used): Updated to use descriptors vector.
3475 (ipa_func_list): Removed.
3476 (ipa_init_func_list): Removed declaration.
3477 (ipa_push_func_to_list_1): Likewise.
3478 (ipa_pop_func_from_list): Likewise.
3479 (ipa_push_func_to_list): Removed.
3480 (ipa_lattice_from_jfunc): Remove declaration.
3481 (ipa_get_jf_pass_through_result): Declare.
3482 (ipa_get_jf_ancestor_result): Likewise.
3483 (ipa_value_from_jfunc): Likewise.
3484 (ipa_get_lattice): Update.
3485 (ipa_lat_is_single_const): New function.
3486 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3487 (ipa_init_func_list): Likewise.
3488 (ipa_pop_func_from_list): Likewise.
3489 (ipa_get_param_decl_index): Fix coding style.
3490 (count_formal_params): Removed.
3491 (count_formal_params_1): Renamed to count_formal_params.
3492 (ipa_populate_param_decls): Update to use descriptors vector.
3493 (ipa_initialize_node_params): Likewise.
3494 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3495 (ipa_analyze_params_uses): Likewise.
3496 (ipa_free_node_params_substructures): Likewise and free also lattices
3498 (duplicate_array): Removed.
3499 (ipa_edge_duplication_hook): Add the new edge to the list of edge
3501 (ipa_node_duplication_hook): Update to use new lattices.
3502 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3503 (ipa_free_all_structures_after_iinln): Likewise.
3504 (ipa_write_node_info): Update to use new lattices.
3505 (ipa_read_node_info): Likewise.
3506 (ipa_get_jf_pass_through_result): New function.
3507 (ipa_get_jf_ancestor_result): Likewise.
3508 (ipa_value_from_jfunc): Likewise.
3509 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3510 * ipa-cp.c: Reimplemented.
3511 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3512 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3513 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3514 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3515 * doc/invoke.texi (devirt-type-list-size): Removed description.
3516 (ipa-cp-value-list-size): Added description.
3518 2011-07-18 Richard Henderson <rth@redhat.com>
3520 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3521 before calling create_basic_block.
3523 2011-07-18 Jakub Jelinek <jakub@redhat.com>
3526 * tree.c (build_common_builtin_nodes): Register
3527 __builtin_return_address, __cyg_profile_func_enter
3528 and __cyg_profile_func_exit.
3530 2011-07-18 Richard Henderson <rth@redhat.com>
3532 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3533 (add_labels_and_missing_jumps): ... here.
3534 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3536 2011-07-18 Uros Bizjak <ubizjak@gmail.com>
3539 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3540 of DImode hard registers in PLUS address chains.
3542 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3545 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3546 (alpha*-*-freebsd*): Likewise.
3547 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3548 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3549 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3550 crtprec80.o, crtfastmath.o to extra_parts for all targets.
3551 (ia64*-*-elf*): Remove extra_parts.
3552 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3553 (sparc64-*-linux*): Likewise.
3554 (sparc64-*-freebsd*): Likewise.
3557 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3558 (ia64*-*-linux*): Likewise.
3559 (mips64*-*-linux*): Likewise.
3560 (mips*-*-linux*): Likewise.
3562 2011-07-18 David Edelsohn <dje.gcc@gmail.com>
3564 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3566 2011-07-18 Richard Guenther <rguenther@suse.de>
3568 * gimplify.c (gimplify_expr): Use input_location, not saved_location
3569 when building new trees.
3571 2011-07-18 Richard Guenther <rguenther@suse.de>
3573 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3574 expansion result to bitfield precision if required.
3576 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3578 * config.gcc (i[3456x]86-*-netware*): Remove.
3580 * gthr-nks.h: Remove.
3581 * configure.ac (enable_threads): Remove nks.
3582 * configure: Regenerate.
3584 * config/i386/i386.c (ix86_encode_section_info): Remove netware
3586 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3587 <netware.h> reference.
3589 * config/i386/netware-libgcc.c,
3590 gcc/config/i386/netware-libgcc.def,
3591 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3592 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3593 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3594 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3596 * doc/extend.texi (Function Attributes,
3597 callee_pop_aggregate_return): Remove i?86-netware reference.
3598 * doc/install.texi (Configuration, --enable-threads): Remove nks.
3600 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3604 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3606 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3609 2011-07-17 Eric Botcazou <ebotcazou@adacore.com>
3612 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3614 2011-07-16 Matthias Klose <doko@ubuntu.com>
3616 * doc/install.texi: Document --enable-static-libjava.
3618 2011-07-15 Richard Henderson <rth@redhat.com>
3620 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3621 Replace all three arguments by returning a VEC of edges.
3622 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3623 pointers and counts.
3624 (fix_edges_for_rarely_executed_code): Merge ...
3625 (rest_of_handle_partition_blocks): ... into...
3626 (partition_hot_cold_basic_blocks): ... here. Return todo items if
3627 any work was performed.
3628 (pass_partition_blocks): Clear todo_flags_finish.
3630 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
3631 Jakub Jelinek <jakub@redhat.com>
3632 Jonathan Wakely <jwakely.gcc@gmail.com>
3635 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3636 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3638 2011-07-15 Jason Merrill <jason@redhat.com>
3641 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3642 rather than --tool_opts.
3644 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
3646 * doc/plugins.texi (Building GCC plugins): gengtype needs its
3647 corresponding gtype.state.
3649 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3652 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3654 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3657 * doc/md.texi (Standard Names): Document window_save.
3658 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3659 expand_debug_expr and expand_debug_source_expr. If the target has
3660 a window_save instruction, adjust the ENTRY_VALUE_EXP.
3661 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3662 SSA_NAME_VAR is a parameter.
3663 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3664 * var-tracking.c (parm_reg_t): New type and associated vector type.
3665 (windowed_parm_regs): New variable.
3666 (adjust_insn): If the target has a window_save instruction and this
3667 is the instruction, make its effect on parameter registers explicit.
3668 (next_non_note_insn_var_location): New function.
3669 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3670 (vt_add_function_parameter): If the target has a window_save insn,
3671 adjust the incoming RTL and record that in windowed_parm_regs.
3672 (vt_finalize): Free windowed_parm_regs.
3674 2011-07-15 Bernd Schmidt <bernds@codesourcery.com>
3676 * doc/invoke.texi (C6X Options): New section.
3677 * doc/md.texi (TI C6X family): New section.
3678 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3680 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3681 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3682 Provide C6X definitions.
3683 * config/c6x/c6x.md: New file.
3684 * config/c6x/constraints.md: New file.
3685 * config/c6x/predicates.md: New file.
3686 * config/c6x/c6x-sched.md.in: New file.
3687 * config/c6x/c6x-sched.md: New file.
3688 * config/c6x/gensched.sh: New file.
3689 * config/c6x/c6x-mult.md.in: New file.
3690 * config/c6x/genmult.sh: New file.
3691 * config/c6x/c6x-mult.md: New file.
3692 * config/c6x/sync.md: New file.
3693 * config/c6x/c6x-protos.h: New file.
3694 * config/c6x/sfp-machine.h: New file.
3695 * config/c6x/c6x.c: New file.
3696 * config/c6x/c6x.h: New file.
3697 * config/c6x/crti.s: New file.
3698 * config/c6x/crtn.s: New file.
3699 * config/c6x/lib1funcs.asm: New file.
3700 * config/c6x/c6x-modes.def: New file.
3701 * config/c6x/genopt.sh: New file.
3702 * config/c6x/c6x.opt: New file.
3703 * config/c6x/c6x-tables.opt: New file.
3704 * config/c6x/c6x-opts.h: New file.
3705 * config/c6x/c6x-isas.def: New file.
3706 * config/c6x/elf.h: New file.
3707 * config/c6x/elf-common.h: New file.
3708 * config/c6x/uclinux-elf.h: New file.
3709 * config/c6x/t-c6x: New file.
3710 * config/c6x/t-c6x-elf: New file.
3711 * config/c6x/t-c6x-uclinux: New file.
3712 * config/c6x/t-c6x-softfp: New file.
3713 * config/c6x/gtd.c: New file.
3714 * config/c6x/gtf.c: New file.
3715 * config/c6x/ltd.c: New file.
3716 * config/c6x/ltf.c: New file.
3717 * config/c6x/ged.c: New file.
3718 * config/c6x/gef.c: New file.
3719 * config/c6x/led.c: New file.
3720 * config/c6x/lef.c: New file.
3721 * config/c6x/eqd.c: New file.
3722 * config/c6x/eqf.c: New file.
3723 * config/c6x/libgcc-c6xeabi.ver: New file.
3726 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3727 PR rtl-optimization/11320
3728 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3729 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3730 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3731 current_sched_info->compute_jump_reg_dependencies. Record which
3732 registers are used and which registers are set by the jump.
3733 Clear deps->reg_conditional_sets after a barrier.
3734 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3735 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3736 (init_deps): Initialize reg_conditional_sets.
3737 (free_deps): Clear reg_conditional_sets.
3738 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3739 Mark registers live on entry of the fallthrough block and conditionally
3740 set as set by the jump. Mark registers live on entry of non-fallthrough
3741 blocks as used by the jump.
3742 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3743 Mark new parameters as unused.
3745 2011-07-14 Andrew Pinski <pinskia@gmail.com>
3748 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3749 Use fold_build2_loc instead of build2.
3750 Use the correct type for the new tree.
3752 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3754 PR rtl-optimization/11320
3755 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3756 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3758 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
3761 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3763 (*rotw<mode>): Use const_int_operand for operand2.
3764 Use match_scatch for operand3.
3765 (*rotb<mode>): Ditto
3766 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3768 2011-07-14 Richard Guenther <rguenther@suse.de>
3770 PR tree-optimization/49651
3771 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3772 handle dereferences with subvariables.
3774 2011-07-14 Richard Guenther <rguenther@suse.de>
3776 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3777 (fold_stmt_1): Do it here directly on gimple and as a first thing.
3779 2011-07-14 Richard Guenther <rguenther@suse.de>
3781 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3782 not bool_var when folding bool_var != 1 or bool_var == 0.
3784 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3786 * haifa-sched.c (schedule_insns): Remove outdated comment.
3787 (schedule_block): When computing a known value for TODO_SPEC,
3788 just set it rather than using logical operations.
3789 (try_ready): Likewise. Use a local variable rather than a
3790 pointer to TODO_SPEC. Reorder an if statement to move the
3791 easy case to the then block.
3792 * sched-deps.c (dep_spec_p): New static function.
3793 (update_dep): Use it to decide whether to call
3794 change_spec_dep_to_hard.
3795 (get_back_and_forw_lists): Use it.
3796 (sd_resolve_dep): Likewise.
3797 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3798 (haifa_note_mem_dep): Likewise.
3799 (check_dep): Likewise.
3800 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3801 (sched_free_deps): Free in two passes.
3803 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
3806 * expr.c (all_zeros_p): Undo bogus part of last change.
3808 2011-07-14 Matthias Klose <doko@ubuntu.com>
3810 * doc/extend.texi (optimize attribute): Fix typo.
3812 2011-07-14 Richard Guenther <rguenther@suse.de>
3814 * gimplify.c (gimplify_expr): Only do required conversions.
3816 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
3819 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3820 i.e. use default_elf_select_section.
3821 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3822 (READONLY_DATA_SECTION_ASM_OP): Remove.
3823 (TARGET_ASM_NAMED_SECTION): Move from here...
3824 * config/avr/avr.c: ...to here.
3825 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
3826 (avr_asm_named_section): Make static.
3828 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3831 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3832 and crtfastmath.o for Linux/x86.
3834 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3836 * haifa-sched.c: Include "hashtab.h"
3837 (sched_no_dce): New global variable.
3838 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3839 SHADOW_P): New macros.
3840 (last_clock_var, cycle_issued_insns): Move declarations.
3841 (must_backtrack): New static variable.
3842 (struct delay_pair): New structure.
3843 (delay_htab, delay_htab_i2): New static variables.
3844 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
3845 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
3847 (dep_cost_1): If delay pairs exist, try to look up the insns and
3848 use the correct pair delay if we find them.
3849 (rank-for_schedule): Tweak priority for insns that must be scheduled
3850 soon to avoid backtracking.
3851 (queue_insn): Detect conditions which force backtracking.
3852 (ready_add): Likewise.
3853 (struct sched_block_state): Add member shadows_only_p.
3854 (struct haifa_save_data): New structure.
3855 (backtrack_queue): New static variable.
3856 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
3857 unschedule_insns_until, restore_last_backtrack_point,
3858 free_topmost_backtrack_point, free_backtrack_queue,
3859 estimate_insn_tick, estimate_shadow_tick): New functions.
3860 (prune_ready_list): New arg shadows_only_p. All callers changed.
3861 If true, remove everything that isn't SHADOW_P. Look up delay
3862 pairs and estimate ticks to avoid scheduling the first insn too early.
3863 (verify_shadows): New function.
3864 (schedule_block): Add machinery to enable backtracking.
3865 (sched_init): Take sched_no_dce into account when setting
3867 (free_delay_pairs): New function.
3868 (init_h_i_d): Initialize INSN_EXACT_TICK.
3869 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
3870 * sched-deps.c (sd_unresolve_dep): New function.
3871 * sched-int. (struct haifa_sched_info): New fields save_state
3873 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
3874 feeds_backtrack_insn and shadow_p.
3875 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
3876 (sched_no_dce): Declare variable.
3877 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
3878 sd_unresolve_dep): Declare functions.
3879 * modulo-sched.c (sms_sched_info): Clear the two new fields.
3880 * sched-rgn.c (rgn_const_sched_info): Likewise.
3881 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3882 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
3883 (ebb_sched_info): Add them for the two new fields.
3884 (add_deps_for_risky_insns): Call add_delay_dependencies.
3886 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3888 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
3890 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
3891 (rs6000_call_indirect_aix): Ditto.
3892 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
3893 (call_indirect_aix<ptrsize>_internal): Ditto.
3894 (call_indirect_aix<ptrsize>_nor11): Ditto.
3895 (call_indirect_aix<ptrsize>_internal2): Ditto.
3896 (call_value_indirect_aix<ptrsize>): Ditto.
3897 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3898 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3899 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3900 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
3902 2011-07-13 Jason Merrill <jason@redhat.com>
3904 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
3906 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3908 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
3909 * config/spu/spu.md ("clrsb<mode>2"): New expander.
3911 2011-07-13 Thomas Schwinge <thomas@schwinge.name>
3913 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
3914 * configure: Regenerate.
3916 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3918 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
3919 (asm_file_start): Remove.
3920 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
3921 free_bb_for_insn around code that modifies insns before
3922 restarting df analysis.
3924 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3927 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
3928 (LINK_SPEC): ... here.
3930 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
3932 * haifa-sched.c (struct sched_block_state): New.
3933 (schedule_block): Move some local variables into such a structure.
3935 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3937 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
3938 * config/i386/t-crtpc: Remove.
3939 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3940 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
3942 (x86_64-*-darwin*): Likewise.
3943 (i[34567]86-*-linux*): Likewise.
3944 (x86_64-*-linux*): Likewise.
3946 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
3947 Handle -mpc32, -mpc64, -mpc80.
3949 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3951 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
3952 * config/alpha/t-crtfm: Remove.
3953 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
3954 * config/i386/t-crtfm: Remove.
3955 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
3956 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
3957 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
3958 * config/sparc/t-crtfm: Remove.
3960 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
3961 (alpha*-*-freebsd*): Likewise.
3962 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
3963 (x86_64-*-darwin*): Likewise.
3964 (i[34567]86-*-linux*): Likewise.
3965 (x86_64-*-linux*): Likewise.
3966 (x86_64-*-mingw*): Likewise.
3967 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
3968 (ia64*-*-freebsd*): Likewise.
3969 (ia64*-*-linux*): Likewise.
3970 (mips64*-*-linux*): Likewise.
3971 (mips*-*-linux*): Likewise.
3972 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
3973 (sparc64-*-linux*): Likewise.
3974 (sparc64-*-freebsd*): Likewise.
3976 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3978 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
3979 * config/darwin-crt3.c: Move to ../libgcc/config.
3980 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3981 ($(T)crt3$(objext)): Remove.
3982 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
3983 ($(T)crt2$(objext)): Remove.
3984 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
3985 (powerpc64-*-darwin*): Likewise.
3987 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
3989 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
3991 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
3992 (addsi_1_zext): This.
3994 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
3996 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
3997 * doc/tm.texi: Regenerate.
3998 * target.def (mergeable_rodata_prefix): New defhookpod.
3999 * varasm.c (mergeable_string_section, mergeable_constant_section):
4000 Use it. Allocate name with alloca.
4002 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
4004 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4006 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4008 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4011 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4013 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
4014 (count_type_elements): Delete.
4015 (complete_ctor_at_level_p): Declare.
4016 * expr.c (flexible_array_member_p): New function, split out from...
4017 (count_type_elements): ...here. Make static. Replace allow_flexarr
4018 parameter with for_ctor_p. When for_ctor_p is true, return the
4019 number of elements that should appear in the top-level constructor,