1 2011-05-31 Richard Guenther <rguenther@suse.de>
3 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
5 (forward_propagate_into_comparison_1): ... this.
6 (forward_propagate_comparison): Rename to ...
7 (forward_propagate_into_comparison): ... this. Split out
8 real forward propagation code to ...
9 (forward_propagate_comparison): ... this.
10 (forward_propagate_into_gimple_cond): Remove looping.
11 (forward_propagate_into_cond): Likewise.
12 (simplify_not_neg_expr): Return whether we have done something.
13 (simplify_gimple_switch): Likewise.
14 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
15 (ssa_forward_propagate_and_combine): ... this. Re-structure
16 to do a forward forward-propagation walk on BBs and a backward
17 stmt combining walk on BBs. Consistently re-scan changed
19 (pass_forwprop): Adjust.
21 2011-05-30 Ian Lance Taylor <iant@google.com>
23 * godump.c (go_format_type): Correct length of name added to
24 obstack for anonymous field.
26 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
29 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
30 part of the second operand is 0.
32 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
34 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
35 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
36 to memory for !TARGET_MEMORY_MISMATCH_STALL.
37 (*movdf_internal_rex64): Do not penalize F->r alternative.
38 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
39 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
40 when optimizing function for size. Do not move CONST_DOUBLEs
41 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
42 (FP move splitters): Merge {TF,XF,DF}mode move splitters. Do not
43 handle SUBREGs. Do not check for MEM_P operands in the insn condition,
44 check for ANY_FP_REGNO_P instead.
45 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
46 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
48 * config/i386/i386.c (ix86_option_override_internal): Do not
49 set TARGET_INTEGER_DFMODE_MOVES here.
51 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
54 * config/i386/i386.md (*movtf_internal): Handle misaligned
57 2011-05-30 Jakub Jelinek <jakub@redhat.com>
59 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
60 DW_TAG_rvalue_reference_type even for
61 -gdwarf-4 -fno-debug-types-section.
63 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
65 PR tree-optimization/46728
66 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
67 (build_and_insert_binop): New.
68 (gimple_expand_builtin_pow): Reorder args for
69 build_and_insert_call; use build_and_insert_binop; add more
70 optimizations for fractional exponents.
72 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
77 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
79 * tree.h (struct tree_identifier): Inherit from tree_typed, not
81 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
82 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
83 TS_BASE instead of TS_COMMON.
84 * varasm.c (assemble_name): Remove assert.
86 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
88 * config.gcc: Keep obselete list sorted.
90 2011-05-30 Jakub Jelinek <jakub@redhat.com>
91 Eric Botcazou <ebotcazou@adacore.com>
93 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
94 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
95 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
96 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
97 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
99 2011-05-30 Richard Guenther <rguenther@suse.de>
101 * gimple.c (gimple_types_compatible_p_1): Compare record
102 and union type members properly.
104 2011-05-30 Richard Guenther <rguenther@suse.de>
106 PR tree-optimization/49210
107 * ipa-split.c (split_function): Care for the case where the
108 call result is not trivially convertible to the result holding
111 2011-05-30 Richard Guenther <rguenther@suse.de>
113 PR tree-optimization/49218
114 * tree-vrp.c (adjust_range_with_scev): Properly check whether
117 2011-05-30 Richard Guenther <rguenther@suse.de>
119 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
120 New function split out from ...
121 (forward_propagate_into_gimple_cond): ... here. Adjust.
122 (forward_propagate_into_cond): Likewise.
123 (forward_propagate_comparison): Also propagate into
124 comparisons on assignment RHS. Change return value to
125 behave similar to forward_propagate_into_cond.
126 (tree_ssa_forward_propagate_single_use_vars): Handle
127 strict-overflow warnings properly for forward_propagate_comparison.
129 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
131 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
133 * configure: Regenerate.
135 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
137 PR tree-optimization/49199
138 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
139 non-reduction operands are either defined in the loop or by induction.
141 2011-05-29 Xinliang David Li <davidxl@google.com>
143 * opts-global.c (handle_common_deferred_options): Handle new options.
144 * passes.c (register_one_dump_file): Call register_pass_name.
145 (execute_one_pass): Check explicit enable/disable flag.
146 (passr_hash): New function.
148 (register_pass_name): Ditto.
149 (get_pass_by_name): Ditto.
152 (enable_pass): Ditto.
153 (disable_pass): Ditto.
154 (is_pass_explicitly_enabled_or_disabled): Ditto.
156 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
158 * config/i386/i386.md (*movoi_internal_avx): Use
159 standard_sse_constant_opcode for alternative 0.
160 (*movti_internal_sse): Ditto.
161 (*movti_internal_rex64): Use standard_sse_constant_opcode for
163 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
165 (*movsi_internal): Ditto.
166 (*movdi_internal): Ditto. Add ssecvt type moves.
168 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
171 * rtlanal.c (simplify_subreg_regno): Adjust comment.
173 2011-05-29 Jakub Jelinek <jakub@redhat.com>
175 PR rtl-optimization/49095
176 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
177 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
179 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
182 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
183 recurse_p argument. Only follow register copies if it is set,
184 and prevent mips_find_pic_call_symbol from recursing.
185 (mips_find_pic_call_symbol): Add a recurse_p argument.
186 Pass it to mips_pic_call_symbol_from_set.
187 (mips_annotate_pic_calls): Update accordingly.
189 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
191 * emit-rtl.c (try_split): Use a loop to search for
192 NOTE_INSN_CALL_ARG_LOCATIONs.
194 2011-05-29 Richard Guenther <rguenther@suse.de>
196 PR tree-optimization/49217
197 * ipa-pure-const.c (propagate_pure_const): Fix typos.
199 2011-05-28 Jan Hubicka <jh@suse.cz>
201 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
203 (string_slot_free): Remove
204 (create_output_block): Initialize obstack.
205 (destroy_output_block): Free obstack.
206 (lto_string_index): Add PERSISTENT parameter; do not duplicate
207 the string unless it needs to be added into the hash.
208 (lto_output_string_with_length): Add persistent attribute;
210 (lto_output_string): Add PERSISTENT parameter.
211 (output_string_cst, output_identifier): Simplify.
212 (lto_output_location_bitpack): Update.
213 (lto_output_builtin_tree): Update.
214 * lto-streamer.h (struct output_block): Add obstack.
215 (lto_output_string, lto_output_string_with_length): Remove
216 declarations; functions are static now.
218 2011-05-28 Jan Hubicka <jh@suse.cz>
220 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
221 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
222 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
223 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
224 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
225 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
226 unpack_ts_decl_with_vis_value_fields,
227 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
228 lto_get_builtin_tree): Use enum and variable length i/o.
229 * basic-block.h (profile_status_d): Add PROFILE_LAST.
230 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
232 (bp_pack_enum, bp_unpack_enum): New macros.
234 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
236 * genrecog.c: Remove redundant forward declarations.
238 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
240 * config.gcc: Deprecate mips*-*-openbsd*.
242 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
245 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
248 2011-05-27 Andrew Pinski <pinskia@gmail.com>
251 * gengtype.c (vec_prefix_type): New function.
252 (note_def_vec): Use vec_prefix_type and change the length
253 attribute to be based on the prefix.
254 * vec.c: Include coretypes.h before vec.h.
255 (struct vec_prefix): Remove.
256 (vec_gc_p_reserve): Change the offsetof to sizeof.
257 (vec_gc_p_reserve_exact): Likewise.
258 (vec_heap_p_reserve): Likewise.
259 (vec_heap_p_reserve_exact): Likewise.
260 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
261 (vec_stack_p_reserve): Change the offsetof to sizeof.
262 (vec_stack_p_reserve_exact): Likewise.
263 * vec.h (struct vec_prefix): New struct definition.
264 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
265 (VEC_T_GTY(T,B)): Likewise.
266 (DEF_VEC_FUNC_P(T)): Use prefix field.
267 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
268 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
270 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
272 PR tree-optimization/46728
273 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
274 (powi_as_mults): Add gimple_set_location.
275 (build_and_insert_call): New.
276 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
277 0.5, 0.25, 0.75, 1./3., or 1./6.
279 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
281 * doc/contrib.texi: Update copyright years.
282 (Contributors): Add Zdenek Sojka.
284 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
286 * c-decl.c (c_push_function_context): Copy the current statement
288 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
289 (finish_struct): Call building_stmt_list_p instead of checking
291 * c-parser.c (c_parser_postfix_expression): Likewise.
292 * c-typeck.c (c_end_compound_stmt): Likewise.
293 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
294 * tree-iterator.c (stmt_list_cache): Change to a VEC.
295 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
296 (free_stmt_list): Likewise.
297 * tree.h (struct tree_statement_list): Include typed_tree instead
299 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
300 as TS_TYPED instead of TS_COMMON.
302 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
303 Uros Bizjak <ubizjak@gmail.com>
305 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
306 (HAVE_AS_IX86_TLSGDPTL): Define.
307 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
308 (HAVE_AS_IX86_TLSLDMPLT): Define.
309 * configure: Regenerate.
310 * config.in: Regenerate.
311 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
312 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
313 TARGET_SUN_TLS, use @tlsgdplt or @plt.
314 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
315 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
317 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
319 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
321 * sched-int.h (struct _haifa_deps_insn_data): New members cond
323 (INSN_COND, INSN_REVERSE_COND): New macros.
324 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
326 (sched_get_condition_with_rev): Cache the results, and look them up
328 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
329 are clobbered by the current insn.
330 * target.def (exposed_pipline): New sched data hook.
331 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
332 * doc/tm.texi: Regenerate.
334 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
336 PR tree-optimization/49170
337 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
340 2011-05-27 Richard Guenther <rguenther@suse.de>
343 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
346 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
348 * haifa-sched.c (sched_scan_info): Remove.
349 (schedule_block): Call sched_extend_luids rather than sched_init_luids
351 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
353 (sched_scan): Remove.
354 (sched_extend_luids): Renamed from luids_extend_insn and no longer
355 static. All callers changed.
356 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
357 static. All callers changed.
358 (sched_init_luids): Remove all arguments except the first. All
359 callers changed. Don't use sched_scan.
360 (haifa_init_h_i_d): Likewise.
361 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
362 manually rather than using sched_init_luids. Likewise with
363 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
364 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
365 rather than sched_init_luids with NULL args.
366 * sel-sched-ir.c (new_insns): Remove variable.
367 (sched_scan): New static function, previously in haifa-sched.c. Remove
368 all arguments but the first two; all callers changed.
369 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
370 rather than sched_init_luids.
371 (sel_init_bbs): Remove second argument. All callers changed.
372 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
374 (create_insn_rtx_from_pattern): Likewise.
375 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
376 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
377 (sched_init_insn_luid, sched_extend_luids): Declare.
378 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
381 2011-05-27 Richard Guenther <rguenther@suse.de>
384 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
385 A CMP B ? (T) true : (T) false for non-integral types T again.
387 2011-05-27 Jan Hubicka <jh@suse.cz>
389 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
390 so 0 means NULL string.
391 (lto_output_string_with_length): ... here.
392 (lto_output_string, output_string_cst, output_identifier): Update
393 handling of NULL strings.
394 (lto_output_location_bitpack): New function.
395 (lto_output_location): Use it.
396 (lto_output_tree_ref): Use output_record_start.
397 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
399 * lto-streamer-in.c (string_for_index): Break out from ...; offset
401 (input_string_internal): ... here;
402 (input_string_cst, input_identifier, lto_input_string): Update handling
404 (lto_input_location_bitpack): New function
405 (lto_input_location): Use it.
406 (unpack_ts_type_common_value_fields): Pack align & alias in var len
408 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
409 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
410 (bp_pack_value): Sanity check the value range.
411 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
413 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
416 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
418 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
419 call_arg_location instructions down the floor.
421 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
423 PR rtl-optimization/49154
424 * ira.c (setup_pressure_classes): Process class without sublcasses
425 as a candidate for pressure classes.
427 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
429 PR rtl-optimization/48575
430 * genrecog.c (position_type): New enum.
431 (position): New structure.
432 (decision): Use position structure instead of a string.
433 (root_pos, peep2_insn_pos_list): New variables.
434 (next_position, compare_positions): New functions.
435 (new_decision): Use position structures instead of strings.
436 (maybe_both_true): Likewise.
437 (change_state): Likewise.
438 (write_tree): Likewise.
439 (make_insn_sequence): Likewise.
441 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
443 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
444 TS_BASE instead of TS_COMMON.
445 (find_decls_types_r): Check for TS_TYPED structure before looking at
447 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
449 (BLOCK_CHAIN): Use new chain field.
451 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
453 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
454 moves expensive on Power7 also.
456 2011-05-26 Richard Guenther <rguenther@suse.de>
458 * fold-const.c (fold_unary_loc): Remove bogus code.
460 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
462 * tree.h (struct tree_identifier): Inherit from tree_typed, not
464 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
465 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
466 TS_BASE instead of TS_COMMON.
467 * varasm.c (assemble_name): Remove assert.
469 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
471 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
473 * libgcc-std.ver: Delete file.
475 2011-05-26 Richard Guenther <rguenther@suse.de>
477 PR tree-optimization/48702
478 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
479 only when we know the base address is within bounds.
480 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
481 assume the base address of TARGET_MEM_REFs is in bounds.
483 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
486 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
487 declaration in TARGET_SOLARIS.
489 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
491 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
492 The instruction is then expanded explicitly.
493 (supported_compare): Callable instruction.
496 2011-05-26 Jakub Jelinek <jakub@redhat.com>
499 * gimplify.c (shortcut_cond_r): Don't special case
500 COND_EXPRs if they have void type on one of their arms.
502 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
504 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
505 to reduce duplication, and to achieve a slightly more logical order
508 2011-05-26 Jakub Jelinek <jakub@redhat.com>
510 PR tree-optimization/49161
511 * tree-vrp.c (struct case_info): New type.
512 (compare_case_labels): Sort case_info structs instead of
513 trees, and not primarily by CASE_LABEL uids but by
514 label_for_block indexes.
515 (find_switch_asserts): Put case labels into struct case_info
516 array instead of TREE_VEC, adjust sorting, compare label_for_block
517 values instead of CASE_LABELs.
519 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
521 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
522 ("orndi3_neon"): Likewise.
523 ("bic<mode>3_neon"): Likewise.
525 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
527 PR tree-optimization/49038
528 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
529 Ensure at least one epilogue iteration if required by data
531 * tree-vectorizer.h (struct _loop_vec_info): Add new field
532 to mark loops that require peeling for gaps.
533 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
534 (vect_get_known_peeling_cost): Take peeling for gaps into
536 (vect_transform_loop): Generate epilogue if required by data
538 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
539 loop as requiring an epilogue if there are gaps in the end of
542 2011-05-25 Ian Lance Taylor <iant@google.com>
544 * godump.c (go_format_type): Output the first field with a usable
547 2011-05-25 Ian Lance Taylor <iant@google.com>
549 * godump.c (go_format_type): Check for invalid type names, pointer
550 target types, and struct field types.
552 2011-05-25 Jason Merrill <jason@redhat.com>
554 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
556 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
558 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
560 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
562 * config/i386/i386.md (*movqi_extv_1)): Put back
563 "register_operand" check in "type" calculation.
564 (*movqi_extzv_2): Likewise.
566 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
568 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
570 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
573 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
574 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
575 __divxc3, __divtc3): Wrap definitions in #ifndef.
577 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
580 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
581 "register_operand" check and replace q_regs_operand with
582 QIreg_operand in "type" calculation.
583 (*movqi_extv_1): Likewise.
584 (*movqi_extzv_2_rex64): Likewise.
585 (*movqi_extzv_2): Likewise.
587 * config/i386/predicates.md (QIreg_operand): New.
589 2011-05-25 Richard Guenther <rguenther@suse.de>
591 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
592 type-based offset disambiguation, streamline MEM_REF and
593 TARGET_MEM_REF handling.
595 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
597 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
598 (bdesc_special_args): Add pause intrinsic.
600 * config/i386/i386.md (UNSPEC_PAUSE): New.
603 * config/i386/ia32intrin.h (__pause): Likewise.
605 * doc/extend.texi (X86 Built-in Functions): Add documentation for
608 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
610 PR tree-optimization/46728
611 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
612 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
614 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
616 * tree.h (struct tree_exp): Inherit from struct tree_typed.
617 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
618 instead of TS_COMMON.
620 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
622 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
623 LIBGCC2_GNU_PREFIX is defined.
625 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
626 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
627 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
628 __clz_tab): Define using __N.
629 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
630 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
631 * target.def (libfunc_gnu_prefix): New hook.
632 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
633 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
634 * doc/tm.texi: Regenerate.
635 * system.h (LIBGCC2_GNU_PREFIX): Poison.
636 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
638 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
639 (init_optabs): Likewise for the bswap libfuncs.
640 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
642 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
643 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
644 * libgcc-std.ver: Remove.
645 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
646 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
648 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
649 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
650 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
651 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
652 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
653 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
654 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
655 * config/fixed-bit.h (FIXED_OP): Define differently depending on
656 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
657 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
659 2011-05-25 Jan Hubicka <jh@suse.cz>
661 * lto-streamer-out.c (output_record_start): Use lto_output_enum
662 (lto_output_tree): Use output_record_start.
663 * lto-streamer-in.c (input_record_start): Use lto_input_enum
664 (lto_get_pickled_tree): Use input_record_start.
665 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
666 (lto_value_range_error): New function.
667 * lto-streamer.h (lto_value_range_error): Declare.
668 (lto_output_int_in_range, lto_input_int_in_range): New functions.
669 (lto_output_enum, lto_input_enum): New macros.
671 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
673 * common.opt (flag_stack_usage_info): New variable.
674 (-Wstack-usage): New option.
675 * doc/invoke.texi (Warning options): Document -Wstack-usage.
676 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
677 <OPT_fstack_usage>: Likewise.
678 * toplev.c (output_stack_usage): Handle -Wstack-usage.
679 * calls.c (expand_call): Test flag_stack_usage_info variable instead
681 (emit_library_call_value_1): Likewise.
682 * explow.c (allocate_dynamic_stack_space): Likewise.
683 * function.c (instantiate_virtual_regs ): Likewise.
684 (prepare_function_start): Likewise.
685 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
686 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
687 * config/arm/arm.c (arm_expand_prologue): Likewise.
688 (thumb1_expand_prologue): Likewise.
689 * config/avr/avr.c (expand_prologue): Likewise.
690 * config/i386/i386.c (ix86_expand_prologue): Likewise.
691 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
692 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
693 * config/mips/mips.c (mips_expand_prologue): Likewise.
694 * config/pa/pa.c (hppa_expand_prologue): Likewise.
695 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
696 * config/s390/s390.c (s390_emit_prologue): Likewise.
697 * config/sh/sh.c (sh_expand_prologue): Likewise.
698 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
699 * config/spu/spu.c (spu_expand_prologue): Likewise.
701 2011-05-25 Richard Guenther <rguenther@suse.de>
703 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
704 (gimple_canonical_types_compatible_p): Likewise.
706 2011-05-25 Jan Hubicka <jh@suse.cz>
709 * ipa.c (function_and_variable_visibility): Only add to same
710 comdat group list if DECL_ONE_ONLY.
712 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
714 PR rtl-optimization/49014
715 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
717 2011-05-25 Jakub Jelinek <jakub@redhat.com>
720 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
722 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
724 PR rtl-optimization/48757
725 * ira-build.c (loop_with_eh_edge_p): Rename to
726 loop_with_complex_edge_p, check edges on complexity, make function
728 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
731 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
733 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
734 force flag_ira_share_save_slots to 0.
736 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
738 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
739 (vt_initialize): Set PROLOGUE_BB unconditionally.
740 Add block comment about CFA_BASE_RTX machinery.
741 Reset FP_CFA_OFFSET to -1 on all invalid paths.
742 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
744 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
747 * c-parser.c (c_parser_objc_class_instance_variables): More robust
748 parsing of syntax error in ObjC instance variable lists. In
749 particular, avoid an infinite loop if there is a stray ']'.
750 Updated error message.
752 2011-05-24 Ian Lance Taylor <iant@google.com>
754 * godump.c (go_define): Don't accept a string immediately after
757 2011-05-24 Ian Lance Taylor <iant@google.com>
759 * godump.c (struct godump_container): Add invalid_hash field.
760 (go_format_type): Return false if type is found in invalid_hash.
761 (go_output_typedef): Add invalid type to invalid_hash.
762 (go_finish): Create and delete invalid_hash.
764 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
766 PR tree-optimization/46728
767 * tree-ssa-math-opts.c (powi_table): New.
768 (powi_lookup_cost): New.
770 (powi_as_mults_1): New.
771 (powi_as_mults): New.
772 (gimple_expand_builtin_powi): New.
773 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
774 (gate_cse_sincos): Remove sincos/cexp restriction.
776 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
779 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
781 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
782 * mips-tdump.c: Likewise.
784 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
787 * config/i386/driver-i386.c (host_detect_local_cpu): Always
788 add -mno-XXX. Handle FMA.
790 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
792 PR rtl-optimization/48633
793 * ira-build.c (loop_with_eh_edge_p): New function.
794 (mark_loops_for_removal): Use it.
796 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
798 PR rtl-optimization/48971
799 * ira.c (setup_pressure_classes): Don't check register move cost
800 for classes with one registers. Don't add pressure class if there
801 is a pressure class with the same available hard registers.
802 Check contains_reg_of_mode. Fix a typo in collecting
803 temp_hard_regset. Ignore hard registers not belonging to a class.
805 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
808 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
810 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
811 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
813 PR gcov-profile/48845
814 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
816 2011-05-24 Richard Guenther <rguenther@suse.de>
818 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
819 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
820 (gimple_types_compatible_p_1): Adjust.
821 (iterative_hash_canonical_type): Do not bother about complete vs.
823 (gimple_canonical_types_compatible_p): Likewise.
825 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
827 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
829 2011-05-24 Richard Guenther <rguenther@suse.de>
832 * gimple.c (gimple_register_canonical_type): Revert
834 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
835 does not for a tree for the case where it matters. Cache
836 pointer-type alias-sets.
838 2011-05-24 Joseph Myers <joseph@codesourcery.com>
840 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
841 (OBJS): Remove options.o, opts-common.o and prefix.o.
842 (OBJS-libcommon-target): New.
843 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
844 (BACKEND): Include libcommon-target.a.
845 (MOSTLYCLEANFILES): Include libcommon-target.a.
846 (libcommon-target.a): New.
847 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
850 2011-05-23 Joseph Myers <joseph@codesourcery.com>
852 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
853 parts of output shared with the driver.
854 * optc-gen.awk: Don't generate parts of output not shared with the
856 * opth-gen.awk: Remove GCC_DRIVER conditionals.
857 * doc/options.texi (SourcerInclude): Mention options-save.c.
858 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
859 (OBJS): Add options-save.o.
860 (options-save.c, options-save.o): New.
861 (options.o): Update dependencies.
862 (gcc-options.o): Remove.
863 (mostlyclean): Remove options-save.c.
865 2011-05-23 Jakub Jelinek <jakub@redhat.com>
868 * dbxout.c: Include cgraph.h.
869 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
870 and without value expr, return NULL if no varpool node exists for
871 it or if it is not needed.
872 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
875 * c-decl.c (start_decl): Convert expr to void_type_node.
877 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
879 PR rtl-optimization/48826
880 * emit-rtl.c (try_split): When splitting a call that is followed
881 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
883 2011-05-23 Jakub Jelinek <jakub@redhat.com>
885 * cfgexpand.c (expand_debug_expr): For unused non-addressable
886 parameters passed in memory prefer using DECL_INCOMING_RTL over
887 the pseudos it will be copied into.
889 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
892 * config/i386/i386.c (ix86_option_override_internal): Save the
893 initial options after checking vzeroupper.
895 2011-05-23 David Li <davidxl@google.com>
897 PR tree-optimization/48988
898 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
899 Initialize has_valid_pred for each pred chain.
901 2011-05-23 Richard Guenther <rguenther@suse.de>
903 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
904 (iterative_hash_gimple_type): Always hash type names.
906 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
908 * c-typeck.c (build_function_call_vec): Tweak call to
909 check_function_arguments.
911 2011-05-23 Richard Guenther <rguenther@suse.de>
913 PR tree-optimization/49115
914 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
915 is not necessarily carried out, do not claim it kills the ref.
916 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
918 2011-05-23 Richard Guenther <rguenther@suse.de>
921 * builtins.c (fold_builtin_memory_op): Be less restrictive about
922 what pointer types we accept for folding.
924 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
926 * gthr-gnat.c: Remove.
927 * gthr-gnat.h: Remove.
928 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
929 * config/t-freebsd (LIB2ADDEH): Likewise.
930 * config/t-linux (LIB2ADDEH): Likewise.
931 * config/t-sol2 (LIB2ADDEH): Likewise.
932 * config/ia64/t-vms (LIB2ADDEH): Likewise.
933 * configure.ac (target_thread_file): Remove gnat handling.
934 * configure: Regenerate.
935 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
937 2011-05-23 Tristan Gingold <gingold@adacore.com>
938 Eric Botcazou <ebotcazou@adacore.com>
940 * gcov.c (create_file_names): If no object directory is specified,
941 keep the directory of the file.
943 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
945 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
946 * configure: Regenerate.
948 2011-05-23 Jakub Jelinek <jakub@redhat.com>
951 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
952 failed and the comparison has a single bit signed type, use
953 constm1_rtx instead of const1_rtx for true value.
954 (do_store_flag): If ops->type is single bit signed type, disable
955 signel bit test optimization and pass -1 instead of 1 as last
956 parameter to emit_store_flag_force.
958 2011-05-23 Tom de Vries <tom@codesourcery.com>
961 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
963 (infer_loop_bounds_from_undefined): Use new function.
965 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
967 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
968 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
969 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
971 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
973 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
975 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
976 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
979 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
981 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
983 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
985 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
986 UNSPEC_MOVE_PIC pattern.
988 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
990 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
991 (sparc-*-rtems*): Likewise.
992 (sparc64-*-elf*): Likewise.
993 (sparc64-*-rtems*): Likewise.
994 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
995 * config/sparc/t-crtin: New file.
996 * config/sparc/t-sol2 (crti.o): Delete rule.
998 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
999 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
1000 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
1001 (ENDFILE_SPEC): Add crtn.o.
1003 2011-05-22 Tom de Vries <tom@codesourcery.com>
1006 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
1007 CODE_CONTAINS_STRUCT (TS_COMMON).
1009 2011-05-22 Jakub Jelinek <jakub@redhat.com>
1012 * expmed.c (extract_fixed_bit_field): Test whether target can be used
1013 only after deciding which mode to use.
1015 2011-05-22 Tom de Vries <tom@codesourcery.com>
1018 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
1019 for call to get_shiftadd_cost.
1021 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
1024 * config/i386/cpuid.h (bit_MMXEXT): New define.
1026 2011-05-22 Nick Clifton <nickc@redhat.com>
1028 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
1029 initialisation of non-existant args[2] element. Use args[] array
1030 not arg[] array to pass arguments to build_function_type_list.
1032 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
1034 PR tree-optimization/49087
1035 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
1037 2011-05-21 Jason Merrill <jason@redhat.com>
1040 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
1041 static storage duration.
1043 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1045 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
1048 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
1050 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
1051 false if there are call-saved registers here...
1052 (sparc_can_use_return_insn_p): ...but here instead.
1053 (save_or_restore_regs): Fix thinko.
1054 (sparc_expand_prologue): Use current_function_is_leaf.
1055 (sparc_frame_pointer_required): Likewise.
1057 2011-05-21 Nick Clifton <nickc@redhat.com>
1060 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
1062 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
1064 * gengtype.c (walk_type): Implemented "atomic" GTY option.
1065 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
1067 2011-05-21 Joseph Myers <joseph@codesourcery.com>
1069 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
1070 * optc-gen.awk: Move common code to opt-read.awk.
1071 * opth-gen.awk: Likewise.
1072 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
1074 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
1076 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
1078 2011-05-20 Tom de Vries <tom@codesourcery.com>
1081 * tree-ssa-loop-ivopts.c: Include expmed.h.
1082 (get_shiftadd_cost): New function.
1083 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
1085 2011-05-20 Jakub Jelinek <jakub@redhat.com>
1088 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
1089 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
1091 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1093 * Makefile.in: Update comment referring to $(OBJS-common).
1095 2011-05-20 Ian Lance Taylor <iant@google.com>
1097 * godump.c (go_output_typedef): Put enum constants in the macro
1098 hash table to avoid duplicate Go const definitions.
1100 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1102 * Makefile.in (LIBDEPS): Add libcommon.a.
1104 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
1105 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
1106 pretty-print.o and version.o.
1107 (OBJS-libcommon): New.
1108 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
1109 (BACKEND): Add libcommon.a.
1110 (MOSTLYCLEANFILES): Likewise.
1112 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
1113 (cpp$(exeext)): Likewise.
1114 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
1115 pretty-print.o and input.o.
1116 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
1117 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
1119 (mips-tfile): Don't explicitly use version.o.
1120 (mips-tdump): Likewise.
1121 (gcov.o): Depend on $(DIAGNOSTIC_H).
1122 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
1123 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
1124 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
1125 * gcov-dump.c: Include intl.h and diagnostic.h.
1126 (main): Initialize diagnostics.
1127 * gcov.c: Include diagnostic.h.
1129 (main): Initialize diagnostics.
1130 * lto-wrapper.c: Include diagnostic.h.
1131 (main): Initialize diagnostics.
1133 2011-05-20 Michael Matz <matz@suse.de>
1135 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
1137 2011-05-20 Michael Matz <matz@suse.de>
1138 Richard Guenther <rguenther@suse.de>
1140 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
1141 use lto_streamer_cache_append directly instead of returning a VEC.
1142 (preload_common_node): Remove.
1143 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
1145 (lto_streamer_cache_create): Call lto_preload_common_nodes.
1147 2011-05-20 Richard Guenther <rguenther@suse.de>
1149 PR tree-optimization/49079
1150 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
1151 MEM_REFs correctly for the trailing array access detection.
1152 Special case constants the same way as decls for overall size
1155 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
1157 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
1160 2011-05-20 Jakub Jelinek <jakub@redhat.com>
1162 PR tree-optimization/49073
1163 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
1164 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
1165 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
1167 2011-05-20 Richard Guenther <rguenther@suse.de>
1170 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
1171 of pointer types the same way the middle-end does.
1173 2011-05-20 Richard Guenther <rguenther@suse.de>
1175 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
1176 or pointer-to chains. Delay all fixup to uniquify_nodes.
1178 2011-05-19 Quentin Neill <quentin.neill@amd.com>
1180 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
1181 (fma4_fmaddsub): Likewise
1183 2011-05-19 Jan Hubicka <jh@suse.cz>
1185 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
1186 (GIMPLE_TYPE_PAIR_SIZE): New macro.
1187 (type_pair_cache): New static var.
1188 (lookup_type_pair): Use fixed sized custom hash; make inline.
1189 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
1190 calls of lookup_type_pair.
1191 (print_gimple_types_stats): Remove cache stats.
1192 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
1195 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
1197 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
1198 when TARGET_RDRND is active.
1199 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
1200 Generate dummy SImode target register when target is NULL.
1202 2011-05-19 Joseph Myers <joseph@codesourcery.com>
1204 * config/arm/arm-fpus.def: New.
1205 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
1207 * config/arm/arm-tables.opt: Regenerate.
1208 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
1209 (arm_option_override): Don't decode FPU name to string here.
1210 * config/arm/arm.opt (mfpu=): Use Enum.
1211 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
1212 Update dependencies.
1214 2011-05-19 Joseph Myers <joseph@codesourcery.com>
1216 * collect2.c: Include diagnostic.h.
1217 (fatal_perror, fatal, error, fancy_abort): Remove.
1218 (main): Set progname. Call xmalloc_set_program_name and
1219 diagnostic_initialize.
1220 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
1221 scan_libraries, resolve_lib_name): Call fatal_error instead of
1222 fatal and fatal_perror.
1223 * collect2.h (error, fatal, fatal_perror): Don't declare.
1224 * tlink.c: Include diagnostic-core.h.
1225 (recompile_files): Call fatal_error instead of fatal_perror.
1226 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
1227 pretty-print.o and input.o.
1228 (collect2.o, tlink.o): Update dependencies.
1230 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1232 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
1234 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1237 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
1238 COMDAT group syntax, both SPARC and x86 variants.
1239 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
1240 * configure: Regenerate.
1241 * config/sol2.h (TARGET_SOLARIS): Define.
1242 (PUSHSECTION_FORMAT): Remove.
1243 (SECTION_NAME_FORMAT): Define.
1244 * config/sol2.c: Include hashtab.h.
1245 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
1246 expansion, using SECTION_NAME_FORMAT.
1247 (solaris_comdat_htab): New variable.
1248 (struct comdat_entry): Define.
1249 (comdat_hash): New function.
1250 (comdat_eq): New function.
1251 (solaris_elf_asm_comdat_section): New function.
1252 (solaris_define_comdat_signature): New function.
1253 (solaris_code_end): New function.
1254 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
1255 (solaris_code_end): Declare.
1256 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
1257 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
1259 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
1260 Remove ATTRIBUTE_UNUSED.
1261 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
1262 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
1263 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
1264 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
1265 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
1266 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
1267 (PUSHSECTION_FORMAT): Remove.
1268 (SECTION_NAME_FORMAT): Redefine.
1270 2011-05-19 Kai Tietz <ktietz@redhat.com>
1272 * tree-cfg.c (verify_gimple_assign_binary): Barf on
1273 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
1274 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
1276 2011-05-19 Anatoly Sokolov <aesok@post.ru>
1277 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1279 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
1281 2011-05-19 Richard Guenther <rguenther@suse.de>
1284 * tree-object-size.c (addr_object_size): If the pointed-to
1285 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
1287 2011-05-19 Richard Guenther <rguenther@suse.de>
1289 * gimple.c (gimple_types_compatible_p_1): Compare names of
1290 the types themselves.
1291 (iterative_hash_gimple_type): And hash them that way.
1292 (gimple_register_type_1): If we register a main variant properly
1293 initialize the leader to ourselves.
1295 2011-05-19 Tom de Vries <tom@codesourcery.com>
1298 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
1299 get_loop_invariant_expr_id.
1300 (get_loop_invariant_expr_id): Use get_expr_id.
1301 (parm_decl_cost): New function.
1302 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
1303 Improve bound cost estimation. Use different inv_expr_id for elim and
1306 2011-05-19 Tom de Vries <tom@codesourcery.com>
1309 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
1310 cost_base.cost == 0.
1312 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
1315 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
1316 Properly handle load cast.
1318 2011-05-18 Jakub Jelinek <jakub@redhat.com>
1320 PR tree-optimization/49039
1321 * tree-vrp.c (extract_range_from_binary_expr): For
1322 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
1323 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
1325 2011-05-18 Tom de Vries <tom@codesourcery.com>
1328 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
1330 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
1332 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
1333 (*tls_global_dynamic_64): Ditto.
1334 (*tls_local_dynamic_base_32_gnu): Ditto.
1335 (*tls_local_dynamic_base_64): Ditto.
1336 (tls_initial_exec_64_sun): Ditto.
1338 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
1340 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
1341 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
1343 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
1344 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
1345 * config/bfin/bfin.c (bfin_cpus): Add bf592.
1346 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1347 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
1348 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
1349 * config/bfin/elf.h (LIB_SPEC): Add bf592.
1351 2011-05-18 Joseph Myers <joseph@codesourcery.com>
1353 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
1354 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
1355 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
1356 target_thread_pointer, arm_structure_size_boundary, struct
1357 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
1358 struct abi_name, arm_all_abis): Remove.
1359 (arm_option_override) Don't process most enumerated option values here.
1360 Don't process target_fpe_name here. Work with integer not string for
1361 structure size boundary; use separate diagnostics for each case.
1362 * config/arm/arm.h (enum float_abi_type, enum
1363 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
1365 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
1366 arm_structure_size_boundary): Remove.
1367 * config/arm/arm.opt (mabi=): Use Enum and Init.
1368 (arm_abi_type): New Enum and EnumValue entries.
1369 (mfloat-abi=): Use Enum and Init.
1370 (float_abi_type): New Enum and EnumValue entries.
1371 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
1372 (mfp16-format=): Use Enum and Init.
1373 (arm_fp16_format_type): New Enum and EnumValue entries.
1374 (mstructure-size-boundary=): Use UInteger and Init.
1375 (mtp=): Use Enum and Init.
1376 (arm_tp_type): New Enum and EnumValue entries.
1378 2011-05-18 Richard Guenther <rguenther@suse.de>
1380 PR tree-optimization/49018
1381 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
1382 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
1383 gimple_has_side_effects.
1385 2011-05-18 Richard Guenther <rguenther@suse.de>
1387 * gimple.c (gimple_register_type_1): New function, split out from ...
1388 (gimple_register_type): ... here. Avoid infinite recursion.
1390 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
1392 PR tree-optimization/41881
1393 * tree-vectorizer.h (struct _loop_vec_info): Add new field
1394 reduction_chains along with a macro for its access.
1395 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
1396 (destroy_loop_vec_info): Free reduction chains.
1397 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
1398 (vect_is_slp_reduction): New function.
1399 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
1400 (vect_create_epilog_for_reduction): Support SLP reduction chains.
1401 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
1402 definition types for reduction chains.
1403 (vect_supported_load_permutation_p): Don't allow permutations for
1405 (vect_analyze_slp_instance): Support reduction chains.
1406 (vect_analyze_slp): Try to build SLP instance from reduction chains.
1407 (vect_get_constant_vectors): Handle reduction chains.
1408 (vect_schedule_slp_instance): Mark the first statement of the
1409 reduction chain as reduction.
1411 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
1413 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
1414 names for group elements access.
1415 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
1416 reduction chains as well. Remove data reference and interleaving
1417 related words from the fields names.
1418 * tree-vect-loop.c (vect_transform_loop): Use new names for group
1420 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
1421 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
1422 vect_update_interleaving_chain, vect_same_range_drs,
1423 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
1424 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
1425 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
1426 vect_analyze_group_access, vect_analyze_data_ref_access,
1427 vect_create_data_ref_ptr, vect_transform_strided_load,
1428 vect_record_strided_load_vectors): Likewise.
1429 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
1430 vect_model_load_cost, vectorizable_store, vectorizable_load,
1431 vect_remove_stores, new_stmt_vec_info): Likewise.
1432 * tree-vect-slp.c (vect_build_slp_tree,
1433 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
1435 2011-05-18 Richard Guenther <rguenther@suse.de>
1438 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
1439 operand verification.
1440 (verify_gimple_assign_binary): Likewise.
1441 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
1442 to non-1-precision BOOLEAN_TYPEs.
1444 2011-05-18 Tom de Vries <tom@codesourcery.com>
1447 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
1449 2011-05-18 Jakub Jelinek <jakub@redhat.com>
1451 PR tree-optimization/49000
1452 * tree-ssa.c (execute_update_addresses_taken): Call
1453 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
1454 be rewritten and decl has been marked for renaming, reset
1457 2011-05-17 Joseph Myers <joseph@codesourcery.com>
1459 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
1460 enum_opts_set when testing if attributes have set -mfpmath=.
1462 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
1464 * config/mips/mips.c (mips_handle_option): Remove unused variable.
1466 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
1468 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
1470 * tree-inline.c (maybe_inline_call_in_expr): Initialize
1471 id.transform_lang_insert_block with NULL.
1473 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
1475 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
1476 (output_fp_compare): Change args 3 and 4 to bool.
1477 (ix86_expand_call): Change arg 6 to bool.
1478 (ix86_attr_length_immediate_default): Change arg 2 to bool.
1479 (ix86_attr_length_vex_default): Change arg 3 to bool.
1480 * config/i386/i386.md: Update all uses.
1481 * config/i386/i386.c: Ditto.
1482 (ix86_flags_dependent): Change return type to bool.
1484 2011-05-17 Richard Guenther <rguenther@suse.de>
1486 * gimple.c (type_hash_pair_compare): Fix comparison.
1488 2011-05-17 Richard Guenther <rguenther@suse.de>
1490 * gimple.c (iterative_hash_gimple_type): Simplify singleton
1491 case some more, fix final hash value of the non-singleton case.
1493 2011-05-17 Richard Guenther <rguenther@suse.de>
1497 2011-05-16 Richard Guenther <rguenther@suse.de>
1499 * gimple.c (gimple_types_compatible_p_1): Use names of the
1500 type itself, not its main variant.
1501 (iterative_hash_gimple_type): Likewise.
1503 2011-05-17 Richard Guenther <rguenther@suse.de>
1505 * gimple.c (gimple_register_canonical_type): Use the main-variant
1506 leader for computing the canonical type.
1508 2011-05-17 Nick Clifton <nickc@redhat.com>
1510 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
1513 * config/rx/rx.md: Add peephole to remove redundant extensions
1515 (bitset_in_memory): Use rx_restricted_mem_operand.
1516 (bitinvert_in_memory): Likewise.
1517 (bitclr_in_memory): Likewise.
1519 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
1520 Nick Clifton <nickc@redhat.com>
1522 * config/rx/rx.md: Add peepholes to match a register move followed
1523 by a comparison of the moved register. Replace these with an
1524 addition of zero that does both actions in one instruction.
1526 2011-05-17 Jakub Jelinek <jakub@redhat.com>
1529 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
1530 predicate to allow CONST_INT.
1531 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
1533 2011-05-16 Joseph Myers <joseph@codesourcery.com>
1535 * opts-common.c (opt_enum_arg_to_value): New.
1536 * opts.h (opt_enum_arg_to_value): Declare.
1537 * config/i386/i386.opt (fpmath): Remove.
1538 (mfpmath=): Use Enum, Init and Save.
1539 (fpmath_unit): New Enum and EnumValue entries.
1540 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
1541 name for function fpmath state.
1542 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
1543 * config/i386/i386.c: Include diagnostic.h.
1544 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
1545 (ix86_target_string): Take enum fpmath_unit value instead of string.
1546 (ix86_debug_options): Update call to ix86_target_string.
1547 (ix86_option_override_internal): Don't process fpmath strings here.
1548 (x86_function_specific_save, ix86_function_specific_restore):
1549 Don't handle fpmath state specially.
1550 (ix86_function_specific_print): Pass fpmath state to
1551 ix86_target_string instead of printing in this function.
1552 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1553 Handle enum attributes.
1554 (IX86_ATTR_ENUM, ix86_opt_enum): New.
1555 (ix86_valid_target_attribute_tree): Update option_strings
1556 handling. Handle fpmath as enum option.
1557 (ix86_can_inline_p): Update field names for function fpmath state.
1558 (ix86_expand_builtin): Update call to ix86_target_string.
1559 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1560 (ix86_fpmath): Remove.
1561 * config/i386/t-i386 (i386.o): Update dependencies.
1563 2011-05-16 Joseph Myers <joseph@codesourcery.com>
1565 PR preprocessor/48677
1566 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1567 from decoded_options[0], not from itself.
1569 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
1571 * config/i386/constraints.md (z): New constraint.
1572 * config/i386/i386.c (c): New mode attribute.
1573 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1574 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1575 constraint for operand 0.
1576 (*call_vzeroupper): Ditto.
1577 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
1578 (*call_rex64_ms_sysv_vzeroupper): Ditto.
1579 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1580 Use "lzm" constraint for operand 0.
1581 (*call_pop_vzeroupper): Ditto.
1582 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1583 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
1584 constraint for operand 0.
1585 (*sibcall_vzeroupper): Ditto.
1586 (*sibcall_rex64_ms_sysv): Ditto.
1587 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1588 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1589 *sibcall_pop_1. Use "Uz" constraint for operand 0.
1590 (*sibcall_pop_vzeroupper): Ditto.
1591 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1592 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1593 mode iterator. Use "<c>zm" constraint for operand 1.
1594 (*call_value_vzeroupper): Ditto.
1595 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
1597 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1598 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1599 *call_value_pop_1. Use "lzm" constraint for operand 1.
1600 (*call_value_pop_vzeroupper): Ditto.
1601 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1602 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1603 mode iterator. Use "Uz" constraint for operand 1.
1604 (*sibcall_value_vzeroupper): Ditto.
1605 (*sibcall_value_rex64_ms_sysv): Ditto.
1606 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1607 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
1608 constraint for operand 1.
1609 (*sibcall_value_pop_vzeroupper): Ditto.
1610 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1611 and "z" constraint for operand 2.
1612 (*tls_global_dynamic_32_gnu): Ditto.
1613 (*tls_local_dynamic_base_32_gnu): Ditto.
1614 (*tls_local_dynamic_base_64): Ditto.
1615 (*tls_local_dynamic_32_once): Ditto.
1616 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1618 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1620 2011-05-16 Richard Guenther <rguenther@suse.de>
1622 * gimple.c (gimple_types_compatible_p_1): Use names of the
1623 type itself, not its main variant.
1624 (iterative_hash_gimple_type): Likewise.
1626 2011-05-16 Richard Guenther <rguenther@suse.de>
1628 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1629 always visit pointer target and function result and argument types.
1631 2011-05-16 Jason Merrill <jason@redhat.com>
1634 * tree-inline.c (copy_statement_list): Put back recursion.
1636 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
1640 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1641 * config/avr/avr.md ("*ior<mode>qi.byte0",
1642 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1644 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
1647 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1648 register is needed for a function argument.
1650 2011-05-16 Richard Guenther <rguenther@suse.de>
1652 * gimple.c (struct type_hash_pair): New type.
1653 (type_hash_pair_compare): New function.
1654 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1656 2011-05-16 Revital Eres <revital.eres@linaro.org>
1658 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1660 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
1662 * config/i386/i386.md (floating point move splitters): Fix
1663 usage of standard_80387_constant_p.
1664 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1666 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
1668 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1670 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
1672 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1673 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1674 (tree_ssa_lim_finalize): Likewise.
1676 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
1678 * config/i386/constraint.md (Yd, Yx): New register constraints.
1679 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
1680 Yd conditional register constraint.
1681 (*movtf_internal): Use standard_sse_constant_opcode.
1682 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
1683 Yx conditional register constraint.
1684 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
1685 Yd conditional register constraint. Use standard_sse_constant_p to
1686 check for valid SSE constants and call standard_sse_constant_opcode to
1688 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1689 constants and call standard_sse_constant_opcode to output SSE insn.
1690 * config/i386/i386.c (ix86_option_ovverride_internal): Set
1691 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
1692 optimize_size is set.
1693 (standard_sse_constant_opcode): Output conditional AVX insn templates.
1695 2011-05-14 Tobias Burnus <burnus@net-b.de>
1697 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1699 2011-05-13 Martin Jambor <mjambor@suse.cz>
1701 * ipa-prop.c (ipa_cst_from_jfunc): New function.
1702 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1703 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1704 (evaluate_conditions_for_ipcp_clone): Removed.
1705 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1706 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1707 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1709 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
1711 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1712 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1713 lieu of MAY_HAVE_DEBUG_STMTS.
1714 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1715 debug statements if !MAY_HAVE_DEBUG_STMTS.
1717 2011-05-13 Martin Thuresson <martint@google.com>
1719 PR gcov-profile/47793
1720 * libgcov.c (gcov_exit): Support relative profile paths.
1721 * doc/invoke.texi (-fprofile-dir): Update for above change.
1723 2011-05-13 Richard Guenther <rguenther@suse.de>
1725 * gimple.c (gimple_canonical_types_compatible_p): Do not use
1726 type-pair caching, do not compare hashes.
1728 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
1731 * tree-cfg.c (edge_to_cases_cleanup): Return true.
1732 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1734 2011-05-13 Kai Tietz <ktietz@redhat.com>
1736 * gimplify.c (gimplify_expr): Make sure operand is boolified.
1737 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1738 compatible type for TRUTH_NOT_EXPR.
1740 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
1742 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1743 (ix86_hard_regno_mode_ok): Change return value to bool. Use
1744 can_create_pseudo_p ().
1746 2011-05-13 Richard Guenther <rguenther@suse.de>
1749 * gimple.c (iterative_hash_gimple_type): Revert change in
1750 pointer target and function result and argument hashing.
1752 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
1754 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1755 (*movxf_internal_nointeger): Ditto.
1756 (*movdf_internal_rex64): Ditto.
1757 (*movdf_internal): Ditto.
1758 (*movdf_internal_nointeger): Ditto.
1759 (*movsf_internal): Ditto.
1760 (sincos splitters): Use can_create_pseudo ().
1762 2011-05-13 Joseph Myers <joseph@codesourcery.com>
1764 * config/i386/i386-opts.h: New.
1765 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1766 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1767 ix86_section_threshold): Remove.
1768 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
1769 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1771 (ix86_option_override_internal): Don't decode strings for options
1772 other than -march=, -mtune= and -mfpmath=. Don't allow for
1773 __attribute__ uses in remaining diagnostics for options with
1774 string arguments. Don't check for integer arguments being negative.
1775 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1776 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1777 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1778 ix86_branch_cost, ix86_section_threshold): Remove.
1779 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1781 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1783 (masm=): Use Enum and Init.
1784 (asm_dialect): New Enum and EnumValue entries.
1785 (mbranch-cost=): Use UInteger.
1786 (mlarge-data-threshold=): Use UInteger and Init.
1787 (mcmodel=): Use Enum and Init.
1788 (cmodel): New Enum and EnumValue entries.
1789 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1790 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1791 mregparm=): Use UInteger.
1792 (mstringop-strategy=): Use Enum and Init.
1793 (stringop_alg): New Enum and EnumValue entries.
1794 (mtls-dialect=): Use Enum and Init.
1795 (tls_dialect): New Enum and EnumValue entries.
1796 (mabi=): Use Enum and Init.
1797 (calling_abi): New Enum and EnumValue entries.
1798 (mveclibabi=): Use Enum and Init.
1799 (ix86_veclibabi): New Enum and EnumValue entries.
1801 2011-05-13 Nick Clifton <nickc@redhat.com>
1803 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1804 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1806 2011-05-13 Kai Tietz <ktietz@redhat.com>
1809 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1810 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1811 (gimple_boolify): Check for cast for boolean_type_node instead for
1814 2011-05-13 Richard Guenther <rguenther@suse.de>
1816 PR tree-optimization/48172
1817 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1818 multiplying by number of iterations for equal step.
1819 (vect_create_cond_for_alias_checks): Likewise.
1821 2011-05-13 Andreas Schwab <schwab@redhat.com>
1823 * configure.ac: Use AS_HELP_STRING throughout.
1824 * configure: Regenerate.
1826 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
1828 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1829 (ix86_emit_restore_regs_using_mov): Likewise.
1830 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1832 2011-05-12 Anatoly Sokolov <aesok@post.ru>
1834 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1835 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1836 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1837 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1838 RTX_OK_FOR_OLO10_P): ...here.
1839 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1842 2011-05-12 Kai Tietz <ktietz@redhat.com>
1844 * gimplify.c (gimple_boolify): Re-boolify expression
1845 arguments even if expression type is of kind BOOLEAN_TYPE.
1846 (gimplify_boolean_expr): Removed.
1847 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1848 and XOR. Additional take care that we keep expression's type.
1849 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1850 of TRUTH_AND|OR|XOR_EXPR.
1852 2011-05-12 Jakub Jelinek <jakub@redhat.com>
1854 PR tree-optimization/48975
1855 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1856 on all bbs here and free and clear ifc_bbs at the end.
1858 2011-05-12 Richard Guenther <rguenther@suse.de>
1860 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1861 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
1862 until after simple checks.
1863 (gimple_types_compatible_p): Likewise.
1864 (iterative_hash_gimple_type): Always hash pointer targets
1865 and function return and argument types.
1866 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1867 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
1868 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1869 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
1870 completely in the simple compare section.
1871 (gimple_register_canonical_type): Query the cache again after
1874 2011-05-12 Richard Guenther <rguenther@suse.de>
1876 PR tree-optimization/48172
1877 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1878 the number of iterations from the segment size calculation.
1879 (vect_create_cond_for_alias_checks): Adjust.
1881 2011-05-12 Jakub Jelinek <jakub@redhat.com>
1884 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1885 if validate_subreg fails.
1887 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
1889 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1890 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1893 2011-05-12 DJ Delorie <dj@redhat.com>
1895 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1896 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1897 created builtin into rx_builtins array.
1898 (rx_builtin_decl): New function.
1899 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
1901 2011-05-12 DJ Delorie <dj@redhat.com>
1902 Nick Clifton <nickc@redhat.com>
1904 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1905 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1906 (rx_is_legitimate_address): Add pre-decrement and post-increment
1907 addressing in HImode and QImode. Fix test for out of range
1909 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1910 (rx_align_for_label): Test label before extracting its usage count.
1911 (rx_adjust_insn_lengths): Fix selection of insn codes.
1912 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1914 2011-05-11 Jason Merrill <jason@redhat.com>
1916 * tree.c (type_hash_canon): Use struct tree_type_non_common.
1918 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1920 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1921 reindent the subsequent block.
1923 2011-05-11 Satoru Takabayashi <satorux@google.com>
1924 Paul Pluzhnikov <ppluzhnikov@google.com>
1926 * doc/install.texi (Configuration): Document --with-linker-hash-style.
1927 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1928 * config.in: Add LINKER_HASH_STYLE.
1929 * configure.ac: Add --with-linker-hash-style.
1930 * configure: Regenerate.
1932 2011-05-11 Richard Guenther <rguenther@suse.de>
1935 * gimple.c (iterative_hash_canonical_type): Fix typo.
1937 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
1939 * config/i386/i386.c (legitimize_tls_address)
1940 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1941 expanders directly for TARGET_GNU2_TLS. Determine pic and
1942 __tls_get_addr symbol reference here. Update call to
1943 gen_tls_global_dynamic_{32,64} for added arguments.
1944 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1945 expanders directly for TARGET_GNU2_TLS. Determine
1946 __tls_get_addr symbol reference here. Update call to
1947 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
1948 unique UNSPEC REG_EQUIV to libcall block.
1949 (ix86_tls_get_addr): Declare static.
1950 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1951 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1952 Do not determine pic and __tls_get_addr symbol reference here. Do not
1953 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1954 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1955 (tls_global_dynamic_64): Add operand 2. Do not determine
1956 __tls_get_addr symbol reference here. Do not call
1957 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1958 (tls_local_dynamic_base64): Ditto for operand 1.
1960 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1962 * function.c (expand_function_start): Initialize stack_check_probe_note
1963 only if the generic stack checking mechanism is used.
1965 2011-05-11 Richard Guenther <rguenther@suse.de>
1967 PR tree-optimization/15256
1968 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1969 (A & B) | C, combine (A op CST1) op CST2.
1970 (tree_ssa_forward_propagate_single_use_vars): Only bother to
1971 visit assigns that have uses.
1973 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1975 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
1976 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1977 (unpack_ts_type_common_value_fields): ...this. Update comment.
1978 (unpack_value_fields): Adjust for renaming.
1979 (lto_input_ts_type_tree_pointers): Split into...
1980 (lto_input_ts_type_common_tree_pointer): ...this and...
1981 (lto_input_ts_type_non_common_tree_pointers): ...this.
1982 (lto_input_tree_pointers): Adjust for above split.
1983 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1984 (pack_ts_type_common_value_fields): ...this. Update comment.
1985 (lto_output_ts_type_tree_pointers): Split into...
1986 (lto_output_ts_type_common_tree_pointers): ...this and...
1987 (lto_output_ts_type_non_common_tree_pointers): ...this.
1988 (lto_output_tree_pointers): Adjust for above split.
1989 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1990 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1991 * stor-layout.c (vector_type_mode): Adjust location of mode field.
1992 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1994 (struct tree_type): Split into...
1995 (struct tree_type_common: ...this and...
1996 (struct tree_type_with_lang_specific): ...this and...
1997 (struct tree_type_non_common): ...this. Adjust accessor macros
1999 (TYPE_VALUES_RAW): Define.
2000 (union tree_node): Update for above changes.
2001 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
2003 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
2004 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
2005 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
2006 * treestructu.def (TS_TYPE): Remove.
2007 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
2010 2011-05-11 Jakub Jelinek <jakub@redhat.com>
2013 * tree-ssa.c (reset_debug_uses): New function.
2014 * tree-flow.h (reset_debug_uses): New prototype.
2015 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
2016 * tree-loop-distribution.c (generate_loops_for_partition): Call
2017 reset_debug_uses on the stmts that will be removed. Keep around
2018 all debug stmts, don't count them as bits in partition bitmap.
2019 (generate_builtin): Don't count debug stmts or labels as bits in
2022 2011-05-11 Richard Guenther <rguenther@suse.de>
2024 * gimple.c (gimple_type_hash_1): Merge with ...
2025 (gimple_type_hash): ... this.
2026 (gtc_visit): Remove mode parameter and simplify accordingly.
2027 (gimple_types_compatible_p_1): Likewise.
2028 (gimple_types_compatible_p): Likewise.
2029 (iterative_hash_gimple_type): Likewise.
2031 (gimple_type_eq): Adjust.
2033 2011-05-11 Revital Eres <revital.eres@linaro.org>
2035 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
2036 enters the branch create an anti edge in the opposite direction
2037 to prevent the creation of reg-moves.
2038 * modulo-sched.c: Adjust comment to reflect the fact we are
2039 scheduling closing branch.
2040 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
2041 (stage_count): New field in struct partial_schedule.
2042 (calculate_stage_count): New function.
2043 (normalize_sched_times): Rename to reset_sched_times and handle
2044 incrementing the sched time of the nodes by a constant value
2045 passed as parameter.
2046 (duplicate_insns_of_cycles): Skip closing branch.
2047 (sms_schedule_by_order): Schedule closing branch.
2048 (ps_insn_find_column): Handle closing branch.
2049 (sms_schedule): Call reset_sched_times and adjust the code to
2050 support scheduling of the closing branch.
2051 (ps_insert_empty_row): Update calls to normalize_sched_times
2052 and rotate_partial_schedule functions.
2054 2011-05-11 Richard Guenther <rguenther@suse.de>
2057 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
2059 2011-05-11 Joseph Myers <joseph@codesourcery.com>
2061 * opts.c (finish_options): Move warning settings from process_options.
2062 * toplev.c (process_options): Move warning settings to finish_options.
2064 2011-05-11 Richard Guenther <rguenther@suse.de>
2066 PR tree-optimization/18041
2067 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
2068 (simplify_bitwise_binary): ... this. Handle operand conversions
2069 by applying them to the result instead.
2070 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
2072 2011-05-11 Richard Guenther <rguenther@suse.de>
2074 * gimple.c (gimple_canonical_types_compatible_p): Split out
2075 from gimple_types_compatible_p and friends. Do not recurse
2076 to pointed-to types.
2077 (gimple_canonical_type_eq): Use it.
2078 (iterative_hash_canonical_type): Split out from
2079 iterative_hash_gimple_type and friends. Do not recurse
2080 to pointed-to types.
2081 (gimple_canonical_type_hash): Use it, allocate the hash here.
2083 2011-05-11 Revital Eres <revital.eres@linaro.org>
2085 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
2088 2011-05-11 Revital Eres <revital.eres@linaro.org>
2090 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
2091 instead of PREV_INSN.
2093 2011-05-11 Revital Eres <revital.eres@linaro.org>
2095 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
2096 * loop-doloop.c (doloop_condition_get): Likewise.
2097 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
2099 * config/arm/arm.md (*addsi3_compare0): Remove "*".
2101 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
2103 * tree.def (CASE_LABEL_EXPR): Add an operand.
2104 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
2106 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2108 * c-decl.c (c_override_global_bindings_to_false): Remove.
2109 (global_bindings_p): Don't check
2110 c_override_global_bindings_to_false.
2111 * c-tree.h (c_override_global_bindings_to_false): Remove.
2112 * c-typeck.c (composite_type): Don't set
2113 c_override_global_bindings_to_false.
2115 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2117 PR target/48857, 48495
2118 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
2120 (VSX_MOVE_MODE): Ditto.
2121 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
2122 VSX vector types. Add V2DImode.
2123 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
2124 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
2125 (MODES_TIEABLE_P): Ditto.
2127 * config/rs6000/rs6000.c (rs6000_emit_move): Use
2128 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
2130 (init_cumulative_args): Ditto.
2131 (rs6000_function_arg_boundary): Ditto.
2132 (rs6000_function_arg_advance_1): Ditto.
2133 (rs6000_function_arg): Ditto.
2134 (rs6000_function_ok_for_sibcall): Ditto.
2135 (emit_frame_save): Ditto.
2136 (rs6000_function_value): Ditto.
2137 (rs6000_libcall_value): Ditto.
2139 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2141 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2142 i386/darwin-lib.h to $libgcc_tm_file.
2143 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
2145 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2147 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
2149 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2151 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
2152 * config/rs6000/rs6000-tables.opt: New file (generated).
2153 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
2154 rs6000/rs6000-tables.opt to extra_options.
2155 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
2156 * config/rs6000/rs6000.c (rs6000_select): Remove.
2157 (processor_target_table): Move contents to rs6000-cpus.def.
2158 (darwin_rs6000_override_options): Check
2159 global_options_set.x_rs6000_cpu_index instead of
2160 rs6000_select[1].string.
2161 (rs6000_option_override_internal): Likewise.
2162 (rs6000_handle_option): Don't assert that global structures are in
2163 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
2164 (rs6000_default_cpu): New variable.
2165 (rs6000_file_start): Set it instead of local default_cpu. Check
2166 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
2167 global_options_set.x_rs6000_tune_index instead of rs6000_select.
2168 (rs6000_darwin_file_start): Check rs6000_default_cpu and
2169 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
2170 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
2171 rs6000_select): Remove.
2172 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
2174 (mcpu=, mtune=): Use Var, Init, Enum and Save.
2175 * config/rs6000/t-rs6000
2176 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
2177 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2178 global_options_set.x_rs6000_cpu_index instead of
2179 rs6000_select[1].string.
2180 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2181 global_options_set.x_rs6000_cpu_index instead of
2182 rs6000_select[1].string.
2184 2011-05-10 Joseph Myers <joseph@codesourcery.com>
2186 * config.gcc (libgcc_tm_file): Define instead of including files
2187 from ../../libgcc/config/ in tm_file.
2188 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
2189 * configure: Regenerate.
2190 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
2191 libgcc_tm.h, cs-libgcc_tm.h): New.
2192 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
2193 (clean): Remove libgcc_tm.h.
2194 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
2195 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
2196 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
2198 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
2201 * config/avr/avr.c (avr_ret_register): Return unsigned int
2203 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
2204 it to avr_libcall_value.
2205 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
2207 (avr_expand_binop_builtin): Ditto.
2208 (avr_expand_unop_builtin): Ditto.
2210 2011-05-10 DJ Delorie <dj@redhat.com>
2212 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
2213 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
2214 * config/rx/rx.c (rx_align_for_label): Add label and
2215 uses_threshold parameters. Do not align when the label is not
2217 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
2219 2011-05-10 Richard Guenther <rguenther@suse.de>
2221 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
2222 a series of conversions and apply foldings similar to what
2224 (tree_ssa_forward_propagate_single_use_vars): Call it.
2226 2011-05-10 Jakub Jelinek <jakub@redhat.com>
2228 PR tree-optimization/48611
2229 PR tree-optimization/48794
2230 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
2231 referenced from RESX or EH_DISPATCH arguments.
2234 * dfp.c (decimal_to_decnumber): Handle conversion from
2235 dconst{1,2,m1,half}.
2237 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2239 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
2240 for !flag_prefer_avx128.
2241 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
2243 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2245 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
2246 (fold_ternary_loc): Use expr_location_or.
2248 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
2251 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
2252 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
2253 Pmode and mem_mode is not VOIDmode.
2255 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
2257 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
2258 TYPE_QUAL_RESTRICT): Convert to enum.
2260 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2262 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
2263 (const_pow2_1_to_8_operand): Ditto.
2264 (const_pow2_1_to_128_operand): Ditto.
2265 (const_pow2_1_to_32768_operand): Ditto.
2266 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
2267 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
2268 in insn constraint to check integer value of operand 3.
2269 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
2271 (PINSR_MODE): New mode iterator.
2272 (sse2p4_1): New mode attribute.
2273 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
2274 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
2275 iterator. Use const_int_operand instead of
2276 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
2277 exact_log2 in insn constraint to check integer value of operand 3.
2279 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2281 * config/i386/sse.md (blendbits): Remove mode attribute.
2282 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2283 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2284 Check integer value of operand 3 in insn constraint.
2286 2011-05-09 Richard Guenther <rguenther@suse.de>
2288 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
2290 (lto_symtab_merge): Likewise. Do not register types here.
2291 (lto_symtab_merge_decls_2): Likewise.
2292 (lto_symtab_merge_decls_1): Likewise.
2293 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
2294 * gimple.c (enum gtc_mode): Declare.
2295 (gimple_types_compatible_p): Make static.
2297 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2299 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
2300 temporary register to match Pmode.
2302 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2304 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
2305 and *vec_concatv4si_1_avx.
2307 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2309 PR rtl-optimization/48927
2310 * ira-conflicts.c (commutative_constraint_p): Use
2311 recog_data.alternative_enabled_p to disable alternatives where
2312 "enabled" attribute is false.
2313 (get_dup_num): Ditto.
2314 * ira-lives.c (single_reg_class): Ditto.
2315 (ira_implicitly_set_insn_hard_regs): Ditto.
2317 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
2319 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
2320 (dataflow_set_preserve_mem_locs): Likewise.
2322 2011-05-09 Philipp Thomas <pth@suse.de>
2324 * config/mep/mep.c (mep_validate_vliw): Syntax description
2325 should not be translated.
2327 2011-05-09 Joseph Myers <joseph@codesourcery.com>
2329 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
2330 * config/mips/mips-tables.opt: New file (generated).
2331 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
2332 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
2333 MIPS_ARCH_OPTION_NATIVE): Define.
2334 * config/mips/mips.c (mips_cpu_info_table): Move contents to
2336 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
2337 mips_parse_cpu): Remove.
2338 (mips_cpu_info_from_opt, mips_default_arch): New.
2339 (mips_handle_option): Don't assert that global structures are in
2340 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
2341 (mips_option_override): Use new variables and functions to set
2342 state of these options. Use strcmp to check for individual CPU names.
2343 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
2345 * config/mips/mips.opt (march=): Use ToLower and Enum.
2346 (mips): Use ToLower, Enum and Var.
2347 (mtune=): Use ToLower and Enum.
2348 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
2350 2011-05-08 Jan Hubicka <jh@suse.cz>
2352 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
2353 Arrange type pairs to be UID ordered.
2354 (gimple_lookup_type_leader): Make inline.
2356 2011-05-09 Nick Clifton <nickc@redhat.com>
2359 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
2363 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
2366 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
2368 * combine.c (simplify_comparison): Abstract out parts into...
2369 (simplify_compare_const): ... new function.
2370 (try_combine): Generalize parallel arithmetic/compare combining
2371 to call simplify_compare_const() and CANONICALIZE_COMPARE().
2373 2011-05-08 Jan Hubicka <jh@suse.cz>
2375 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
2376 (cgraph_create_virtual_clone): Call hooks once virtual clone
2378 * cgraph.h (cgraph_clone_node): Update prototype.
2379 * ipa-cp.c (ipcp_estimate_growth): Use
2380 estimate_ipcp_clone_size_and_time.
2381 * ipa-inline-transform.c (clone_inlined_nodes): Update.
2382 * lto-cgraph.c (input_node): Update.
2383 * ipa-inline.c (recursive_inlining): Update.
2384 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
2385 (evaluate_conditions_for_known_args): Break out from ...
2386 (evaluate_conditions_for_edge): ... here.
2387 (evaluate_conditions_for_ipcp_clone): New function.
2388 (inline_node_duplication_hook): Update clone summary based
2390 (estimate_callee_size_and_time): Rename to ...
2391 (estimate_node_size_and_time): take NODE instead of EDGE;
2392 take POSSIBLE_TRUTHS as argument.
2393 (estimate_callee_size_and_time): Update.
2394 (estimate_ipcp_clone_size_and_time): New function.
2395 (do_estimate_edge_time): Update.
2397 2011-05-08 Richard Guenther <rguenther@suse.de>
2401 * expmed.c (expand_shift_1): Compute adjusted constant shift
2404 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2406 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
2408 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
2410 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
2412 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
2414 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
2416 2011-05-07 Jan Hubicka <jh@suse.cz>
2418 * ipa-inline-transform.c (inline_call): Account when program size
2420 * ipa-inline.c (relative_time_benefit): New function.
2421 (edge_badness): Reorganize to be power 2 based; fix thinko when
2422 computing badness for negative growth; update comments to match
2423 reality; better dumps.
2425 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
2427 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
2428 type to bool and adjust comment.
2429 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
2430 (fold_mathfn_compare): Remove calls to global_bindings_p.
2431 (fold_inf_compare): Likewise.
2432 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
2433 * c-tree.h (global_bindings_p): Adjust prototype.
2434 * c-decl.c (global_bindings_p): Return bool and simplify.
2436 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
2438 PR tree-optimization/48837
2439 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
2440 when accumulator transformation is performed.
2442 2011-05-06 Jan Hubicka <jh@suse.cz>
2444 * i386.h (ix86_tune_indices): Add
2445 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
2446 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
2447 * i386.c (initial_ix86_tune_features): Add
2448 X86_SOFTARE_PREFETCHING_BENEFICIAL.
2449 (software_prefetching_beneficial_p): Remove predicate.
2450 (ix86_option_override_internal): Use new macro.
2452 2011-05-06 Jan Hubicka <jh@suse.cz>
2454 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
2456 2011-05-06 Jan Hubicka <jh@suse.cz>
2458 * cgraph.c (cgraph_add_thunk): Create real function node instead
2459 of alias node; finalize it and mark needed/reachale; arrange visibility
2460 to be right and add it into the corresponding same comdat group list.
2461 (dump_cgraph_node): Dump thunks.
2462 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
2463 cgraph_function_with_gimple_body_p,
2464 cgraph_first_function_with_gimple_body,
2465 cgraph_next_function_with_gimple_body): New functions.
2466 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
2468 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
2469 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2470 * cgraphunit.c (cgraph_finalize_function): Only look into possible
2471 devirtualization when optimizing.
2472 (verify_cgraph_node): Verify thunks.
2473 (cgraph_analyze_function): Analyze thunks.
2474 (cgraph_mark_functions_to_output): Output thunks only in combination
2475 with function they are assigned to.
2476 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
2477 alias into normal node.
2478 (assemble_thunks): New functoin.
2479 (cgraph_expand_function): Use it.
2480 * lto-cgraph.c (lto_output_node): Stream thunks.
2481 (input_overwrite_node): Stream in thunks.
2482 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
2483 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
2484 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
2485 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
2486 (inline_analyze_function): Do not care about thunk jump functions.
2487 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
2488 * ipa-prop.c (ipa_prop_write_jump_functions): Use
2489 cgraph_function_with_gimple_body_p.
2490 * passes.c (do_per_function_toporder): Use
2491 cgraph_function_with_gimple_body_p.
2492 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
2493 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
2494 (function_called_by_processed_nodes_p): Likewise.
2496 2011-05-06 Joseph Myers <joseph@codesourcery.com>
2498 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
2499 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
2501 (mabi=): Replace with separate entries for mabi=altivec,
2502 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
2503 mabi=ieeelongdouble and mabi=ibmlongdouble.
2504 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
2505 check for -mabi=spe without SPE ABI support here.
2506 (rs6000_handle_option): Replace OPT_mabi_ handling with
2507 OPT_mabi_altivec and OPT_mabi_spe handling.
2509 2011-05-06 Cary Coutant <ccoutant@google.com>
2511 * dwarf2out.c (contains_subprogram_definition): New function.
2512 (should_move_die_to_comdat): Call it.
2514 2011-05-06 Jeff Law <law@redhat.com>
2516 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
2517 remove_ctrl_stmt_and_useless_edges.
2518 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
2519 (fixup_template_block, thread_single_edge): Likewise.
2520 (mark_threaded_blocks): Use THREAD_TARGET.
2522 2011-05-06 Alan Modra <amodra@gmail.com>
2525 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2526 const0_rtx as the arg to the dummy __tls_get_addr libcall.
2528 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
2530 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
2531 constraint modifier to "r".
2533 2011-05-06 Joseph Myers <joseph@codesourcery.com>
2535 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
2536 fall through for OPT_mcmodel_.
2538 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2540 * config/s390/s390.c (s390_asm_trampoline_template): Comment
2542 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
2544 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2547 * config/arm/arm.opt (marm): Document it.
2548 (mthumb): Reject negative variant.
2550 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
2553 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2554 Fix typo in "ccvt" variable name.
2556 2011-05-06 Tristan Gingold <gingold@adacore.com>
2559 * config/vms/vms-ar.c (main): Remove cwd variable.
2561 2011-05-06 Jakub Jelinek <jakub@redhat.com>
2564 * var-tracking.c (prepare_call_arguments): Move else before #endif.
2566 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2568 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2569 * gimplify.c (gimplify_switch_expr): Likewise.
2570 * omp-low.c (expand_omp_sections): Likewise.
2571 * tree-eh.c (lower_try_finally_switch): Likewise.
2572 (lower_eh_dispatch): Likewise.
2573 * tree.h (build_case_label): Declare.
2574 * tree.c (build_case_label): Define.
2576 2011-05-05 Jason Merrill <jason@redhat.com>
2579 * tree-inline.c (copy_tree_r): Use copy_statement_list.
2580 (copy_statement_list): Don't recurse.
2581 * stor-layout.c (copy_self_referential_tree_r): Don't allow
2584 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2586 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2587 through from -mfpu= handling.
2588 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2590 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
2592 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2595 2011-05-05 Steve Ellcey <sje@cup.hp.com>
2597 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2599 (hppa[12]*-*-hpux11*): Ditto.
2600 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2601 * config/ia64/hpux-unix2003.h: New.
2602 * config/pa/pa-hpux1131.opt: New.
2603 * config/pa/pa-hpux1131.h: New.
2604 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2605 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2606 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2608 2011-05-05 Jakub Jelinek <jakub@redhat.com>
2611 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2612 instead of mode as 3rd argument to recursive call.
2613 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2614 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2616 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2617 don't give up if mode is Pmode and mem_mode is not VOIDmode.
2618 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2619 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2621 2011-05-05 Julian Brown <julian@codesourcery.com>
2623 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2624 parenthesis in D-register case.
2626 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2628 * opt-functions.awk (var_type_struct): Handle Enum options.
2629 * optc-gen.awk: Don't check range of variables of character type.
2630 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2631 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2632 rs6000_sdata_name, rs6000_explicit_options): Remove.
2633 (rs6000_option_override_internal): Check for -malign-power here.
2634 Use global_options_set instead of rs6000_explicit_options.
2635 (rs6000_parse_fpu_option): Remove.
2636 (rs6000_handle_option): Access variables via opts and opts_set
2637 pointers. Use error_at and warning_at. Add fall-through
2638 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2639 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2640 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2641 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2642 here. Don't use rs6000_parse_fpu_option.
2643 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2644 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2645 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2647 (mspe): Use Var and Save.
2648 (mtraceback=): Use Enum and Var.
2649 (rs6000_traceback_type): New Enum and EnumValue entries.
2650 (mfloat-gprs=): Use Enum, Var and Save.
2651 (rs6000_float_gprs): New Enum and EnumValue entries.
2652 (mlong-double-): use Var and Save.
2653 (msched-costly-dep=, minsert-sched-nops=): Use Var.
2654 (malign-): Use Enum and Var.
2655 (rs6000_alignment_flags): New Enum and EnumValue entries.
2657 (fpu_type_t): New Enum and EnumValue entries.
2658 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2659 global_options_set instead of rs6000_explicit_options.
2660 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2661 global_options_set instead of rs6000_explicit_options.
2662 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2663 global_options_set instead of rs6000_explicit_options.
2664 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2665 global_options_set instead of rs6000_explicit_options.
2666 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2667 global_options_set instead of rs6000_explicit_options.
2668 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2669 global_options_set instead of rs6000_explicit_options.
2670 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2672 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2673 global_options_set instead of rs6000_explicit_options.
2674 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2675 (rs6000_cmodel): New Enum and EnumValue entries.
2676 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2677 global_options_set instead of rs6000_explicit_options.
2678 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2679 (mtls-size=): Use Enum and Var.
2680 (rs6000_tls_size): New Enum and EnumValue entries.
2682 2011-05-05 Michael Matz <matz@suse.de>
2684 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2685 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2686 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2687 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2688 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2689 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2690 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2691 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2692 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2693 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2694 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2695 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2696 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2697 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2698 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2699 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2701 2011-05-05 Richard Guenther <rguenther@suse.de>
2703 * expmed.c (expand_variable_shift): Rename to ...
2704 (expand_shift_1): ... this. Take an expanded shift amount.
2705 For rotates recurse directly not building trees for the shift amount.
2706 (expand_variable_shift): Wrap around expand_shift_1.
2707 (expand_shift): Adjust.
2709 2011-05-05 Jakub Jelinek <jakub@redhat.com>
2711 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2713 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2715 * tree.h (get_pending_sizes): Remove prototype.
2716 (put_pending_size): Likewise.
2717 (put_pending_sizes): Likewise.
2718 * stor-layout.c (pending_sizes): Delete.
2719 (get_pending_sizes): Likewise.
2720 (put_pending_size): Likewise.
2721 (put_pending_sizes): Likewise.
2722 (variable_size): Do not call put_pending_size and tidy up.
2723 * function.h (struct function): Remove dont_save_pending_sizes_p.
2724 * lto-streamer-in.c (input_function): Do not stream it.
2725 * lto-streamer-out.c (output_function): Likewise.
2726 * tree-inline.c (initialize_cfun): Do not copy it.
2727 * c-decl.c (store_parm_decls): Do not set it.
2728 * omp-low.c (create_task_copyfn): Likewise.
2729 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2731 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
2733 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2735 (*movdf_internal): Ditto.
2736 (*movdf_internal_nointeger): Ditto.
2737 (*movsf_internal): Ditto.
2739 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2741 * c-decl.c (finish_decl): Don't call get_pending_sizes.
2742 (grokparm): Add parameter expr. Pass it to grokdeclarator.
2743 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
2744 (c_variable_size): Remove.
2745 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
2746 call put_pending_sizes.
2747 (get_parm_info): Add parameter expr. Use it to set
2748 arg_info->pending_sizes.
2749 (store_parm_decls): Use arg_info->pending_sizes instead or calling
2751 * c-parser.c (c_parser_parms_declarator): Update call to
2752 c_parser_parms_list_declarator.
2753 (c_parser_parms_list_declarator): Take parameter expr. Update
2754 call to push_parm_decl. Update recursive call. Don't call
2755 get_pending_sizes. Update calls to get_parm_info.
2756 (c_parser_objc_method_definition): Update calls to
2757 c_parser_objc_method_decl and objc_start_method_definition.
2758 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2759 (c_parser_objc_method_decl): Add parameter expr. Update call to
2761 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2762 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2763 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2765 2011-05-05 Michael Hope <michael.hope@linaro.org>
2768 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2771 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2773 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2774 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2775 (spu_output_mi_thunk): New function.
2777 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2779 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2780 targetm.asm_out.print_operand.
2781 * config/sol2.c: Include target.h.
2783 2011-05-04 Jan Hubicka <jh@suse.cz>
2785 * ipa-inline.c (reset_edge_caches): New function.
2786 (update_caller_keys): Add check_inlinablity_for; do not
2787 reset edge caches; remove now unnecesary loop.
2788 (update_callee_keys): Add comments; reset node_growth_cache of callee.
2789 (update_all_callee_keys): Likewise.
2790 (inline_small_functions): Sanity check cache; update code
2793 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
2795 PR rtl-optimization/47612
2796 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2797 as the last insn of the sequence to be moved.
2799 2011-05-04 Tobias Burnus <burnus@net-b.de>
2802 * doc/invoke.texi (Ofast): Document that it
2803 enables Fortran's -fno-protect-parens.
2805 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
2807 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2809 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
2811 * stor-layout.c (variable_size): Do not issue errors.
2813 2011-05-04 Richard Guenther <rguenther@suse.de>
2815 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2816 for array-ref indices.
2817 (tree_coverage_counter_addr): Likewise.
2818 (build_fn_info_type): Use size_int for index types.
2819 (build_gcov_info): Likewise.
2821 2011-05-04 Richard Guenther <rguenther@suse.de>
2823 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2825 * c-typeck.c (really_start_incremental_init): Use bitsize_int
2826 for constructor indices.
2827 (push_init_level): Likewise.
2829 2011-05-04 Richard Guenther <rguenther@suse.de>
2831 * explow.c (promote_mode): Move variable declarations before code.
2833 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2835 * tree.h (build_function_type_array): Declare.
2836 (build_varargs_function_type_array): Declare.
2837 (build_function_type_vec, build_varargs_function_type_vec): Define.
2838 * tree.c (build_function_type_array_1): New function.
2839 (build_function_type_array): New function.
2840 (build_varargs_function_type_array): New function.
2842 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
2844 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2845 before setting STMT_VINFO_TYPE.
2847 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2849 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2850 instead of spu_pass_by_reference.
2852 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2854 * calls.c (emit_library_call_value_1): Invoke
2855 promote_function_mode hook on libcall arguments.
2856 * explow.c (promote_function_mode, promote_mode): Handle TYPE
2857 argument being NULL.
2858 * targhooks.c (default_promote_function_mode): Lisewise.
2859 * config/s390/s390.c (s390_promote_function_mode): Likewise.
2860 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2862 * doc/tm.texi: Document that TYPE argument might be NULL.
2864 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2866 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2868 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2871 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2873 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2875 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2876 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2878 * mips-tfile.c: ... here.
2879 Don't include coretypes.h, tm.h, filenames.h.
2880 (saber_stop): Remove definition and all calls.
2881 [__SABER__]: Remove.
2882 (__LINE__): Remove default.
2883 (Size_t, Ptrdiff_t): Remove definitions.
2884 Replace by size_t, ptrdiff_t.
2885 [!MIPS_DEBUGGING_INFO]: Remove.
2886 (SHASH_SIZE, THASH_SIZE): Remove defaults.
2887 (progname): Add const.
2889 Replace all uses by static.
2890 (ALIGN_SYMTABLE_OFFSET): Remove default.
2891 * mips-tdump.c: Don't include coretypes.h, tm.h.
2892 Remove !MIPS_IS_STAB guard.
2893 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2894 $(TM_H), filenames.h dependencies.
2895 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2897 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2900 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2901 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2903 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2906 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2907 account and save/restore RETS.
2908 (PROFILE_BEFORE_PROLOGUE): Define.
2909 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
2910 the push insn to use predecrement.
2912 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2915 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2917 2011-05-04 Nick Clifton <nickc@redhat.com>
2919 * config/mn10300/mn10300.c: Include cfgloop.h.
2921 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
2922 Lcc or a FLcc insn into the instruction stream.
2923 (mn10300_block_contains_call): New function. Returns true if the
2924 given basic block contains a CALL insn.
2925 (mn10300_loop_contains_call_insn): New function. Returns true if
2926 the given loop contains a CALL insn.
2927 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
2928 to use the SETLB and Lcc or FLcc insns.
2929 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2930 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2931 * config/mn10300/mn10300.opt (msetlb): New option. Used to
2932 disable the SETLB optimization.
2933 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2934 __SETLB__ or __NO_SETLB__.
2935 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2936 (movsf_internal): Handle MDR register.
2937 (cmpsi): Make visible.
2938 (setlb): New pattern.
2940 (FLcc): New pattern.
2942 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
2945 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2946 for reg<->xmm moves.
2947 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2948 (vec_concatv2di_rex64_sse): Ditto.
2949 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2950 (*vec_extractv2di_1_rex64): Ditto.
2953 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
2955 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2957 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2959 2011-05-04 Richard Guenther <rguenther@suse.de>
2961 * tree.h (int_const_binop): Remove notrunc argument.
2962 * fold-const.c (int_const_binop): Remove notrunc argument. Always
2963 create integer constants that are properly truncated.
2964 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2965 (const_binop): Remove zero notrunc argument to int_const_binop.
2966 (size_binop_loc): Likewise.
2967 (fold_div_compare): Likewise.
2968 (maybe_canonicalize_comparison_1): Likewise.
2969 (fold_comparison): Likewise.
2970 (fold_binary_loc): Likewise.
2971 (multiple_of_p): Likewise.
2972 * expr.c (store_constructor): Likewise.
2973 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2974 (maybe_fold_stmt_addition): Likewise.
2975 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2976 * stor-layout.c (layout_type): Likewise.
2977 * tree-data-ref.c (tree_fold_divides_p): Likewise.
2978 * tree-sra.c (build_ref_for_offset): Likewise.
2979 (build_user_friendly_ref_for_offset): Likewise.
2980 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2981 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2982 * tree-ssa-loop-niter.c (inverse): Likewise.
2983 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2984 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2985 * tree-switch-conversion.c (check_range): Likewise.
2986 (build_constructors): Likewise.
2987 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2988 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2989 (extract_range_from_assert): Likewise.
2990 (vrp_int_const_binop): Likewise.
2991 (extract_range_from_binary_expr): Likewise.
2992 (extract_range_from_unary_expr): Likewise.
2993 (check_array_ref): Likewise.
2994 (find_case_label_range): Likewise.
2995 (simplify_div_or_mod_using_ranges): Likewise.
2996 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2997 comparing case labels for merging.
2999 2011-05-03 Mark Wielaard <mjw@redhat.com>
3001 * dwarf2out.c (debug_str_hash_forced): Removed.
3002 (gen_label_for_indirect_string): Removed.
3003 (get_debug_string_label): Removed.
3004 (AT_string_form): Generate label directly.
3005 (output_indirect_string): Test indirect_string_node for
3006 DW_FORM_strp instead of checking label and refcount.
3007 (prune_indirect_string): Removed.
3008 (prune_unused_types): Don't check debug_str_hash_forced or
3009 call prune_indirect_string.
3011 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3014 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
3016 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
3020 * combine.c (try_combine): Skip debug insns at m_split tests.
3022 2011-04-26 Mark Wielaard <mjw@redhat.com>
3025 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
3026 when info_section_emitted.
3028 2011-05-03 Joseph Myers <joseph@codesourcery.com>
3030 * config/mips/mips-opts.h: New.
3031 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
3033 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
3034 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
3035 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
3037 * config/mips/mips.h (enum mips_code_readable_setting): Move to
3039 (mips_abi, mips_code_readable): Don't declare.
3040 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3041 (mabi=): Use Enum and Var.
3042 (mips_abi): New Enum and EnumValue entries.
3043 (mcode-readable=): Use Enum and Var.
3044 (mips_code_readable_setting): New Enum and EnumValue entries.
3045 (mr10k-cache-barrier=): Use Enum and Var.
3046 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
3048 2011-05-03 Jan Hubicka <jh@suse.cz>
3050 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
3051 replace hash by pointer map.
3052 (cgraph_node_set_element_def, cgraph_node_set_element,
3053 const_cgraph_node_set_element, varpool_node_set_element_def,
3054 varpool_node_set_element, const_varpool_node_set_element): Remove.
3055 (free_cgraph_node_set, free_varpool_node_set): New function.
3056 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
3057 * tree-emutls.c: Free varpool node set.
3058 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
3059 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3060 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
3061 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3062 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
3063 Move here from ipa.c; implement using pointer_map
3064 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
3065 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
3066 debug_cgraph_node_set, varpool_node_set_new,
3067 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
3068 dump_varpool_node_set, debug_varpool_node_set):
3069 Move to ipa-uitls.c.
3070 * passes.c (ipa_write_summaries): Update.
3072 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3074 From Mike Frysinger:
3075 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
3076 bf542/bf544/bf547/bf548/bf549.
3078 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
3080 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
3082 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3085 * config/bfin/bfin.md (MOVCC): New mode_macro.
3086 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
3087 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
3088 comments from generated assembly.
3090 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3093 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
3094 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
3095 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
3096 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
3097 * config/bfin/lib1funcs.asm (___muldi3): New function.
3099 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3101 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
3102 build_function_type_list instead of build_function_type.
3103 Rearrange initialization of `args' to do so.
3105 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3107 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
3108 instead of build_function_type.
3110 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3112 * config/rs6000/rs6000.c (spe_init_builtins): Call
3113 build_function_type_list instead of build_function_type.
3114 (paired_init_builtins, altivec_init_builtins): Likewise.
3115 (builtin_function_type): Likewise.
3117 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3119 * config/sh/sh.c (sh_media_init_builtins): Call
3120 build_function_type_list instead of build_function_type.
3122 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3124 * config/sparc/sparc.c (sparc_file_end): Call
3125 build_function_type_list instead of build_function_type.
3127 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3129 * config/alpha/alpha.c (alpha_init_builtins): Call
3130 build_function_type_list instead of build_function_type.
3132 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3134 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
3135 build_function_type_list instead of build_function_type.
3137 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3139 * config/iq2000/i2000.c (iq2000_init_builtins): Call
3140 build_function_type_list instead of build_function_type.
3141 Delete `endlink' variable.
3143 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3145 * config/avr/avr.c (avr_init_builtins): Call
3146 build_function_type_list instead of build_function_type.
3148 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3150 * config/picochip/picochip.c (picochip_init_builtins): Call
3151 build_function_type_list instead of build_function_type.
3152 Delete `endlink' variable.
3154 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
3156 * config/bfin/bfin.c (bfin_init_builtins): Call
3157 build_function_type_list instead of build_function_type.
3159 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3162 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
3163 that's not CONST_INT. Seemingly redundant check is due to PR39768.
3165 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3168 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
3169 libbffastfp overrides libgcc when -mfast-fp.
3171 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3173 Originally from Bernd Schmidt
3174 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
3175 * config/bfin/bfin.c (override_options): Test it and error if
3178 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
3180 Originally From Bernd Schmidt
3181 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
3184 2011-05-03 Jeff Law <law@redhat.com>
3186 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
3187 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
3188 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
3189 than accessing AUX field directly. Free the AUX field before
3191 (thread_block, thread_through_loop_header): Likewise.
3192 (thread_single_edge, mark_threaded_blocks): Likewise.
3193 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
3194 (register_jump_thread): Do not attempt to thread to a NULL edge.
3196 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3198 * function.c (init_function_start): Call decide_function_section.
3199 * varasm.c (decide_function_section): New function.
3200 (assemble_start_function): When not using
3201 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
3202 or first_function_block_is_cold.
3203 * rtl.h (decide_function_section): Declare.
3205 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
3206 Jakub Jelinek <jakub@redhat.com>
3209 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
3210 only succeed if req_mode is the same as set_mode.
3212 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
3214 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
3215 * genemit.c (gen_exp): Handle RETURN.
3216 * emit-rtl.c (verify_rtx_sharing): Likewise.
3217 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
3218 * rtl.c (copy_rtx): RETURN is shared.
3219 * rtl.h (enum global_rtl_index): Add GR_RETURN.
3221 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
3222 * config/s390/s390.c (s390_emit_epilogue): Likewise.
3223 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
3224 * config/cris/cris.c (cris_expand_return): Likewise.
3225 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
3226 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
3227 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
3228 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
3229 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
3231 * config/v850/v850.c (expand_epilogue): Likewise.
3232 * config/bfin/bfin.c (bfin_expand_call): Likewise.
3233 * config/arm/arm.md (epilogue): Likewise.
3234 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
3235 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
3236 variable to ret_reg.
3238 2011-05-03 Richard Guenther <rguenther@suse.de>
3241 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3242 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
3243 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3245 2011-05-03 Richard Guenther <rguenther@suse.de>
3247 * c-decl.c (grokdeclarator): Instead of looking at
3248 TREE_OVERFLOW check if the constant fits in the index type.
3250 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3252 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
3253 (vec_store_lanes<mode><mode>): Likewise.
3255 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3257 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
3258 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
3259 convert_optab_index values.
3260 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
3261 * genopinit.c (optabs): Initialize the new optabs.
3262 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
3263 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
3264 (expand_STORE_LANES): New functions.
3265 * tree.h (build_array_type_nelts): Declare.
3266 * tree.c (build_array_type_nelts): New function.
3267 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
3268 (vect_model_load_cost): Likewise.
3269 (vect_store_lanes_supported, vect_load_lanes_supported)
3270 (vect_record_strided_load_vectors): Declare.
3271 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
3272 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
3273 (vect_transform_strided_load): Split out statement recording into...
3274 (vect_record_strided_load_vectors): ...this new function.
3275 * tree-vect-stmts.c (create_vector_array, read_vector_array)
3276 (write_vector_array, create_array_ref): New functions.
3277 (vect_model_store_cost): Add store_lanes_p argument.
3278 (vect_model_load_cost): Add load_lanes_p argument.
3279 (vectorizable_store): Try to use store-lanes functions for
3281 (vectorizable_load): Likewise load-lanes and loads.
3282 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
3283 to vect_model_store_cost.
3284 (vect_build_slp_tree): Likewise vect_model_load_cost.
3286 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
3288 * hooks.h (hook_bool_mode_uhwi_false): Declare.
3289 * hooks.c (hook_bool_mode_uhwi_false): New function.
3290 * target.def (array_mode_supported_p): New hook.
3291 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
3292 * doc/tm.texi: Regenerate.
3293 * stor-layout.c (mode_for_array): New function.
3294 (layout_type): Use it.
3295 * config/arm/arm.c (arm_array_mode_supported_p): New function.
3296 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
3298 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
3301 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
3302 for -fstack-check if the size to allocate is negative.
3304 2011-05-02 Lawrence Crowl <crowl@google.com>
3306 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
3307 (timevar_cond_start): New for starting a timer only when it is not
3309 (timevar_cond_stop): New for stopping a timer when it was not already
3312 * timevar.c (timevar_stop): Enable start/stop timers to start again.
3313 (timevar_cond_start): New as above.
3314 (timevar_cond_stop): New as above.
3316 * timevar.def: Add start/stop timers for compiler phases,
3317 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
3318 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
3319 and TV_PHASE_FINALIZE.
3320 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
3321 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
3322 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
3323 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
3324 Make unused TV_OVERLOAD into a start/stop timer.
3326 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
3327 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
3328 to indicate that they are start/stop timers.
3330 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
3331 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
3332 Move initialization to do_compile.
3333 (do_compile): Add initialization from above.
3334 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
3336 * c-decl.c (c_write_global_declarations): Add start/stop of
3337 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
3339 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
3340 or TV_PARSE_INLINE, as appropriate.
3341 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
3342 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
3344 2011-05-02 Jason Merrill <jason@redhat.com>
3347 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
3349 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
3352 * c-decl.c (finish_decl): Only create a composite if the types are
3355 2011-05-02 Joseph Myers <joseph@codesourcery.com>
3357 * config/fr30/fr30-protos.h (Mmode): Don't define.
3358 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
3359 definition where used.
3360 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
3361 define. Expand definitions where used.
3362 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
3363 Expand definitions where used.
3364 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
3365 rx_function_arg, rx_function_arg_advance,
3366 rx_function_arg_boundary): Expand definitions of those macros.
3367 * config/v850/v850-protos.h (Mmode): Don't define. Expand
3368 definition where used.
3370 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3372 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
3374 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
3375 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
3376 with *movv2sf_internal_rex64_avx.
3377 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
3378 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
3379 Use %v prefix in insn mnemonic to handle TARGET_AVX.
3380 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
3381 "vex" in "prefix" attribute calculation.
3382 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
3384 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
3387 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
3388 inputs match the output.
3390 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
3393 * config/m68k/m68k.c (m68k_expand_prologue): Set
3394 current_function_static_stack_size.
3396 2011-05-02 Jan Hubicka <jh@suse.cz>
3398 * lto-streamer.c (lto_streamer_cache_insert_1,
3399 lto_streamer_cache_lookup, lto_streamer_cache_create,
3400 lto_streamer_cache_delete): Use pointer map instead of hashtable.
3401 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
3403 2011-05-02 Joseph Myers <joseph@codesourcery.com>
3405 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
3406 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
3407 config/m68k/t-opts: New files.
3408 * config/m68k/m68k-tables.opt: New file (generated).
3409 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
3410 extra_options and m68k/t-opts to tmake_file.
3411 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
3412 (all_isas): Initialize using m68k-isas.def.
3413 (all_microarchs): Initialize using m68k-microarchs.def.
3414 (m68k_find_selection): Remove.
3415 (m68k_handle_option): Don't assert that global structures are in
3416 use. Use error_at. Access variables via opts pointer. Don't
3417 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
3418 directly for -m68020-40 and -m68020-60.
3419 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
3420 m68k_tune_entry here.
3421 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
3423 (m68k_library_id_string): Remove declaration.
3424 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
3425 (m68k_library_id_string): New Variable.
3426 (march=, mcpu=, mtune=): Use Enum and Var.
3428 2011-05-02 Richard Guenther <rguenther@suse.de>
3430 * varasm.c (output_constructor_regular_field): Compute zero-based
3431 index with double-ints. Make sure to ICE instead of producing
3433 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
3434 in asserts. Properly use a signed type.
3436 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
3438 * config/i386/sse.md (V): New mode iterator.
3439 (V_128): Rename from SSEMODE. Make V2DF mode conditional on