1 2010-11-19 Joseph Myers <joseph@codesourcery.com>
4 * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
5 * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
7 2010-11-19 Michael Meissner <meissner@linux.vnet.ibm.com>
9 * doc/extend.texi (Function attributes): Document PowerPC target
10 attributes that are supported.
11 (Pragmas): Document that PowerPC now supports target pragmas.
13 * doc/options.texi (TargetVariable): Document TargetVariable,
14 HeaderInclude, and SourceInclude.
16 * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
17 mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
20 * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
21 SourceInclude directives. Fix a cut+paste error with target save
22 enum variables. Sort enums in the structures after ints and
24 * opth-gen.awk: Ditto.
26 * configure.ac: Add support for HeaderInclude and SourceInclude
27 option directives to add the appropriate files to the dependency
29 * configure: Regenerate.
30 * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
31 (OPTIONS_C_EXTRA): New variable for SourceInclude.
32 (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
33 (options.o): Add $(OPTIONS_C_EXTRA) dependency.
34 (gcc-options.o): Ditto.
35 * opt-include.awk: New awk script to handle HeaderInclude and
38 * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
39 gets saved in the target options.
40 * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
41 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
45 (-msecure-plt): Ditto.
47 * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
48 (-mpowerpc-gfxopt): Ditto.
64 (-mavoid-indexed-addresses): Ditto.
65 (-mtls-markers): Ditto.
66 (-msched-epilog): Ditto.
67 (-msched-prolog): Ditto.
68 (-maix-struct-return): Ditto.
69 (-msvr4-struct-return): Ditto.
71 (-mrecip-precision): Ditto.
73 (-msum-in-toc): Ditto.
75 (-mblock-move-inline-limit=): Ditto.
79 (-mgen-cell-microcode): Ditto.
80 (-mwarn-cell-microcode): Ditto.
81 (-mwarn-altivec-long): Ditto.
82 (-mprioritize-restricted-insns=): Ditto.
83 (-msingle-float): Ditto.
84 (-mdouble-float): Ditto.
85 (-msimple-fpu): Ditto.
86 (-mxilinx-fpu): Ditto.
87 * config/rs6000/aix64.opt (-mpe): Ditto.
89 * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
90 (rs6000_cpu): Move variable to be a target variable. Rename
91 cmodel to rs6000_current_cmodel because of macro conflict. Merge
92 -mdebug=<xxx> variables into a single int.
93 (rs6000_always_hint): Ditto.
94 (rs6000_sched_groups): Ditto.
95 (rs6000_align_branch_targets): Ditto.
96 (rs6000_sched_costly_dep): Ditto.
97 (rs6000_sched_insert_nops): Ditto.
98 (rs6000_long_double_type_size): Ditto.
99 (rs6000_ieeequad): Ditto.
100 (rs6000_altivec_abi): Ditto.
102 (rs6000_spe_abi): Ditto.
103 (rs6000_float_gprs): Ditto.
104 (rs6000_darwin64_abi): Ditto.
105 (can_override_loop_align): Ditto.
106 (rs6000_sdata): Ditto.
107 (rs6000_tls_size): Ditto.
108 (rs6000_current_abi): Ditto.
109 (rs6000_traceback): Ditto.
110 (rs6000_alignment_flags): Ditto.
111 (rs6000_current_cmodel): Ditto.
112 (rs6000_recip_control): Ditto.
113 (rs6000_cpu_index): Ditto.
114 (rs6000_tune_index): Ditto.
115 (rs6000_debug): Ditto.
116 (rs6000_target_flags_explict): Ditto.
118 * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
121 * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
122 cmodel. Change all uses.
124 * config/rs6000/rs6000.c (rs6000_always_hint): Move to
125 rs6000.opt. Combine -mdebug=<xxx> variables into a single int.
126 Rename cmodel to rs6000_current_cmodel.
127 (rs6000_sched_groups): Ditto.
128 (rs6000_align_branch_targets): Ditto.
129 (rs6000_sched_costly_dep): Ditto.
130 (rs6000_sched_insert_nops): Ditto.
131 (rs6000_long_double_type_size): Ditto.
132 (rs6000_ieeequad): Ditto.
133 (rs6000_altivec_abi): Ditto.
135 (rs6000_spe_abi): Ditto.
136 (rs6000_float_gprs): Ditto.
137 (rs6000_darwin64_abi): Ditto.
138 (can_override_loop_align): Ditto.
139 (rs6000_sdata): Ditto.
140 (rs6000_tls_size): Ditto.
141 (rs6000_current_abi): Ditto.
142 (rs6000_traceback): Ditto.
143 (rs6000_alignment_flags): Ditto.
144 (rs6000_current_cmodel): Ditto.
145 (rs6000_recip_control): Ditto.
146 (rs6000_cpu_index): Ditto.
147 (rs6000_tune_index): Ditto.
148 (rs6000_debug): Ditto.
149 (rs6000_target_flags_explict): Ditto.
150 (rs6000_sched_insert_nops_str): Make static.
151 (rs6000_sched_costly_dep_str): Ditto.
152 (rs6000_recip_name): Ditto.
153 (rs6000_abi_name): Ditto.
154 (rs6000_sdata_name): Ditto.
155 (enum rs6000_traceback_name): Move to rs6000-opts.h.
156 (rs6000_parse_tls_size_option): Delete.
157 (rs6000_valid_attribute_p): New function for target attributes and
159 (rs6000_function_specific_save): Ditto.
160 (rs6000_function_specific_restore): Ditto.
161 (rs6000_function_specific_print): Ditto.
162 (rs6000_can_inline_p): Ditto.
163 (rs6000_set_current_function): Ditto.
164 (rs6000_inner_target_options): Ditto.
165 (rs6000_debug_target_options): Ditto.
166 (rs6000_pragma_target_parse): Ditto.
167 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
168 attributes and pragmas.
169 (TARGET_OPTION_SAVE): Ditto.
170 (TARGET_OPTION_RESTORE): Ditto.
171 (TARGET_OPTION_PRINT): Ditto.
172 (TARGET_CAN_INLINE_P): Ditto.
173 (TARGET_SET_CURRENT_FUNCTION): Ditto.
174 (POWER_MASKS): Move to file level scope from the
175 rs6000_option_override_internal function.
176 (POWERPC_MASKS): Ditto.
177 (ISA_*_MASKS): Ditto.
178 (struct rs6000_ptt): Ditto.
179 (processor_target_table): Ditto.
180 (rs6000_cpu_name_lookup): Map cpu name to an index in
181 processor_target_table.
182 (rs6000_debug_reg_global): Print more information on processor
183 options for -mdebug=reg.
184 (rs6000_init_hard_regno_mode_ok): Add support for target
185 attributes and pragmas. Merge all -mdebug=<xxx> fields into one.
186 Allow -mdebug=val1,val2. Rename cmodel variable.
187 (rs6000_option_override_internal): Ditto.
188 (rs6000_option_override): Ditto.
189 (rs6000_handle_option): Ditto.
190 (rs6000_conditional_register_usage): Add debug trace message.
191 (struct rs6000_opt_mask): New for target attribute/pragma
193 (rs6000_opt_masks): Ditto.
194 (struct rs6000_opt_var): Ditto.
195 (rs6000_opt_vars): Ditto.
196 (rs6000_previous_function): Ditto.
198 * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
199 wasn't already included.
200 (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
201 (enum processor_type): Ditto.
203 (enum fpu_type_t): Ditto.
205 (enum rs6000_dependence_cost): Ditto.
206 (enum rs6000_nop_insertion): Ditto.
207 (enum group_termination): Ditto.
208 (rs6000_long_double_type_size): Ditto.
209 (rs6000_ieeequad): Ditto.
210 (rs6000_altivec_abi): Ditto.
211 (rs6000_spe_abi): Ditto.
213 (rs6000_float_gprs): Ditto.
214 (rs6000_alignment_flags): Ditto.
215 (rs6000_sched_insert_nops): Ditto.
216 (enum rs6000_vector): Ditto.
217 (enum rs6000_abi): Ditto.
218 (rs6000_current_opt): Ditto.
219 (rs6000_debug_*): Delete.
220 (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
221 (TARGET_DEBUG*): Ditto.
223 * config/rs6000/rs6000-opts.h: New header file to define the enums
224 that are used in target variables that are now defined in
227 * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
229 (rs6000_sdata): Ditto.
230 (rs6000_abi_name): Delete.
231 (rs6000_sdata_name): Ditto.
232 (rs6000_tls_size_string): Ditto.
234 2010-11-19 Joseph Myers <joseph@codesourcery.com>
236 * common.opt (debug_struct_ordinary, debug_struct_generic): New
238 * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
239 should_emit_struct_debug): Move from opts.c.
240 * flag-types.h (enum debug_struct_file): Move from opts.c.
241 * flags.h (should_emit_struct_debug): Remove.
242 (base_of_path): Declare.
243 (set_struct_debug_option): Add gcc_options parameter.
244 * optc-gen.awk, opth-gen.awk: Handle array variables.
245 * opts.c (enum debug_struct_file, debug_struct_ordinary,
246 debug_struct_generic): Remove.
247 (set_struct_debug_option): Add gcc_options parameter.
248 (base_of_path): Remove static.
249 (main_input_basename, main_input_baselength, matches_main_base,
250 dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
252 * toplev.c (main_input_basename, main_input_baselength): Define
254 * toplev.h (main_input_basename, main_input_baselength): Declare
257 2010-11-19 Joseph Myers <joseph@codesourcery.com>
259 * common.opt (flag_instrument_functions_exclude_functions,
260 flag_instrument_functions_exclude_files): New Variable
262 * flags.h (flag_instrument_functions_exclude_p): Don't declare.
263 * gimplify.c (char_p): Declare type and vectors.
264 (flag_instrument_functions_exclude_p): Moved from opts.c. Make
266 * opts.c (flag_instrument_functions_exclude_functions,
267 flag_instrument_functions_exclude_files): Remove.
268 (add_comma_separated_to_vector): Take void **.
269 (flag_instrument_functions_exclude_p): Move to gimplify.c.
270 (common_handle_option): Use options structure for
271 -finstrument-functions-exclude- options.
273 2010-11-19 Joseph Myers <joseph@codesourcery.com>
275 * doc/options.texi (Var): Document effects of Defer.
277 * opt-functions.awk (var_type, var_set): Handle deferred options.
278 * opts-common.c (set_option): Handle CLVC_DEFER.
279 * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
280 fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
281 fstack-limit-symbol=): Mark as deferred.
282 * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
284 (print_filtered_help): Don't report state of CLVC_DEFER options.
285 (common_handle_option): Move code for OPT_fcall_used_,
286 OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
287 OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
288 OPT_fstack_limit_symbol_ to opts-global.c.
289 (option_enabled, get_option_state): Handle CLVC_DEFER.
290 * opts.h: Include vec.h.
291 (enum cl_var_type): Add CLVC_DEFER.
292 (cl_deferred_option): Define type and vectors.
293 (handle_common_deferred_options): Declare.
294 * opts-global.c: New.
295 * toplev.c (toplev_main): Call handle_common_deferred_options
296 * Makefile.in (OPTS_H): Include $(VEC_H).
297 (OBJS-common): Include opts-global.o.
298 (opts.o): Update dependencies.
299 (opts-global.o): Add dependencies.
301 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
303 * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
304 to objc_declare_protocols.
306 2010-11-19 Richard Guenther <rguenther@suse.de>
309 * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
310 IDENTIFIERs do not stream TREE_TYPE.
311 * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
313 2010-11-19 Christian Borntraeger <borntraeger@de.ibm.com>
315 * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
317 2010-11-19 Jakub Jelinek <jakub@redhat.com>
320 * dwarf2out.c (const_ok_for_output_1): Don't complain about
321 non-delegitimized TLS UNSPECs.
323 2010-11-18 Jack Howarth <howarth@bromo.med.uc.edu>
324 Ian Lance Taylor <iant@google.com>
326 * config/darwin-c.c (darwin_additional_format_types): Export.
328 2010-11-18 Paul Koning <ni1d@arrl.net>
330 * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
333 2010-11-18 Paul Koning <ni1d@arrl.net>
335 * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
336 * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
337 * config/pdp11/pdp11.opt (-mabshi): Delete.
339 2010-11-19 Mingjie Xing <mingjie.xing@gmail.com>
341 * resource.h (struct resources): Fix typo in the comment.
343 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
346 * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
348 2010-11-18 Richard Henderson <rth@redhat.com>
351 * function.c (maybe_copy_prologue_epilogue_insn): Rename from
352 maybe_copy_epilogue_insn; handle prologue insns as well.
353 * rtl.h, cfglayout.c: Update for rename.
354 * recog.c (peep2_attempt): Copy prologue/epilogue data for
355 RTX_FRAME_RELATED_P insns.
357 2010-11-18 Jakub Jelinek <jakub@redhat.com>
360 * builtins.c (fold_builtin_printf): Don't copy and modify string
361 before build_string_literal, instead modify what
362 build_string_literal returned.
364 2010-11-18 Nathan Froyd <froydnj@codesourcery.com>
367 * c-typeck.c (build_unary_op): Call build_real_imag_expr for
368 REALPART_EXPR and IMAGPART_EXPR.
370 2010-11-18 Richard Guenther <rguenther@suse.de>
372 PR tree-optimization/46172
373 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
375 (slpeel_tree_peel_loop_to_edge): Call it.
377 2010-11-18 Jeff Law <law@redhat.com>
379 PR middle-end-optimization/46297
380 * postreload.c (reload_combine_note_store): Deal with embedded
381 side effects in MEM expressions.
383 2010-11-18 Richard Guenther <rguenther@suse.de>
386 * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
387 when checking is not enabled.
389 2010-11-18 Richard Guenther <rguenther@suse.de>
392 * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
394 (gimple_register_canonical_type): Also cache the canoncial type
395 for non type leaders.
397 2010-11-18 Richard Guenther <rguenther@suse.de>
399 * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
401 2010-11-18 Alexander Monakov <amonakov@ispras.ru>
404 * sel-sched-ir.c (init_expr): Use the correct type for
406 * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
408 2010-11-17 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
410 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
411 as well as -mrelocatable at the same time.
413 2010-11-17 Quentin Neill <quentin.neill.gnu@gmail.com>
416 * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
417 Call the clz builtin.
419 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
420 Steve Ellcey <sje@cup.hp.com>
423 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
424 if section attribute used.
426 2010-11-17 Jan Hubicka <jh@suse.cz>
428 * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
429 expand errno setting variant when optimizing for size.
431 2010-11-17 Eric Botcazou <ebotcazou@adacore.com>
433 * postreload.c (reload_combine): Call control_flow_insn_p only once.
434 Reverse backward loop. Fix formatting issues.
436 2010-11-17 Paolo Bonzini <bonzini@gnu.org>
438 * c-parser.c (c_token_is_qualifier,
439 c_parser_next_token_is_qualifier): New.
440 (c_parser_declaration_or_fndef, c_parser_struct_declaration):
441 Improve error message on specs->tagdef_seen_p.
442 (c_parser_struct_or_union_specifier): Improve error recovery.
443 (c_parser_declspecs): Move exit condition on C_ID_ID early.
444 Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
445 using c_parser_next_token_is_qualifier; extend it to cover
446 a ctsk_tagdef typespec and !typespec_ok in general.
448 2010-11-17 Richard Guenther <rguenther@suse.de>
450 * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
451 (gimple_mod_pow2_value_transform): Likewise.
452 (gimple_mod_subtract_transform): Likewise.
454 2010-11-17 Richard Guenther <rguenther@suse.de>
457 * gimple.c (gimple_register_canonical_type): Make sure to only
458 make type leaders canonical types.
460 2010-11-17 Michael Matz <matz@suse.de>
462 * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
463 TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
464 TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
465 TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
466 * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
467 (pass_build_ssa): ... but here.
468 * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
469 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
470 * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
471 * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
472 * predict.c (rebuild_frequencies): Ditto.
473 * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
474 * emit-rtl.c (verify_rtl_sharing): Ditto.
475 * tree-cfgcleanup.c (repair_loop_structures): Ditto.
476 * tree-ssa-live.c (remove_unused_locals): Ditto.
477 * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
478 * tree-ssa.c (pass_early_warn_uninitialized,
479 execute_update_addresses_taken, pass_update_address_taken): Ditto.
480 * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
481 pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
482 * passes.c (pass_postreload, execute_todo): Ditto.
483 * tree-ssanames.c (pass_release_ssa_names): Ditto.
485 2010-11-17 Joseph Myers <joseph@codesourcery.com>
487 * doc/invoke.texi (-dy): Remove.
488 * langhooks-def.h (lhd_do_nothing_i): Don't declare.
489 (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
490 * langhooks.c (lhd_do_nothing_i): Remove.
491 * langhooks.h (lang_hooks.parse_file): Take no arguments.
492 * toplev.c (set_yydebug): Remove.
493 (compile_file): Update call to lang_hooks.parse_file.
494 (decode_d_option): Don't handle -dy.
496 2010-11-17 Jakub Jelinek <jakub@redhat.com>
498 PR rtl-optimization/46440
499 * combine.c (update_cfg_for_uncondjump): When changing
500 an indirect jump into unconditional jump, remove BARRIERs
503 2010-11-17 Joseph Myers <joseph@codesourcery.com>
505 * opts.c (target_handle_option): Do not assert that loc ==
508 2010-11-17 Jakub Jelinek <jakub@redhat.com>
509 Richard Guenther <rguenther@suse.de>
512 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
513 call_may_clobber_ref_p_1): Return true for __sync_* and some
514 OpenMP builtins that act as threading barriers.
516 2010-11-17 Richard Guenther <rguenther@suse.de>
518 PR tree-optimization/46498
519 * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
521 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
523 * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
524 (xtensa_function_arg_boundary): ...this.
525 * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
526 thinko in declaration.
527 (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
528 number of parameters to picochip_function_arg_boundary.
529 (picochip_arg_advance): Likewise.
531 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
534 * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
535 under check for type.
537 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
539 * ifcvt.c (dead_or_predicable): Fix typo.
541 2010-11-16 Richard Henderson <rth@redhat.com>
543 * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
544 * config/s390/s390.opt (mfused-madd): Remove.
545 * config/s390/s390.c (s390_rtx_costs): Handle FMA.
546 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
547 * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
548 (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
550 2010-11-16 Richard Henderson <rth@redhat.com>
552 * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
553 * config/rs6000/rs6000.opt (mfused-madd): Remove.
554 * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
555 (*altivec_vmaddfp_1): Remove.
556 (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
557 (altivec_mulv4sf3): Expand to FMA directly.
558 (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
559 (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
560 * config/rs6000/paired.md (paired_madds0): Use FMA.
561 (paired_madds1): Likewise.
562 (*paired_madd): Rename from paired_madd; use FMA.
563 (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
564 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
565 consider TARGET_FUSED_MADD wrt rs6000_recip_control.
566 (bdesc_3arg): Update CODE_FOR_* for pattern renames.
567 (rs6000_emit_madd): Use fma_optab.
568 (rs6000_emit_msub): Use fms_optab.
569 (rs6000_emit_nmsub): Expand the FMA pattern directly.
570 * config/rs6000/rs6000.md (FMA_F): New mode iterator.
571 (*fmasf4_fpr): Rename from fmasf4_fpr.
572 (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
573 (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
574 (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
575 (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
576 (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
577 (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
578 (*fmadf4_fpr): Rename from fmadf4_fpr.
579 (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
580 (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
581 (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
582 (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
583 (fmasf4, fmadf4): Macroize into...
584 (fma<FMA_F>4): ... here.
585 (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
586 (nfma<FMA_F>4, nfms<FMA_F>4): New.
587 * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
589 * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
590 (*vsx_fmadd<mode>4_1): Remove.
591 (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
592 (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
593 (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
594 (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
595 (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
596 (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
597 (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
599 2010-11-16 Richard Henderson <rth@redhat.com>
601 * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
602 (fmasf4, fnmadf4, fnmasf4): Likewise.
603 (unnamed plus+mult insns and splitters): Delete.
605 2010-11-16 Richard Henderson <rth@redhat.com>
607 * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
608 (fnma<VSF>4): Rename from fnms_<VSF>.
609 (fms<VSF>4): Rename from fms_<VSF>.
610 (fma<VDF>4): Rename from fma_<VDF>.
611 (fms<VDF>4): Rename from fms_<VDF>.
612 (nfma<VDF>4): Rename from fnma_<VDF>.
613 (nfms<VDF>4): Rename from fnms_<VDF>.
614 (fnma<VDF>4, fnms<VDF>4): New expanders.
615 (floatunsdisf2): Update for the renames.
616 (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
617 * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
619 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
621 PR rtl-optimization/46490
622 * combine.c (expand_compound_operation): Fix thinko.
624 2010-11-16 Richard Henderson <rth@redhat.com>
627 * recog.c (peep2_attempt): Convert frame-related info when possible.
628 (peep2_fill_buffer): Allow frame-related insns into the buffer.
629 (peephole2_optimize): Allow peep2_attempt to fail.
631 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
633 PR rtl-optimization/46315
634 * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
635 * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
637 * dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into...
638 (remove_reg_equal_equiv_notes_for_defs): ...this.
639 (delete_unmarked_insns): Adjust to above renaming.
640 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
641 referring to registers set in the insns being moved, if any.
643 * df-core.c (df_ref_dump): New function extracted from...
644 (df_refs_chain_dump): ...here. Call it.
645 (df_regs_chain_dump): Likewise.
646 * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
647 * df-scan.c (df_scan_start_dump): Likewise. Fix long line.
649 2010-11-16 Andreas Schwab <schwab@linux-m68k.org>
651 PR rtl-optimization/46395
652 * postreload.c (reload_combine): Invalidate register use
653 information on all control flow insns.
655 * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
656 LABEL_REF in UNSPEC operand.
658 2010-11-16 Jan Hubicka <jh@suse.cz>
660 * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
661 when !flag_toplevel_reorder do not remove unless variable is
662 COMDAT or ARTIFICIAL.
663 * ipa.c (varpool_can_remove_if_no_refs): ... here.
664 (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
665 * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
666 * varpool.c (decide_is_variable_needed): Do not handle visibility
668 (varpool_finalize_decl): Likewise.
669 (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
670 update outdated comment on DECL_RTL_SET_P check.
672 2010-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
674 * config/sol2.h (NM_FLAGS): Define.
675 * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
676 * doc/tm.texi: Update.
678 2010-11-16 Nick Clifton <nickc@redhat.com>
680 * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
681 (msubsf4): Rename to fmssf4, and use fma.
682 (nmaddsf4): Rename to fnmasf4 and use fma.
683 (nmsubsf4): Rename to fnmssf4 and use fma.
685 2010-11-16 Joern Rennecke <amylaar@spamcop.net>
688 * config/score/score3.c (score3_return_in_memory): Constify arguments.
689 (score3_in_small_data_p, score3_function_value): Likewise.
690 (score3_trampoline_init): Use LCT_NORMAL.
691 (score3_print_operand): Initialize code as UNKNOWN.
692 * config/score/predicates.md (score_load_multiple_operation):
693 Remove unused variable.
694 (score_store_multiple_operation): Likewise.
695 * config/score/score7.c (score7_return_in_memory): Constify arguments.
696 (score7_in_small_data_p, score7_function_value): Likewise.
697 (score7_trampoline_init): Use LCT_NORMAL.
698 (score7_print_operand): Initialize code as UNKNOWN.
699 * config/score/score3.h (score3_return_in_memory): Update prototype.
700 (score3_in_small_data_p, score3_function_value): Likewise.
701 * config/score/score-protos.h (score_function_value): Likewise.
702 * config/score/score7.h (score7_return_in_memory): Update prototype.
703 (score7_in_small_data_p, score7_function_value): Likewise.
704 * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
705 (score_return_in_memory, score_pass_by_reference): Constify arguments.
706 (score_output_mi_thunk, score_function_prologue): Don't return a value.
707 (score_function_epilogue, score_in_small_data_p): Likewise.
708 (score_option_override, score_asm_trampoline_template): Likewise.
709 (score_trampoline_init, score_print_operand): Likewise.
710 (score_print_operand_address, score_prologue): Likewise.
711 (score_epilogue, score_call, score_call_value): Likewise.
712 (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
713 (score_function_arg_advance): Likewise. Make static.
714 (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
715 (score_function_arg, score_legitimate_address_p): Make static.
716 (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
717 * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
718 * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
719 Allow (W) == HOST_BITS_PER_WIDE_INT.
722 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
723 * config/t-pnt16-warn (java/constants.o-warn): Likewise.
725 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
727 * config/arc/arc.c: Delete pasto.
728 * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
730 2010-11-16 Anatoly Sokolov <aesok@post.ru>
732 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
733 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
734 * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
735 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
736 (mn10300_preferred_reload_class,
737 mn10300_preferred_output_reload_class): New functions.
739 2010-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
741 * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
742 (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
743 (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
744 (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
746 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
748 * builtins.c (std_gimplify_va_arg_expr): Use
749 targetm.calls.function_arg_boundary.
750 * function.c (assign_parms, locate_and_pad_parm): Likewise.
751 * calls.c (struct arg_data): Update comment.
752 * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
753 * target.def (function_arg_boundary): Define.
754 * targhooks.h (default_function_arg_boundary): Declare.
755 * targhooks.c (default_function_arg_boundary): Define.
756 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
757 TARGET_FUNCTION_ARG_BOUNDARY.
758 (FUNCTION_ARG_BOUNDARY): Delete.
759 (TARGET_FUNCTION_ARG_BOUNDARY): New.
760 * doc/tm.texi: Regenerate.
761 * system.h (FUNCTION_ARG_BOUNDARY): Poison.
762 * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
763 * config/arc/arc.c (arc_function_arg_boundary): Define.
764 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
765 * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
766 * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
767 * config/arm/arm.c (arm_needs_doubleword_align): Make static.
768 (arm_function_arg_boundary): Define.
769 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
770 * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
771 * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
772 * config/frv/frv.c (frv_function_arg_boundary): Make static.
773 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
774 * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
775 * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
776 * config/i386/i386.c (ix86_function_arg_boundary): Make static.
777 (ix86_compat_function_arg_boundary): Take and return unsigned int.
778 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
779 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
780 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
781 * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
782 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
783 * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
784 * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
785 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
786 * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
787 * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
788 * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
789 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
790 * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
791 * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
792 * config/mips/mips.c (mips_function_arg_boundary): Make static.
793 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
794 * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
795 * config/pa/pa.c (pa_function_arg_boundary): Define.
796 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
797 * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
798 * config/picochip/picochip-protos.h
799 (picochip_get_function_arg_boundary): Delete.
800 * config/picochip/picochip.c (picochip_get_function_arg_boundary):
802 (picochip_function_arg_boundary): ...this. Make static.
803 (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
804 (picochip_arg_advance): Adjust.
805 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
806 * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
807 * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
808 * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
809 (rs6000_function_arg_boundary): ...this. Make static.
810 (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
811 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
812 * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
813 * config/rx/rx.c (rx_function_arg_boundary): Define.
814 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
815 * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
816 * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
817 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
818 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
819 * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
820 * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
821 (xtensa_function_arg_boundary): ...this. Make static.
822 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
824 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
826 * expr.c (alignment_for_piecewise_move): New function.
827 (widest_int_mode_for_size): New function.
828 (move_by_pieces, move_by_pieces_ninsns): Call them.
829 (can_store_by_pieces, store_by_pieces_1): Likewise.
831 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
833 * gcc.c (char_p): Define. Define a VEC of it.
834 (n_linker_options, n_assembler_options, n_preprocessor_options):
836 (linker_options, assembler_options, preprocessor_options): Convert
838 (add_preprocessor_option): Adjust.
839 (add_assembler_option): Adjust.
840 (add_linker_option): Adjust.
841 (do_specs_vec): New function.
842 (do_spec_1): Call it. Adjust for new types.
844 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
846 * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
847 (sreal.o, statistics.o, stringpool.o): Likewise.
849 2010-11-16 Richard Guenther <rguenther@suse.de>
851 PR tree-optimization/44545
852 * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
853 statements are not reassociatable.
854 (reassociate_bb): Likewise.
856 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
858 * bitmap.c: Delete unnecessary includes.
859 * ebitmap.c: Likewise.
860 * et-forest.c: Likewise.
862 * statistics.c: Likewise.
863 * stringpool.c: Likewise.
864 * double-int.c: Add comment for inclusion of tm.h.
866 2010-11-16 Richard Guenther <rguenther@suse.de>
868 * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
869 (visit_nary_op): ... this.
870 (visit_binary_op): Remove.
871 (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
873 2010-11-16 Richard Guenther <rguenther@suse.de>
876 * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
878 2010-11-16 Nick Clifton <nickc@redhat.com>
880 * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
883 2010-11-15 Richard Henderson <rth@redhat.com>
885 * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
886 WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
889 2010-11-15 Richard Henderson <rth@redhat.com>
891 * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
892 from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively. Use
895 2010-11-15 Richard Henderson <rth@redhat.com>
897 * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
898 and *mulsubsf4 respectively. Use fma rtx_code.
900 2010-11-15 Joseph Myers <joseph@codesourcery.com>
902 * gcc.c: Include "vec.h".
903 (argbuf): Make into a VEC.
904 (argbuf_length, argbuf_index): Remove.
905 (alloc_args, clear_args, store_arg, execute, insert_wrapper,
906 do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
907 compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
908 * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
909 (gcc.o): Depend on $(VEC_H).
911 2010-11-15 Richard Henderson <rth@redhat.com>
913 * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
914 via FMA if unsafe math.
915 (insert_var_expansion_initialization): Handle FMA.
916 (combine_var_copies_in_loop_exit): Likewise.
918 2010-11-15 Richard Henderson <rth@redhat.com>
920 * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
921 * config/ia64/ia64.opt: Remove mfused-madd.
922 * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
923 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
924 * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
925 * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
926 * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
927 * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
928 (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
929 (fmav2sf4): Rename from fpma; use FMA code.
930 (fmsv2sf4): Rename from fpms; use FMA code.
931 (fnmav2sf4): Rename from *fpnma; use FMA code.
932 * config/ia64/ia64.md (MODE_SDF): New iterator.
933 (suffix): New mode attribute.
934 (*maddsf4, *msubsf4, *nmaddsf4): Remove.
935 (fmssf4): Rename from *fmssf4.
936 (fnmasf4): Rename from *nfmasf4.
937 (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
938 (*nmadddf4, *nmadddf4_truncsf): Remove.
939 (fmsdf4): Rename from *fmsdf4.
940 (fnmadf4): Rename from *nfmadf4.
941 (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
942 (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
943 (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
944 (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
945 (fmsxf4): Rename from *fmsxf4.
946 (fnmaxf4): Rename from *nfmaxf4.
947 (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
948 (*fnmaxf_trunc_<MODE_SDF>): New.
950 2010-11-15 Jakub Jelinek <jakub@redhat.com>
952 PR tree-optimization/46461
953 * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
956 2010-11-15 Ian Lance Taylor <iant@google.com>
958 * godump.c: New file.
959 * common.opt (fdump-go-spec=): New option.
960 * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
961 (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
962 (TYPE_SYMTAB_IS_DIE): Define.
963 (struct tree_type): Change GTY for symtab field to use
964 TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
965 to pick the union field.
966 * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
967 (dump_go_spec_init): Declare.
968 * toplev.c (process_options): Handle flag_dump_go_spec.
969 * debug.c: Include "tree.h".
970 (do_nothing_debug_hooks): Set tree_type_symtab_field.
971 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
972 * dbxout.c (dbx_debug_hooks): Likewise.
973 (xcoff_debug_hooks): Likewise.
974 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
975 * sdbout.c (sdb_debug_hooks): Likewise. Do not define if
976 SDB_DEBUGGING_INFO is not defined.
977 * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
978 (Overall Options): Document -fdump-go-spec.
979 * Makefile.in (OBJS-common): Add godump.o.
980 (debug.o): Add dependency on $(TREE_H).
981 (godump.o): New target.
982 (GTFILES): Add $(srcdir)/godump.c.
984 2010-11-15 Jakub Jelinek <jakub@redhat.com>
987 * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
988 marking r11 set RTX_FRAME_RELATED_P if offset is too large for
989 style < 0, add REG_FRAME_RELATED_EXPR.
992 * rtl.h (vt_equate_reg_base_value): New prototype.
993 * alias.c (vt_equate_reg_base_value): New function.
994 * var-tracking.c (vt_init_cfa_base): Use it.
996 2010-11-15 Jan Hubicka <jh@suse.cz>
997 Diego Novillo <dnovillo@google.com>
1000 * doc/lto.texi: Add.
1001 * doc/gccint.texi: Add reference to lto.texi.
1002 * doc/invoke.texi: Update user documentation for LTO.
1003 Move internal flags to lto.texi
1005 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1007 * c-typeck.c (build_unary_op): Use
1008 objc_build_incr_expr_for_property_ref to build the pre/post
1009 increment/decrement of an Objective-C property ref, and skip the
1010 lvalue_or_else check in that case.
1012 2010-11-15 Martin Jambor <mjambor@suse.cz>
1014 PR tree-optimization/46349
1015 * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1016 (contains_vce_or_bfcref_p): Likewise.
1017 (sra_modify_assign): Use them.
1019 2010-11-15 Richard Guenther <rguenther@suse.de>
1021 PR tree-optimization/46467
1022 * tree-ssa-structalias.c (do_structure_copy): Properly treat
1023 variables without subvars.
1025 2010-11-15 Hariharan Sandanagobalane <hariharan@picochip.com>
1027 * config/picochip/picochip.c (file header): Picochip name change.
1028 * config/picochip/picochip.md (file header): Likewise.
1029 * config/picochip/predicates.md (file header): Likewise.
1030 * config/picochip/dfa_space.md (file header): Likewise.
1031 * config/picochip/dfa_speed.md (file header): Likewise.
1032 * config/picochip/picochip.h(file header): Likewise.
1033 * config/picochip/constraints.md (file header): Likewise.
1034 * config/picochip/picochip-protos.h (file header): Likewise.
1035 * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1036 * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1037 * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1038 * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1039 * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1040 * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1041 * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1042 * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1043 * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1044 * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1045 * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1046 * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1047 * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1048 * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1050 2010-11-15 Richard Guenther <rguenther@suse.de>
1053 * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1055 2010-11-15 Nick Clifton <nickc@redhat.com>
1057 * config/stormy16/stormy16.c (direct_return): Do not generate a
1058 direct return for interrupt handlers.
1060 2010-11-15 Joern Rennecke <amylaar@spamcop.net>
1062 * Makefile.in (tm.texi): Replace with rule for:
1063 ($(srcdir)/doc/tm.texi).
1064 (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1065 $(srcdir)/doc/tm.texi .
1066 (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1070 * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1073 * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1074 (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1077 * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1079 2010-11-15 Richard Guenther <rguenther@suse.de>
1082 * lto-opts.c (lto_write_options): Write -fexceptions even if
1083 not set by the user.
1085 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1088 * c-decl.c (declspecs_add_type): Make variables with error types
1090 * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1091 do not start a declaration before an Objective-C foreach.
1092 (c_parser_declaration_or_fndef): Improve recovery after unknown
1094 (c_parser_for_statement): Hoist entrance of "foreach context"
1095 before ifs, add corresponding reset where it was missing. Do
1096 not set objc_could_be_foreach_context for C.
1098 2010-11-14 Eric Botcazou <ebotcazou@adacore.com>
1100 PR tree-optimization/45722
1101 * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1102 this is a reference to a component.
1103 * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1104 (ipa_note_param_call): Adjust comment.
1106 2010-11-14 Richard Sandiford <rdsandiford@googlemail.com>
1108 * config/mips/mips.c (machine_function): Remove
1109 initialized_mips16_gp_pseudo_p.
1110 (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1111 detect whether a pseudo has already been created. Unconditionally
1112 create a new one if not.
1113 (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1114 expanding to rtl. Create a new pseudo otherwise, if allowed.
1116 2010-11-13 Richard Earnshaw <rearnsha@arm.com>
1119 * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1120 * tm.texi: Regenerated.
1121 * output.h (decode_reg_name_and_count): Declare.
1122 * varasm.c (decode_reg_name_and_count): New function.
1123 (decode_reg_name): Reimplement using decode_reg_name_and_count.
1124 * reginfo.c (fix_register): Use decode_reg_name_and_count and
1125 iterate over all regs used.
1126 * stmt.c (expand_asm_operands): Likewise.
1127 * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1128 (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1129 multiple machine registers.
1131 2010-11-13 Eric Botcazou <ebotcazou@adacore.com>
1133 * stor-layout.c (place_union_field): Do not put location information
1134 on offset expressions.
1135 (place_field): Likewise.
1136 (finalize_record_size): Likewise on size expressions.
1137 (finalize_type_size): Likewise.
1138 (layout_type): Likewise.
1140 2010-11-13 Alexandre Oliva <aoliva@redhat.com>
1143 * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1144 * df-core.c (df_set_bb_dirty_nonrl): Remove.
1145 * df.h (df_set_bb_dirty_nonlr): Likewise.
1147 2010-11-13 Uros Bizjak <ubizjak@gmail.com>
1149 * config/mips/mips.md (call_internal): Pass curr_insn to
1151 (call_internal_direct): Ditto.
1152 (call_value_internal): Ditto.
1153 (call_value_internal_direct): Ditto.
1154 (call_value_multiple_internal): Ditto.
1155 * config/mips/mips.c (mips_split_call): Do not copy
1156 CALL_INSN_FUNCTION_USAGE here.
1158 2010-11-13 Mingming Sun <mingm.sun@gmail.com>
1160 * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1161 * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1162 (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1163 * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1164 (TUNE_LOONGSON_3A): Define.
1165 (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1166 (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1167 * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1168 (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1169 (mips_rtx_cost_data): Add Loongson-3A.
1171 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1173 * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1176 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1178 * dwarf2out.c (macinfo_entry): New struct.
1179 (output_comp_unit): Emit the section start label here and flag that we
1180 will emit an info section.
1181 (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1183 (dwarf2out_end_source_file): Likewise.
1184 (dwarf2out_define): Likewise.
1185 (dwarf2out_undef): Likewise.
1186 (output_macinfo): New.
1187 (dwarf2out_init): Do not emit debug section switches here, allocate a
1188 vec for macinfo, when required.
1189 (dwarf2out_finish): First switch to debug_abbrev_section here.
1190 debug_line_section, debug_macinfo_section, Likewise.
1191 Check that the pubtypes table has at least one unpruned entry before
1194 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1197 * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1198 (c_parser_next_tokens_start_declaration): ... this. Handle 2nd
1200 (c_parser_compound_statement_nostart, c_parser_label,
1201 c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1202 (c_parser_declaration_or_fndef): Detect the case now matched by
1203 c_parser_next_tokens_start_declaration, give error and correct it.
1205 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1207 * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1208 (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1210 * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1211 (shadow_tag_warned, check_compound_literal_type): Adjust
1212 uses of tag_defined_p.
1213 (declspecs_add_type): Set typespec_kind.
1214 * c-parser.c (c_parser_declaration_or_fndef,
1215 c_parser_declspecs, c_parser_struct_declaration,
1216 c_parser_parameter_declaration, c_parser_type_name,
1217 c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1219 * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1220 tag_defined_p, pass ctsk_firstref through.
1222 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1224 * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1225 (struct format_wanted_type): Replace field "name" with "kind", add
1226 "format_start" and "format_length".
1227 (check_format_info_main): Fill in new fields. Fill in
1228 FORMAT_WANTED_TYPES even for missing arguments. Move checks
1229 after the final NUL outside the while loop. Do not include
1230 width and precision modifiers in the format_start/format_length
1232 (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1233 arguments. Compute WANTED_TYPE first so that format_type_warning
1234 can be called for missing arguments. Adjust calls to
1235 format_type_warning.
1236 (format_type_warning): Fetch as much information as possible
1237 from format_wanted_type. Adjust printing now that every
1238 warning has a "descr", as well as for missing argument warnings
1239 and to include % sign for format specifiers.
1241 2010-11-12 Alexander Monakov <amonakov@ispras.ru>
1243 PR rtl-optimization/46204
1244 * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1245 Update all callers. Do not recompute topological order. Adjust
1246 fallthrough edges following a degenerate conditional jump.
1248 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1250 * opts-common.c (control_warning_option): New.
1251 * opts.c (set_default_handlers): New.
1252 (decode_options): Use set_default_handlers and
1253 control_warning_option.
1254 (common_handle_option): Update call to enable_warning_as_error.
1255 (enable_warning_as_error): Take gcc_options parameters. Use
1256 control_warning_option.
1257 * opts.h (set_default_handlers, control_warning_option): Declare.
1259 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1261 * Makefile.in (OPTS_H): Define.
1262 (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1263 c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1264 cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1265 opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1266 ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1267 * gcc.c (driver_handle_option): Take location_t parameter.
1268 (process_command, do_self_spec): Update calls to
1269 read_cmdline_option.
1270 * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1271 * langhooks.c (lhd_handle_option): Take location_t parameter.
1272 * langhooks.h (handle_option): Take location_t parameter.
1273 * lto-opts.c (lto_reissue_options): Update call to set_option.
1274 * opts-common.c (handle_option): Make static. Take location_t
1275 parameter and pass it to other functions.
1276 (handle_generated_option): Take location_t parameter and pass it
1278 (read_cmdline_option): Take location_t parameter and pass it to
1279 other functions. Use warning_at and error_at.
1280 (set_option): Take location_t parameter and pass it to other
1282 * opts.c (common_handle_option): Take location_t parameter and
1283 pass it to other functions.
1284 (enable_warning_as_error): Make static. Take location_t parameter
1285 and pass it to other functions.
1286 (lang_handle_option): Take location_t parameter and pass it to
1288 (target_handle_option): Take location_t parameter.
1289 (read_cmdline_options, maybe_default_option,
1290 maybe_default_options, default_options_optimization,
1291 decode_options): Take location_t parameter and pass it to other
1293 * opts.h: Include input.h.
1294 (struct cl_option_handler_func, decode_options, set_option,
1295 handle_generated_option, read_cmdline_option): Take location_t
1297 (handle_option, enable_warning_as_error): Remove.
1298 * toplev.c (toplev_main): Update call to decode_options.
1300 2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de>
1302 * graphite-cloog-util.c (oppose_constraint,
1303 cloog_matrix_to_ppl_constraint,
1304 new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1305 CLooG isl uses unsigned integers. This triggered a warning.
1307 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1310 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1311 (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1312 (xtensa_function_arg_1): De-constify cum.
1313 (xtensa_expand_prologue): Use add_reg_note.
1316 * config/cris/cris.c (saved_regs_mentioned): Delete.
1317 (cris_reload_address_legitimized): Cast itype to enum reload_type.
1318 Remove unused variable op0p.
1319 (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1320 (cris_emit_movem_store): Use add_reg_note.
1323 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1325 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
1327 * function.c (expand_function_end): Set the locator of the prologue on
1328 the stack checking insns.
1330 2010-11-12 Richard Henderson <rth@redhat.com>
1332 * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1333 * config/xtensa/xtensa.opt (mfused-madd): Remove.
1334 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1336 * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1337 (fnmasf4): Rename from mulsubsf3; use fma.
1339 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1340 Richard Henderson <rth@redhat.com>
1343 * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1344 * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1347 2010-11-12 Pat Haugen <pthaugen@us.ibm.com>
1349 * opts-common.c (decode_cmdline_option): Initialize separate_args.
1351 2010-11-12 Jan Hubicka <jh@suse.cz>
1353 * doc/invoke.texi (early-inlining-insns): Update default.
1354 * params.def (early-inlining-insns): Default to 10.
1356 2010-11-12 Olivier Hainque <hainque@adacore.com>
1358 * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1360 2010-11-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1362 * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1363 (SUPPORTS_INIT_PRIORITY): Define.
1365 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1368 * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1369 * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1370 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1371 (avr_device_to_devicelib): Likewise.
1372 * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1374 (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1375 (zero_extendhidi2, zero_extendsidi2): Likewise.
1376 * config/avr/avr.c (avr_num_arg_regs): Constify type.
1377 (avr_return_addr_rtx): De-constify tem.
1378 (avr_rotate_bytes): Move declarations to start of block.
1379 Don't use variable length array. Put nested if/else into block.
1381 PR rtl-optimization/46433
1382 * var-tracking.c: Include tm_p.h .
1386 * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1388 (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1389 * doc/tm.texi: Regenerate.
1392 * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1393 * config/bfin/bfin.c: Include sel-sched.h .
1394 (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1395 (expand_interrupt_handler_prologue): Remove unused variable insn.
1396 (bfin_load_pic_reg): Likewise.
1397 (bfin_rtx_costs): Make code / outer_code variables of type
1398 enum rtx_code, copied from re-named parameters.
1399 (bfin_local_alignment): Change align argument and return type
1401 (bfin_adjust_cost): Remove unused variable insn_type.
1402 Declare variables at start of block.
1403 (struct loop_info): Rename to...
1404 (struct loop_info_d).
1405 (workaround_rts_anomaly): Change type of icode to int.
1406 (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1407 with int-typed variable.
1408 (note_np_check_stores): Likewise.
1409 (trapping_loads_p): Remove unused variable pat.
1410 (bfin_expand_binop_builtin): Use expand_normal.
1411 (bfin_expand_unop_builtin): Likewise.
1412 (bfin_expand_builtin): Likewise. Set tmode before use.
1415 * final.c (split_double): Don't use BITS_PER_WORD directly in
1419 * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1423 * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1425 (xstormy16_function_arg): Dereference cum.
1426 (xstormy16_expand_builtin): Use expand_normal.
1427 Change type of omode to enum machine_mode.
1428 (combine_bnp): Rename and to and_insn.
1431 * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
1434 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
1437 * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
1439 2010-11-11 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1442 * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
1444 2010-11-11 Nathan Froyd <froydnj@codesourcery.com>
1447 * common.opt (fmax-errors=): New option.
1448 * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
1449 * diagnostic.h (struct diagnostic_context): Add max_errors field.
1450 * diagnostic.c (diagnostic_initialize): Initialize it.
1451 (diagnostic_action_after_output): Exit if more than max_errors
1453 * doc/invoke.texi (Warning Options): Add -fmax-errors.
1454 (-fmax-errors): Document.
1456 2010-11-11 Richard Henderson <rth@redhat.com>
1458 * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
1460 2010-11-11 Richard Henderson <rth@redhat.com>
1462 * config/fused-madd.opt: New file.
1463 * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
1464 * config/i386/i386.c (ix86_extra_costs): Handle FMA.
1465 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1466 * config/i386/i386.opt (mfused-madd): Remove.
1467 * config/i386/sse.md (split_fma): Remove.
1468 (split_fms, split_fnma, split_fnms): Remove.
1470 2010-11-12 Jakub Jelinek <jakub@redhat.com>
1473 * config/i386/i386.md (*ashl<mode>3_cconly,
1474 *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
1475 change nonimmediate_operand predicate to register_operand.
1477 2010-11-11 Paolo Bonzini <bonzini@gnu.org>
1479 * Makefile.in (gengtype-lex.c): Include bconfig.h first.
1481 2010-11-11 Jan Hubicka <jh@suse.cz>
1483 * opts.c (finish_options): Do not error on -flto-partition alone.
1485 * doc/invoke.texi (-fwhopr): Merge into -flto section.
1486 (-flto-partition): Document none.
1487 * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
1488 * lto-wrapper.c: Update comment.
1489 (run_gcc): Update LTO option parsing.
1490 * opts.c (finish_options): add support -flto-partition=none
1491 (common_handle_option): Remove fwhopr.
1492 * common.opt: Turn fwhopr into flto.
1493 * collect2.c (main): Update option handling.
1494 * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
1495 * ipa-split.c (execute_split_functions): Remove flag_whopr.
1496 * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1497 * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1498 * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1500 2010-11-11 Jan Hubicka <jh@suse.cz>
1502 PR tree-optimize/40436
1503 * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1504 (eliminated_by_inlining_prob): ... this one; return 50% probability
1506 (estimate_function_body_sizes): Update use of
1507 eliminated_by_inlining_prob; estimate static function size
1510 2010-11-11 Joern Rennecke <amylaar@spamcop.net>
1513 * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1514 declare. Change type of argument four to type int.
1515 (mep_secondary_input_reload_class): Returns enum reg_class.
1516 (mep_secondary_output_reload_class): Likewise.
1517 (mep_function_value): Change types of arguments to cont_tree.
1518 * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1519 argument four to type int.
1520 (mep_secondary_input_reload_class): Returns enum reg_class.
1521 (mep_secondary_output_reload_class): Likewise.
1522 (mep_function_value): Change types of arguments to cont_tree.
1523 * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1524 mep_regno_reg_class to enum reg_class.
1526 2010-11-11 Richard Henderson <rth@redhat.com>
1528 * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1529 that the target has the exact fma operation that we matched.
1531 2010-11-11 Joseph Myers <joseph@codesourcery.com>
1533 * reginfo.c (fix_register): Avoid inserting English word in
1534 diagnostic sentence. Use %qs for quoting and %'.
1536 2010-11-11 H.J. Lu <hongjiu.lu@intel.com>
1538 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1539 Intel processor family 6, model 0x2c.
1541 2010-11-11 Joseph Myers <joseph@codesourcery.com>
1543 * opts.c (warning_as_error_callback,
1544 register_warning_as_error_callback): Remove.
1545 (enable_warning_as_error): Don't use warning_as_error_callback.
1546 * opts.h (register_warning_as_error_callback): Remove.
1548 2010-11-11 Richard Henderson <rth@redhat.com>
1550 * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1551 in between the MULT and the PLUS/MINUS.
1553 2010-11-11 Jakub Jelinek <jakub@redhat.com>
1556 * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1557 BLKmode mode for it.
1558 (expand_expr_real_1): Similarly for op0.
1560 2010-11-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1562 * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1563 Document optional target selector.
1565 2010-11-11 Dave Korn <dave.korn.cygwin@gmail.com>
1567 * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1568 assembling high and low parts of size if not using 32-bit HWINT; else
1569 use DECL_SIZE_UNITS, not DECL_SIZE.
1571 2010-11-11 Martin Jambor <mjambor@suse.cz>
1573 PR tree-optimization/46383
1574 * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1576 (compute_complex_ancestor_jump_func): Likewise.
1577 * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1579 2010-11-11 Jakub Jelinek <jakub@redhat.com>
1582 * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1583 true if expr1->hash != expr2->hash.
1585 2010-11-10 Joseph Myers <joseph@codesourcery.com>
1587 * cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start
1588 diagnostics with lowercase letters.
1589 * cgraphunit.c (verify_cgraph_node): Start diagnostics with
1591 * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
1593 * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1594 * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
1596 * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1597 Remove trailing ' ' from diagnostic.
1598 * config/avr/avr.c (print_operand_address): Start diagnostic with
1599 a lowercase letter and remove trailing '.'.
1600 * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
1601 * config/bfin/bfin.c (bfin_option_override): Start diagnostics
1602 with lowercase letters. Use %' in diagnostics. Remove trailing
1603 '.' from diagnostics.
1604 (bfin_handle_longcall_attribute): Use %' in diagnostic.
1605 * config/cris/cris.c (cris_split_movdx,
1606 cris_expand_pic_call_address): Start diagnostics with lowercase
1608 (cris_asm_output_label_ref): Use %' in diagnostic.
1609 * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
1611 * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
1613 * config/darwin-c.c (version_as_macro): Start diagnostic with a
1615 * config/darwin-driver.c (darwin_default_min_version): Use %' in
1617 * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
1619 * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1620 * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
1622 * config/i386/i386.c (ix86_option_override_internal): Write
1623 diagnostic as a single sentence without trailing '.'. Use %' in
1625 (ix86_function_sseregparm, classify_argument): Start diagnostics
1626 with lowercase letters.
1627 (ix86_expand_prologue): Use %' in diagnostic.
1628 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
1630 * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
1632 * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
1634 * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1635 * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
1637 * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
1639 * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
1641 * config/microblaze/microblaze.c (microblaze_handle_option):
1642 Remove trailing '.' from diagnostic.
1643 (print_operand): Start diagnostic with a lowercase letter.
1644 * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
1645 lowercase letters. Avoid '`' in diagnostics.
1646 * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
1647 lowercase letters. Avoid '`' in diagnostics.
1648 * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
1649 lowercase letters. Avoid '`' in diagnostics.
1650 * config/picochip/picochip.c (picochip_option_override,
1651 picochip_emit_save_register, picochip_function_arg,
1652 picochip_output_label, picochip_output_internal_label,
1653 picochip_asm_output_opcode, picochip_output_cbranch,
1654 picochip_output_compare, picochip_output_branch,
1655 picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
1656 diagnostics. Start diagnostics with lowercase letters. Use %' in
1658 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
1659 "SPE" capitalization. Start diagnostic with a lowercase letter.
1660 (rs6000_handle_option): Start diagnostics with lowercase letters.
1661 (def_builtin): Remove trailing '.' from diagnostic.
1662 (rs6000_savres_routine_name): Start diagnostic with a lowercase
1664 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
1666 * config/rx/rx.c (rx_handle_option): Start diagnostic with a
1668 * config/s390/s390.c (s390_option_override) Start diagnostics with
1669 lowercase letters. Use %' in diagnostic.
1670 * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
1672 * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
1674 * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
1676 * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
1678 * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1679 * config/spu/spu.c (spu_option_override): Start diagnostics with
1680 lowercase letters. Use %qs for quoting in diagnostics.
1681 (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
1682 Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
1683 * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
1685 * convert.c (convert_to_integer, convert_to_vector): Use %' in
1687 * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
1688 letter and use "cannot" spelling.
1689 * expmed.c (extract_fixed_bit_field): Start diagnostic with
1690 lowercase letter and format as a single sentence without '.'.
1691 * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
1692 Use %' in diagnostics.
1693 * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1694 Use %' in diagnostics.
1695 * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1696 Use %' in diagnostics.
1697 * graph.c (clean_graph_dump_file): Use %' in diagnostic.
1698 * graphite-poly.c (graphite_read_scop_file): Start diagnostics
1699 with lowercase letters and remove tailing '.' and '\n'.
1700 * lto-cgraph.c (input_profile_summary): Start diagnostic with
1701 lowercase letter and remove trailing '.'.
1702 (input_cgraph): Start diagnostics with lowercase letters and
1703 remove trailing '\n'.
1704 * opts.c (finish_options, common_handle_option): Start diagnostics
1705 with lowercase letters and remove trailing '.'. Fix typo in
1707 * passes.c (position_pass): Start diagnostic with lowercase letter.
1708 * plugin.c (add_new_plugin, parse_plugin_arg_opt,
1709 register_callback, try_init_one_plugin): Start diagnostics with
1711 * reload1.c (spill_failure): Use %' in diagnostic.
1712 (gen_reload): Start diagnostic with a lowercase letter.
1713 * stor-layout.c (place_field): Start diagnostic with a lowercase
1715 * toplev.c (open_auxiliary_file): Use %' in diagnostic.
1716 * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
1717 verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
1718 Start diagnostics with lowercase letters, remove trailing '.' and
1719 use %' in diagnostics.
1720 * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
1721 (verify_ssa): Don't split diagnostic across two error calls.
1722 Spell out "number" and use %' in diagnostic.
1723 * value-prof.c (visit_hist, check_counter): Start diagnostics with
1726 2010-11-10 Uros Bizjak <ubizjak@gmail.com>
1729 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
1730 (_mm_cvtpu16_ps): Ditto.
1732 2010-11-10 Joseph Myers <joseph@codesourcery.com>
1734 * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
1735 warn_larger_than, larger_than_size, warn_frame_larger_than,
1736 frame_larger_than_size, flag_gen_aux_info, flag_shlib,
1737 default_visibility, flag_tls_default): New Variable declarations.
1738 (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
1739 falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
1740 (v): Declare as Common and document here.
1741 * flags.h (default_visibility, flag_generate_lto,
1742 warn_larger_than, larger_than_size, warn_frame_larger_than,
1743 frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
1744 flag_shlib, flag_excess_precision_cmdline): Remove.
1745 (set_Wstrict_aliasing): Update prototype.
1746 * gcc.c (verbose_flag): Remove.
1747 (driver_handle_option): Add diagnostic_context parameter. Don't
1748 handle OPT_v explicitly here. Set verbose_flag to 1 rather than
1750 * opts-common.c (handle_option): Pass dc to handler.
1751 * opts.c (warn_larger_than, larger_than_size,
1752 warn_frame_larger_than, frame_larger_than_size,
1753 default_visibility): Remove.
1754 (common_handle_option): Add diagnostic_context parameter.
1755 (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
1756 gcc_options parameters.
1757 (lang_handle_option, target_handle_option, read_cmdline_options,
1758 decode_options): Add diagnostic_context parameters.
1759 (finish_options): Access option state through opts pointer where
1761 (common_handle_option): Access option state through opts pointer
1762 where possible. Do not set local static variable verbose. Do not
1763 explicitly handle OPT_v, OPT_Wstrict_aliasing_,
1764 OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
1765 OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
1766 OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
1767 OPT_fwhopr_. Do not explicitly set .opt file variables for
1768 OPT_aux_info or OPT_pedantic_errors. Use dc for diagnostic context.
1769 (set_Wstrict_aliasing): Add gcc_options parameter.
1770 * opts.h (struct cl_option_handler_func): Add diagnostic_context
1771 parameter to handler.
1772 (decode_options): Add diagnostic_context parameter.
1773 * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
1774 asm_file_name, flag_generate_lto, flag_gen_aux_info,
1775 aux_info_file_name, flag_shlib, flag_tls_default,
1776 flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
1777 (toplev_main): Pass global_dc to decode_options.
1778 * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
1779 aux_info_file_name, asm_file_name): Remove.
1780 * tree.h (flag_tls_default): Remove.
1782 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
1784 * config/sparc/sparc.c (sparc_delegitimize_address): New function.
1785 (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
1787 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
1789 * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
1790 (x86_64-*-*): Likewise.
1791 * config/i386/cpuid.h: Define TBM bit.
1792 * config/i386/driver-i386.c (host_detect_local_cpu): Define
1794 * config/i386/i386-c.c (ix86_target_macros_internal): Check
1796 * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
1797 (OPTION_MASK_ISA_TBM_UNSET): New.
1798 (ix86_handle_option): Handle -mtbm.
1799 (isa_opts): Add -mtbm.
1800 (enum pta_flags): Add PTA_TBM.
1801 (ix86_option_override_internal): Add TBM support.
1802 (ix86_valid_target_attribute_inner_p): Handle -mtbm.
1803 (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
1804 (IX86_BUILTIN_BEXTRI64): Likewise.
1805 (bdesc_args): Add TBM intrinsics.
1806 (ix86_expand_builtin): Add TBM specific case.
1807 * config/i386/i386.h (TARGET_TBM): New for TBM.
1808 * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
1809 (tbm_bextri_<mode>): Likewise.
1810 (*tbm_blcfill_<mode>): Likewise.
1811 (*tbm_blci_<mode>): Likewise.
1812 (*tbm_blcic_<mode>): Likewise.
1813 (*tbm_blcmsk_<mode>): Likewise.
1814 (*tbm_blcs_<mode>): Likewise.
1815 (*tbm_blsfill_<mode>): Likewise.
1816 (*tbm_blsic_<mode>): Likewise.
1817 (*tbm_t1mskc_<mode>): Likewise.
1818 (*tbm_tzmsk_<mode>): Likewise.
1819 * config/i386/i386.opt: Add -mtbm.
1820 * config/i386/tbmintrin.h (__bextri_u32): New.
1821 (__blcfill_u32): Likewise.
1822 (__blci_u32): Likewise.
1823 (__blcic_u32): Likewise.
1824 (__blcmsk_u32): Likewise.
1825 (__blcs_u32): Likewise.
1826 (__blsfill_u32): Likewise.
1827 (__blsic_u32): Likewise.
1828 (__t1mskc_u32): Likewise.
1829 (__tzmsk_u32): Likewise.
1830 (__bextri_u64): Likewise.
1831 (__blcfill_u64): Likewise.
1832 (__blci_u64): Likewise.
1833 (__blcic_u64): Likewise.
1834 (__blcmsk_u64): Likewise.
1835 (__blcs_u64): Likewise.
1836 (__blsfill_u64): Likewise.
1837 (__blsic_u64): Likewise.
1838 (__t1mskc_u64): Likewise.
1839 (__tzmsk_u64): Likewise.
1840 * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
1841 * doc/invoke.texi: Document -mtbm.
1842 * doc/extend.texi: Document TBM built-in functions.
1844 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
1846 * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
1847 (x86_64-*-*): Likewise.
1848 * config/i386/cpuid.h: Define BMI bit.
1849 * config/i386/driver-i386.c (host_detect_local_cpu): Define
1851 * config/i386/i386-c.c (ix86_target_macros_internal): Check
1853 * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
1854 (OPTION_MASK_ISA_BMI_UNSET): New.
1855 (ix86_handle_option): Handle -mbmi.
1856 (isa_opts): Add -mbmi.
1857 (enum pta_flags): Add PTA_BMI.
1858 (ix86_option_override_internal): Add BMI support.
1859 (ix86_valid_target_attribute_inner_p): Handle -mbmi.
1860 (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
1861 (IX86_BUILTIN_BEXTR64): Likewise.
1862 (IX86_BUILTIN_CTZS): Likewise.
1863 (bdesc_args): Add BMI intrinsics.
1864 (ix86_expand_args_builtin): Add BMI specific cases.
1865 * config/i386/i386.h (TARGET_BMI): New for BMI.
1866 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
1867 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
1868 * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
1869 (UNSPEC_TZCNT): Likewise.
1870 (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
1871 (bmi_andn_<mode>): New for BMI.
1872 (bmi_bextr_<mode>): Likewise.
1873 (bmi_blsi_<mode>): Likewise.
1874 (bmi_blsmsk_<mode>): Likewise.
1875 (bmi_blsr_<mode>): Likewise.
1876 * config/i386/i386.opt: Add -mbmi.
1877 * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
1878 * config/i386/bmiintrin.h (__lzcnt_u16): New.
1879 (__tzcnt_u16): Likewise.
1880 (__andn_u32): Likewise.
1881 (__bextr_u32): Likewise.
1882 (__blsi_u32): Likewise.
1883 (__blsmsk_u32): Likewise.
1884 (__blsr_u32): Likewise.
1885 (__lzcnt_u32): Likewise.
1886 (__tzcnt_u32): Likewise.
1887 (__andn_u64): Likewise.
1888 (__bextr_u64): Likewise.
1889 (__blsi_u64): Likewise.
1890 (__blsmsk_u64): Likewise.
1891 (__blsr_u64): Likewise.
1892 (__lzcnt_u64): Likewise.
1893 (__tzcnt_u64): Likewise.
1894 * doc/invoke.texi: Document -mbmi and -mno-bmi.
1895 * doc/extend.texi: Document BMI built-in functions.
1897 2010-11-10 Jan Hubicka <jh@suse.cz>
1899 PR tree-optimize/46228
1900 * doc/invoke.texi (comdat-sharing-probability): Document.
1901 * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
1902 * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
1904 2010-11-10 Jan Hubicka <jh@suse.cz>
1906 PR tree-optimize/46228
1907 * cgraph.c (cgraph_propagate_frequency): Fix typo.
1909 2010-11-10 H.J. Lu <hongjiu.lu@intel.com>
1911 PR tree-optimization/46414
1912 * tree-inline.c (estimate_move_cost): Check preferred vector
1913 mode for vector type.
1915 2010-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1917 * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
1919 2010-11-10 Sebastian Pop <sebastian.pop@amd.com>
1921 PR tree-optimization/45971
1922 * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
1923 for phi nodes analyzable by scev.
1925 2010-11-10 Richard Guenther <rguenther@suse.de>
1927 PR tree-optimization/44964
1928 * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
1930 2010-11-10 Martin Jambor <mjambor@suse.cz>
1932 PR tree-optimization/46351
1933 PR tree-optimization/46377
1934 * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
1935 aggregate bit-fields.
1937 2010-11-10 Joseph Myers <joseph@codesourcery.com>
1939 * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1940 * doc/tm.texi: Regenerate.
1941 * opts-common.c (tm.h): Don't include.
1942 (target_option_translations): Remove.
1943 (decode_cmdline_options_to_array): Don't handle translating options.
1944 * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
1945 * config/darwin-driver.c: Don't condition includes on
1946 CROSS_DIRECTORY_STRUCTURE.
1947 (darwin_default_min_version): Make static.
1948 (darwin_driver_init): New. Call darwin_default_min_version if not
1949 CROSS_DIRECTORY_STRUCTURE.
1950 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1951 (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
1952 (ASM_SPEC): Add %{static}.
1953 (darwin_default_min_version): Don't declare.
1954 (darwin_driver_init): Declare.
1955 (GCC_DRIVER_HOST_INITIALIZATION): Define to call
1956 darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
1957 * config/darwin.opt (all_load, allowable_client,
1958 arch_errors_fatal, bind_at_load, bundle, bundle_loader,
1959 dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
1960 exported_symbols_list, filelist, findirect-virtual-calls,
1961 flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
1962 framework, fterminated-vtables, gfull, gused, image_base, init,
1963 install_name, multi_module, multiply_defined,
1964 multiply_defined_unused, no_dead_strip_inits_and_terms,
1965 seg_addr_table, seg_addr_table_filename, segaddr,
1966 segs_read_only_addr, segs_read_write_addr, single_module,
1967 umbrella, unexported_symbols_list, weak_reference_mismatches,
1968 Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
1969 Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
1970 Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
1971 Zno_dead_strip_inits_and_terms, Zsingle_module): New.
1972 * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
1973 (ASM_SPEC): Add %{static}.
1974 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1975 * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1976 (DRIVER_SELF_SPECS): Handle options formerly in
1977 TARGET_OPTION_TRANSLATE_TABLE.
1978 * config/mep/mep.opt (mfar): New.
1979 * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1980 (DRIVER_SELF_SPECS): Define. Handle options formerly in
1981 TARGET_OPTION_TRANSLATE_TABLE.
1982 * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
1983 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1984 * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
1985 ffix-and-continue, findirect-data): New.
1986 * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1987 * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
1988 (mnofpu): Define mask and use Report here.
1990 2010-11-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1992 * config/s390/s390.c (s390_emit_prologue): Report the stack
1993 size if -fstack-usage is used.
1995 2010-11-10 Richard Guenther <rguenther@suse.de>
1997 PR tree-optimization/46398
1998 * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2000 2010-11-10 Joern Rennecke <amylaar@spamcop.net>
2003 * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2004 (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2005 GP_REG_OR_PSEUDO_STRICT_P.
2006 * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2007 unexpected alternative.
2008 (*movsf_internal): Likewise.
2009 (indirect_jump): Replace call to non-existant function with call to
2011 (tablejump): Likewise.
2012 * config/iq2000/iq2000.c: Include df.h .
2013 (iq2000_function_arg_advance): Use CONST_CAST2.
2014 (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2015 (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2016 a non-zero function address.
2017 (iq2000_initial_elimination_offset): Add gcc_unreachable for
2018 unexpected value of FROM.
2019 (symbolic_expression_p): Delete.
2020 (iq2000_function_value): Constify func.
2021 (expand_one_builtin): Use expand_normal.
2022 (iq2000_print_operand): Don't print VALUE if calculating it failed.
2024 PR rtl-optimization/44764
2025 * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2028 * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2029 * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2030 with ATTRIBUTE_UNUSED.
2031 (valid_psw_flag): Constify parameter which.
2032 (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2035 * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2036 (mmix_dbx_register_number): Likewise.
2037 * config/mmix/mmix.c: Include df.h .
2038 (mmix_local_alignment): Change argument basic_align and return type
2040 (mmix_dbx_register_number): Change argument and return type to
2042 (mmix_expand_prologue): Use add_reg_note.
2045 * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2046 (spu_split_store): Use aform.
2047 (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2049 2010-11-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2052 * doc/gty.texi (GTY Options): Clarify that variable_size produces
2053 allocators taking size in bytes, compare with length option. Add
2054 size calculation example.
2055 (Invoking the garbage collector): Ensure that sentences are
2056 followed by two spaces. Describe that pointer fields must be
2057 initialized at ggc_collect call.
2058 (Troubleshooting): New section.
2060 2010-11-09 Jan Hubicka <jh@suse.cz>
2062 PR tree-optimization/40436
2063 * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2064 * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2065 normal instructions; be sure bultin is not implemented in this file;
2066 compute non-zero return cost.
2067 (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2068 * tree-inline.h (eni_weights_d): Add return cost.
2070 2010-11-09 Joseph Myers <joseph@codesourcery.com>
2072 * c-parser.c (c_parser_struct_declaration): Handle declaration
2073 specifiers followed by CPP_CLOSE_BRACE.
2075 2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2077 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2078 split occurs before reload, and we allocate memory at the time of
2079 the split, not during expansion. Add attributes.
2080 (floatsi<mode>2_lfiwax_mem): Ditto.
2081 (floatunssi<mode>2_lfiwzx): Ditto.
2082 (floatunssi<mode>2_lfiwzx_mem): Ditto.
2083 (floatsidf2): Ditto.
2084 (floatunssisf2): Ditto.
2085 (floatunssidf2): Ditto.
2086 (fix_trunc<mode>si2): Ditto.
2087 (fix_trunc<mode>si2_stfiwx): Ditto.
2088 (fix_trunc<mode>si2_internal): Ditto.
2089 (fix_trunc<mode>si2): Ditto.
2090 (fix_trunc<mode>di2): Ditto.
2091 (fixuns_trunc<mode>si2_stfiwx): Ditto.
2092 (floatsisf2): Ditto.
2093 (floatdidf2_mem): Ditto.
2094 (floatunsdidf2_mem): Ditto.
2095 (floatunsdidf2): Ditto.
2096 (floatdisf2_internal1): Ditto.
2097 (floatdisf2_mem): Ditto.
2098 (floatunsdisf2_mem): Ditto.
2099 (floatsi<mode>2_lfiwax_mem2): Delete.
2100 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2101 (fix_trunc<mode>si2_mem): Ditto.
2102 (fixuns_trunc<mode>si2_mem): Ditto.
2103 (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2104 type operations to reduce copying the values to multiple memory slots.
2105 (roundu32<mode>2_fprs): Ditto.
2107 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2108 PRE_INC, PRE_DEC, PRE_MODIFY.
2109 (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2111 * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2114 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2117 * cfgexpand.c (partition_stack_vars): Call
2118 update_alias_info_with_stack_vars unconditionally.
2119 (update_alias_info_with_stack_vars): Allow unused
2120 unreferenced vars when not optimizing.
2122 2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
2124 PR tree-optimization/46036
2125 * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2126 add_to_dst_predicate_list.
2128 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2131 * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2133 (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2134 argument, call dead_debug_reset when adding REG_UNUSED note.
2135 (dead_debug_reset): New function.
2136 (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2137 df_create_unused_note callers.
2139 2010-11-09 Anatoly Sokolov <aesok@post.ru>
2141 * config/fr30/fr30.c: Include "df.h".
2143 2010-11-09 Richard Guenther <rguenther@suse.de>
2145 PR tree-optimization/46355
2146 * tree-loop-distribution.c (tree_loop_distribution): Do not
2147 distribute loops without a single exit.
2149 2010-11-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2151 PR rtl-optimization/46237
2152 * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2153 saved hard regs if they might get partially clobbered.
2155 2010-11-09 Paul Koning <ni1d@arrl.net>
2157 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2159 2010-11-09 Richard Guenther <rguenther@suse.de>
2161 PR tree-optimization/46177
2162 * tree-loop-distribution.c (prop_phis): Remove.
2163 (generate_builtin): Re-use the old loop exit edge to avoid
2164 needing to update PHI nodes.
2166 2010-11-09 Joern Rennecke <amylaar@spamcop.net>
2168 * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2169 type of args_size to unsigned HOST_WIDE_INT.
2172 * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2173 * config/t-pnt16-warn: New file.
2174 * config/picochip/picochip.c (picochip_emit_stack_allocate):
2176 (picochip_emit_save_register): Likewise.
2177 (picochip_emit_restore_register): Remove variable insn.
2178 (picochip_legitimize_address): Don't use C++ style comments.
2179 (picochip_legitimize_reload_address): Likewise.
2180 (reorder_var_tracking_notes): Remove variable vliw_start.
2181 (picochip_reorg): Cast first arguemnt to emit_note_after to
2183 (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2184 (picochip_expand_builtin_3op): Likewise.
2185 (picochip_expand_builtin_2opvoid): Likewise.
2186 (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2187 (picochip_expand_array_testport): Likewise.
2188 (picochip_init_builtins): Remove unused variables.
2189 * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2190 to unsigned long, and output it as such.
2191 (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2192 * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2193 (schedType): Cast result of picochip_schedule_type to
2194 enum attr_schedType.
2197 * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2198 conditional to type of S.
2199 (mn10300_function_arg): Remove unused variable align.
2200 (mn10300_arg_partial_bytes): Likewise.
2201 * config/mn10300/mn10300.md (attribute cpu): Cast value to
2204 2010-11-09 H.J. Lu <hongjiu.lu@intel.com>
2207 * gengtype-parse.c (type): Call get_input_file_name to get file name.
2209 2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
2211 * tree.h (contains_placeholder_p): Fix comment.
2212 (type_contains_placeholder_p): Adjust comment.
2213 * tree.c (contains_placeholder_p): Fix comment.
2214 (type_contains_placeholder_1): Do not recurse on pointed-to types and
2216 (type_contains_placeholder_p): Add comment.
2218 2010-11-09 Paul Koning <ni1d@arrl.net>
2220 * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2221 output of byte values.
2223 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2226 * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2229 2010-11-09 Richard Guenther <rguenther@suse.de>
2232 * varasm.c (compute_visible_aliases): New function.
2233 (remove_unreachable_alias_pairs): Aliases make a target available
2234 even though we reclaimed the cgraph node.
2235 (finish_aliases_1): Likewise.
2236 * Makefile.in (varasm.o): Add pointer-set.h dependency.
2238 2010-11-09 Nick Clifton <nickc@redhat.com>
2240 * config/mn10300/mn10300-modes.def: New file.
2242 2010-11-09 Basile Starynkevitch <basile@starynkevitch.net>
2243 Jeremie Salvucci <jeremie.salvucci@free.fr>
2245 * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2246 (plugin_files, get_file_basename, get_file_realbasename)
2247 (get_file_langdir, error_at_line, gt_files, this_file)
2248 (system_h_file, read_input_list, create_field_all)
2249 (get_file_srcdir_relative_path, get_file_basename)
2250 (get_file_langdir, get_file_gtfilename)
2251 (get_output_file_with_visibility, get_output_file_name)
2252 (struct flist, put_mangled_filename, walk_type)
2253 (put_mangled_filename, finish_root_table, write_roots): Use
2255 (lang_dir_names, num_lang_dirs): Remove static.
2256 (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2257 (main): Use input_file-s.
2259 * gengtype.h: (struct input_file_st, input_file): New type.
2260 (struct fileloc): Use it.
2261 (gt_files, num_gt_files, this_file, system_h_file)
2262 (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2263 (get_input_file_name): New function.
2264 (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2266 (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2267 (get_output_file_name): Ditto.
2269 * gengtype-lex.l (yybegin): Use input_file.
2271 * gengtype-parse.c (parse_error): Use input_file.
2273 2010-11-08 Xinliang David Li <davidxl@google.com>
2275 PR tree-optimization/46316
2276 * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2277 * double-int.h (double_int_mul_with_sign): New function.
2278 * double-int.c (double_int_mul_with_sign): New function.
2280 2010-11-08 Paul Koning <ni1d@arrl.net>
2282 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2284 2010-11-08 Paul Koning <ni1d@arrl.net>
2286 * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2288 2010-11-08 Paul Koning <ni1d@arrl.net>
2290 * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2293 2010-11-08 Michael Meissner <meissner@linux.vnet.ibm.com>
2296 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2297 turn on ISA 2.04 rounding instructions for power5.
2299 * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2303 * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2305 (movdi_low_st): Ditto.
2307 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2308 Richard Henderson <rth@redhat.com>
2311 * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2312 (attribute acc_group): Cast value to enum attr_acc_group.
2313 (*movdi_nodouble+6): Use gen_int_mode.
2314 * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2315 if RTX_CODE is defined or not.
2316 * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2318 (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2319 (frv_frame_access, frv_expand_prologue): Remove unused variables.
2320 (frv_expand_block_clear): Likewise.
2321 (frv_trampoline_init): Use LCT_NORMAL.
2322 (struct frv_packet_group): New struct, broken out of type of
2324 (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2325 use cast in loop counter increment.
2326 (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2327 assigning to io->type.
2328 (bdesc_set): Use rtx_code UNKNOWN in initializer.
2329 (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2330 (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2331 (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2332 (frv_read_argument): Use expand_normal.
2335 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2336 lm32_legitimate_constant_p.
2337 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2338 * config/lm32/lm32.c (gen_int_relational): Make new block for
2339 LE / LT / LEU / LTU case. Declare variables at start of block.
2340 (lm32_block_move_inline): Use XALLOCAVEC.
2342 2010-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2344 * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2346 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2348 * gengtype (get_output_file_for_structure): Ensure type is union
2350 (write_splay_tree_allocator_def): Use
2351 get_output_file_with_visibility.
2353 2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2355 * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2356 to defined values in case of an error.
2357 (s390_option_override): Skip further processing if the -march
2358 parameter wasn't recognized.
2360 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2362 * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2363 assert that REG is a hard register number before using it as an index.
2366 * config/i386/i386.c (ix86_expand_split_stack_prologue):
2367 Avoid warnings when HOST_WIDE_INT is 32 bit.
2369 2010-11-08 Eric Botcazou <ebotcazou@adacore.com>
2372 * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2373 (sparc_promote_prototypes): Likewise.
2374 (sparc_promote_function_mode): Promote in 32-bit mode as well.
2375 (sparc_return_in_memory): Remove superfluous parentheses.
2376 (sparc_struct_value_rtx): Fix long lines.
2377 (sparc_function_value_1): Promote in 32-bit mode as well.
2379 2010-11-08 Andrey Belevantsev <abel@ispras.ru>
2381 PR rtl-optimization/45352
2382 * sel-sched.c (find_best_expr): Do not set pneed_stall when
2383 the variable_issue hook is not implemented.
2384 (fill_insns): Remove dead variable stall_iterations.
2385 (init_seqno_1): Force EBB start for resetting sched cycles on any
2386 successor blocks of the rescheduled region.
2387 (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2388 (reset_sched_cycles_in_current_ebb): Add debug printing.
2389 New variable issued_insns. Advance state when we have issued
2392 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2394 * gengtype (main): Get here's position using POS_HERE macro for
2397 2010-11-07 Ian Lance Taylor <iant@google.com>
2400 * config/i386/i386.c (split_stack_fn_large): New static variable.
2401 (ix86_expand_split_stack_prologue): Handle large model.
2403 2010-11-07 Andreas Schwab <schwab@linux-m68k.org>
2405 * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2406 all possible addressing modes.
2408 2010-11-07 Uros Bizjak <ubizjak@gmail.com>
2410 PR tree-optimization/46346
2411 * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2413 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
2415 * config/mips/mips.c: Revert previous patch.
2416 * config/mips/mips.md: Likewise.
2418 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
2420 * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2421 * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2422 (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2423 (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
2424 (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
2426 (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
2427 (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
2428 (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
2429 (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2431 2010-11-06 Simon Martin <simartin@users.sourceforge.net>
2434 * c-decl.c (lookup_label): Labels can only be referenced in a
2436 (store_parm_decls_oldstyle): Skip erroneous parameters.
2438 2010-11-06 Anatoly Sokolov <aesok@post.ru>
2440 * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2441 LIBCALL_VALUE): Remove macros.
2442 * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2443 TARGET_FUNCTION_VALUE_REGNO_P): Define.
2444 (fr30_function_value_regno_p, fr30_function_value,
2445 fr30_libcall_value): New functions.
2447 2010-11-06 Joern Rennecke <amylaar@spamcop.net>
2450 * target.def (generate_internal_label): New asm_out hook.
2451 * output.h (default_generate_internal_label): Declare.
2452 * varasm.c (default_generate_internal_label): Define.
2454 2010-11-06 Iain Sandoe <iains@gcc.gnu.org>
2457 * doc/extend.tex (format): Document NSString extension.
2458 (format_arg): Likewise.
2459 (Darwin Format Checks): New section.
2460 * doc/tm.texi: Document string object hooks (generated).
2461 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
2462 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2463 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2464 * target.def (objc_construct_string_object): Rename, amend
2466 (string_object_ref_type_p): New hook.
2467 (check_string_object_format_arg): New hook.
2468 * c-parser.c (c_parser_attributes): Allow objective-c class names as
2469 attribute identifiers.
2470 * config/darwin-c.c (darwin_cfstring_ref_p): New.
2471 (darwin_check_cfstring_format_arg): New.
2472 (darwin_additional_format_types): New.
2473 * config/darwin-protos.h (darwin_cfstring_ref_p) New.
2474 (darwin_check_cfstring_format_arg): New.
2475 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
2476 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2477 (TARGET_N_FORMAT_TYPES): New.
2478 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2480 2010-11-06 Eric Botcazou <ebotcazou@adacore.com>
2481 Pascal Obry <obry@adacore.com>
2483 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine. Use 33
2484 in 64-bit mode and 17 otherwise.
2486 2010-11-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2489 * var-tracking.c (emit_note_insn_var_location): Make sure that
2490 call related var location notes come before the normal ones.
2492 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
2495 * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2498 2010-11-05 Ian Lance Taylor <iant@google.com>
2500 * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2502 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2505 * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2506 pointer_set_contains if DECL_NAME is NULL.
2508 2010-11-05 Ian Lance Taylor <iant@google.com>
2511 * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2512 request enough additional space for alignment, and force alignment.
2514 2010-11-05 Kai Tietz <kai.tietz@onevision.com>
2516 * config/i386/i386.c (legitimate_pic_address_disp_p):
2517 Handle UNSPEC_PCREL.
2518 (ix86_legitimate_address_p): Likewise.
2519 (legitimize_pic_address): Likewise.
2520 (output_pic_addr_const): Likewise.
2521 (ix86_delegitimize_address): Likewise.
2522 (ix86_find_base_term): Likewise.
2523 (memory_address_length): Likewise.
2524 (x86_output_mi_thunk): Handle special case x64
2525 for non local binding.
2526 * config/i386/i386.md (UNSPEC_PCREL): New.
2527 * config/i386/winnt.c (i386_pe_binds_local_p):
2528 Allow weak symbol for x64 windows with non-local binding.
2530 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2533 * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2534 instead of EXPAND_NORMAL for base expansion.
2536 2010-11-05 Uros Bizjak <ubizjak@gmail.com>
2538 * config.gcc: Support --with-fpmath=avx for x86.
2539 * config/i386/avxmath.h: New.
2540 * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2542 2010-11-05 Ian Lance Taylor <iant@google.com>
2544 * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2545 * gengtype.c (walk_type): Don't recognize descbits option.
2547 2010-11-05 Joseph Myers <joseph@codesourcery.com>
2549 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2550 WORD_SWITCH_TAKES_ARG): Remove.
2551 * doc/options.texi (Args): Document.
2552 * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2553 * doc/tm.texi: Regenerate.
2554 * opt-functions.awk (switch_flags): Handle Args.
2555 * opts-common.c: Update comment on tm.h include.
2556 (decode_cmdline_option): Handle options with multiple arguments.
2557 Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2558 * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2559 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2560 CL_COMMON): Update values.
2561 * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2562 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2563 * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2564 sectobjectsymbols, sectorder, segcreate, segprot): New.
2566 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
2567 Uros Bizjak <ubizjak@gmail.com>
2569 * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2570 256bit AVX register is used.
2571 (ix86_expand_vector_move_misalign): Likewise.
2572 (ix86_expand_vector_move): Replace use_avx256_p with
2573 VALID_AVX256_REG_MODE.
2575 2010-11-05 Joern Rennecke <amylaar@spamcop.net>
2578 * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2579 change. Set $@-warn.o to -Wno-error.
2582 * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2583 comparing it to a signed value.
2586 * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
2588 * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
2592 * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
2593 (m32c_function_arg). Add comma between arguments two and three.
2594 (m32c_promote_prototypes): Remove declaration.
2595 (current_function_special_page_vector): Likewise.
2596 (m32c_regno_reg_class): Change return type to enum reg_class.
2597 (m32c_pushm_popm): Use add_reg_note.
2598 (m32c_push_rounding): Change return type to unsigned int.
2599 (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
2601 (m32c_insert_attributes): Constify variable name.
2602 (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
2603 (m32c_prepare_shift): Remove variable lref.
2604 (m32c_expand_movcc): Remove variable cmp.
2605 (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
2606 (m32c_compare_redundant): Remove variable op2.
2607 * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
2608 (m32c_pragma_memregs): Assign the number to target_memregs.
2609 (m32c_pragma_address): Remove variable var_str.
2610 * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
2612 (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
2613 * config/m32c/bitops.md (andsi3): Add default case to switch.
2614 (iorsi3, xorsi3): Likewise.
2615 * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
2616 * config/m32c/jump.md (call, call_value): Likewise.
2617 * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
2618 (m32c_regno_reg_class): Likewise.
2619 (current_function_special_page_vector): Declare.
2621 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2623 * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
2625 PR tree-optimization/46099
2626 * tree-parloops.c (take_address_of): Add GSI argument. Return NULL
2627 if it is NULL and uid wasn't found in the hash table. Just fold the
2628 result if it is NULL otherwise. Insert other potentially needed
2629 stmts right before current stmt instead of on the entry edge.
2630 (struct elv_data): Add gsi and reset fields.
2631 (eliminate_local_variables_1): Adjust caller. If take_address_of
2632 failed for debug stmt, set dta->reset and return.
2633 (eliminate_local_variables_stmt): Change STMT argument for GSI,
2634 pass GSI through to the callback, handle resetting of debug stmts.
2635 (eliminate_local_variables): Adjust caller. Process debug stmts
2639 * gimplify.c (gimplify_asm_expr): If a "m" input is a
2640 {pre,post}{in,de}crement, fail.
2643 * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
2644 * tree-pretty-print.c (dump_generic_node): Likewise.
2645 (op_code_prio): Likewise.
2646 * cfgexpand.c (expand_debug_expr): Likewise.
2648 2010-11-04 Paul Koning <ni1d@arrl.net>
2650 * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
2653 2010-11-04 Chao-ying Fu <fu@mips.com>
2655 * configure.ac: Test assembler support for DSP Rev1 mult.
2656 * configure: Regenerate.
2657 * config.in: Regenerate.
2658 * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
2659 * config/mips/mips.c (CODE_FOR_mips_mult): New define.
2660 (CODE_FOR_mips_multu): New define.
2661 (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
2663 (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
2664 Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
2665 * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
2666 New define_expand patterns.
2667 * config/mips/constraints.md (ka): Update the constraint to test
2668 ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
2669 * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
2670 mips_multu): Delete.
2671 * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
2672 Change target constraint to "ka".
2673 Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
2674 (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
2675 Emit the accumulator destination when ISA_HAS_DSP_MULT.
2676 (<u>msubsidi4): Add comments. Test ISA_HAS_DSP.
2677 Emit the accumulator destination when ISA_HAS_DSP_MULT.
2678 (<u>maddsidi4): Likewise.
2679 * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
2680 msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
2682 2010-11-04 Paul Koning <ni1d@arrl.net>
2684 * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
2686 2010-11-04 Paul Koning <ni1d@arrl.net>
2688 * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
2690 2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
2692 Fixed using the Objective-C 2.0 dot-syntax with class names.
2693 * c-parser.c (c_parser_next_token_starts_declspecs): In
2694 Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
2695 (c_parser_next_token_starts_declaration): Same.
2696 (c_parser_postfix_expression): Parse the Objective-C 2.0
2697 dot-syntax with a class name.
2699 2010-11-04 Pat Haugen <pthaugen@us.ibm.com>
2701 * final.c (compute_alignments): Compute/free loop info all the time.
2702 * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
2703 * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
2704 * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
2705 * config/rs6000/rs6000.c (cfgloop.h): Include.
2706 (can_override_loop_align): New.
2707 (rs6000_option_override_internal): Set it.
2708 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
2709 (rs6000_loop_align): New function.
2710 (rs6000_loop_align_max_skip): Likewise.
2712 2010-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2715 * collect2.c (main): Print --help output to stdout. Do not
2716 exit right away, so ld --help is appended. Add empty lines
2717 to separate output suitably.
2719 2010-11-04 Jakub Jelinek <jakub@redhat.com>
2721 PR tree-optimization/46233
2722 * ipa-pure-const.c (local_pure_const): Do noreturn discovery
2723 after calling analyze_function, not before.
2726 * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
2727 instead of build_va_arg_indirect_ref.
2728 * config/spu/spu.c (spu_va_start): Likewise.
2729 * config/s390/s390.c (s390_va_start): Likewise.
2731 2010-11-03 Uros Bizjak <ubizjak@gmail.com>
2734 * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
2735 if the innermode is not vector mode, determine the mode of a subreg
2736 by using mode_for_size of inner_size.
2738 2010-11-04 Richard Guenther <rguenther@suse.de>
2740 PR rtl-optimization/46183
2741 * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
2742 (execute_rtl_pre): Likewise.
2743 (execute_rtl_hoist): Likewise.
2745 2010-11-04 Richard Guenther <rguenther@suse.de>
2747 PR tree-optimization/46068
2748 * ipa-split.c (consider_split): Remove gcc_unreachable.
2750 2010-11-04 Richard Guenther <rguenther@suse.de>
2752 * tree-nested.c (build_addr): Use build_fold_addr_expr.
2754 2010-11-04 Richard Guenther <rguenther@suse.de>
2756 PR tree-optimization/45991
2757 * gimplify.c (force_gimple_operand_1): Use the provded test
2758 function in the initial test.
2760 2010-11-04 Jeff Law <law@redhat.com>
2762 * ira.c (validate_equiv_mem): Remove code to avoid invalidation
2763 of readonly memory equivalances for const/pure calls.
2765 2010-11-04 Richard Guenther <rguenther@suse.de>
2767 PR tree-optimization/45733
2768 * tree-vect-stmts.c (reverse_vec_elements): Honor the
2769 permute builtins function return type.
2771 2010-11-04 Joern Rennecke <amylaar@spamcop.net>
2774 * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
2775 as an index, check it is not INVALID_REGNUM.
2778 * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
2780 * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
2783 * function.c (thread_prologue_and_epilogue_insns): Add
2784 ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
2787 * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
2790 * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
2791 (pdp11_preferred_reload_class): Rename class to rclass.
2792 (pdp11_preferred_output_reload_class): Likewise.
2793 * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
2795 (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
2798 * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
2799 iteration variables to enum machine_mode.
2802 * config/h8300/h8300.c: Include df.h.
2803 (push, pop): Use add_reg_note.
2804 (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
2805 (compute_a_shift_cc): Likewise.
2806 (expand_a_shift): Argument code has type enum rtx_code.
2807 (struct shift_insn): Member cc_valid has type enum attr_cc.
2808 (struct shift_info) <cc_inline, cc_special>: Likewise.
2810 * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
2811 (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
2813 2010-11-04 Ira Rosen <irar@il.ibm.com>
2815 PR tree-optimization/46213
2816 * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
2817 MINUS_EXPR only if the first operand is reduction operand.
2819 2010-11-04 Richard Guenther <rguenther@suse.de>
2820 Richard Henderson <rth@redhat.com>
2822 * tree.def (FMA_EXPR): New tree code.
2823 * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
2824 * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
2825 * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
2826 * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
2827 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2828 * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
2829 (execute_optimize_widening_mul): Call it. Reorganize to allow
2830 dead stmt removal. Move TODO flags ...
2831 (pass_optimize_widening_mul): ... here.
2832 * flag-types.h (enum fp_contract_mode): New enum.
2833 * common.opt (flag_fp_contract_mode): New variable.
2834 (-ffp-contract): New option.
2835 * opts.c (common_handle_option): Handle it.
2836 * doc/invoke.texi (-ffp-contract): Document.
2837 * tree.h (fold_fma): Declare.
2838 * builtins.c (fold_fma): New function.
2839 (fold_builtin_fma): Likewise.
2840 (fold_builtin_3): Call it for fma.
2841 * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
2842 * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
2843 * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
2845 * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
2847 * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
2848 * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
2849 (fms_optab, fnma_optab, fnms_optab): New defines.
2850 * gimplify.c (gimplify_expr): Handle binary truth expressions
2851 explicitly. Handle FMA_EXPR.
2852 * tree-vect-stmts.c (vectorizable_operation): Handle ternary
2855 2010-11-04 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2856 Richard Guenther <rguenther@suse.de>
2858 * passes.c (init_optimization_passes): Move veclower after SSA.
2859 * tree-vect-generic.c (uniform_vector_p): New function.
2860 (expand_vector_operations_1): Handle conversion.
2861 (pass_lower_vector): Update SSA form.
2863 2010-11-04 Iain Sandoe <iains@gcc.gnu.org>
2865 * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
2866 plugin capabilities.
2867 * configure: Regenerate.
2869 2010-11-03 Xinliang David Li <davidxl@google.com>
2872 * tree-ssa-loop-ivopts.c (get_computation_cost_at):
2873 Adjust cbase if the use stmt is after iv update.
2875 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
2877 * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
2879 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
2881 * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
2882 comment. Pass true to the last argument of output_stack_adjust.
2884 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
2887 * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
2888 if 256bit AVX register is used.
2890 2010-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2892 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
2893 xsmindp/xsmaxdp on VSX for single precision min/max.
2894 * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
2895 (vsx_sminsf3): Ditto.
2897 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
2899 * combine.c (try_combine): Fix formatting issues, improve comments and
2902 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
2904 * tree-tailcall.c (find_tail_calls): Convert the operands to the type
2905 of the result before building binary expressions.
2907 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
2909 PR rtl-optimization/45865
2910 * Makefile.in (df-problems.o): Revert revision 164552.
2911 * basic-block.h (enum bb_flags): Likewise.
2912 * cfgcleanup.c (block_was_dirty): Likewise.
2913 (try_forward_edges): Likewise.
2914 (try_crossjump_bb): Likewise.
2915 (try_head_merge_bb): Likewise.
2916 (try_optimize_cfg): Likewise.
2917 (cleanup_cfg): Likewise.
2918 * df-core.c (df_set_bb_dirty): Likewise.
2919 * df-problems.c: Likewise.
2920 (df_simulate_find_uses): Likewise.
2921 (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
2922 (find_memory, find_memory_store): Likewise.
2923 (can_move_insns_across): Likewise.
2924 * df.h (can_move_insns_across): Likewise.
2925 * ifcvt.c (find_memory): Likewise.
2926 (dead_or_predicable): Likewise.
2928 2010-11-03 Richard Guenther <rguenther@suse.de>
2931 * predict.c (strip_predict_hints): Simply DCE builtin expect if
2932 the result is unused.
2934 2010-11-03 Jakub Jelinek <jakub@redhat.com>
2936 PR tree-optimization/46009
2937 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
2938 cond_if_else_store_replacement if bb1 and bb2 have the same
2940 (cond_store_replacement): Use gimple_assign_single_p, don't
2941 check if rhs is SSA_NAME or invariant. Call release_defs for
2943 (cond_if_else_store_replacement): New function.
2945 2010-11-03 Richard Guenther <rguenther@suse.de>
2947 * opts.c (finish_options): Properly check for all WHOPR
2948 flags before complaining about -flto-partition.
2950 2010-11-04 Alan Modra <amodra@gmail.com>
2952 * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
2953 (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
2955 * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
2956 * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
2957 on input, "r" on output.
2959 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
2961 Implemented -fobjc-std=objc1 flag.
2962 * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
2964 * doc/standards.texi (Standards): Updated the section on
2965 Objective-C; mention support for Objective-C 2.0 features and the
2966 new -fstd-objc=objc1 flag to disable them.
2968 2010-11-03 Richard Guenther <rguenther@suse.de>
2971 * dwarf2out.c (scope_die_for): Properly detect global scope.
2973 2010-11-03 Richard Guenther <rguenther@suse.de>
2975 PR tree-optimization/46190
2976 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2977 Properly compute peel iterations.
2979 2010-11-03 Richard Guenther <rguenther@suse.de>
2981 PR tree-optimization/46286
2982 * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
2983 re-allocated vector data.
2985 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
2988 * config/i386/i386.c (ix86_expand_call): Conditionally decorate
2989 calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
2992 2010-11-03 Richard Guenther <rguenther@suse.de>
2994 PR tree-optimization/46217
2995 * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
2997 (execute_update_addresses_taken): Likewise.
2999 2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
3002 * targhooks.c (targhook_words_big_endian): New function.
3003 (targhook_float_words_big_endian): Likewise.
3004 * targhooks.h (targhook_words_big_endian): Declare.
3005 (targhook_float_words_big_endian): Likewise.
3006 * target.def (words_big_endian, float_words_big_endian): New hooks.
3008 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3010 PR tree-optimization/46165
3011 * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3012 a normal call into noreturn call.
3014 2010-11-03 Richard Guenther <rguenther@suse.de>
3017 * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3020 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3022 PR tree-optimization/46107
3023 * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3024 if cfg_hook_duplicate_loop_to_header_edge failed.
3026 2010-11-03 Ian Lance Taylor <iant@google.com>
3029 * config.gcc: Don't set lto_binary_reader.
3030 * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3031 (Configuration): Mention --disable-lto. Remove --with-libelf
3034 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3037 * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3039 * gcse.c (insert_insn_end_basic_block): Likewise.
3041 PR rtl-optimization/46034
3042 PR rtl-optimization/46212
3043 PR rtl-optimization/46248
3044 * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3045 and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3046 before i0dest -> i0src substitution and pass 1 instead of 0 as last
3047 argument to subst on i2pat.
3049 2010-11-02 Ian Lance Taylor <iant@google.com>
3051 * configure.ac: Use AC_SYS_LARGEFILE.
3052 * configure: Rebuild.
3053 * config.in: Rebuild.
3055 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
3057 * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3059 * c-typeck.c (build_function_call_vec): Likewise.
3060 * cfgexpand.c (expand_debug_expr): Likewise.
3061 * cgraphunit.c (assemble_thunk): Likewise.
3062 * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3063 * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3064 (fold_binary_loc, fold_ternary_loc): Likewise.
3065 * gimple-fold.c (get_symbol_constant_value): Likewise.
3066 * gimple-low.c (lower_builtin_setjmp): Likewise.
3067 * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3068 * gimplify.c (gimplify_init_constructor): Likewise.
3069 * lambda.h (build_linear_expr): Likewise.
3070 * omp-low.c (omp_reduction_init): Likewise.
3071 * tree-inline.c (remap_ssa_name): Likewise.
3072 * tree-object-size.c (compute_object_sizes): Likewise.
3073 * tree-sra.c (init_subtree_with_zero): Likewise.
3074 (sra_ipa_modify_assign): Likewise.
3075 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3076 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3077 (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3078 (undistribute_ops_list): Likewise.
3079 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3080 * tree-vect-stmts.c (vectorizable_call): Likewise.
3081 * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3082 (build_zero_cst): Handle more cases directly. Update comment.
3084 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3086 * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3087 * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3089 * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3090 and call ix86_split_call_vzeroupper instead of
3091 ix86_split_call_pop_vzeroupper.
3092 (*call_pop_1_vzeroupper): Likewise.
3093 (*sibcall_pop_1_vzeroupper): Likewise.
3094 (*call_value_pop_0_vzeroupper): Likewise.
3095 (*call_value_pop_1_vzeroupper): Likewise.
3096 (*sibcall_value_pop_1_vzeroupper): Likewise.
3098 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3100 * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3102 2010-11-02 Eric Botcazou <ebotcazou@adacore.com>
3104 * basic-block.h (insert_insn_end_bb_new): Delete.
3105 * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3107 2010-11-02 Uros Bizjak <ubizjak@gmail.com>
3108 H.J. Lu <hongjiu.lu@intel.com>
3110 * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3111 (ix86_split_call_pop_vzeroupper): Likewise.
3113 * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3114 (ix86_expand_call): Conditionally decorate calls with
3115 UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3116 (ix86_split_call_vzeroupper): New.
3117 (ix86_split_call_pop_vzeroupper): Likewise.
3119 * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3120 (*call_pop_0_vzeroupper): New insn_and_split pattern.
3121 (*call_pop_1_vzeroupper): Likewise.
3122 (*sibcall_pop_1_vzeroupper): Likewise.
3123 (*call_0_vzeroupper): Likewise.
3124 (*call_1_vzeroupper): Likewise.
3125 (*sibcall_1_vzeroupper): Likewise.
3126 (*call_1_rex64_vzeroupper): Likewise.
3127 (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3128 (*call_1_rex64_large_vzeroupper): Likewise.
3129 (*sibcall_1_rex64_vzeroupper): Likewise.
3130 (*call_value_pop_0_vzeroupper): Likewise.
3131 (*call_value_pop_1_vzeroupper): Likewise.
3132 (*sibcall_value_pop_1_vzeroupper): Likewise.
3133 (*call_value_0_vzeroupper): Likewise.
3134 (*call_value_0_rex64_vzeroupper): Likewise.
3135 (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3136 (*call_value_1_vzeroupper): Likewise.
3137 (*sibcall_value_1_vzeroupper): Likewise.
3138 (*call_value_1_rex64_vzeroupper): Likewise.
3139 (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3140 (*call_value_1_rex64_large_vzeroupper): Likewise.
3141 (*sibcall_value_1_rex64_vzeroupper): Likewise.
3143 2010-11-02 Ian Lance Taylor <iant@google.com>
3146 * config.gcc: Revert last patch: set lto_binary_reader.
3148 2010-11-02 Richard Guenther <rguenther@suse.de>
3150 PR tree-optimization/46149
3151 * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3152 non-indirect MEM_REF variants.
3154 2010-11-02 Richard Guenther <rguenther@suse.de>
3156 PR tree-optimization/46216
3157 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3158 Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3160 2010-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3162 * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3163 (*-*-osf*): Likewise.
3164 * configure: Regenerate.
3166 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3168 * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3169 for Intel Core 2 and Core i7.
3171 2010-11-02 Maxim Kuvyrkov <maxim@codesourcery.com>
3173 Model decoder of Core 2/i7 for multipass scheduling.
3175 * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3176 New type to hold target-specific data for multipass scheduling.
3177 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3178 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3180 (core2i7_secondary_decoder_max_insn_size,)
3181 (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3182 New static variables.
3183 ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3184 ([_]ix86_first_cycle_multipass_data): New static variable.
3185 (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3186 Implement targetm.sched hooks.
3187 (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3189 (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3190 Implement new targetm.sched hooks.
3191 (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3192 targetm.sched hook to install multipass scheduling hooks on demand.
3194 * doc/tm.texi.in: Document new targetm.sched hooks.
3195 * doc/tm.texi: Regenerate.
3197 * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3198 (first_cycle_multipass_data_t): New typedef.
3199 (struct choice_entry: target_data): New field.
3200 (max_issue): Add first_cycle_insn_p parameter. Call new target hooks
3201 to allow target model restrictions not represented in DFA.
3202 (choose_ready, schedule_block): Update.
3203 (sched_extend_ready_list, sched_finish_ready_list): Call new target
3204 hooks to initialize target-specific data for multipass scheduling.
3205 * sched-int.h (max_issue): Update declaration.
3206 * sel-sched.c (choose_best_insn): Update.
3207 * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3208 (first_cycle_multipass_{init, fini}): Define and document new
3209 targetm.sched hooks.
3211 2010-11-02 Richard Guenther <rguenther@suse.de>
3213 PR tree-optimization/46184
3214 * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3215 input vector type from the reduction operand as well.
3217 2010-11-02 Richard Guenther <rguenther@suse.de>
3219 PR tree-optimization/46177
3220 * tree-loop-distribution.c (prop_phis): Use
3221 mark_virtual_phi_result_for_renaming.
3223 2010-11-02 Martin Jambor <mjambor@suse.cz>
3226 * tree.c (get_binfo_at_offset): Bail out on artificial
3227 fields. Identify primary bases according to their offsets.
3229 2010-11-02 Martin Jambor <mjambor@suse.cz>
3231 PR tree-optimization/45875
3232 * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
3233 (gimple_get_relevant_ref_binfo): Detect primary bases according to
3236 2010-11-02 Ian Lance Taylor <iant@google.com>
3238 * doc/install.texi (Configuration): Note in two places that Java
3239 is not enabled by default.
3241 2010-11-02 Ian Lance Taylor <iant@google.com>
3243 * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3244 (Configuration): Mention --disable-lto. Remove --with-libelf
3247 2010-11-02 Ian Lance Taylor <iant@google.com>
3249 * configure.ac: Remove elf_getshdrstrndx test. Don't substitute
3250 LTO_BINARY_READER or LTO_USE_LIBELF. Remove LIBELFLIBS and
3251 LIBELFINC. Remove HAVE_libelf.
3252 * config.gcc: Don't set lto_binary_reader.
3253 * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
3254 (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
3255 (LIBS): Remove $(LIBELFLIBS).
3256 (INCLUDES): Remove $(LIBELFINC).
3257 * configure: Rebuild.
3258 * config.in: Rebuild.
3260 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
3262 * config/microblaze/microblaze-protos.h (function_arg): Delete.
3263 (function_arg_advance): Delete.
3264 * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
3265 (FUNCTION_ARG): Delete.
3266 * config/microblaze/microblaze.c (function_arg_advance): Rename to...
3267 (microblaze_function_arg_advance): ...this. Make static. Take a
3268 const_tree and a bool.
3269 (function-arg): Rename to...
3270 (microblaze_function_arg): ...this. Make static. Take a const_tree
3272 (microblaze_expand_prologue): Call targetm.calls.function_arg and
3273 targetm.calls.function_arg_advance.
3274 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3276 2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
3278 Merge from FSF "apple/trunk" branch.
3280 * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
3281 * config/darwin.opt: .. to here.
3282 (matt-stubs): New option.
3283 * config/i386/darwin.opt: Delete.
3284 * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
3285 (MACHO_DYNAMIC_NO_PIC_P): New.
3286 (MACHOPIC_INDIRECT): New.
3287 (MACHOPIC_PURE): New.
3288 * config/i386/darwin.h (DARWIN_X86) Define to 1.
3289 (MACHOPIC_ATT_STUB): New.
3290 (CC1_SPEC): Do not remove mdynamic-no-pic.
3291 Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3292 UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3293 (FUNCTION_PROFILER): Correct over-length line.
3294 (SUBTARGET_OVERRIDE_OPTIONS): New.
3295 (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3296 * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
3297 (legitimate_constant_p): Handle mdynamic-no-pic.
3298 (ix86_legitimate_address_p): Likewise.
3299 (ix86_legitimize_address): Likewise.
3300 (ix86_expand_move): Likewise.
3301 (machopic_output_stub): Update for ATT-style stubs and
3303 * config/darwin-protos.h (machopic_symbol_defined_p): New.
3304 * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
3305 TARGET_DYNAMIC_NO_PIC: Remove.
3306 Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3307 UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3308 * config/rs6000/rs6000.c (darwin_rs6000_override_options):
3309 Remove handling of mdynamic-no-pic.
3310 * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
3312 (machopic_symbol_defined_p): Do not try to use current_function_decl
3313 when generating _get_pc thunks within stubs.
3314 (machopic_indirect_data_reference): Rework for direct conditionals
3315 rather than #ifdefs, add x86 mdynamic-no-pic
3316 (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
3318 (darwin_override_options): Handle mdynamic-no-pic here.
3319 * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
3320 (machopic_lazy_symbol_ptr3_section): New.
3321 (machopic_picsymbol_stub2_section): New.
3322 (machopic_picsymbol_stub3_section): New.
3323 * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
3324 (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3325 (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3326 Moved common definition from x86 and rs6000.
3327 (MACHO_DYNAMIC_NO_PIC_P): Override value.
3328 (MACHOPIC_INDIRECT): Likewise.
3329 (MACHOPIC_PURE): Likewise.
3330 * config.gcc (x86-darwin-*): Remove darwin.opt.
3332 2010-11-02 Jakub Jelinek <jakub@redhat.com>
3335 * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
3336 instead of gsi_last_bb.
3338 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
3339 Maxim Kuvyrkov <maxim@codesourcery.com>
3341 * config/i386/i386.c (cpu_names): Add "corei7".
3342 * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
3344 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
3345 Maxim Kuvyrkov <maxim@codesourcery.com>
3347 Tune alignment for Intel Core i7
3349 * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
3350 (enum processor_type): Update comment. Add entries for Core i7.
3351 * config/i386-c.c (ix86_target_macros_internal): Update.
3352 * config/i386.c (m_COREI7{_32,_64}): New macros.
3353 (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
3354 (processor_target_table): Tune alignment for Core i7.
3355 (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
3357 * doc/invoke.texi: Document "corei7" option value.
3359 2010-11-02 Bernd Schmidt <bernds@codesourcery.com>
3360 Maxim Kuvyrkov <maxim@codesourcery.com>
3361 H.J. Lu <hjl.tools@gmail.com>
3363 Basic support for Intel Core i7
3365 * i386.c (ix86_option_override_internal): Add entry for corei7, use
3366 generic tuning. Use generic32 when compiling for 32-bit ABI.
3368 2010-11-02 Iain Sandoe <iains@gcc.gnu.org>
3370 * config/darwin.c (darwin_asm_named_section): Check for __DWARF
3371 sections and call darwin_asm_dwarf_section() to handle them.
3372 (darwin_asm_dwarf_section): New.
3373 (darwin_file_start): Remove code emitting dwarf section symbols.
3375 2010-11-02 Chung-Lin Tang <cltang@codesourcery.com>
3377 * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
3378 explicitly disable stack protection when building libgcc.
3379 (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
3381 2010-11-01 Jason Merrill <jason@redhat.com>
3383 * fold-const.c (fold_indirect_ref_1): Handle folding
3384 POINTER_PLUS_EXPR to ARRAY_REF.
3386 2010-11-01 Kaz Kojima <kkojima@gcc.gnu.org>
3388 * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
3389 (sh_delegitimize_address): New function.
3391 2010-11-01 Joseph Myers <joseph@codesourcery.com>
3393 * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
3394 * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
3395 (CC1_SPEC): Don't handle -target.
3396 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
3398 * config/darwin.opt (Zallowable_client, Zbundle_loader,
3399 Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
3400 Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
3401 Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
3402 Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
3403 Zweak_reference_mismatches, client_name, compatibility_version,
3404 current_version, dylinker_install_name, pagezero_size,
3405 read_only_relocs, seg1addr, segs_read_only_addr,
3406 segs_read_write_addr, sub_library, sub_umbrella): New.
3407 * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
3408 * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
3409 * config/freebsd.opt: New.
3410 * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
3411 * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
3412 * config/rpath.opt: New.
3413 * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
3414 (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
3417 2010-11-01 Joseph Myers <joseph@codesourcery.com>