1 2010-09-21 Richard Guenther <rguenther@suse.de>
3 * dwarf2out.c (is_cu_die): New function.
5 (gen_subprogram_die): Likewise.
6 (gen_struct_or_union_type_die): Likewise.
7 (dwarf2out_finish): Likewise.
8 (comp_unit_die): Rename to ...
9 (single_comp_unit_die): ... this.
10 (comp_unit_die): New function lazily constructing and
11 returning single_comp_unit_die.
12 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
13 base_type_die, subrange_type_die, modified_type_die,
14 lower_bound_default, add_bound_info, add_prototyped_attribute,
15 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
16 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
17 force_decl_die, gen_namespace_die, dwarf2out_decl,
18 dwarf2out_start_source_file, dwarf2out_end_source_file,
19 prune_unused_types, dwarf2out_finish): Use it.
20 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
21 the global list of translation-unit decls.
22 (dwarf2out_init): Do not create single_comp_unit_die here.
23 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
25 2010-09-21 Richard Guenther <rguenther@suse.de>
27 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
30 2010-09-21 Bernd Schmidt <bernds@codesourcery.com>
32 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
33 (qhs_extenddi_cstr): Likewise.
34 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
35 them for the source operand.
37 2010-09-21 Uros Bizjak <ubizjak@gmail.com>
39 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
40 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
41 (ix86_split_ashr): Ditto.
42 (ix86_split_lshr): Ditto.
44 2010-09-21 Richard Guenther <rguenther@suse.de>
46 PR tree-optimization/45580
47 * tree-ssa-propagate.c (substitute_and_fold): Always replace
49 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
50 virtuals fold the call into a regular indirect one.
52 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
54 PR rtl-optimization/42775
55 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
56 scheduling is enabled.
58 2010-09-20 Jakub Jelinek <jakub@redhat.com>
60 PR rtl-optimization/45728
61 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
62 gen_lowpart_common first and if that fails, force_reg first
63 before calling gen_lowpart.
66 * cfgexpand.c (expand_one_stack_var_at): Use
67 crtl->max_used_stack_slot_alignment as max_align, instead
68 of maximum of that and PREFERRED_STACK_BOUNDARY.
69 Don't call update_stack_alignment.
71 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
73 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
74 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
75 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
76 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
77 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
78 (build_nonstandard_integer_type): Likewise.
79 (build_range_type_1): New function, built from...
80 (build_range_type): ...this. Call build_range_type_1.
81 (build_nonshared_range_type): New function.
82 (build_array_type_1): New function, built from...
83 (build_array_type: ...this. Call build_array_type_1.
84 (build_nonshared_array_type): New function.
85 * tree.h (build_nonshared_range_type): Declare.
86 (build_nonshared_array_type): Likewise.
88 2010-09-20 Anatoly Sokolov <aesok@post.ru>
90 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
91 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
92 (arm_class_likely_spilled_p): New function.
94 2010-09-20 Uros Bizjak <ubizjak@gmail.com>
96 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
98 (ix86_split_ashl): Ditto.
99 (ix86_split_ashr): Ditto.
100 (ix86_split_lshr): Ditto.
101 (ix86_adjust_counter): Ditto.
103 2010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
105 * c-family/c-common.h (constant_string_class): Documented with
106 comment identical to the one already in c-common.c.
108 2010-09-20 Jakub Jelinek <jakub@redhat.com>
110 * dwarf2out.c (any_cfis_emitted): New static variable.
111 (add_fde_cfi): Set it.
112 (dwarf2out_frame_debug): Clear it before processing,
113 if it is set afterwards, flush any queued reg saves.
116 * dwarf2out.c (add_accessibility_attribute): Assume
117 DW_ACCESS_private as the default for dwarf_version > 2
118 and DW_TAG_class_type parent.
119 (gen_inheritance_die): Assume DW_ACCESS_public as the default
120 for dwarf_version > 2 and parent other than DW_TAG_class_type.
122 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
125 * arm.md (arm_movt): Only enable on machines with MOVT.
127 2010-09-20 Jie Zhang <jie@codesourcery.com>
129 * config/arm/arm.c (arm_address_offset_is_imm): New.
130 (arm_early_store_addr_dep): New.
131 (arm_early_load_addr_dep): New.
132 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
133 (arm_early_load_addr_dep): Declare.
134 (arm_address_offset_is_imm): Declare.
135 * config/arm/cortex-m4.md: New file.
136 * config/arm/cortex-m4-fpu.md: New file.
137 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
138 (attr generic_sched): Exclude cortexm4.
139 (attr generic_vfp): Exclude cortexm4.
141 2010-09-20 Richard Guenther <rguenther@suse.de>
144 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
146 2010-09-20 Jan Hubicka <jh@suse.cz>
148 PR tree-optimize/45605
149 * cgraph.h (const_value_known_p): Declare.
150 (varpool_decide_const_value_known): Remove.
151 * tree-ssa-ccp.c (get_base_constructor): Use it.
152 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
153 * expr.c (string_constant): Likewise.
154 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
155 * ipa.c (ipa_discover_readonly_nonaddressable_var,
156 function_and_variable_visibility): Likewise.
157 * gimplify.c (gimplify_call_expr): Likewise.
158 * gimple-fold.c (get_symbol_constant_value): Likewise.
159 * varpool.c (varpool_decide_const_value_known): Replace by...
160 (const_value_known_p): ... this one; handle other kinds of DECLs
161 too and work for automatic vars.
162 (varpool_finalize_decl): Use const_value_known_p.
164 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
167 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
169 2010-09-20 Richard Guenther <rguenther@suse.de>
171 PR tree-optimization/45705
172 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
174 2010-09-20 Jakub Jelinek <jakub@redhat.com>
176 PR rtl-optimization/45695
177 * combine.c (try_combine): When splitting a two set pattern,
178 make sure the pattern which will be put into i2 doesn't use REGs
179 or MEMs set by insns in between i2 and i3.
181 2010-09-19 Jan Hubicka <jh@suse.cz>
184 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
185 processing same node twice.
187 2010-09-19 Anatoly Sokolov <aesok@post.ru>
189 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
190 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
191 (bfin_class_likely_spilled_p): New function
193 2010-09-19 Ira Rosen <irar@il.ibm.com>
195 PR tree-optimization/45714
196 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
197 created in vectorizable_call instead of the original statement in
200 2010-09-19 Uros Bizjak <ubizjak@gmail.com>
202 * config/i386/i386-protos.h (split_double_mode): New prototype.
203 (split_di, split_ti): Remove prototypes.
204 * config/i386/i386.c (split_double_mode): New function.
205 (split_di, split_ti): Remove.
206 (ix86_expand_branch): Use split_double_mode.
207 (ix86_split_to_parts): Ditto.
208 (ix86_split_ashl): Ditto.
209 (ix86_split_ashr): Ditto.
210 (ix86_split_lshr): Ditto.
211 (ix86_force_to_memory): Ditto.
212 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
214 2010-09-18 Jan Hubicka <jh@suse.cz>
216 PR tree-optimization/45453
217 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
218 virtual functions are reachable.
219 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
220 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
221 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
222 when modifying function.
224 2010-09-18 Jan Hubicka <jh@suse.cz>
226 PR tree-optimization/45605
227 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
228 * gimple-fold.c (static_object_in_other_unit_p): New function.
229 (canonicalize_constructor_val): Use it.
230 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
232 (gimple_fold_obj_type_ref_known_binfo): Use
233 static_object_in_other_unit_p.
235 2010-09-18 Richard Guenther <rguenther@suse.de>
237 PR tree-optimization/45709
238 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
239 insertions until after all PHI nodes of the block are processed.
241 2010-09-18 Tijl Coosemans <tijl@coosemans.org>
243 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
245 2010-09-18 Kai Tietz <kai.tietz@onevision.com>
247 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
249 2010-09-18 Richard Guenther <rguenther@suse.de>
251 PR tree-optimization/45709
252 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
254 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
256 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
257 (dot_deps_stmt): Same.
258 * graphite-poly.c (dot_lst): Same.
259 * graphite-scop-detection.c (dot_all_scops): Same.
262 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
265 2009-12-16 Ben Elliston <bje@au.ibm.com>
267 * tree-data-ref.c (dot_rdg_1): Added back.
268 (dot_rdg): Same. Added "#if 0" around system call.
270 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
271 Richard Henderson <rth@redhat.com>
273 * config/i386/i386.c (initial_ix86_tune_features): Add
274 X86_TUNE_PAD_SHORT_FUNCTION.
275 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
276 (ix86_count_insn): New.
277 (ix86_pad_short_function): Likewise.
278 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
280 * config/i386/i386.h (ix86_tune_indices): Add
281 X86_TUNE_PAD_SHORT_FUNCTION.
282 (TARGET_PAD_SHORT_FUNCTION): New.
284 * config/i386/i386.md (UNSPEC_NOPS): New.
287 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
290 * calls.c (expand_call): Make sure that all variable sized
291 adjustments are multiple of preferred stack boundary after
294 2010-09-17 DJ Delorie <dj@redhat.com>
296 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
297 passed an invalid value, print an error instead of ICEing.
298 (valid_psw_flag): New.
299 (rx_expand_builtin): Call it for setpsw/clrpsw.
300 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
302 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
303 (bitclr_in_memory): Likewise.
304 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
306 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
309 * cfgexpand.c (update_stack_alignment): New.
310 (get_decl_align_unit): Use it.
311 (expand_one_stack_var_at): Call update_stack_alignment.
313 2010-09-17 Richard Guenther <rguenther@suse.de>
315 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
316 Properly copy the read string.
318 2010-09-17 Joseph Myers <joseph@codesourcery.com>
320 * doc/options.texi (Variable): Document.
321 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
322 generate target_flags declarations explicitly. Don't define
323 VarExists variables for the driver.
324 * common.opt (target_flags): New Variable record.
325 (flag_dump_unnumbered, flag_dump_unnumbered_links,
326 flag_var_tracking, flag_var_tracking_assignments,
327 flag_var_tracking_assignments_toggle): Don't mark variables with
329 * config/i386/i386.c (ix86_isa_flags): Don't define here.
330 * config/i386/i386.opt (ix86_isa_flags): Define here.
331 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
332 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
334 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
335 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
336 Only define for generator programs.
337 * rtlanal.c (target_flags): Remove.
338 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
339 flag_var_tracking_assignments_toggle): Remove.
341 2010-09-17 Michael Matz <matz@suse.de>
343 PR tree-optimization/43432
344 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
345 Accept backwards consecutive accesses.
346 (vect_create_data_ref_ptr): If step is negative generate
348 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
349 (perm_mask_for_reverse, reverse_vec_elements): New functions.
350 (vectorizable_load): Handle loads with negative steps when easily
353 2010-09-03 Jan Hubicka <jh@suse.cz>
355 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
357 2010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
359 * config/v850/v850.c (v850_function_value_regno_p): Make static.
360 Adjust comments. Declare.
361 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
362 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
364 2010-09-17 Richard Guenther <rguenther@suse.de>
366 * common.opt (combine): Remove.
367 * gcc.c (default_compilers): Remove specs testing combine.
368 The C compilers no longer can combine.
369 (option_map): Remove -combine.
370 (display_help): Remove -combine.
371 (driver_handle_option): Remove OPT_combine handling.
372 (compile_input_file_p): Remove.
373 (do_spec): Remove code concerning combine.
375 * doc/invoke.texi: Remove traces of -combine.
376 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
378 2010-09-17 Richard Guenther <rguenther@suse.de>
381 * builtins.c (fold_builtin_memory_op): Always properly adjust
382 alignment of memory accesses.
384 2010-09-16 Jan Hubicka <jh@suse.cz>
386 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
389 2010-09-16 H.J. Lu <hongjiu.lu@intel.com>
391 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
393 * config/i386/i386.c (predict_jump): Add prototype.
394 (flag_opts): Add -m8bit-idiv.
395 (ix86_split_idivmod): New.
397 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
398 Add 2 splitters for SI/DI mode divide.
399 (divmod<mode>4_1): New pattern.
400 (udivmod<mode>4_1): Likewise.
401 (testdi_ccno_1): Likewise.
403 * config/i386/i386.opt (m8bit-idiv): New.
405 * doc/invoke.texi: Document -m8bit-idiv.
407 2010-09-16 Reza Yazdani <reza.yazdani@amd.com>
410 * config/i386/i386.c (min_insn_size): Moved out of the
411 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
413 2010-09-16 Jan Hubicka <jh@suse.cz>
415 * lto-cgraph.c (lto_output_node): Fix handling of clones.
416 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
417 unreachable clones with reachable clones.
418 * tree-inline.c (copy_bb): Fix sanity checking when producing
421 2010-09-16 Anatoly Sokolov <aesok@post.ru>
423 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
424 (TARGET_MEMORY_MOVE_COST): Define.
425 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
427 2010-09-16 Alexander Monakov <amonakov@ispras.ru>
429 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
433 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
434 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
436 2010-09-16 Joseph Myers <joseph@codesourcery.com>
438 * target.def (target_option.optimization): New hook.
439 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
440 TARGET_OPTION_OPTIMIZATION hook.
441 * doc/tm.texi: Regenerate.
442 * hooks.c (hook_void_int_int): New.
443 * hooks.h (hook_void_int_int): Declare.
444 * opts.c: Don't include tm_p.h.
445 (decode_options): Use targetm.target_option.optimization instead
446 of OPTIMIZATION_OPTIONS.
447 * system.h (OPTIMIZATION_OPTIONS): Poison.
448 * config/arm/arm-protos.h (arm_optimization_options): Remove.
449 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
450 (arm_optimization_options): Rename to arm_option_optimization.
452 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
453 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
454 (cris_option_optimization): New.
455 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
456 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
457 (crx_option_optimization): New.
458 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
459 * config/frv/frv-protos.h (frv_optimization_options): Remove.
460 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
461 (frv_optimization_options): Rename to frv_option_optimization.
463 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
464 * config/h8300/h8300.c (h8300_option_optimization): New.
465 (TARGET_OPTION_OPTIMIZATION): Define.
466 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
467 * config/i386/i386-protos.h (optimization_options): Remove.
468 * config/i386/i386.c (optimization_options): Rename to
469 ix86_option_optimization. Make static.
470 (TARGET_OPTION_OPTIMIZATION): Define.
471 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
472 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
473 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
474 (ia64_optimization_options): Rename to ia64_option_optimization.
475 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
476 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
477 commented-out definition.
478 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
479 instead of OPTIMIZATION_OPTIONS.
480 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
481 (m32r_option_optimization): New.
482 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
483 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
485 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
486 (mcore_option_optimization): New.
487 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
488 * config/mep/mep-protos.h (mep_optimization_options): Remove.
489 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
490 (mep_optimization_options): Rename to mep_option_optimization.
491 Make static. Take unused level and size parameters.
492 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
493 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
494 (mmix_option_optimization): New.
495 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
496 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
497 (pdp11_option_optimization): New.
498 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
499 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
500 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
501 (optimization_options): Rename to rs6000_option_optimization.
503 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
504 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
505 * config/rx/rx.c (rx_set_optimization_options): Rename to
506 rx_option_optimization. Make static. Take unused level and size
508 (TARGET_OPTION_OPTIMIZATION): Define.
509 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
510 * config/s390/s390-protos.h (optimization_options): Remove.
511 * config/s390/s390.c (optimization_options): Rename to
512 s390_option_optimization. Make static. Don't mark size parameter
514 (TARGET_OPTION_OPTIMIZATION): Define.
515 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
516 * config/sh/sh-protos.h (sh_optimization_options): Remove.
517 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
518 (sh_optimization_options): Rename to sh_option_optimization. Make
519 static. Don't mark parameters unused.
520 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
521 * config/spu/spu-protos.h (spu_optimization_options): Remove.
522 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
523 (spu_optimization_options): Rename to spu_option_optimization.
525 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
526 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
527 (v850_option_optimization): New.
528 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
529 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
530 (xtensa_option_optimization): New.
531 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
533 2010-09-16 Joseph Myers <joseph@codesourcery.com>
535 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
536 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
537 * doc/tm.texi: Regenerate.
538 * system.h (OVERRIDE_OPTIONS): Poison.
539 * target.def (override): Default to hook_void_void.
540 * targhooks.c (default_target_option_override): Remove.
541 * genmodes.c, machmode.def: Update comments mentioning
543 * config/alpha/alpha-modes.def: Update comment mentioning
544 alpha_override_options.
545 * config/alpha/alpha-protos.h (override_options): Remove.
546 * config/alpha/alpha.c (override_options): Rename to
547 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
548 (TARGET_OPTION_OVERRIDE): Define.
549 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
550 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
552 * config/arc/arc-protos.h (arc_init): Remove.
553 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
554 (arc_init): Rename to arc_option_override. Make static.
555 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
556 (OVERRIDE_OPTIONS): Remove.
557 * config/arm/arm-protos.h (arm_override_options): Remove.
558 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
559 (arm_override_options): Rename to arm_option_override. Make
560 static. Call SUBTARGET_OVERRIDE_OPTIONS.
561 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
562 * config/arm/arm.md: Update comment referring to arm_override_options.
563 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
564 instead of OVERRIDE_OPTIONS.
565 * config/avr/avr-protos.h (avr_override_options): Remove.
566 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
567 (avr_override_options): Rename to avr_option_override. Make static.
568 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
569 * config/bfin/bfin-protos.h (override_options): Remove (twice).
570 * config/bfin/bfin.c (override_options): Rename to
571 bfin_option_override. Make static.
572 (TARGET_OPTION_OVERRIDE): Define.
573 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
574 * config/cris/cris-protos.h (cris_override_options): Remove.
575 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
576 (cris_override_options): Rename to cris_option_override. Make static.
577 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
578 * config/frv/frv-protos.h (frv_override_options): Remove.
579 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
580 (frv_override_options): Rename to frv_option_override. Make static.
581 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
582 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
583 * config/h8300/h8300.c (h8300_init_once): Rename to
584 h8300_option_override. Make static.
585 (TARGET_OPTION_OVERRIDE): Define.
586 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
587 * config/i386/i386-protos.h (override_options): Remove.
588 * config/i386/i386.c (override_options): Rename to
589 ix86_option_override_internal. Make static. Comments referring
590 to this function and callers changed.
591 (ix86_option_override): New.
592 (TARGET_OPTION_OVERRIDE): Define.
593 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
594 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
595 * config/ia64/ia64.c (ia64_file_start): Update comment referring
596 to ia64_override_options.
597 * config/iq2000/iq2000-protos.h (override_options): Remove.
598 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
599 (override_options): Rename to iq2000_option_override. Make static.
600 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
601 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
602 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
603 (lm32_override_options): Rename to lm32_option_override. Make static.
604 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
605 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
606 (m32r_option_override): New.
607 (m32r_init): Update comment.
608 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
609 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
610 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
611 (m68hc11_override_options): Rename to m68hc11_option_override.
612 Make static. Return void.
613 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
614 * config/m68k/m68k-protos.h (override_options): Remove.
615 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
616 (override_options): Rename to m68k_option_override. Make static.
617 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
618 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
619 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
620 (mcore_override_options): Rename to mcore_option_override. Make
622 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
623 * config/mep/mep-protos.h (mep_override_options): Remove.
624 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
625 (mep_override_options): Rename to mep_option_override. Make static.
626 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
627 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
628 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
629 (mmix_override_options): Rename to mmix_option_override. Make static.
630 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
631 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
632 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
633 (mn10300_override_options): Rename to mn10300_option_override.
635 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
636 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
637 * config/moxie/moxie.c (moxie_override_options): Rename to
638 moxie_option_override. Make static.
639 (TARGET_OPTION_OVERRIDE): Define.
640 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
641 * config/picochip/picochip-protos.h (picochip_override_options):
642 Remove. Update comment referring to picochip_override_options.
643 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
644 (picochip_override_options): Rename to picochip_option_override.
645 Make static. Update comment and definition of
646 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
647 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
648 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
649 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
650 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
651 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
652 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
653 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
654 instead of OVERRIDE_OPTIONS.
655 * config/rs6000/rs6000-modes.def: Update comment referring to
656 rs6000_override_options.
657 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
658 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
659 (rs6000_override_options): Rename to
660 rs6000_option_override_internal. Make static. Commented
661 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
662 (rs6000_option_override): New.
663 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
664 instead of OVERRIDE_OPTIONS.
665 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
666 * config/s390/s390-protos.h (override_options): Remove.
667 * config/s390/s390.c (override_options): Rename to
668 s390_option_override. Make static.
669 (TARGET_OPTION_OVERRIDE): Define.
670 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
671 * config/score/score-protos.h (score_override_options): Remove.
672 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
673 (score_override_options): Rename to score_option_override. Make
675 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
676 Update comment referring to override_options.
677 * config/score/score3.c (score3_override_options): Rename to
678 score3_option_override.
679 * config/score/score3.h (score3_override_options): Rename to
680 score3_option_override.
681 * config/score/score7.c (score7_override_options): Rename to
682 score7_option_override.
683 * config/score/score7.h (score7_override_options): Rename to
684 score7_option_override.
685 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
686 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
687 (sparc_override_options): Rename to sparc_option_override. Make
688 static. Call SUBTARGET_OVERRIDE_OPTIONS.
689 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
690 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
691 instead of OVERRIDE_OPTIONS.
692 * config/spu/spu-protos.h (spu_override_options): Remove.
693 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
694 (spu_override_options): Rename to spu_option_override. Make
696 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
697 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
699 * config/vax/vax-protos.h (override_options): Remove.
700 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
701 (override_options): Rename to vax_option_override. Make static.
702 Call SUBTARGET_OVERRIDE_OPTIONS.
703 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
704 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
705 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
706 * config/xtensa/xtensa-protos.h (override_options): Remove.
707 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
708 (override_options): Rename to xtensa_option_override. Make static.
709 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
711 2010-09-16 Richard Guenther <rguenther@suse.de>
713 PR tree-optimization/45623
714 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
715 (get_constraint_for_component_ref): If computing a constraint
716 for the rhs handle type punning through unions.
717 (get_constraint_for_address_of): Adjust.
718 (get_constraint_for_1): Likewise.
719 (get_constraint_for): Likewise.
720 (get_constraint_for_rhs): New function.
721 (do_structure_copy): Adjust.
722 (make_constraint_to): Likewise.
723 (handle_const_call): Likewise.
724 (find_func_aliases): Likewise.
725 (process_ipa_clobber): Likewise.
726 (create_variable_info_for): Likewise.
728 2010-09-16 Ira Rosen <irar@il.ibm.com>
730 * tree-vectorizer.c: Fix documentation.
731 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
732 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
733 is_pattern_stmt_p, is_loop_header_bb_p,
734 stmt_vinfo_set_inside_of_loop_cost,
735 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
736 known_alignment_for_access_p): Likewise.
737 * tree-vect-loop.c: Fix documentation.
738 (vect_get_cost): Start function name from new line.
739 * tree-vect-data-refs.c: Fix documentation.
740 * tree-vect_stmts.c: Likewise.
741 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
742 (vectorizable_store): Free vec_oprnds if allocated.
743 (vectorizable_condition): Initialize several variables to avoid
745 * tree-vect-slp.c: Fix documentation.
747 2010-09-16 Richard Guenther <rguenther@suse.de>
749 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
750 is TS_TRANSLATION_UNIT_DECL.
751 (initialize_tree_contains_struct): Adjust.
752 (all_translation_units): New global vector.
753 (build_translation_unit_decl): New function.
754 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
755 (struct tree_translation_unit_decl): New.
756 (all_translation_units): Declare.
757 (union tree_node): Add translation_unit_decl member.
758 (build_translation_unit_decl): Declare.
759 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
760 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
762 (pack_value_fields): Call it.
763 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
764 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
765 (lto_output_tree_pointers): Call it.
766 * lto-streamer-in.c (lto_input_tree_ref): Handle references
767 to TRANSLATION_UNIT_DECL.
768 (unpack_ts_translation_unit_decl_value_fields): New function.
769 (unpack_value_fields): Call it.
770 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
771 (lto_input_tree_pointers): Call it.
772 * lto-streamer.c (check_handled_ts_structures): Adjust.
773 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
774 * c-decl.c (all_translation_units): Remove.
775 (pop_scope): Use build_translation_unit_decl.
776 (collect_all_refs): Adjust.
777 (for_each_global_decl): Likewise.
778 (c_write_global_declarations): Likewise.
780 2010-09-16 Jakub Jelinek <jakub@redhat.com>
783 * fold-const.c (fold_checksum_tree): Change slot from const void **
784 to void **, use CONST_CAST_TREE to store into *slot.
786 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
788 * config/i386/i386.md: Remove unneeded empty conditions and
789 preparation statements from expanders.
790 * config/i386/mmx.md: Ditto.
791 * config/i386/sse.md: Ditto.
793 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
795 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
797 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
799 PR rtl-optimization/45593
800 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
801 insns that were in delay slots as stand-alone insns.
803 2010-09-15 Ian Lance Taylor <iant@google.com>
805 * incpath.c (remove_duplicates): If name is not a directory, issue
806 a warning rather than an error.
808 2010-09-15 Martin Jambor <mjambor@suse.cz>
811 * tree-sra.c (create_access): Check for bit-fields directly.
813 2010-09-15 Jakub Jelinek <jakub@redhat.com>
815 PR tree-optimization/45633
816 * tree-cfg.c (verify_gimple_assign_binary): Allow
817 MINUS_EXPR with lhs and rhs1 pointer vector and
818 rhs2 sizetype vector.
819 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
820 or vector pointer use TER to optimize pointer subtraction.
822 2010-09-15 Jie Zhang <jie@codesourcery.com>
824 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
827 2010-09-15 Ian Lance Taylor <iant@google.com>
829 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
831 2010-09-15 Ian Lance Taylor <iant@google.com>
833 * function.c (get_arg_pointer_save_area): Set
834 arg_pointer_save_area_init to true.
836 2010-09-15 Martin Jambor <mjambor@suse.cz>
838 * tree-sra.c (generate_subtree_copies): Updated comment.
839 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
840 obtained from the statement iterator instead.
841 (load_assign_lhs_subreplacements): Removed parameters lhs and
842 right_offset, which is obtained from top_racc instead. Parameter lacc
843 is now expected to be the root of the processed tree rather than root's
844 first child. Updated all callers.
846 2010-09-15 Joseph Myers <joseph@codesourcery.com>
848 * config/pdp11/pdp11.c (register_move_cost): Rename to
849 pdp11_register_move_cost.
850 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
851 pdp11_register_move_cost.
852 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
853 pdp11_register_move_cost instead of register_move_cost.
855 2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
857 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
858 pattern for vmovn. Expansion in case of non
859 -mvectorize-with-neon-quad.
860 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
861 non- -mvectorize-with-neon-quad case.
862 (move_lo_quad_<mode>): New expansion to vmov into low part.
863 (move_hi_quad_<mode>): New expansion to vmov into high part.
864 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
865 (move_lo_quad_v4sf): Likewise.
866 (move_lo_quad_v8hi): Likewise.
867 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
869 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
871 * config/arm/iterators.md (ANY128): New mode iterator.
872 (V_narrow_pack): New mode attribute.
873 (V_HALF): Add attribute.
874 (V_DOUBLE): Add attribute.
875 (V_mode_nunits): Add attribute.
877 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
879 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
880 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
882 2010-09-15 Olivier Hainque <hainque@adacore.com>
883 Jose Ruiz <ruiz@adacore.com>
885 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
886 * config/alpha/osf5-unwind.h: New file.
888 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
891 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
892 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
893 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
895 2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
897 * c-lang.h (struct lang_type): Add variable_size GTY option.
899 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
902 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
904 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
906 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
907 result isn't used in memory address.
909 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
911 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
912 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
913 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
914 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
915 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
916 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
918 * target.def: Add units_per_simd_word to vectorize.
920 * targhooks.c (default_units_per_simd_word): New.
921 * targhooks.h (default_units_per_simd_word): Likewise.
922 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
923 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
924 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
925 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
926 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
927 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
928 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
929 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
931 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
932 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
934 * tree-vect-stmts.c: Don't include "tm_p.h".
935 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
936 with targetm.vectorize.units_per_simd_word.
938 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
940 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
942 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
943 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
945 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
946 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
948 * doc/tm.texi: Regenerated.
950 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
952 * tree-vect-stmts.c: Include "tm_p.h".
954 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
957 2010-09-14 Martin Jambor <mjambor@suse.cz>
959 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
960 location of generated statement. Changed all callers.
961 (build_ref_for_model): New parameter loc which used to set location of
962 all generated expressions. Changed all callers.
963 (generate_subtree_copies): Likewise.
964 (init_subtree_with_zero): Likewise.
965 (sra_modify_expr): Set locations of all generated statements and
966 expressions to the location the original statement.
967 (handle_unscalarized_data_in_subtree): Likewise.
968 (load_assign_lhs_subreplacements): Likewise.
969 (sra_modify_constructor_assign): Likewise.
970 (sra_modify_assign): Likewise.
972 2010-09-14 Eric Botcazou <ebotcazou@adacore.com>
977 * doc/install.texi (sparc*-*-*): New section.
978 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
980 2010-09-14 Jakub Jelinek <jakub@redhat.com>
983 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
984 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
985 (expand_builtin): Adjust caller.
986 (expand_builtin_unop): Only use subtarget if it has the right mode.
988 2010-09-14 Tristan Gingold <gingold@adacore.com>
990 * configure.ac (plugins): Fix typos.
991 * configure: Regenerate.
993 2010-09-14 Jakub Jelinek <jakub@redhat.com>
996 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
997 gen_type_die for function/method return type.
999 2010-09-14 Ira Rosen <irar@il.ibm.com>
1001 PR tree-optimization/45470
1002 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
1003 can throw an exception.
1004 * tree-vect-stmts.c (vectorizable_call): Likewise.
1006 2010-09-14 DJ Delorie <dj@redhat.com>
1009 * config/mep/mep-protos.h (mep_save_register_info,
1010 mep_reinit_regs, mep_init_regs): Declare.
1012 * config/mep/mep.c: Move all target definitions to the end of the
1013 file to avoid the need for duplicate declarations.
1014 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
1015 (mep_reorg_erepeat): Remove unused variables.
1016 (mep_expand_builtin): Likewise.
1018 * config/mep/mep-pragma.c: Don't include rtl.h.
1019 (INVALID_REGNUM): New.
1020 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
1022 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
1023 Avoid enum/integer math.
1025 2010-09-13 Joseph Myers <joseph@codesourcery.com>
1028 * config/mep/t-mep (GTM_H): Add insn-constants.h.
1029 * config/mep/mep.c (mep_conditional_register_usage): Take no
1031 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
1033 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
1034 call to mep_conditional_register_usage.
1036 2010-09-13 Eric Botcazou <ebotcazou@adacore.com>
1039 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
1042 2010-09-13 Jakub Jelinek <jakub@redhat.com>
1044 PR rtl-optimization/45617
1045 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
1046 even if low N bits of X aren't known to be zero.
1048 2010-09-13 H.J. Lu <hongjiu.lu@intel.com>
1050 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
1052 * config/i386/i386.c (initial_ix86_tune_features): Add
1053 X86_TUNE_VECTORIZE_DOUBLE.
1054 (ix86_units_per_simd_word): New.
1056 * config/i386/i386.h (ix86_tune_indices): Add
1057 X86_TUNE_VECTORIZE_DOUBLE.
1058 (TARGET_VECTORIZE_DOUBLE): New.
1059 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
1061 2010-09-13 Pat Haugen <pthaugen@us.ibm.com>
1063 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
1064 (new_temp_expr_table): Allocate call_cnt vector.
1065 (free_temp_expr_table): Free it.
1066 (process_replaceable): Add call_cnt parm and set in vector.
1067 (find_replaceable_in_bb): Skip replacement if def/use span a call.
1068 (debug_ter): Dump call_cnt value, remove stderr uses.
1070 2010-09-13 Jan Hubicka <jh@suse.cz>
1072 * tree.c (build_zero_cst): New.
1073 * tree.h (build_zero_cst): Declare.
1074 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
1075 (get_base_constructor): Break out from ...
1076 (fold_const_aggregate_ref): Here; handle empty constructors.
1078 2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
1080 * config/arm/arm.md: (define_attr "conds"): Update comment.
1081 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
1082 conds attribute to clob.
1083 (arm_sync_compare_and_swapsi): Likewise.
1084 (arm_sync_compare_and_swap<mode>): Likewise.
1085 (arm_sync_lock_test_and_setsi): Likewise.
1086 (arm_sync_lock_test_and_set<mode>): Likewise.
1087 (arm_sync_new_<sync_optab>si): Likewise.
1088 (arm_sync_new_nandsi): Likewise.
1089 (arm_sync_new_<sync_optab><mode>): Likewise.
1090 (arm_sync_new_nand<mode>): Likewise.
1091 (arm_sync_old_<sync_optab>si): Likewise.
1092 (arm_sync_old_nandsi): Likewise.
1093 (arm_sync_old_<sync_optab><mode>): Likewise.
1094 (arm_sync_old_nand<mode>): Likewise.
1096 2010-09-13 Olivier Hainque <hainque@adacore.com>
1098 * fwprop.c (forward_propagate_and_simplify): Only attach a
1099 REG_EQUAL note to an insn if the destination is a register.
1100 * gcse.c (try_replace_reg): Likewise.
1102 2010-09-13 Richard Guenther <rguenther@suse.de>
1104 PR tree-optimization/45611
1105 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
1106 (copy_ref_info): Likewise.
1108 2010-09-13 Alexandre Oliva <aoliva@redhat.com>
1113 * tree-pretty-print.c (dump_generic_node): Disregard top-level
1114 types of MEM_REF pointer types to the same type.
1116 2010-09-13 Hans-Peter Nilsson <hp@axis.com>
1118 PR rtl-optimization/41087
1119 * ifcvt.c (noce_get_condition): Don't allow conditions with
1122 2010-09-12 Anatoly Sokolov <aesok@post.ru>
1124 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1125 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
1126 * config/frv/frv.c (frv_register_move_cost): Make static. Change
1127 arguments type to reg_class_t. Add mode argument.
1128 (frv_memory_move_cost): New.
1129 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
1131 2010-09-12 Bernd Schmidt <bernds@codesourcery.com>
1133 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
1134 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
1136 2010-09-10 Jan Hubicka <jh@suse.cz>
1138 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
1140 2010-09-10 Richard Guenther <rguenther@suse.de>
1142 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
1143 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
1144 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
1145 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
1146 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
1148 2010-09-10 Richard Guenther <rguenther@suse.de>
1150 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
1151 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
1152 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
1153 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
1155 2010-09-10 H.J. Lu <hongjiu.lu@intel.com>
1158 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
1159 of string folding is of integral type.
1161 2010-09-10 Ryan Mansfield <rmansfield@qnx.com>
1163 * doc/invoke.texi (-x): Fix typo.
1165 2010-09-10 Richard Guenther <rguenther@suse.de>
1168 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
1169 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
1170 Output DECL_DEBUG_EXPR.
1171 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
1172 Input DECL_DEBUG_EXPR.
1174 2010-09-10 Richard Guenther <rguenther@suse.de>
1176 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
1177 (build_index_type): Implement in terms of build_range_type.
1178 (build_range_type): Do not allow NULL_TREE type, improve
1179 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
1181 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
1182 create a distinct copy of the type.
1184 2010-09-10 Kai Tietz <kai.tietz@onevision.com>
1186 * configure: Regenerated.
1187 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
1189 2010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1191 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
1192 * config/arm/cortex-a9-neon.md: New and partially generated.
1193 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
1195 2010-09-10 Richard Guenther <rguenther@suse.de>
1197 * tree.h (build_index_2_type): Remove.
1198 * tree.c (build_index_2_type): Remove.
1200 2010-09-10 Jakub Jelinek <jakub@redhat.com>
1203 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
1204 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
1205 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
1207 2010-09-10 Martin Jambor <mjambor@suse.cz>
1209 PR tree-optimization/44972
1210 * tree-sra.c: Include toplev.h.
1211 (build_ref_for_offset): Entirely reimplemented.
1212 (build_ref_for_model): New function.
1213 (build_user_friendly_ref_for_offset): New function.
1214 (analyze_access_subtree): Removed build_ref_for_offset check.
1215 (propagate_subaccesses_across_link): Likewise.
1216 (create_artificial_child_access): Use
1217 build_user_friendly_ref_for_offset.
1218 (propagate_subaccesses_across_link): Likewise.
1219 (ref_expr_for_all_replacements_p): Removed.
1220 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
1221 (sra_modify_expr): Use build_ref_for_model.
1222 (load_assign_lhs_subreplacements): Likewise.
1223 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
1224 checks for return values of build_ref_for_offset.
1225 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
1226 build_ref_for_offset.
1227 * ipa-prop.h: Include gimple.h
1228 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
1229 (ipa_analyze_indirect_call_uses): Update comment.
1230 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
1231 (IPA_PROP_H): Likewise.
1233 2010-09-10 Martin Jambor <mjambor@suse.cz>
1235 PR tree-optimization/44972
1236 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
1237 calling build_ref_for_offset.
1239 2010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1241 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
1242 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
1243 * config/arm/arm-tune.md: Regenerate.
1244 * doc/invoke.texi (ARM Options): Document it.
1246 2010-09-09 Reza Yazdani <reza.yazdani@amd.com>
1248 * config/i386/i386.c: Include sched-int.h.
1249 (TARGET_SCHED_DISPATCH): Defined.
1250 (TARGET_SCHED_DISPATCH_DO): Defined.
1251 (DISPATCH_WINDOW_SIZE): Defined.
1252 (MAX_DISPATCH_WINDOWS): Defined.
1253 (MAX_INSN): Defined.
1255 (MAX_IMM_SIZE): Defined.
1256 (MAX_IMM_32): Defined.
1257 (MAX_IMM_64): Defined.
1258 (MAX_LOAD): Defined.
1259 (MAX_STORE): Defined.
1261 (dispatch_group): New.
1262 (num_allowable_groups): New.
1264 (sched_insn_info_s): New.
1265 (dispatch_windows_s): New.
1267 (dispatch_window_list): New.
1268 (dispatch_window_list1): New.
1269 (get_mem_group): New.
1271 (dispatch_violation): New.
1275 (allocate_window): New.
1276 (init_dispatch_sched): New.
1277 (is_end_basic_block): New.
1278 (process_end_window): New.
1279 (allocate_next_window): New.
1280 (find_constant_1): New.
1281 (find_constant): New.
1282 (get_num_immediates): New.
1283 (has_immediate): New.
1284 (get_insn_path): New.
1285 (get_insn_group): New.
1286 (count_num_restricted): New.
1287 (fits_dispatch_window): New.
1288 (add_insn_window): New.
1289 (add_to_dispatch_window): New.
1290 (debug_dispatch_window_file): New.
1291 (debug_dispatch_window): New.
1292 (debug_insn_dispatch_info_file): New.
1293 (debug_ready_dispatch): New.
1295 (has_dispatch): New.
1296 * config/i386/i386.h (debug_ready_dispatch): Declared.
1297 (debug_dispatch_window): Declared.
1298 * config/i386/i386.opt (mdispatch-scheduler): New flag.
1299 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
1300 (TARGET_SCHED_DISPATCH_DO): New.
1301 * doc/tm.texi: Regererated.
1302 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
1303 ready_remove_first_dispatch
1304 (schedule_block): Call targetm.sched.dispatch and
1305 targetm.sched.dispatch_do.
1306 (sched_init): Call targetm.sched.dispatch and
1307 targetm.sched.dispatch_do.
1308 (ready_remove_first_dispatch): New.
1309 (number_in_ready): New.
1310 (get_ready_element): New.
1311 * hooks.c (hook_bool_rtx_int_false): New.
1312 (hook_void_rtx_int): New.
1313 * hooks.h (hook_bool_rtx_int_false): Declared.
1314 (hook_void_rtx_int): Declared.
1315 * sched-int.h (IS_DISPATCH_ON): Defined.
1317 (DISPATCH_VIOLATION): Defined.
1318 (FITS_DISPATCH_WINDOW): Defined.
1319 (DISPATCH_INIT): Defined.
1320 (ADD_TO_DISPATCH_WINDOW): Defined.
1321 (get_ready_element): Declared.
1322 (number_in_ready): Declared.
1323 * target.def (dispatch): Defined.
1324 (dispatch_do): Defined.
1326 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
1329 * reload1.c (merge_assigned_reloads): Remove.
1330 (reload_as_needed): Don't call it.
1332 2010-09-09 Anatoly Sokolov <aesok@post.ru>
1334 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
1335 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1336 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1338 2010-09-09 Matthias Klose <doko@ubuntu.com>
1341 * configure.ac (--enable-plugin): Enhance for cross builds.
1342 * configure: Regenerate.
1344 2010-09-09 Jan Hubicka <jh@suse.cz>
1346 PR tree-optimization/45598
1347 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
1348 string folding is of integral type.
1350 2010-09-09 Nathan Sidwell <nathan@codesourcery.com>
1352 * configure.ac (gnu_indirect_function): New test.
1353 * configure: Rebuilt.
1354 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
1355 * defaults.h (IFUNC_ASM_TYPE): Provide default.
1357 * doc/extend.texi (Function Attributes): Document ifunc.
1358 * varasm.c (do_assemble_alias): Deal with ifuncs too.
1360 2010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
1362 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
1363 epilogue instruction move.
1365 2010-09-09 Jan Hubicka <jh@suse.cz>
1367 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
1368 command line to allow more partitions than input files.
1370 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
1373 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
1375 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
1378 * ira.c (pseudo_for_reload_consideration_p): Don't use
1379 flag_ira_share_spill_slots.
1381 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1383 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
1384 point zero operands that fit into a single GPR.
1385 (s390_preferred_reload_class): Ensure we only return general-purpose
1387 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
1388 floating-point zero operands into GPRs.
1389 ("*mov<mode>_64"): Likewise.
1390 ("mov<mode>"): Likewise using lhi.
1392 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1394 * config/s390/s390.c (s390_symref_operand_p): Return false for
1395 literal pool references.
1396 (s390_check_qrst_address): Update caller.
1398 2010-09-09 Uros Bizjak <ubizjak@gmail.com>
1400 * config/i386/predicates.md (ext_register_operand): Check that
1401 SUBREG_REG is really a register before looking for REGNO.
1402 (reg_not_xmm0_operand): Handle SUBREGs correctly.
1403 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
1405 2010-09-09 Jakub Jelinek <jakub@redhat.com>
1407 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
1408 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
1409 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
1410 * print-rtl.c (print_rtx): Likewise.
1411 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
1412 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
1413 for ADDR_EXPR with non-addressable object.
1414 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
1415 (struct dw_val_struct): Add v.val_decl_ref.
1416 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
1417 Handle DW_OP_GNU_implicit_pointer.
1418 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
1419 (get_ref_die_offset_label): New function.
1420 (implicit_ptr_descriptor): New function.
1421 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
1422 (loc_descriptor): Likewise.
1423 (gen_variable_die): Put even definitions into decl_die_table.
1424 (resolve_addr_in_expr): Resolve still unresolved
1425 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
1427 (dwarf2out_finish): Call output_location_lists after outputting
1428 .debug_info and .debug_abbrev instead of before.
1430 2010-09-09 Roland McGrath <roland@redhat.com>
1432 * dwarf2out.c (DWARF_REF_SIZE): Define.
1433 (size_of_loc_descr): Use it for DW_OP_call_ref.
1435 2010-09-09 Alan Modra <amodra@gmail.com>
1437 * doc/invoke.text: Reinstate mcmodel=medium.
1438 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1439 CMODEL_MEDIUM as default.
1440 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
1441 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
1442 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
1443 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
1445 2010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1448 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
1449 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
1450 (builtin_longjmp): Likewise.
1451 (allocate_stack): Use hard_frame_pointer_rtx instead of
1453 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
1454 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
1455 (pa_can_eliminate): Likewise.
1456 (TARGET_INTERNAL_ARG_POINTER): Define.
1457 (TARGET_CAN_ELIMINATE): Define.
1458 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
1460 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
1461 (pa_internal_arg_pointer, pa_can_eliminate,
1462 pa_initial_elimination_offset): New.
1463 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
1464 (HARD_FRAME_POINTER_REGNUM): Set to register three.
1465 (INITIAL_FRAME_POINTER_OFFSET): Delete.
1466 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
1468 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
1469 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
1470 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
1471 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
1472 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
1473 new soft frame pointer.
1474 * config/pa/pa64-regs.h: Likewise.
1476 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
1478 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
1480 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
1482 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
1485 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
1487 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
1491 * tree-pretty-print.c (dump_generic_node): Disregard top-level
1492 qualifiers in otherwise equal MEM_REF pointer types.
1493 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
1494 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
1496 2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1499 * config/arm/arm.md (bswapsi2): Handle condition correctly
1500 for armv6 and optimize_size.
1502 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1505 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
1507 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
1509 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
1510 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
1511 ix86_expand_strlen, legitimate_pic_address_disp_p,
1512 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
1513 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
1514 ix86_check_movabs, ix86_secondary_memory_needed): Change function
1516 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
1517 return_in_memory_ms_64, ix86_check_movabs,
1518 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
1519 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
1520 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
1521 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
1522 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
1523 ix86_secondary_memory_needed): Change to bool. Return
1524 "true" and "false" values.
1525 * config/i386/i386.md: Return "true" and "false" values.
1527 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1529 * doc/sourcebuild.texi (Effective-Target Keywords): Document
1530 run_expensive_tests.
1532 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1534 * toplev.c (output_stack_usage): Use lbasename instead of basename.
1536 2010-09-08 Martin Jambor <mjambor@suse.cz>
1539 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
1542 2010-09-08 Richard Guenther <rguenther@suse.de>
1544 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
1546 (iterative_hash_gimple_type): Likewise.
1547 (gimple_type_hash): Likewise.
1548 (gimple_register_type): Likewise.
1549 (print_gimple_types_stats): Likewise.
1550 (free_gimple_type_tables): Likewise.
1552 2010-09-08 Michael Matz <matz@suse.de>
1554 PR tree-optimization/43430
1555 * tree-vect-stmts.c (vectorizable_condition): Support multiple
1556 copies for conditional statements if it's not part of a reduction.
1558 2010-09-08 Michael Matz <matz@suse.de>
1560 PR tree-optimization/33244
1561 * tree-ssa-sink.c (statement_sink_location): Don't sink into
1564 2010-09-08 Richard Guenther <rguenther@suse.de>
1566 PR tree-optimization/45578
1567 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
1568 Be more careful when transfering alignment information to
1569 the new induction variable.
1570 (copy_ref_info): Likewise.
1572 2010-09-08 Richard Guenther <rguenther@suse.de>
1574 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
1575 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1577 2010-09-08 Arnaud Charlet <charlet@adacore.com>
1579 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
1580 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
1582 2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
1585 * doc/md.texi: Fixed modes on several standard pattern names.
1587 2010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
1589 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
1590 (ashl<mode>3): ...this.
1591 (loongson_psra<V_suffix>): Rename to...
1592 (ashr<mode>3): ...this.
1593 (loongson_psrl<V_suffix>): Rename to...
1594 (lshr<mode>3): ...this.
1595 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
1596 (CODE_FOR_loongson_psllw): Define.
1597 (CODE_FOR_loongson_psrlh): Define.
1598 (CODE_FOR_loongson_psrlw): Define.
1599 (CODE_FOR_loongson_psrah): Define.
1600 (CODE_FOR_loongson_psraw): Define.
1602 2010-09-07 Richard Henderson <rth@redhat.com>
1604 * tree-vect-data-refs.c: Include tm_p.h.
1605 * Makefile.in (tree-vect-data-refs.o): Update deps.
1606 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
1607 Move delarations outside #ifdef RTX_CODE.
1609 2010-09-07 Richard Henderson <rth@redhat.com>
1611 * final.c (rest_of_handle_final): Unconditionally do
1612 output_function_exception_table before assemble_end_function.
1614 2010-09-07 Jan Hubicka <jh@suse.cz>
1616 * tree-inline.c (tree_inlinable_function_p): Do not test
1618 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
1619 update_callee_keys, cgraph_decide_inlining): Test function availability.
1620 * cif-code.def (OVERWRITABLE): New code.
1622 2010-09-07 H.J. Lu <hjl.tools@gmail.com>
1623 Jack Howarth <howarth@bromo.med.uc.edu>
1628 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
1629 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
1630 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
1633 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
1635 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
1636 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
1638 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
1640 * config.gcc: Don't append t-android for Android targets.
1642 * config/t-android: Removed.
1644 2010-09-07 Richard Henderson <rth@redhat.com>
1646 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
1647 * doc/tm.texi.in: Add doc marker.
1648 * doc/tm.texi: Rebuild.
1649 * except.c (switch_to_exception_section): Always build.
1650 (output_one_function_exception_table): Move section switch,
1651 personality output, and label output ...
1652 (output_function_exception_table): ... here. Use the new
1655 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
1656 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
1657 TARGET_ASM_INIT_SECTIONS): New.
1658 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
1660 (TARGET_ASM_UNWIND_EMIT): Update to match.
1661 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
1663 * config/arm/arm.c (arm_asm_emit_except_personality): New.
1664 (arm_asm_init_sections): New.
1665 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
1667 2010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1669 * config/arm/arm.md: Remove unused variable.
1671 2010-09-07 Anatoly Sokolov <aesok@post.ru>
1673 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1674 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
1675 (m32r_memory_move_cost): New function.
1677 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
1679 * config.gcc: Append t-android for Android targets.
1681 * config/t-android: New.
1683 2010-09-07 Richard Henderson <rth@redhat.com>
1685 * target.def (unwind_emit_before_insn): New hook.
1686 * doc/tm.texi.in: Add @hook marker for it.
1687 * doc/tm.texi: Rebuild.
1688 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
1690 2010-09-07 Martin Jambor <mjambor@suse.cz>
1693 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
1694 are any type attributes.
1696 2010-09-07 Jan Hubicka <jh@suse.cz>
1698 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
1699 array_ref_low_bound in string access folding.
1701 2010-09-07 Uros Bizjak <ubizjak@gmail.com>
1704 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
1705 eh_return fixup sequence.
1707 2010-09-07 Jan Hubicka <jh@suse.cz>
1709 * gimple-fold.c (maybe_fold_reference): Verify that operand is
1710 gimple_min_invariant.
1712 2010-09-07 Richard Guenther <rguenther@suse.de>
1715 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
1716 nor CONSTRUCTOR can trap.
1717 * tree-complex.c (update_complex_assignment): Update EH info.
1719 2010-09-07 Richard Guenther <rguenther@suse.de>
1722 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
1723 * passes.c (execute_function_todo): Do not verify anything if
1726 2010-09-07 Richard Guenther <rguenther@suse.de>
1728 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
1730 2010-09-07 Bernd Schmidt <bernds@codesourcery.com>
1733 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
1734 New define_mode_attrs.
1735 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
1736 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
1737 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
1738 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
1739 Remove pool_range attribute.
1740 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
1741 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
1742 pool_range and neg_pool_range attributes.
1743 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
1744 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
1745 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
1747 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
1749 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
1752 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
1755 * config/i386/mmx.md (*mov<mode>_internal_rex64,
1756 *mov<mode>_internal_avx, *mov<mode>_internal,
1757 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
1758 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
1760 2010-09-06 Mark Mitchell <mark@codesourcery.com>
1762 * c-typeck.c (do_warn_double_promotion): Remove.
1763 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
1766 2010-09-06 Anatoly Sokolov <aesok@post.ru>
1768 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
1769 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
1770 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
1771 argument type to reg_class_t. Change result type to bool.
1772 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1774 2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
1777 * gthr-posix.h (__gthread_objc_thread_detach): Use
1778 _objc_thread_attribs when detaching a thread.
1779 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
1781 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
1784 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
1785 * configure: Regenerated.
1787 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1789 * combine.c (try_combine): Set subst_low_luid to i0.
1791 2010-09-06 Richard Guenther <rguenther@suse.de>
1793 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
1794 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
1795 (build_aligned_type): Declare.
1796 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
1797 (check_aligned_type): New function.
1798 (build_aligned_type): Likewise.
1799 * expr.c (expand_assignment): Handle misaligned stores via
1800 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
1801 (expand_expr_real_1): Likewise.
1802 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
1803 * tree-vect-stmts.c (vectorizable_store): Do not build
1804 MISALIGNED_INDIRECT_REF but initialize alignment information.
1805 (vectorizable_load): Likewise.
1806 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
1808 * cfgexpand.c (expand_debug_expr): Likewise.
1809 * dwarf2out.c (loc_list_from_tree): Likewise.
1810 * fold-const.c (maybe_lvalue_p): Likewise.
1811 (operand_equal_p): Likewise.
1812 (build_fold_addr_expr_with_type_loc): Likewise.
1813 * gimplify.c (gimplify_addr_expr): Likewise.
1814 (gimplify_expr): Likewise.
1815 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1816 (verify_gimple_assign_single): Likewise.
1817 * tree-dump.c (dequeue_and_dump): Likewise.
1818 (tree_could_trap_p): Likewise.
1819 * tree-predcom.c (ref_at_iteration): Likewise.
1820 * tree-pretty-print.c (dump_generic_node): Likewise.
1821 (op_code_prio): Likewise.
1822 (op_symbol_code): Likewise.
1823 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1824 * tree-ssa-loop-im.c (for_each_index): Likewise.
1825 (gen_lsm_tmp_name): Likewise.
1826 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1827 (find_interesting_uses_address): Likewise.
1828 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1829 * tree-ssa-operands.c (get_expr_operands): Likewise.
1830 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1831 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1832 (ao_ref_init_from_vn_reference): Likewise.
1833 * tree.c (staticp): Likewise.
1834 (build1_stat): Likewise.
1835 (reference_alias_ptr_type): Likewise.
1836 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1837 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1838 MISALIGNED_INDIRECT_REF handling.
1840 2010-09-06 Richard Guenther <rguenther@suse.de>
1842 PR tree-optimization/45534
1843 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1844 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1846 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1847 valid on the target.
1849 2010-09-06 Andreas Schwab <schwab@redhat.com>
1851 * configure.ac: Quote argument of AC_MSG_WARN.
1852 * configure: Regenerate.
1854 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
1856 * sel-sched.c (move_cond_jump): Correct arguments to
1857 maybe_tidy_empty_bb.
1858 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1860 2010-09-06 Andrey Belevantsev <abel@ispras.ru>
1862 PR rtl-optimization/44919
1863 * sel-sched.c (move_cond_jump): Remove assert, check that
1864 the several blocks case can only happen with mutually exclusive
1865 insns instead. Rewrite the movement code to support moving through
1866 several basic blocks.
1868 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
1870 * config/i386/i386.md (iptrsize): New mode attribute.
1872 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1874 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1875 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1876 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1877 (stack_tls_protect_set_<mode>): Ditto from
1878 stack_tls_protect_set_{si,di}. Use %@ to output segment register
1879 of thread base pointer load.
1880 (stack_tls_protect_test_<mode>): Ditto from
1881 stack_tls_protect_test_{si,di}. Use %@ to output segment register
1882 of thread base pointer load.
1883 (stack_protect_set): Rewrite using indirect functions.
1884 (stack_protect_test): Ditto.
1885 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1886 (ix86_print_operand): Handle '@'.
1888 2010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
1890 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1893 2010-09-05 Mark Mitchell <mark@codesourcery.com>
1895 * doc/invoke.texi: Document -Wdouble-promotion.
1896 * c-typeck.c (convert_arguments): Check for implicit conversions
1897 from float to double.
1898 (do_warn_double_promotion): New function.
1899 (build_conditional_expr): Use it.
1900 (build_binary_op): Likewise.
1902 2010-09-05 Richard Guenther <rguenther@suse.de>
1904 PR tree-optimization/45535
1905 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1906 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
1908 (indirect_refs_may_alias_p): Likewise.
1910 2010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
1912 * config/sh/sh.c (sh_option_override): Make static.
1913 Adjust comments. Declare.
1914 (sh_function_value_regno_p): Likewise.
1915 (sh_register_move_cost): Modify the arguments, make static.
1916 Adjust comments. Declare.
1917 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1918 TARGET_FUNCTION_VALUE_REGNO_P): Define.
1919 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1920 REGISTER_MOVE_COST): Delete.
1921 * config/sh/sh-protos.h (sh_override_options): Delete.
1922 (sh_register_move_cost): Delete.
1923 (sh_function_value_regno_p): Delete.
1925 2010-09-04 Anatoly Sokolov <aesok@post.ru>
1927 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1928 m32r_function_value_regno_p): New functions.
1929 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1930 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1931 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1932 FUNCTION_VALUE_REGNO_P): Remove.
1934 2010-09-04 Jan Hubicka <jh@suse.cz>
1936 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1937 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1938 fold_read_from_constant_string.
1940 * gimple.h (canonicalize_constructor_val): Declare.
1941 * gimple-fold.c (canonicalize_constructor_val): New function.
1942 (get_symbol_constant_value):Use it.
1943 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1945 2010-09-04 Jan Hubicka <jh@suse.cz>
1947 * tree-switch-conversion.c (build_one_array): Set constructor to be
1949 * varpool.c (varpool_finalize_decl): Compute const_value_known.
1951 2010-09-04 Richard Guenther <rguenther@suse.de>
1954 * tree-flow.h (force_gimple_operand_1): Declare.
1955 (force_gimple_operand_gsi_1): Likewise.
1956 * gimplify.c (force_gimple_operand_1): New worker taking a
1957 gimple predicate for ...
1958 (force_gimple_operand): ... which now wraps it.
1959 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1960 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1962 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1963 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1964 (create_mem_ref): Likewise.
1966 2010-09-04 Uros Bizjak <ubizjak@gmail.com>
1968 * config/i386/predicates.md (sse_reg_operand): New predicate.
1969 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1970 predicate for operand 1.
1971 (XFmode push splitter): Use fp_register_operand predicate
1973 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1974 (SF-DF float_extend push splitter): Add reload_completed insn
1976 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1977 MODEF mode macro. Add reload_completed insn predicate.
1979 2010-09-04 Paolo Bonzini <bonzini@gnu.org>
1981 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1982 (struct df_extract_ref): Remove.
1983 (union df_ref_d): Remove extract_ref member.
1984 (df_ref_create): Remove last three arguments.
1985 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1986 * df-scan.c (df_ref_record): Remove last three arguments, do not
1987 pass them to df_ref_create_structure.
1988 (df_uses_record): Remove first and last three arguments. Replace
1989 first argument with DF_REF_REGULAR, adjust calls to remove the
1990 width, offset and mode. Always call recursively on the second
1991 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1992 (df_ref_create_structure): Remove first argument.
1993 (struct df_scan_problem_data): Remove ref_extract_pool.
1994 (df_scan_free_internal): Do not free it.
1995 (df_scan_alloc): Do not allocate it.
1996 (df_ref_create): Remove last three arguments, do not pass them to
1997 df_ref_create_structure.
1998 (df_free_ref): Remove DF_REF_EXTRACT case.
1999 (df_notes_rescan): Adjust call to df_uses_record.
2000 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
2001 Remove DF_REF_EXTRACT case.
2002 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
2003 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
2004 and SUBREG definitions.
2005 (df_get_conditional_uses): Remove references to width/offset/mode,
2006 adjust call to df_ref_create_structure.
2007 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
2008 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
2009 calls to df_uses_record and df_ref_record.
2010 * fwprop.c (update_df): Remove references to width/offset/mode,
2011 adjust call to df_ref_create.
2013 2010-09-03 Jan Hubicka <jh@suse.cz>
2015 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
2016 (build_cdtor_fns): Update use of build_cdtor.
2018 2010-09-03 Joseph Myers <joseph@codesourcery.com>
2020 * doc/options.texi (SeparateAlias): Document.
2021 * opt-functions.awk (switch_flags): Handle SeparateAlias.
2022 * opth-gen.awk: Generate enumeration names for options marked
2023 SeparateAlias, but not for those marked Ignore.
2024 * opts-common.c (generate_canonical_option): Don't output separate
2025 argument for options marked CL_SEPARATE_ALIAS.
2026 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
2027 * opts.h (CL_SEPARATE_ALIAS): New.
2028 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2029 CL_COMMON): Adjust definitions.
2030 * config/i386/darwin.opt, config/mips/sde.opt: New.
2031 * common.opt (fdump-final-insns): New.
2032 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2034 (mips*-sde-elf*): Add mips/sde.opt.
2035 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
2036 -mno-data-in-code and -mcode-xonly here.
2037 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
2038 * gcc.c (option_map): Add "j" to --dump entry.
2039 (translate_options): Don't translate -d to -foutput-class-dir= here.
2041 2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
2043 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
2045 (compute_all_dependences): Same.
2046 (create_rdg_edge_for_ddr): Same.
2047 * tree-data-ref.h (DR_IS_WRITE): New.
2048 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
2049 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
2050 (write_memrefs_written_at_least_once): Same.
2051 * tree-predcom.c (suitable_component_p): Same.
2052 (determine_roots_comp): Same.
2053 (execute_load_motion): Same.
2054 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
2055 (vect_enhance_data_refs_alignment): Same.
2056 (vect_analyze_group_access): Same.
2058 2010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
2061 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
2062 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
2064 2010-09-03 Marcin Baczynski <marbacz@gmail.com>
2066 * dwarf2out.c (file scope): Remove #if0'd code.
2067 (gen_subprogram_die): Same.
2069 2010-09-03 Jakub Jelinek <jakub@redhat.com>
2072 * dwarf2out.c (flush_queued_reg_saves): Rename to...
2073 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
2074 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
2075 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
2076 * config/i386/i386.c (output_set_got): Call it.
2078 2010-09-03 Michael Matz <matz@suse.de>
2081 * tree-sra.c (sra_modify_assign): If we modify the statement,
2084 * tree-ssa.c (verify_ssa): Check number of operands and links
2085 per statement to agree.
2087 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
2088 Iain Sandoe <iains@gcc.gnu.org>
2091 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
2092 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
2093 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2095 2010-09-03 Richard Guenther <rguenther@suse.de>
2097 * lto-streamer-out.c (output_function): Output function
2099 * lto-streamer-in.c (input_function): Input function start
2102 2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2104 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
2105 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
2106 * configure: Regenerate.
2107 * aclocal.m4: Regenerate.
2109 2010-09-03 Jan Hubicka <jh@suse.cz>
2112 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
2113 on functions/variables in other partition.
2115 2010-09-03 Jan Hubicka <jh@suse.cz>
2117 * cgraph.h (struct varpool_node): Add const_value_known.
2118 (varpool_decide_const_value_known): Declare.
2119 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
2120 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
2121 (input_varpool_node): Restore const_value_known.
2122 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
2123 initializer folding.
2124 * ipa.c (ipa_discover_readonly_nonaddressable_var,
2125 function_and_variable_visibility): Compute const_value_known.
2126 * gimple-fold.c (get_symbol_constant_value): Use varpool for
2127 initializer folding.
2128 * varpool.c (varpool_decide_const_value_known): New function.
2130 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
2132 * config/i386/i386.md: Remove empty preparation statements
2135 2010-09-03 Jan Hubicka <jh@suse.cz>
2137 * passes.c (rest_of_decl_compilation): Do not add local vars into
2139 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
2140 static or extern vars are in varpool.
2141 (varpool_finalize_decl): Sanity check that only static vars are
2144 2010-09-03 Jakub Jelinek <jakub@redhat.com>
2147 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
2148 not just generic vectors with BLKmode.
2150 2010-09-03 Richard Guenther <rguenther@suse.de>
2152 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
2153 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
2154 * tree.h (TMR_SYMBOL): Remove.
2155 (TMR_BASE, TMR_OFFSET): Adjust.
2157 * alias.c (ao_ref_from_mem): Use TMR_BASE.
2158 * builtins.c (get_object_alignment): Merge TMR_BASE and
2159 TMR_SYMBOL handling.
2160 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
2161 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
2162 handling. Also allow TARGET_MEM_REF as base address.
2163 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
2164 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
2165 base. Gimplify TMR_INDEX2.
2166 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
2167 * tree-dfa.c (get_ref_base_and_extent): Likewise.
2168 (get_addr_base_and_unit_offset): Likewise.
2169 * tree-eh.c (tree_could_trap_p): Likewise.
2170 * tree-pretty-print.c (dump_generic_node): Likewise.
2171 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
2172 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
2174 (get_address_description): Reconstruct addres description
2175 from merged TMR_BASE and TMR_INDEX2.
2176 (maybe_fold_tmr): Fold propagated addresses.
2177 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
2178 MEM_REF and TARGET_MEM_REF paths.
2179 (indirect_refs_may_alias_p): Likewise.
2180 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
2181 instead of TMR_SYMBOL.
2182 * tree-ssa-operands.c (get_tmr_operands): Simplify.
2183 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
2184 according to changes ...
2185 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
2186 Split TARGET_MEM_REF into two fields plus the base.
2187 * tree.c (mem_ref_offset): Simplify.
2188 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
2189 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
2190 Strip NOPs when folding MEM_REF addresses.
2191 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
2192 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
2193 (fold_gimple_assign): ... not here.
2195 2010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
2197 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
2198 * config/mips/mips.c (mips_shift_truncation_mask): New function.
2199 (TARGET_SHIFT_TRUNCATION_MASK): Define.
2201 2010-09-02 Richard Henderson <rth@redhat.com>
2203 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
2204 instead of readelf in the test.
2205 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
2206 in the .debug_frame section for coff targets.
2207 * configure: Rebuild.
2209 2010-09-02 Anatoly Sokolov <aesok@post.ru>
2211 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
2212 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
2213 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2214 (m32c_class_likely_spilled_p): Make static. Change argument type to
2215 reg_class_t. Change result type to bool.
2217 2010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
2219 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
2220 to convert (double)(long) into a single FRIZ instruction or not
2221 when -ffast-math is used.
2223 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
2224 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
2225 or FRIZ instruction if -ffast-math.
2226 * config/rs6000/rs6000.md (friz): Ditto.
2228 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
2230 2010-09-02 Joseph Myers <joseph@codesourcery.com>
2232 * opth-gen.awk (quote, comma): Remove unused variables.
2234 2010-09-02 Ryan Mansfield <rmansfield@qnx.com>
2236 * arm.c (arm_override_options): Correct fall-back code to use
2237 SUBTARGET_CPU_DEFAULT.
2239 2010-09-02 Julian Brown <julian@codesourcery.com>
2241 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
2243 (vcond<mode>, vcondu<mode>): New expanders.
2244 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
2245 comparisons with zero.
2246 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
2247 * config/arm/constraints.md (Dz): New constraint.
2249 2010-09-02 Anatoly Sokolov <aesok@post.ru>
2251 * target.def (class_likely_spilled_p): New hook.
2252 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
2253 * doc/tm.texi: Regenerate.
2254 * targhooks.c (default_class_likely_spilled_p): New function.
2255 * targhooks.h (default_class_likely_spilled_p): Declare.
2256 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
2257 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
2258 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
2259 Use fixed_reg_set instead of fixed_regs.
2260 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2261 * calls.c (avoid_likely_spilled_reg): Ditto.
2262 * ira-conflicts.c (ira_build_conflicts): Ditto.
2263 * ira.c (update_equiv_regs): Ditto.
2264 * mode-switching.c (create_pre_exit): Ditto.
2265 * regmove.c (find_matches): Ditto.
2266 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2267 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
2268 (small_register_class_p): New inline function.
2269 (push_secondary_reload, find_reusable_reload, find_reloads): Use
2270 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
2272 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
2273 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
2274 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2276 2010-09-02 Richard Guenther <rguenther@suse.de>
2278 PR tree-optimization/44937
2279 PR tree-optimization/45412
2280 * ipa-split.c (split_function): Properly remove PHI nodes.
2282 2010-09-02 Joseph Myers <joseph@codesourcery.com>
2284 * opts.h (struct cl_option): Add warn_message field.
2285 (struct cl_decoded_option): Add warn_message field.
2286 * doc/options.texi (Ignore, Warn): Document.
2287 * opt-functions.awk (needs_state_p): Don't consider aliases or
2288 ignored options to need state saved.
2289 * optc-gen.awk: Handle Warn and Ignore.
2290 * opth-gen.awk: Output OPT_SPECIAL_ignore.
2291 * opts-common.c (decode_cmdline_option): Set warn_message field.
2292 Handle ignored options.
2293 (decode_cmdline_options_to_array, generate_option,
2294 generate_option_input_file): Set warn_message field.
2295 (read_cmdline_option): Generate warnings from warn_message field.
2296 Handle ignored options.
2297 * common.opt (Wunreachable-code, fargument-alias,
2298 fargument-noalias, fargument-noalias-global,
2299 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
2300 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
2301 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
2302 ftree-salias): Mark Ignore.
2303 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
2304 -mintel-syntax and -mno-intel-syntax here.
2305 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
2307 * opts.c (common_handle_option): Don't handle options marked as
2309 (enable_warning_as_error): Handle ignored options.
2311 2010-09-02 Joseph Myers <joseph@codesourcery.com>
2314 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
2315 alias_target fields.
2316 * opt-functions.awk (opt_sanitized_name): Don't handle
2317 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
2318 * optc-gen.awk: Generate alias fields.
2319 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
2320 Don't generate such constants for aliases.
2321 * opts-common.c (generate_canonical_option): New.
2322 (decode_cmdline_option): Handle aliases. Use
2323 generate_canonical_option for known options instead of copying the
2325 * doc/options.texi (Alias): Document.
2326 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
2327 fstack-check, specs): Mark as aliases.
2328 * gcc.c (driver_handle_option): Canonicalize -L options to joined
2330 (driver_handle_option): Don't handle OPT_specs.
2331 * opts.c (common_handle_option): Don't handle options marked as
2333 (enable_warning_as_error): Handle aliases.
2334 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
2335 OPT_Wlarger_than_eq.
2336 * tree-optimize.c (tree_rest_of_compilation): Use
2337 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
2339 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
2341 * config/i386/i386.md (nonmemory_operand): New mode attribute.
2342 (push memory peephole2): Macroize peepholes using SWI mode iterator.
2343 (move immediate to memory peephole2): Macroize peepholes using
2344 SWI124 mode iterator.
2345 (non-pairable NOT peephole2): Macroize peepholes using SWI124
2347 (simple lea add peephole2): Macroize peepholes using SWI48
2349 (simple lea mult peephole2): Ditto.
2350 (imul by 3,5,9 to lea peephole2): Ditto.
2351 (mov $-1, reg peephole2): Macroize peepholes using SWI248
2353 (imul $32bit_imm,mem,reg peephole2): Ditto.
2354 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
2356 2010-09-02 Ian Bolton <ian.bolton@arm.com>
2358 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
2360 2010-09-02 Olivier Hainque <hainque@adacore.com>
2363 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
2364 (allocno_priority_compare_func): Use it instead of a straight
2365 difference computation over priorities.
2367 2010-09-02 Andi Kleen <ak@linux.intel.com>
2369 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2371 2010-09-02 Ira Rosen <irar@il.ibm.com>
2373 * tree-vectorizer.h (get_later_stmt): New function.
2374 (vect_analyze_data_ref_dependences): Add argument.
2375 * tree-vect-loop.c (vect_analyze_loop): Update call to
2376 vect_analyze_data_ref_dependences.
2377 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
2379 (vect_analyze_data_ref_dependence): Add argument for basic block
2380 dependencies. Check dependencies in basic block vectorization.
2381 (vect_analyze_data_ref_dependences): Add argument and update call to
2382 vect_analyze_data_ref_dependences.
2383 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
2384 (vect_bb_vectorizable_with_dependencies): New.
2385 (vect_slp_analyze_bb): Check dependencies in basic block.
2386 (vect_schedule_slp_instance): Insert stores before the last store in
2389 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
2392 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
2393 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2395 2010-09-01 Jakub Jelinek <jakub@redhat.com>
2398 * bb-reorder.c (add_labels_and_missing_jumps): Treat
2399 bbs ending with throwing insns like blocks ending with a call.
2400 (fix_up_fall_thru_edges): Likewise.
2402 2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
2404 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
2405 (m32c_function_arg_advance): Delete.
2406 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2407 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
2408 comments. Take a const_tree and a bool. Declare.
2409 (m32c_function_arg_advance): Likewise.
2410 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2412 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
2415 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
2416 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
2417 * config/i386/mingw32.h: ... here.
2419 2010-09-01 Andi Kleen <ak@linux.intel.com>
2422 * lto-streamer-in.c (lto_input_ts_target_option): Add.
2423 (lto_input_tree_pointers): Call lto_input_ts_target_option.
2424 * lto-streamer-out (lto_output_ts_target_option): Add.
2425 (lto_output_tree_pointers): Call lto_output_ts_target_option.
2427 2010-09-01 Kai Tietz <kai.tietz@onevision.com>
2430 * config/i386/cygwin.h: Change order of specified import libraries.
2431 * config/i386/mingw32.h: Likewise.
2432 * config/i386/t-cygwin: Likewise.
2433 * config/i386/t-mingw32: Likewise.
2434 * config/i386/t-mingw-w32: Likewise.
2435 * config/i386/t-mingw-w64: Likewise.
2437 2010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2439 * config/arm/neon-schedgen.ml (core): New type.
2440 (allCores): List of supported cores.
2441 (availability_table): Add supported cores.
2442 (collate_bypasses): Accept core as a parameter.
2443 (worst_case_latencies_and_bypasses): Accept core as a parameter.
2444 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
2445 and coreStr to get tune attribute and prefix for functional units.
2446 (emit_bypasses): Accept core name and use it.
2447 (calculate_per_core_availability_table): New.
2449 (calculate_core_availability_table): New.
2450 (main): Use calculate_core_availablity_table.
2451 * config/arm/cortex-a8-neon.md: Update copyright year.
2452 Regenerated from ml file and merged in.
2453 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
2456 2010-09-01 Ian Bolton <ian.bolton@arm.com>
2458 * Makefile.in (tree-switch-conversion.o): Update dependencies.
2460 2010-09-01 Richard Guenther <rguenther@suse.de>
2462 * alias.c (ao_ref_from_mem): Adjust.
2463 * builtins.c (get_object_alignment): Likewise.
2464 * cfgexpand.c (expand_debug_expr): Likewise.
2465 * gimple.c (get_base_address): Likewise.
2466 * tree-dfa.c (get_ref_base_and_extent): Likewise.
2467 (get_addr_base_and_unit_offset): Likewise. Fix for
2468 both TMR_SYMBOL and TMR_BASE being set.
2469 * tree-eh.c (tree_could_trap_p): Likewise.
2470 * gimplify.c (gimplify_expr): Do not attempt to gimplify
2471 TMR_SYMBOL. Always gimplify TMR_BASE.
2472 * tree-cfg.c (verify_types_in_gimple_reference): Verify
2473 TMR_BASE if there is a TMR_SYMBOL.
2474 * tree-pretty-print.c (dump_generic_node): Adjust.
2475 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2476 (tree_mem_ref_addr): Likewise.
2477 (create_mem_ref_raw): Likewise.
2478 (move_fixed_address_to_symbol): Likewise.
2479 (create_mem_ref): Likewise.
2480 (dump_mem_address): Likewise.
2481 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
2482 Fix for both TMR_SYMBOL and TMR_BASE being set.
2483 (indirect_refs_may_alias_p): Likewise.
2484 * tree-ssa-operands.c (get_tmr_operands): Adjust.
2485 * tree.def (TARGET_MEM_REF): Adjust documentation.
2487 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
2489 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
2490 Rename from X86_TUNE_ADD_ESP_4.
2491 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
2492 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
2493 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
2494 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
2495 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
2496 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
2497 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
2498 * config/i386/i386.c (initial_ix86_tune_features)
2499 <X86_TUNE_SINGLE_POP>: Invert members.
2500 <X86_TUNE_DOUBLE_POP>: Ditto.
2501 <X86_TUNE_SINGLE_PUSH>: Ditto.
2502 <X86_TUNE_DOUBLE_PUSH>: Ditto.
2503 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
2505 (push peephole2 patterns): Macroize peepholes using P mode iterator.
2506 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
2507 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
2508 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2510 2010-09-01 Eric Botcazou <ebotcazou@adacore.com>
2512 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
2513 a volatile LHS if the constructor has only one element.
2515 2010-09-01 Mikael Pettersson <mikpe@it.uu.se>
2518 * tree.c (stdarg_p): Make fntype parameter const.
2519 * tree.h (stdarg_p): Likewise.
2520 (function_args_iterator): Remove unused fntype field.
2521 (function_args_iter_init): Do not initialize fntype
2522 field. Make fntype parameter const.
2524 2010-09-01 Richard Guenther <rguenther@suse.de>
2526 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
2528 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
2529 (execute_vrp): Compute number of iteration estimates.
2530 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
2531 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
2532 * tree-data-ref.c (estimated_loop_iterations): Adjust.
2533 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2534 Infer loop bounds from undefined behavior based on a new parameter.
2535 (estimate_numbers_of_iterations): Likewise.
2536 (scev_probably_wraps_p): Adjust.
2537 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2539 2010-09-01 Nick Clifton <nickc@redhat.com>
2541 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
2543 (xstormy16_legitimate_address_p): Use true and false instead of 1
2545 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
2546 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
2548 (xstormy16_expand_call): Fix comment at start of function.
2550 2010-09-01 Nick Clifton <nickc@redhat.com>
2552 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
2553 when pushing accumulator register.
2554 (rx_get_stack_layout): Always save call clobbered registers inside
2556 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
2558 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
2560 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
2561 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2563 * libgcc-std.ver (GCC_4.6.0): Define version.
2565 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
2567 * tree-nested.c (convert_all_function_calls): Iterate until after the
2568 sum of static chains in the nest doesn't change.
2570 2010-08-31 Anatoly Sokolov <aesok@post.ru>
2572 * config/m32c/m32c.c (classes_intersect): Remove.
2573 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
2574 reg_classes_intersect_p instead of classes_intersect.
2575 (class_can_hold_mode): Change arguments type from enum reg_class to
2576 reg_class_t. Use reg_class_contents instead of class_contents.
2577 (m32c_register_move_cost): Make static. Change arguments type from
2578 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
2579 classes_intersect. Use reg_class_contents instead of class_contents.
2580 (m32c_memory_move_cost): Make static. Change arguments type from
2581 enum reg_class to reg_class_t.
2582 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2583 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2584 * config/m32c/m32c-protos.h (m32c_register_move_cost,
2585 m32c_memory_move_cost): Remove.
2587 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
2589 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
2590 (arm_function_arg): Delete.
2591 (arm_needs_doubleword_align): Take a const_tree.
2592 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2593 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
2594 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
2595 (arm_function_arg): Make static. Take a const_tree and a bool.
2596 (arm_function_arg_advance): Likewise.
2597 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2599 2010-08-31 Andi Kleen <ak@linux.intel.com>
2601 * common.opt (fwhopr=): Update for -fwhopr=jobserver
2602 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
2603 * lto-wrapper.c (run_gcc): Add jobserver mode.
2604 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
2607 2010-08-31 Uros Bizjak <ubizjak@gmail.com>
2609 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
2611 (*popdi1_epilogue): Ditto.
2612 (*popsi1_epilogue): Ditto.
2613 (popsi, popdi peephole2 patterns): Update peepholes for changed
2614 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
2616 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
2617 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
2619 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
2620 (override_options): Do not initialize removed ix86_gen_pop1.
2621 (gen_pop): New static function.
2622 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
2623 (release_scratch_register_on_entry): Ditto.
2624 (ix86_restore_reg_using_pop): Ditto.
2625 (ix86_expand_epilogue): Ditto.
2627 2010-08-31 Jakub Jelinek <jakub@redhat.com>
2630 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2632 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
2634 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
2637 2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2639 * doc/extend.texi: Fix documentation of the return value of
2640 __builtin_choose_expr.
2642 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
2644 * config/v850/v850-protos.h (function_arg): Delete.
2645 * config/v850/v850.h (FUNCTION_ARG): Delete.
2646 (FUNCTION_ARG_ADVANCE): Move code to...
2647 * config/v850/v850.c (v850_function_arg_advance): ...here.
2648 (v850_function_arg): Make static. Take a const_tree and a bool.
2649 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2651 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
2653 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
2655 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2657 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
2659 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2661 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2663 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
2665 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
2667 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2668 * config/rx/rx.c (rx_function_arg_size): Make static.
2669 (rx_function_arg): Likewise.
2670 (rx_function_arg_advance): New function.
2671 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2673 2010-08-31 John Tytgat <John.Tytgat@aaug.net>
2675 * config/arm/arm.c (arm_override_options): Remove superfluous test.
2678 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
2680 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
2681 (dwarf2out_decl) <CONST_DECL>: Likewise.
2683 2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
2686 * common.opt (-fstack-usage): New option.
2687 * doc/invoke.texi (Debugging options): Document it.
2688 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
2689 allocate_dynamic_stack_space.
2690 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
2691 and propagate it to allocate_dynamic_stack_space.
2692 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
2693 * calls.c (initialize_argument_information): Pass TRUE as 4th
2694 argument to allocate_dynamic_stack_space.
2695 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
2696 to 1 when pushing a variable-sized argument onto the stack. Pass
2697 TRUE as 4th argument to allocate_dynamic_stack_space.
2698 Update current_function_pushed_stack_size.
2699 (emit_library_call_value_1): Likewise.
2700 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
2701 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
2702 attempt to find an upper bound. Remove redundant code for the
2703 SETJMP_VIA_SAVE_AREA case.
2704 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
2705 * function.h (struct stack_usage): New structure.
2706 (current_function_static_stack_size): New macro.
2707 (current_function_dynamic_stack_size): Likewise.
2708 (current_function_pushed_stack_size): Likewise.
2709 (current_function_dynamic_alloc_count): Likewise.
2710 (current_function_has_unbounded_dynamic_stack_size): Likewise.
2711 (current_function_allocates_dynamic_stack_space): Likewise.
2712 (struct function): Add new field 'su'.
2713 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
2714 add the value of the dynamic offset to the dynamic stack usage.
2715 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
2716 for variable-sized objects.
2717 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
2718 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
2719 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
2720 BUILT_IN_ALLOCA for variable-sized objects.
2721 * output.h (output_stack_usage): Declare.
2722 * toplev.c (stack_usage_file): New file pointer.
2723 (output_stack_usage): New function.
2724 (open_auxiliary_file): Likewise.
2725 (lang_dependent_init): Open file if flag_stack_usage is set.
2726 (finalize): Close file if stack_usage_file is not null.
2727 * tree.h (ALLOCA_FOR_VAR_P): New macro.
2728 * config/alpha/alpha.c (compute_frame_size): New function.
2729 (alpha_expand_prologue): Use it.
2730 (alpha_start_function): Likewise.
2731 (alpha_expand_epilogue): Likewise. Set stack usage info.
2732 * config/i386/i386.c (ix86_expand_prologue): Likewise.
2733 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2734 * config/mips/mips.c (mips_expand_prologue): Likewise.
2735 * config/pa/pa.c (hppa_expand_prologue): Likewise.
2736 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2737 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2739 2010-08-30 Zdenek Dvorak <ook@ucw.cz>
2741 PR tree-optimization/45427
2742 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
2743 Handle the case that the exit is never taken correctly.
2744 (number_of_iterations_ne): Pass exit_must_be_taken to
2745 number_of_iterations_ne_max.
2747 2010-08-30 Catherine Moore <clm@codesourcery.com>
2749 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
2750 Infer -mdspr2 for the the 74K.
2752 2010-08-30 Jakub Jelinek <jakub@redhat.com>
2755 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
2758 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
2759 and TRUTH_{AND,OR,XOR}_EXPR.
2760 * c-parser.c (c_parser_omp_atomic): Handle boolean
2761 {PRE,POST}_{INC,DEC}REMENT.
2763 2010-08-30 Nathan Froyd <froydnj@codesourcery.com>
2765 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
2766 (function_arg): Delete.
2767 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2768 (FUNCTION_INCOMING_ARG): Delete.
2769 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
2770 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
2772 (function_arg): Rename to...
2773 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
2775 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
2776 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2777 (TARGET_FUNCTION_INCOMING_ARG): Define.
2779 2010-08-30 Richard Guenther <rguenther@suse.de>
2781 PR tree-optimization/21602
2782 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
2783 using points-to information.
2785 2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
2787 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
2789 2010-08-30 Richard Guenther <rguenther@suse.de>
2791 PR tree-optimization/45449
2792 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
2795 2010-08-30 Joseph Myers <joseph@codesourcery.com>
2797 * opts.h (CL_ERR_NEGATIVE): Define.
2798 * opts.c (unknown_option_callback): Don't postpone warnings for
2799 options marked with CL_ERR_NEGATIVE.
2800 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
2801 for negative versions of CL_REJECT_NEGATIVE options.
2803 2010-08-30 Uros Bizjak <ubizjak@gmail.com>
2805 * config/i386/i386.md (zero_extendsidi2_1): Rename from
2806 zero_extendsidi2_32.
2807 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
2808 using SWI12 mode iterator.
2809 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
2810 to define_insn_and_split pattern.
2811 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
2812 using SWI24 mode iterator.
2813 (*zero_extendqi<mode>2_and): Macroize insn from
2814 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
2815 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
2816 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
2817 SWI24 mode iterator.
2818 (*zero_extendqi<mode>2_movzbl): Ditto from
2819 *zero_extendqi{hi,si}2_movzbl.
2820 (extendsidi2_1): Rename from extendsidi2_32.
2821 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
2822 SWI12 mode iterator.
2824 2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
2826 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
2827 general purpose registers.
2828 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
2829 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
2830 with general purpose registers and memory operands. Add associated
2831 CCImode post-reload splitter.
2832 * config/ia64/div.md: Change BImode to CCImode throughout.
2834 2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
2836 * config/ia64/ia64.md (cstorebi4): Fix thinko.
2838 2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
2840 * config/picochip/picochip.c (reorder_var_tracking_notes): This
2841 function was dropping debug insns which caused PR45299.
2843 2010-08-28 Uros Bizjak <ubizjak@gmail.com>
2845 * config/i386/sse.md (extsuffix): New code attribute.
2846 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2847 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2848 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2849 and sse4_1_zero_extendv4qiv4si2.
2850 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2851 and sse4_1_zero_extendv2qiv2di2.
2852 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2853 and sse4_1_zero_extendv4hiv4si2.
2854 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2855 and sse4_1_zero_extendv2hiv2di2.
2856 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2857 and sse4_1_zero_extendv2siv2di2
2859 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2860 using any_extend code iterator.
2861 (*avx_<s>mulv8hi3_highpart): Macroize insn from
2862 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2863 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2865 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2866 gen_sse4_1_sign_extend* functions.
2867 (struct builtin_description bdesc_args): Ditto.
2869 2010-08-27 Xinliang David Li <davidxl@google.com>
2872 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2873 (iv_ca_set_no_cp): Update used inv expr count.
2874 (iv_ca_set_cp): Ditto.
2875 (iv_ca_new): Initialize new member.
2876 (iv_ca_free): Free memory.
2878 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
2880 * config/sh/sh-protos.h (sh_function_arg): Delete.
2881 (sh_function_arg_advance): Delete.
2882 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2883 (PASS_IN_REG_P): Eliminate cast.
2884 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
2885 const_tree and a bool.
2886 (sh_function_arg): Likewise.
2887 (sh_output_mi_thunk): Call sh_function_arg_advance) and
2889 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2891 2010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
2892 Kaz Kojima <kkojima@gcc.gnu.org>
2894 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2896 (sh_expand_epilogue): Likewise.
2897 * config/sh/sh.md (movml_push_banked): New insn.
2898 (movml_pop_banked): Likewise.
2900 2010-08-28 Bernd Schmidt <bernds@codesourcery.com>
2902 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2903 gen_regexp_oneof, gen_regexp_sequence): Use the string found
2904 in vector element 0 rather than the original string when there's
2906 (gen_regexp): Remove extra semicolon.
2908 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2909 thumb2_movsf_vfp): Set attribute "insn".
2910 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2911 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2912 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2913 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2914 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2915 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2916 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2917 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2918 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2919 if_not_arith, if_arith_not, cond_move_not): Likewise.
2921 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2923 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2925 (rs6000_allocate_stack_temp): Ditto.
2926 (rs6000_expand_convert_si_to_sfdf): Ditto.
2928 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2929 line. Update the options set if power6 or power7 server/embedded
2930 type options are used. If we give a warning for no vsx under
2931 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2932 (rs6000_allocate_stack_temp): New function to allocate a stack
2933 tempoary and adjust the address so it meets either REG+OFFSET or
2934 REG+REG addressing requirements.
2935 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2936 that they can be used with the LFIWAX/LFIWZX instrucitons.
2937 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2938 converting signed/unsigned SImode to either SFmode/DFmode.
2940 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2941 whether certain instructions can be generated.
2942 (TARGET_FCTIDZ): Ditto.
2943 (TARGET_STFIWX): Ditto.
2944 (TARGET_LFIWAX): Ditto.
2945 (TARGET_LFIWZX): Ditto.
2946 (TARGET_FCFIDS): Ditto.
2947 (TARGET_FCFIDU): Ditto.
2948 (TARGET_FCFIDUS): Ditto.
2949 (TARGET_FCTIDUZ): Ditto.
2950 (TARGET_FCTIWUZ): Ditto.
2952 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2953 (UNSPEC_FCTID): Ditto.
2954 (UNSPEC_LFIWAX): Ditto.
2955 (UNSPEC_LFIWZX): Ditto.
2956 (UNSPEC_FCTIWUZ): Ditto.
2957 (rreg): Use correct constraints.
2958 (SI_CONVERT_FP): New mode attribute for floating point conversion
2960 (E500_CONVERT): Ditto.
2961 (lfiwax): New insns for converting from integer to floating point
2962 utilizing newer instructions. Attempt to optimize conversions
2963 that come from memory so that we don't load the value into a GPR,
2964 spill it to the stack and reload it into a FPR.
2965 (floatsi<mode>2_lfiwax): Ditto.
2966 (floatsi<mode>2_lfiwax_mem): Ditto.
2967 (floatsi<mode>2_lfiwax_mem2): Ditto.
2969 (floatunssi<mode>2_lfiwzx): Ditto.
2970 (floatunssi<mode>2_lfiwzx_mem): Ditto.
2971 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2972 (floatdidf2_mem): Ditto.
2973 (floatunsdidf2_fcfidu): Ditto.
2974 (floatunsdidf2_mem): Ditto.
2975 (floatunsdisf2): Ditto.
2976 (floatunsdisf2_fcfidus): Ditto.
2977 (floatunsdisf2_mem): Ditto.
2978 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2979 Use FCFID on 32-bit hosts that support it.
2980 (floatsidf2_internal): Ditto.
2981 (floatunssisf2): Ditto.
2982 (floatunssidf2): Ditto.
2983 (floatunssidf2_internal): Ditto.
2984 (floatsisf2): Ditto.
2985 (floatdidf2): Ditto.
2986 (floatdidf2_fpr): Ditto.
2987 (floatunsdidf2): Ditto.
2988 (floatdisf2): Ditto.
2989 (floatdisf2_fcfids): Ditto.
2990 (floatdisf2_internal1): Ditto.
2991 (fixuns_truncsfsi2): Delete, merge into common pattern for both
2992 SF/DF. Add power7 support.
2993 (fix_truncsfsi2): Ditto.
2994 (fixuns_truncdfsi2): Ditto.
2995 (fixuns_truncdfdi2): Ditto.
2996 (fix_truncdfsi2): Ditto.
2997 (fix_truncdfsi2_internal): Ditto.
2998 (fix_truncdfsi2_internal_gfxopt): Ditto.
2999 (fix_truncdfsi2_mfpgpr): Ditto.
3002 (btruncdf2_fpr): Ditto.
3005 (ceildf2_fpr): Ditto.
3008 (floordf2_fpr): Ditto.
3011 (rounddf2_fpr): Ditto.
3013 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
3014 (fix_trunc<mode>di2): Ditto.
3015 (fixuns_trunc<mode>si2): Ditto.
3016 (fixuns_trunc<mode>di2): Ditto.
3017 (fctiwz_<mode>): Ditto.
3018 (btrunc<mode>2): Ditto.
3019 (btrunc<mode>2_fpr): Ditto.
3020 (ceil<mode>2): Ditto.
3021 (ceil<mode>2_fpr): Ditto.
3022 (floor<mode>2): Ditto.
3023 (float<mode>2_fpr): Ditto.
3024 (round<mode>2): Ditto.
3025 (round<mode>2_fpr): Ditto.
3026 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
3027 (fixuns_trunc<mode>si2_stfiwx): Ditto.
3028 (fix_truncdfsi2_internal): Ditto.
3029 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
3030 converted value on stack, loaded into GPR, and then stored into
3031 the final destination.
3032 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
3034 (lrint<mode>di2): New insn, provide the lrint builtin functions.
3035 (ftruncdf2): Delete, unused.
3036 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
3038 * config/rs6000/vsx.md (toplevel): Update copyright year.
3039 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
3042 2010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
3043 Jeremie Salvucci <jeremie.salvucci@free.fr>
3045 * gengtype.c (output_type_enum): Test the right union member.
3047 2010-08-27 Uros Bizjak <ubizjak@gmail.com>
3050 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
3051 operands for operand 1.
3052 (sse4_1_extendv4qiv4si2): Ditto.
3053 (sse4_1_extendv2qiv2di2): Ditto.
3054 (sse4_1_extendv4hiv4si2): Ditto.
3055 (sse4_1_extendv2hiv2di2): Ditto.
3056 (sse4_1_extendv2siv2di2): Ditto.
3057 (sse4_1_zero_extendv8qiv8hi2): Ditto.
3058 (sse4_1_zero_extendv4qiv4si2): Ditto.
3059 (sse4_1_zero_extendv2qiv2di2): Ditto.
3060 (sse4_1_zero_extendv4hiv4si2): Ditto.
3061 (sse4_1_zero_extendv2hiv2di2): Ditto.
3062 (sse4_1_zero_extendv2siv2di2): Ditto.
3063 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
3064 (*sse4_1_extendv4qiv4si2): Ditto.
3065 (*sse4_1_extendv2qiv2di2): Ditto.
3066 (*sse4_1_extendv4hiv4si2): Ditto.
3067 (*sse4_1_extendv2hiv2di2): Ditto.
3068 (*sse4_1_extendv2siv2di2): Ditto.
3069 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
3070 (*sse4_1_zero_extendv4qiv4si2): Ditto.
3071 (*sse4_1_zero_extendv2qiv2di2): Ditto.
3072 (*sse4_1_zero_extendv4hiv4si2): Ditto.
3073 (*sse4_1_zero_extendv2hiv2di2): Ditto.
3074 (*sse4_1_zero_extendv2siv2di2): Ditto.
3076 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
3078 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
3079 (mips_function_arg): Delete.
3080 (mips_function_arg_boundary): Take a const_tree.
3081 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
3082 (mips_arg_info): Likewise.
3083 (mips_setup_incoming_varargs): Call mips_function_arg_advance
3084 instead of FUNCTION_ARG_ADVANCE.
3085 (mips_function_arg_advance): Adjust prototype. Make static.
3086 (mips_function_arg): Likewise.
3087 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3088 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3090 2010-08-27 Nathan Froyd <froydnj@codesourcery.com>
3092 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3093 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
3094 (function_arg): Delete.
3095 (function_arg_boundary): Take a const_tree.
3096 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
3097 (rs6000_spe_function_arg): Likewise.
3098 (rs6000_parm_start): Likewise.
3099 (rs6000_arg_size): Likewise.
3100 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
3101 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
3102 (rs6000_mixed_function_arg): Likewise.
3103 (function_arg): Rename to...
3104 (rs6000_function_arg): ...this.
3105 (function_arg_advance): Rename to...
3106 (rs6000_function_arg_advance_1): ...this
3107 (rs6000_function_arg_advance): New function. Call it.
3108 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
3109 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
3110 (rs6000_function_value): Likewise.
3111 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3113 2010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3115 * config/arm/arm.md (enabled): Test the value of arch_enabled
3116 rather than just using it.
3118 2010-08-27 Olivier Hainque <hainque@adacore.com>
3119 Eric Botcazou <ebotcazou@adacore.com>
3121 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
3122 cover all the possible offsets from this base.
3123 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
3125 2010-08-26 Jakub Jelinek <jakub@redhat.com>
3127 PR tree-optimization/44485
3128 * calls.c (flags_from_decl_or_type): For const or pure
3129 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
3130 together with ECF_CONST resp. ECF_PURE.
3131 * builtins.c (expand_builtin): Use flags_from_decl_or_type
3132 instead of querying flags directly.
3133 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
3134 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
3136 2010-08-26 Richard Guenther <rguenther@suse.de>
3138 PR tree-optimization/45255
3139 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
3140 and externals are also invariant.
3142 2010-08-25 Jakub Jelinek <jakub@redhat.com>
3144 PR rtl-optimization/44858
3145 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
3146 newi2pat, make sure they don't affect newpat.
3148 PR rtl-optimization/45400
3149 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
3150 SUBREG_REG if both modes are of MODE_INT class.
3152 2010-08-25 Julian Brown <julian@codesourcery.com>
3154 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
3155 * config/arm/arm.md (generic_sched): No for Cortex-A5.
3156 (generic_vfp): Likewise.
3157 (cortex-a5.md): Include.
3158 * config/arm/cortex-a5.md: New.
3160 2010-08-25 Richard Guenther <rguenther@suse.de>
3162 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
3163 * gimple.c (gimple_get_alias_set): Remove special handling
3166 2010-08-25 Bernd Schmidt <bernds@codesourcery.com>
3169 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
3170 dead_or_set_p when computing i0_feeds_i2_n.
3172 * combine.c (find_split_point): Undo canonicalization of multiply-add
3173 to (minus x (mult)) when it seems likely that this will increase the
3176 2010-08-25 Richard Guenther <rguenther@suse.de>
3179 * lto-streamer.c (lto_record_common_node): Do not mess with
3180 TYPE_CANONICAL when not in lto.
3181 * gimple.c (gimple_register_type): Likewise.
3183 2010-08-25 Richard Guenther <rguenther@suse.de>
3185 PR tree-optimization/45316
3186 * tree-ssa-pre.c (eliminate): Properly clean EH info.
3188 2010-08-25 Richard Guenther <rguenther@suse.de>
3190 PR tree-optimization/45393
3191 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
3192 and clean EH info. Avoid SSA update.
3193 (execute_cse_sincos): Cleanup the CFG if it has changed.
3195 2010-08-25 Richard Guenther <rguenther@suse.de>
3198 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
3199 TARGET_MEM_REF in alignment computation.
3201 2010-08-25 Jakub Jelinek <jakub@redhat.com>
3203 PR tree-optimization/45059
3204 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
3205 type conversions from newop{1,2}. Assert t is a comparison and
3206 newop{1,2} after the stripping are gimple vals.
3208 2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
3210 * config/arm/iterators.md (VU, SE, V_widen_l): New.
3211 (V_unpack, US): New.
3212 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
3213 (vec_unpack<US>_lo_<mode>): Likewise.
3214 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
3215 (neon_vec_unpack<US>_lo_<mode>): Likewise.
3216 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
3217 (vec_widen_<US>mult_hi_<mode>): Likewise.
3218 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
3219 (neon_vec_<US>mult_hi_<mode>"): Likewise.
3220 (neon_unpack<US>_<mode>): Widening move intermediate step for
3221 vectorizing without -mvectorize-with-neon-quad.
3222 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
3223 for vectorizing without -mvectorize-with-neon-quad.
3224 * config/arm/predicates.md (vect_par_constant_high): Check for
3225 high-half lanes of a vector.
3226 (vect_par_constant_low): Check for low-half lanes of a vector.
3228 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
3230 * tree-if-conv.c (struct ifc_dr): New.
3232 (DR_WRITTEN_AT_LEAST_ONCE): New.
3233 (DR_RW_UNCONDITIONALLY): New.
3234 (memref_read_or_written_unconditionally): Use the cached values
3236 (write_memref_written_at_least_once): Same.
3237 (if_convertible_loop_p): Initialize and free DR->aux fields.
3239 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
3241 * gimple.c (gimple_could_trap_p_1): Not static anymore.
3242 Pass an extra bool parameter include_mem.
3243 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
3244 (gimple_assign_rhs_could_trap_p): Same.
3245 * gimple.h (gimple_could_trap_p_1): Declared.
3246 * tree-data-ref.h (same_data_refs_base_objects): New.
3247 (same_data_refs): New.
3248 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
3249 (write_memrefs_written_at_least_once): New.
3250 (ifcvt_memrefs_wont_trap): New.
3251 (operations_could_trap): New.
3252 (ifcvt_could_trap_p): New.
3253 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
3254 Gets a vector of data refs.
3255 (if_convertible_stmt_p): Same.
3256 (if_convertible_loop_p_1): New.
3257 (if_convertible_loop_p): Call if_convertible_loop_p_1.
3259 2010-08-24 Sebastian Pop <sebastian.pop@amd.com>
3261 * common.opt (ftree-loop-if-convert-stores): New flag.
3262 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
3263 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
3264 the created statement before GSI.
3265 (if_convertible_phi_p): Allow virtual phi nodes when
3266 flag_loop_if_convert_stores is set.
3267 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
3268 Do not handle types that do not match is_gimple_reg_type.
3269 Remove loop and bb parameters. Call gimple_could_trap_p instead of
3270 when flag_loop_if_convert_stores is set, as LHS can contain
3272 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
3273 to if_convertible_gimple_assign_stmt_p.
3274 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
3275 (replace_phi_with_cond_gimple_assign_stmt): Renamed
3276 predicate_scalar_phi. Do not handle virtual phi nodes.
3277 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
3278 Call predicate_scalar_phi.
3279 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
3280 just after the labels for flag_loop_if_convert_stores, otherwise
3281 insert the predicate in the end of the BB.
3282 (predicate_mem_writes): New.
3283 (combine_blocks): Call predicate_all_scalar_phis. When
3284 flag_loop_if_convert_stores is set, call predicate_mem_writes.
3285 (tree_if_conversion): Call mark_sym_for_renaming when
3286 flag_loop_if_convert_stores is set.
3287 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
3288 flag_loop_if_convert_stores is set.
3290 2010-08-24 Anatoly Sokolov <aesok@post.ru>
3292 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
3293 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
3294 (pa_function_value): Make static.
3295 (override_options): Rename to...
3296 (pa_option_override): ...this. Make static.
3297 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
3298 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
3299 TARGET_OPTION_OVERRIDE): Define.
3300 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
3301 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
3303 * config/pa/pa-protos.h (override_options): Remove.
3305 2010-08-24 Richard Guenther <rguenther@suse.de>
3308 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
3309 if addr->index is NULL or zero.
3310 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
3311 TARGET_MEM_REF more properly.
3312 (indirect_ref_may_alias_decl_p): Likewise.
3313 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
3314 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
3316 2010-08-23 Anatoly Sokolov <aesok@post.ru>
3318 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
3319 (m32c_override_options): Rename to...
3320 (m32c_option_override): ...this. Make static.
3321 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
3322 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
3324 * config/m32c/m32c-protos.h (m32c_override_options,
3325 m32c_function_value_regno_p): Remove.
3327 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
3329 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
3330 Fix a typo in a previous commit.
3332 2010-08-23 Kai Tietz <kai.tietz@onevision.com>
3334 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
3335 Pre-initialize innerloop_iters to one.
3337 2010-08-23 Changpeng Fang <changpeng.fang@amd.com>
3339 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
3340 existing static function global.
3342 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
3343 is changed to global.
3345 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
3346 may_be_nonaddressable_p on base, and don't collect this reference
3347 if the address of the base could not be taken.
3349 2010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3351 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
3352 enable the compiler to autovectorize mathmetical functions for
3353 power7 using the Mathematical Acceleration Subsystem library.
3355 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
3356 handle which vector math library we have.
3357 (rs6000_override_options): Add -mveclibabi=mass support.
3358 (rs6000_builtin_vectorized_libmass): New function to handle auto
3359 vectorizing math functions that are in the MASS library.
3360 (rs6000_builtin_vectorized_function): Call it.
3362 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3365 2010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3368 * gthr-posix.h (__gthread_active_init): Delete.
3369 (__gthread_active_p): Do activity check here.
3370 Don't include errno.h on hppa-hpux. Update comment.
3371 * gthr-posix95.h (__gthread_active_init): Delete.
3372 (__gthread_active_p): Do activity check here.
3373 Don't include errno.h on hppa-hpux. Update comment.
3374 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
3375 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
3376 add -lpthread when -mt or -pthread is specified.
3377 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
3378 (LINK_GCC_C_SEQUENCE_SPEC): Define.
3379 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
3380 (stublib.c, pthread_default_stacksize_np-stub.o,
3381 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
3382 $(T)libgcc_stub.a): Add methods.
3383 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
3384 (stublib.c, pthread_default_stacksize_np-stub.o,
3385 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
3386 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3387 pthread_mutex_unlock): New stubs.
3389 2010-08-22 Joseph Myers <joseph@codesourcery.com>
3391 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
3392 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
3394 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
3395 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
3396 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
3397 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
3398 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
3400 * cppspec.c: Include opts.h.
3401 (lang_specific_driver): Use cl_decoded_option structures.
3402 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
3403 * doc/tm.texi: Regenerate.
3404 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
3405 (driver_handle_option): Allow driver options needing no special
3407 (process_command): Decode options before call to
3408 lang_specific_driver. Pass decoded options to
3409 lang_specific_driver.
3410 * gcc.h (lang_specific_driver): Update prototype.
3411 * gccspec.c: Include opts.h.
3412 (lang_specific_driver): Use cl_decoded_option structures.
3413 * opts-common.c (option_ok_for_language, generate_option,
3414 generate_option_input_file): New.
3415 (decode_cmdline_option): Use option_ok_for_language.
3416 (decode_cmdline_options_to_array): Use generate_option_input_file.
3417 (handle_generated_option): Use generate_option.
3418 * opts.h (generate_option, generate_option_input_file): Declare.
3420 2010-08-22 Anatoly Sokolov <aesok@post.ru>
3422 * config/mips/mips.c (mips_override_options): Rename to...
3423 (mips_option_override): ...this. Make static.
3424 (TARGET_OPTION_OVERRIDE): Define.
3425 (mips_in_small_data_p): Update comment.
3426 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
3427 (FIXED_REGISTERS): Update comment.
3428 * config/mips/mips-protos.h (mips_override_options): Remove.
3430 2010-08-21 Olivier Hainque <hainque@adacore.com>
3432 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
3434 2010-08-21 Olivier Hainque <hainque@adacore.com>
3436 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
3437 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
3439 2010-08-20 Jan Hubicka <jh@suse.cz>
3441 * tree-pass.h (pass_ipa_cdtor_merge): New function.
3442 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
3444 (record_cdtor_fn): Move to ipa.c; do not test for
3446 (build_cdtor): Move to ipa.c; add code avoiding construction
3447 when target have ctors/dtors and there is only one ctor/dtor at given
3449 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
3450 sort; reverse order of constructors.
3451 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
3452 (cgraph_finalize_function): Do not call record_cdtor_fn.
3453 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
3454 (cgraph_build_static_cdtor): Move to ipa.c.
3455 * ipa.c: Include target.h and tree-iterator.h.
3456 (cgraph_build_static_cdtor, static_ctors, static_dtors,
3457 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
3458 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
3459 pass_ipa_cdtor_merge): New.
3460 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
3461 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
3464 2010-08-20 Jan Hubicka <jh@suse.cz>
3468 * cgraph.h (cgraph_only_called_directly_p,
3469 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
3471 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
3473 (cgraph_finalize_function): Static cdtors are reachable.
3474 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
3476 2010-08-20 Jan Hubicka <jh@suse.cz>
3478 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
3480 * lto-streamer-out.c (lto_output): Likewise.
3481 * passes.c (ipa_write_optimization_summaries): Initialize statement
3484 2010-08-20 Olivier Hainque <hainque@adacore.com>
3486 * tree.h (alias_diag_flags): New enum.
3487 (alias_pair): Add an 'emitted_diags' field.
3488 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
3489 (assemble_alias): Initialize emitted_diags of new pairs.
3491 2010-08-20 Eric Botcazou <ebotcazou@adacore.com>
3493 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3494 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3495 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3496 (STACK_CHECK_PROTECT): Define.
3497 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
3498 (output_probe_stack_range): Likewise.
3499 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
3500 builtin stack checking is enabled.
3501 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
3502 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3503 (probe_stack_range): New insn.
3505 2010-08-20 H.J. Lu <hongjiu.lu@intel.com>
3508 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
3511 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
3514 2010-08-20 Jakub Jelinek <jakub@redhat.com>
3517 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
3518 to cover zero extension into 64-bit register.
3519 (*sse2_pextrw): Likewise.
3520 (*sse4_1_pextrd_zext): New insn.
3522 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
3524 revert r163410, partially revert r163267.
3525 * config/rs6000/darwin.h (LIB_SPEC): Remove.
3526 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
3529 2010-08-20 Jakub Jelinek <jakub@redhat.com>
3532 * builtins.c (expand_builtin): Don't optimize away
3533 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
3535 2010-08-20 Uros Bizjak <ubizjak@gmail.com>
3537 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
3538 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
3539 alternative 1 of operand 2.
3541 2010-08-20 Jakub Jelinek <jakub@redhat.com>
3542 Paolo Bonzini <bonzini@gnu.org>
3544 * simplify-rtx.c (simplify_unary_operation_1): Optimize
3545 (sign_extend (zero_extend (...)) and
3546 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
3548 2010-08-20 Jakub Jelinek <jakub@redhat.com>
3550 PR rtl-optimization/45353
3551 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
3552 after bb_note is a BARRIER.
3554 2010-08-20 Iain Sandoe <iains@gcc.gnu.org>
3556 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
3559 2010-08-20 Jakub Jelinek <jakub@redhat.com>
3560 Michael Matz <matz@suse.de>
3562 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
3564 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
3566 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
3567 (ggc_mark_roots): ...here.
3569 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
3571 * vec.h (FOR_EACH_VEC_ELT): Define.
3573 * cfgloop.c: Likewise.
3574 * cfgloopmanip.c: Likewise.
3575 * cgraph.c: Likewise.
3576 * cgraphunit.c: Likewise.
3577 * combine.c: Likewise.
3578 * config/bfin/bfin.c: Likewise.
3579 * config/mips/mips.c: Likewise.
3580 * config/rs6000/rs6000.c: Likewise.
3581 * dbxout.c: Likewise.
3582 * df-scan.c: Likewise.
3583 * dominance.c: Likewise.
3585 * dwarf2out.c: Likewise.
3586 * except.c: Likewise.
3588 * function.c: Likewise.
3590 * genattr.c: Likewise.
3591 * ggc-common.c: Likewise.
3592 * gimplify.c: Likewise.
3593 * graphite-blocking.c: Likewise.
3594 * graphite-clast-to-gimple.c: Likewise.
3595 * graphite-dependences.c: Likewise.
3596 * graphite-interchange.c: Likewise.
3597 * graphite-poly.c: Likewise.
3598 * graphite-scop-detection.c: Likewise.
3599 * graphite-sese-to-poly.c: Likewise.
3600 * graphite.c: Likewise.
3601 * haifa-sched.c: Likewise.
3602 * ifcvt.c: Likewise.
3603 * implicit-zee.c: Likewise.
3604 * ipa-prop.c: Likewise.
3605 * ipa-struct-reorg.c: Likewise.
3607 * ira-build.c: Likewise.
3608 * ira-color.c: Likewise.
3609 * ira-emit.c: Likewise.
3610 * lambda-code.c: Likewise.
3611 * loop-invariant.c: Likewise.
3612 * loop-unroll.c: Likewise.
3613 * lower-subreg.c: Likewise.
3614 * lto-cgraph.c: Likewise.
3615 * lto-opts.c: Likewise.
3616 * lto-streamer-in.c: Likewise.
3617 * lto-streamer-out.c: Likewise.
3618 * lto-streamer.c: Likewise.
3619 * lto-symtab.c: Likewise.
3620 * matrix-reorg.c: Likewise.
3622 * predict.c: Likewise.
3623 * print-tree.c: Likewise.
3624 * sdbout.c: Likewise.
3625 * sel-sched-dump.c: Likewise.
3626 * sel-sched-ir.c: Likewise.
3627 * sel-sched.c: Likewise.
3629 * stor-layout.c: Likewise.
3630 * tree-cfg.c: Likewise.
3631 * tree-cfgcleanup.c: Likewise.
3632 * tree-chrec.c: Likewise.
3633 * tree-data-ref.c: Likewise.
3634 * tree-emutls.c: Likewise.
3635 * tree-inline.c: Likewise.
3636 * tree-into-ssa.c: Likewise.
3637 * tree-loop-distribution.c: Likewise.
3638 * tree-loop-linear.c: Likewise.
3639 * tree-mudflap.c: Likewise.
3640 * tree-outof-ssa.c: Likewise.
3641 * tree-parloops.c: Likewise.
3642 * tree-predcom.c: Likewise.
3643 * tree-pretty-print.c: Likewise.
3644 * tree-scalar-evolution.c: Likewise.
3645 * tree-ssa-live.c: Likewise.
3646 * tree-ssa-loop-im.c: Likewise.
3647 * tree-ssa-loop-ivcanon.c: Likewise.
3648 * tree-ssa-loop-ivopts.c: Likewise.
3649 * tree-ssa-loop-manip.c: Likewise.
3650 * tree-ssa-loop-niter.c: Likewise.
3651 * tree-ssa-loop-prefetch.c: Likewise.
3652 * tree-ssa-phiprop.c: Likewise.
3653 * tree-ssa-pre.c: Likewise.
3654 * tree-ssa-reassoc.c: Likewise.
3655 * tree-ssa-sccvn.c: Likewise.
3656 * tree-ssa-structalias.c: Likewise.
3657 * tree-ssa.c: Likewise.
3658 * tree-vect-data-refs.c: Likewise.
3659 * tree-vect-loop-manip.c: Likewise.
3660 * tree-vect-loop.c: Likewise.
3661 * tree-vect-patterns.c: Likewise.
3662 * tree-vect-slp.c: Likewise.
3663 * tree-vect-stmts.c: Likewise.
3664 * tree-vrp.c: Likewise.
3666 * value-prof.c: Likewise.
3667 * var-tracking.c: Likewise.
3668 * varasm.c: Likewise.
3669 * vmsdbgout.c: Likewise.
3671 2010-08-19 Nathan Sidwell <nathan@codesourcery.com>
3672 Richard Guenther <richard.guenther@gmail.com>
3674 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
3675 copy the src value and return a copy.
3676 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
3677 (C++ Volatiles): Adjust to describe C++ semantics only.
3679 2010-08-20 Joseph Myers <joseph@codesourcery.com>
3681 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
3683 * doc/tm.texi: Regenerate.
3684 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
3685 * df-scan.c (df_get_exit_block_use_set), reginfo.c
3686 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
3687 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
3688 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
3691 2010-08-20 Olivier Hainque <hainque@adacore.com>
3693 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
3694 an extra nop past a sibling call at the very end.
3696 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
3699 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
3702 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
3704 * target.def (function_arg, function_incoming_arg): Remove const
3705 qualifier on CUMULATIVE_ARGS parameter.
3706 * targhooks.h (default_function_arg, default_function_incoming_arg):
3708 * targhooks.c (default_function_arg, default_function_incoming_arg):
3710 * config/i386/i386.c (ix86_function_arg): Likewise.
3712 2010-08-19 Jakub Jelinek <jakub@redhat.com>
3715 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
3716 SIGN_EXTENDs or ZERO_EXTENDs.
3718 2010-08-19 Bernd Schmidt <bernds@codesourcery.com>
3721 * combine.c (combine_validate_cost): New arg I0. All callers changed.
3722 Take its cost into account if nonnull.
3723 (insn_a_feeds_b): New static function.
3724 (combine_instructions): Look for four-insn combinations.
3725 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
3726 them into account when computing all_adjacent and looking for other
3728 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
3729 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
3730 (try_combine): New arg I0. Handle four-insn combinations.
3731 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
3734 2010-08-19 Jason Merrill <jason@redhat.com>
3737 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
3739 (gimplify_modify_expr_rhs): Adjust.
3741 2010-08-19 Nathan Froyd <froydnj@codesourcery.com>
3743 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
3745 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
3746 * dominance.c (iterate_fix_dominators): Likewise.
3747 * dse.c (set_usage_bits): Likewise.
3748 (set_position_unneeded, record_store): Likewise.
3749 * gimple-fold.c (get_maxval_strlen): Likewise.
3750 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
3751 * ipa-inline.c (update_caller_keys): Likewise.
3752 * ipa-split.c (verify_non_ssa_vars): Likewise.
3753 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
3754 (close_type_exposed_parameter, close_type_full_escape): Likewise.
3755 (close_addressof_down): Likewise.
3756 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
3757 (setup_allocno_left_conflicts_size): Likewise.
3758 (ira_reassign_conflict_allocnos): Likewise.
3759 (ira_reassign_pseudos): Likewise.
3760 * ira-emit.c (change_loop): Likewise.
3761 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
3762 * lto-streamer-out.c (write_symbol): Likewise.
3763 * predict.c (expr_expected_value_1): Likewise.
3764 * regstat.c (regstat_bb_compute_ri): Likewise.
3765 * sel-sched.c (create_block_for_bookkeeping): Likewise.
3766 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
3767 * stmt.c (expand_case): Likewise.
3768 * tree-eh.c (emit_eh_dispatch): Likewise.
3769 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
3770 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
3772 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
3773 (rdg_build_components): Likewise.
3774 * tree-object-size.c (collect_object_sizes_for): Likewise.
3775 * tree-sra.c (convert_callers): Likewise.
3776 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
3777 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
3778 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
3780 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
3782 * config/i386/i386.md (*lea_1): Use P mode iterator.
3783 (lea add splitter): Also handle DImode operands.
3784 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
3785 predicate. Do not use ix86_lea_for_add_ok.
3786 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
3787 (lea ashift splitter): Also handle DImode operands.
3788 (DImode lea ashift splitter): Remove splitter.
3790 2010-08-19 Uros Bizjak <ubizjak@gmail.com>
3792 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
3793 ix86_binary_operator_ok.
3795 2010-08-19 Andrey Belevantsev <abel@ispras.ru>
3797 PR rtl-optimization/44691
3798 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
3801 2010-08-19 Ian Bolton <ian.bolton@arm.com>
3804 * config/arm/arm.c (arm_output_epilogue): Ensure that return
3805 value of size 1-3 is handled correctly.
3807 2010-08-19 Ian Bolton <ian.bolton@arm.com>
3809 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
3810 type for the conditional has wide enough range.
3812 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
3815 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
3816 ix86_binary_operator_ok.
3818 2010-08-18 Uros Bizjak <ubizjak@gmail.com>
3820 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
3821 <default>: Swap operands 1 and 2 for alternative 2 to use existing
3822 code to output insn mnemonic. Fix comment.
3823 (*addsi_1_zext): Add r-r-0 alternative 1.
3824 <TYPE_LEA>: Split insn to lea.
3825 <default>: Handle alternative 1.
3826 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
3827 multi-level if_then_else RTX to set "type" attribute.
3828 <default>: Handle alternative 2.
3829 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
3830 Use cond RTX instead of multi-level if_then_else RTX to set
3832 <default>: Handle alternatives 2 and 4.
3833 (lea splitters): Update calls to ix86_lea_for_add_ok.
3835 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
3837 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
3839 2010-08-18 Richard Guenther <rguenther@suse.de>
3841 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
3842 use operand helpers.
3844 2010-08-18 Paolo Bonzini <bonzini@gnu.org>
3847 * optabs.c (expand_bool_compare_and_swap): Expand pending
3848 pops before trying the optab.
3850 2010-08-18 Yao Qi <yao@codesourcery.com>
3853 * config/arm/arm.c (output_move_double): Fix typo generating
3854 instructions ('ldr'->'str').
3856 2010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
3858 PR rtl-optimization/42575
3859 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
3862 2010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
3864 * config/arm/arm-protos.h (arm_expand_sync): New.
3865 (arm_output_memory_barrier, arm_output_sync_insn): New.
3866 (arm_sync_loop_insns): New.
3867 * config/arm/arm.c (FL_ARCH7): New.
3868 (FL_FOR_ARCH7): Include FL_ARCH7.
3870 (arm_print_operand): Support %C markup.
3871 (arm_legitimize_sync_memory): New.
3872 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
3873 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
3874 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
3875 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
3876 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
3877 (arm_process_output_sync_insn, arm_output_sync_insn): New.
3878 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
3879 * config/arm/arm.h (struct arm_sync_generator): New.
3880 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
3881 (TARGET_HAVE_MEMORY_BARRIER): New.
3882 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
3883 * config/arm/arm.md: Include sync.md.
3884 (UNSPEC_MEMORY_BARRIER): New.
3885 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
3886 (VUNSPEC_SYNC_OP):New.
3887 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
3888 (sync_result, sync_memory, sync_required_value): New attributes.
3889 (sync_new_value, sync_t1, sync_t2): Likewise.
3890 (sync_release_barrier, sync_op): Likewise.
3891 (length): Add logic to length attribute defintion to call
3892 arm_sync_loop_insns when appropriate.
3893 * config/arm/sync.md: New file.
3895 2010-08-17 Jakub Jelinek <jakub@redhat.com>
3897 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
3898 ENABLE_TREE_CHECKING.
3899 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
3902 2010-08-17 H.J. Lu <hongjiu.lu@intel.com>
3904 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
3905 or optimizing for size, always avoid lea if possible.
3907 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
3909 2010-08-17 Iain Sandoe <iains@gcc.gnu.org>
3911 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
3912 Dunmmy function with NULL return unless the target is
3913 OSX >= 10.6 (Darwin10).
3915 2010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
3917 * gcc.c (spec_function): Add remove-outfile.
3918 (remove_outfile_spec_function): New function.
3919 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
3920 * invoke.texi (replace-outfile): Document.
3922 2010-08-17 Uros Bizjak <ubizjak@gmail.com>
3925 * reginfo.c (globalize_reg): Reject stack registers.
3927 2010-08-17 Richard Guenther <rguenther@suse.de>
3929 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
3930 list of conditional equivalences.
3931 (free_all_edge_infos): Adjust.
3932 (record_equivalences_from_incoming_edge): Likewise.
3933 (record_cond): Likewise.
3934 (build_and_record_new_cond): Likewise.
3935 (record_conditions): Likewise.
3936 (dom_opt_leave_block): Likewise.
3938 2010-08-17 Kai Tietz <kai.tietz@onevision.com>
3940 * doc/invoke.texi (ms-extension): Add documentation.
3942 2010-08-17 Richard Guenther <rguenther@suse.de>
3944 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
3946 2010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
3949 * c-decl.c (diagnose_uninitialized_cst_member): New function.
3950 (finish_decl): Use it to issue a -Wc++-compat warning about
3951 uninitialized const field in struct or union.
3953 (finish_struct): Use strip_array_types.
3955 2010-08-17 Jakub Jelinek <jakub@redhat.com>
3957 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
3959 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
3960 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
3961 call block_nreverse here.
3962 (blocks_nreverse): Rename decl temporary to block.
3964 2010-08-16 Bernd Schmidt <bernds@codesourcery.com>
3966 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
3967 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
3968 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
3969 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
3970 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
3971 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
3972 thumb2_iorsi3): Delete.
3973 (orsi_notsi_si): No longer a named pattern.
3974 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
3975 * config/arm/predicates.md (shift_amount_operand): New.
3976 (mult_operator): New.
3977 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
3979 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
3981 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
3982 (not_shiftsi_compare0): Likewise, renamed from
3983 arm_notsi_shiftsi_compare0.
3984 (not_shiftsi_compare0_scratch): Likweise, renamed from
3985 arm_notsi_shiftsi_compare0_scratch.
3986 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
3987 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
3988 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
3989 so that the register alternative is disabled when the shift_operator
3990 is MULT. Use "M" as the constraint for constants.
3991 (arith_shiftsi splitter): Enable for TARGET_32BIT.
3992 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
3993 constraint for constants.
3994 (arith_shiftsi_compare0_scratch): Likewise.
3995 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
3996 Handle Thumb2 alternative.
3998 2010-08-16 Joseph Myers <joseph@codesourcery.com>
4000 * doc/options.texi (NoDriverArg): Document.
4001 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
4003 * opt-functions.awk (switch_flags): Handle NoDriverArg.
4004 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
4005 marking for CL_NO_DRIVER_ARG options when in the driver.
4006 * opts.h (CL_NO_DRIVER_ARG): Define.
4007 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
4008 CL_COMMON): Update values.
4010 2010-08-16 Joseph Myers <joseph@codesourcery.com>
<