OSDN Git Service

292fa371c9478620902a650ef7e8e6686f8d73b5
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2
3         * doc/extend.texi (Function attributes): Document PowerPC target
4         attributes that are supported.
5         (Pragmas): Document that PowerPC now supports target pragmas.
6
7         * doc/options.texi (TargetVariable): Document TargetVariable,
8         HeaderInclude, and SourceInclude.
9
10         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
11         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
12         -ffp-contract=off.
13
14         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
15         SourceInclude directives.  Fix a cut+paste error with target save
16         enum variables.  Sort enums in the structures after ints and
17         before shorts.
18         * opth-gen.awk: Ditto.
19
20         * configure.ac: Add support for HeaderInclude and SourceInclude
21         option directives to add the appropriate files to the dependency
22         lists.
23         * configure: Regenerate.
24         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
25         (OPTIONS_C_EXTRA): New variable for SourceInclude.
26         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
27         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
28         (gcc-options.o): Ditto.
29         * opt-include.awk: New awk script to handle HeaderInclude and
30         TargetInclude.
31
32         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
33         gets saved in the target options.
34         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
35         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
36         (-mprototype): Ditto.
37         (-mbit-word): ditto.
38         (-mregnames): Ditto.
39         (-msecure-plt): Ditto.
40         (-mbss-plt): Ditto.
41         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
42         (-mpowerpc-gfxopt): Ditto.
43         (-mmfcrf): Ditto.
44         (-mpopcntb): Ditto.
45         (-mfprnd): Ditto.
46         (-mcmpb): Ditto.
47         (-mmmfpgpr): Ditto.
48         (-maltivec): Ditto.
49         (-mhard-dfp): Ditto.
50         (-mmulhw): Ditto.
51         (-mdlmzb): Ditto.
52         (-mmultiple): Ditto.
53         (-mstring): Ditto.
54         (-mpopcntd): Ditto.
55         (-mfriz): Ditto.
56         (-mvsx): Ditto.
57         (-mno-update): Ditto.
58         (-mavoid-indexed-addresses): Ditto.
59         (-mtls-markers): Ditto.
60         (-msched-epilog): Ditto.
61         (-msched-prolog): Ditto.
62         (-maix-struct-return): Ditto.
63         (-msvr4-struct-return): Ditto.
64         (-mxl-compat): Ditto.
65         (-mrecip-precision): Ditto.
66         (-mfp-in-toc): Ditto.
67         (-msum-in-toc): Ditto.
68         (-mvrsave): Ditto.
69         (-mblock-move-inline-limit=): Ditto.
70         (-misel): Ditto.
71         (-mpaired): Ditto.
72         (-mlongcall): Ditto.
73         (-mgen-cell-microcode): Ditto.
74         (-mwarn-cell-microcode): Ditto.
75         (-mwarn-altivec-long): Ditto.
76         (-mprioritize-restricted-insns=): Ditto.
77         (-msingle-float): Ditto.
78         (-mdouble-float): Ditto.
79         (-msimple-fpu): Ditto.
80         (-mxilinx-fpu): Ditto.
81         * config/rs6000/aix64.opt (-mpe): Ditto.
82
83         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
84         (rs6000_cpu): Move variable to be a target variable.  Rename
85         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
86         -mdebug=<xxx> variables into a single int.
87         (rs6000_always_hint): Ditto.
88         (rs6000_sched_groups): Ditto.
89         (rs6000_align_branch_targets): Ditto.
90         (rs6000_sched_costly_dep): Ditto.
91         (rs6000_sched_insert_nops): Ditto.
92         (rs6000_long_double_type_size): Ditto.
93         (rs6000_ieeequad): Ditto.
94         (rs6000_altivec_abi): Ditto.
95         (rs6000_spe): Ditto.
96         (rs6000_spe_abi): Ditto.
97         (rs6000_float_gprs): Ditto.
98         (rs6000_darwin64_abi): Ditto.
99         (can_override_loop_align): Ditto.
100         (rs6000_sdata): Ditto.
101         (rs6000_tls_size): Ditto.
102         (rs6000_current_abi): Ditto.
103         (rs6000_traceback): Ditto.
104         (rs6000_alignment_flags): Ditto.
105         (rs6000_current_cmodel): Ditto.
106         (rs6000_recip_control): Ditto.
107         (rs6000_cpu_index): Ditto.
108         (rs6000_tune_index): Ditto.
109         (rs6000_debug): Ditto.
110         (rs6000_target_flags_explict): Ditto.
111
112         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
113         declaration.
114
115         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
116         cmodel.  Change all uses.
117
118         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
119         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
120         Rename cmodel to rs6000_current_cmodel.
121         (rs6000_sched_groups): Ditto.
122         (rs6000_align_branch_targets): Ditto.
123         (rs6000_sched_costly_dep): Ditto.
124         (rs6000_sched_insert_nops): Ditto.
125         (rs6000_long_double_type_size): Ditto.
126         (rs6000_ieeequad): Ditto.
127         (rs6000_altivec_abi): Ditto.
128         (rs6000_spe): Ditto.
129         (rs6000_spe_abi): Ditto.
130         (rs6000_float_gprs): Ditto.
131         (rs6000_darwin64_abi): Ditto.
132         (can_override_loop_align): Ditto.
133         (rs6000_sdata): Ditto.
134         (rs6000_tls_size): Ditto.
135         (rs6000_current_abi): Ditto.
136         (rs6000_traceback): Ditto.
137         (rs6000_alignment_flags): Ditto.
138         (rs6000_current_cmodel): Ditto.
139         (rs6000_recip_control): Ditto.
140         (rs6000_cpu_index): Ditto.
141         (rs6000_tune_index): Ditto.
142         (rs6000_debug): Ditto.
143         (rs6000_target_flags_explict): Ditto.
144         (rs6000_sched_insert_nops_str): Make static.
145         (rs6000_sched_costly_dep_str): Ditto.
146         (rs6000_recip_name): Ditto.
147         (rs6000_abi_name): Ditto.
148         (rs6000_sdata_name): Ditto.
149         (enum rs6000_traceback_name): Move to rs6000-opts.h.
150         (rs6000_parse_tls_size_option): Delete.
151         (rs6000_valid_attribute_p): New function for target attributes and
152         pragmas.
153         (rs6000_function_specific_save): Ditto.
154         (rs6000_function_specific_restore): Ditto.
155         (rs6000_function_specific_print): Ditto.
156         (rs6000_can_inline_p): Ditto.
157         (rs6000_set_current_function): Ditto.
158         (rs6000_inner_target_options): Ditto.
159         (rs6000_debug_target_options): Ditto.
160         (rs6000_pragma_target_parse): Ditto.
161         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
162         attributes and pragmas.
163         (TARGET_OPTION_SAVE): Ditto.
164         (TARGET_OPTION_RESTORE): Ditto.
165         (TARGET_OPTION_PRINT): Ditto.
166         (TARGET_CAN_INLINE_P): Ditto.
167         (TARGET_SET_CURRENT_FUNCTION): Ditto.
168         (POWER_MASKS): Move to file level scope from the
169         rs6000_option_override_internal function.
170         (POWERPC_MASKS): Ditto.
171         (ISA_*_MASKS): Ditto.
172         (struct rs6000_ptt): Ditto.
173         (processor_target_table): Ditto.
174         (rs6000_cpu_name_lookup): Map cpu name to an index in
175         processor_target_table.
176         (rs6000_debug_reg_global): Print more information on processor
177         options for -mdebug=reg.
178         (rs6000_init_hard_regno_mode_ok): Add support for target
179         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
180         Allow -mdebug=val1,val2.  Rename cmodel variable.
181         (rs6000_option_override_internal): Ditto.
182         (rs6000_option_override): Ditto.
183         (rs6000_handle_option): Ditto.
184         (rs6000_conditional_register_usage): Add debug trace message.
185         (struct rs6000_opt_mask): New for target attribute/pragma
186         support.
187         (rs6000_opt_masks): Ditto.
188         (struct rs6000_opt_var): Ditto.
189         (rs6000_opt_vars): Ditto.
190         (rs6000_previous_function): Ditto.
191
192         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
193         wasn't already included.
194         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
195         (enum processor_type): Ditto.
196         (rs6000_cpu): Ditto.
197         (enum fpu_type_t): Ditto.
198         (fpu_type): Ditto.
199         (enum rs6000_dependence_cost): Ditto.
200         (enum rs6000_nop_insertion): Ditto.
201         (enum group_termination): Ditto.
202         (rs6000_long_double_type_size): Ditto.
203         (rs6000_ieeequad): Ditto.
204         (rs6000_altivec_abi): Ditto.
205         (rs6000_spe_abi): Ditto.
206         (rs6000_spe): Ditto.
207         (rs6000_float_gprs): Ditto.
208         (rs6000_alignment_flags): Ditto.
209         (rs6000_sched_insert_nops): Ditto.
210         (enum rs6000_vector): Ditto.
211         (enum rs6000_abi): Ditto.
212         (rs6000_current_opt): Ditto.
213         (rs6000_debug_*): Delete.
214         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
215         (TARGET_DEBUG*): Ditto.
216
217         * config/rs6000/rs6000-opts.h: New header file to define the enums
218         that are used in target variables that are now defined in
219         rs6000.opt.
220
221         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
222         rs6000-opts.h.
223         (rs6000_sdata): Ditto.
224         (rs6000_abi_name): Delete.
225         (rs6000_sdata_name): Ditto.
226         (rs6000_tls_size_string): Ditto.
227
228 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
229
230         * common.opt (debug_struct_ordinary, debug_struct_generic): New
231         Variable entries.
232         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
233         should_emit_struct_debug): Move from opts.c.
234         * flag-types.h (enum debug_struct_file): Move from opts.c.
235         * flags.h (should_emit_struct_debug): Remove.
236         (base_of_path): Declare.
237         (set_struct_debug_option): Add gcc_options parameter.
238         * optc-gen.awk, opth-gen.awk: Handle array variables.
239         * opts.c (enum debug_struct_file, debug_struct_ordinary,
240         debug_struct_generic): Remove.
241         (set_struct_debug_option): Add gcc_options parameter.
242         (base_of_path): Remove static.
243         (main_input_basename, main_input_baselength, matches_main_base,
244         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
245         Remove.
246         * toplev.c (main_input_basename, main_input_baselength): Define
247         here.
248         * toplev.h (main_input_basename, main_input_baselength): Declare
249         here.
250
251 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
252
253         * common.opt (flag_instrument_functions_exclude_functions,
254         flag_instrument_functions_exclude_files): New Variable
255         definitions.
256         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
257         * gimplify.c (char_p): Declare type and vectors.
258         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make
259         static.
260         * opts.c (flag_instrument_functions_exclude_functions,
261         flag_instrument_functions_exclude_files): Remove.
262         (add_comma_separated_to_vector): Take void **.
263         (flag_instrument_functions_exclude_p): Move to gimplify.c.
264         (common_handle_option): Use options structure for
265         -finstrument-functions-exclude- options.
266
267 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
268
269         * doc/options.texi (Var): Document effects of Defer.
270         (Defer): Document.
271         * opt-functions.awk (var_type, var_set): Handle deferred options.
272         * opts-common.c (set_option): Handle CLVC_DEFER.
273         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
274         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
275         fstack-limit-symbol=): Mark as deferred.
276         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
277         plugin.h.
278         (print_filtered_help): Don't report state of CLVC_DEFER options.
279         (common_handle_option): Move code for OPT_fcall_used_,
280         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
281         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
282         OPT_fstack_limit_symbol_ to opts-global.c.
283         (option_enabled, get_option_state): Handle CLVC_DEFER.
284         * opts.h: Include vec.h.
285         (enum cl_var_type): Add CLVC_DEFER.
286         (cl_deferred_option): Define type and vectors.
287         (handle_common_deferred_options): Declare.
288         * opts-global.c: New.
289         * toplev.c (toplev_main): Call handle_common_deferred_options
290         * Makefile.in (OPTS_H): Include $(VEC_H).
291         (OBJS-common): Include opts-global.o.
292         (opts.o): Update dependencies.
293         (opts-global.o): Add dependencies.
294
295 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
296
297         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
298         to objc_declare_protocols.
299
300 2010-11-19  Richard Guenther  <rguenther@suse.de>
301
302         PR lto/45789
303         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
304         IDENTIFIERs do not stream TREE_TYPE.
305         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
306
307 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
308
309         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
310
311 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
312
313         PR target/45870
314         * dwarf2out.c (const_ok_for_output_1): Don't complain about
315         non-delegitimized TLS UNSPECs.
316
317 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
318             Ian Lance Taylor  <iant@google.com>
319
320         * config/darwin-c.c (darwin_additional_format_types): Export.
321
322 2010-11-18  Paul Koning  <ni1d@arrl.net>
323
324         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
325         pointer.
326
327 2010-11-18  Paul Koning  <ni1d@arrl.net>
328
329         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
330         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
331         * config/pdp11/pdp11.opt (-mabshi): Delete.
332
333 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
334
335         * resource.h (struct resources): Fix typo in the comment.
336
337 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
338
339         PR target/46546
340         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
341
342 2010-11-18  Richard Henderson  <rth@redhat.com>
343
344         PR middle-end/46515
345         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
346         maybe_copy_epilogue_insn; handle prologue insns as well.
347         * rtl.h, cfglayout.c: Update for rename.
348         * recog.c (peep2_attempt): Copy prologue/epilogue data for
349         RTX_FRAME_RELATED_P insns.
350
351 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
352
353         PR middle-end/46534
354         * builtins.c (fold_builtin_printf): Don't copy and modify string
355         before build_string_literal, instead modify what
356         build_string_literal returned.
357
358 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
359
360         PR c/33193
361         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
362         REALPART_EXPR and IMAGPART_EXPR.
363
364 2010-11-18  Richard Guenther  <rguenther@suse.de>
365
366         PR tree-optimization/46172
367         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
368         function.
369         (slpeel_tree_peel_loop_to_edge): Call it.
370
371 2010-11-18  Jeff Law  <law@redhat.com>
372
373         PR middle-end-optimization/46297
374         * postreload.c (reload_combine_note_store): Deal with embedded
375         side effects in MEM expressions.
376
377 2010-11-18  Richard Guenther  <rguenther@suse.de>
378
379         PR lto/45089
380         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
381         when checking is not enabled.
382
383 2010-11-18  Richard Guenther  <rguenther@suse.de>
384
385         PR lto/46525
386         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
387         type leaders.
388         (gimple_register_canonical_type): Also cache the canoncial type
389         for non type leaders.
390
391 2010-11-18  Richard Guenther  <rguenther@suse.de>
392
393         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
394
395 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
396
397         PR middle-end/46518
398         * sel-sched-ir.c (init_expr): Use the correct type for
399         target_available.
400         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
401
402 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
403
404         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
405         as well as -mrelocatable at the same time.
406
407 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
408
409         PR target/46422
410         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
411         Call the clz builtin.
412
413 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
414             Steve Ellcey  <sje@cup.hp.com>
415
416         PR middle-end/31490
417         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
418         if section attribute used.
419
420 2010-11-17  Jan Hubicka  <jh@suse.cz>
421
422         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
423         expand errno setting variant when optimizing for size.
424
425 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
426
427         * postreload.c (reload_combine): Call control_flow_insn_p only once.
428         Reverse backward loop.  Fix formatting issues.
429
430 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
431
432         * c-parser.c (c_token_is_qualifier,
433         c_parser_next_token_is_qualifier): New.
434         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
435         Improve error message on specs->tagdef_seen_p.
436         (c_parser_struct_or_union_specifier): Improve error recovery.
437         (c_parser_declspecs): Move exit condition on C_ID_ID early.
438         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
439         using c_parser_next_token_is_qualifier; extend it to cover
440         a ctsk_tagdef typespec and !typespec_ok in general.
441
442 2010-11-17  Richard Guenther  <rguenther@suse.de>
443
444         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
445         (gimple_mod_pow2_value_transform): Likewise.
446         (gimple_mod_subtract_transform): Likewise.
447
448 2010-11-17  Richard Guenther  <rguenther@suse.de>
449
450         PR lto/46504
451         * gimple.c (gimple_register_canonical_type): Make sure to only
452         make type leaders canonical types.
453
454 2010-11-17  Michael Matz  <matz@suse.de>
455
456         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
457         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
458         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
459         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
460         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
461         (pass_build_ssa): ... but here.
462         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
463         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
464         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
465         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
466         * predict.c (rebuild_frequencies): Ditto.
467         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
468         * emit-rtl.c (verify_rtl_sharing): Ditto.
469         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
470         * tree-ssa-live.c (remove_unused_locals): Ditto.
471         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
472         * tree-ssa.c (pass_early_warn_uninitialized,
473         execute_update_addresses_taken, pass_update_address_taken): Ditto.
474         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
475         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
476         * passes.c (pass_postreload, execute_todo): Ditto.
477         * tree-ssanames.c (pass_release_ssa_names): Ditto.
478
479 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
480
481         * doc/invoke.texi (-dy): Remove.
482         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
483         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
484         * langhooks.c (lhd_do_nothing_i): Remove.
485         * langhooks.h (lang_hooks.parse_file): Take no arguments.
486         * toplev.c (set_yydebug): Remove.
487         (compile_file): Update call to lang_hooks.parse_file.
488         (decode_d_option): Don't handle -dy.
489
490 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
491
492         PR rtl-optimization/46440
493         * combine.c (update_cfg_for_uncondjump): When changing
494         an indirect jump into unconditional jump, remove BARRIERs
495         from bb's footer.
496
497 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
498
499         * opts.c (target_handle_option): Do not assert that loc ==
500         UNKNOWN_LOCATION.
501
502 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
503             Richard Guenther  <rguenther@suse.de>
504
505         PR middle-end/45838
506         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
507         call_may_clobber_ref_p_1): Return true for __sync_* and some
508         OpenMP builtins that act as threading barriers.
509
510 2010-11-17  Richard Guenther  <rguenther@suse.de>
511
512         PR tree-optimization/46498
513         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
514
515 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
516
517         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
518         (xtensa_function_arg_boundary): ...this.
519         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
520         thinko in declaration.
521         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
522         number of parameters to picochip_function_arg_boundary.
523         (picochip_arg_advance): Likewise.
524
525 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
526
527         PR target/46512
528         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
529         under check for type.
530
531 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
532
533         * ifcvt.c (dead_or_predicable): Fix typo.
534
535 2010-11-16  Richard Henderson  <rth@redhat.com>
536
537         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
538         * config/s390/s390.opt (mfused-madd): Remove.
539         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
540         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
541         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
542         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
543
544 2010-11-16  Richard Henderson  <rth@redhat.com>
545
546         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
547         * config/rs6000/rs6000.opt (mfused-madd): Remove.
548         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
549         (*altivec_vmaddfp_1): Remove.
550         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
551         (altivec_mulv4sf3): Expand to FMA directly.
552         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
553         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
554         * config/rs6000/paired.md (paired_madds0): Use FMA.
555         (paired_madds1): Likewise.
556         (*paired_madd): Rename from paired_madd; use FMA.
557         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
558         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
559         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
560         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
561         (rs6000_emit_madd): Use fma_optab.
562         (rs6000_emit_msub): Use fms_optab.
563         (rs6000_emit_nmsub): Expand the FMA pattern directly.
564         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
565         (*fmasf4_fpr): Rename from fmasf4_fpr.
566         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
567         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
568         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
569         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
570         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
571         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
572         (*fmadf4_fpr): Rename from fmadf4_fpr.
573         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
574         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
575         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
576         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
577         (fmasf4, fmadf4): Macroize into...
578         (fma<FMA_F>4): ... here.
579         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
580         (nfma<FMA_F>4, nfms<FMA_F>4): New.
581         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
582         TARGET_FUSED_MADD.
583         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
584         (*vsx_fmadd<mode>4_1): Remove.
585         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
586         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
587         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
588         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
589         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
590         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
591         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
592
593 2010-11-16  Richard Henderson  <rth@redhat.com>
594
595         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
596         (fmasf4, fnmadf4, fnmasf4): Likewise.
597         (unnamed plus+mult insns and splitters): Delete.
598
599 2010-11-16  Richard Henderson  <rth@redhat.com>
600
601         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
602         (fnma<VSF>4): Rename from fnms_<VSF>.
603         (fms<VSF>4): Rename from fms_<VSF>.
604         (fma<VDF>4): Rename from fma_<VDF>.
605         (fms<VDF>4): Rename from fms_<VDF>.
606         (nfma<VDF>4): Rename from fnma_<VDF>.
607         (nfms<VDF>4): Rename from fnms_<VDF>.
608         (fnma<VDF>4, fnms<VDF>4): New expanders.
609         (floatunsdisf2): Update for the renames.
610         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
611         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
612
613 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
614
615         PR rtl-optimization/46490
616         * combine.c (expand_compound_operation): Fix thinko.
617
618 2010-11-16  Richard Henderson  <rth@redhat.com>
619
620         PR target/46470
621         * recog.c (peep2_attempt): Convert frame-related info when possible.
622         (peep2_fill_buffer): Allow frame-related insns into the buffer.
623         (peephole2_optimize): Allow peep2_attempt to fail.
624
625 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
626
627         PR rtl-optimization/46315
628         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
629         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
630         extracted from...
631         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
632         (remove_reg_equal_equiv_notes_for_defs): ...this.
633         (delete_unmarked_insns): Adjust to above renaming.
634         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
635         referring to registers set in the insns being moved, if any.
636
637         * df-core.c (df_ref_dump): New function extracted from...
638         (df_refs_chain_dump): ...here.  Call it.
639         (df_regs_chain_dump): Likewise.
640         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
641         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
642
643 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
644
645         PR rtl-optimization/46395
646         * postreload.c (reload_combine): Invalidate register use
647         information on all control flow insns.
648
649         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
650         LABEL_REF in UNSPEC operand.
651
652 2010-11-16  Jan Hubicka  <jh@suse.cz>
653
654         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
655         when !flag_toplevel_reorder do not remove unless variable is
656         COMDAT or ARTIFICIAL.
657         * ipa.c (varpool_can_remove_if_no_refs): ... here.
658         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
659         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
660         * varpool.c (decide_is_variable_needed): Do not handle visibility
661         issues.
662         (varpool_finalize_decl): Likewise.
663         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
664         update outdated comment on DECL_RTL_SET_P check.
665
666 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
667
668         * config/sol2.h (NM_FLAGS): Define.
669         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
670         * doc/tm.texi: Update.
671
672 2010-11-16  Nick Clifton  <nickc@redhat.com>
673
674         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
675         (msubsf4): Rename to fmssf4, and use fma.
676         (nmaddsf4): Rename to fnmasf4 and use fma.
677         (nmsubsf4): Rename to fnmssf4 and use fma.
678
679 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
680
681         PR target/44762
682         * config/score/score3.c (score3_return_in_memory): Constify arguments.
683         (score3_in_small_data_p, score3_function_value): Likewise.
684         (score3_trampoline_init): Use LCT_NORMAL.
685         (score3_print_operand): Initialize code as UNKNOWN.
686         * config/score/predicates.md (score_load_multiple_operation):
687         Remove unused variable.
688         (score_store_multiple_operation): Likewise.
689         * config/score/score7.c (score7_return_in_memory): Constify arguments.
690         (score7_in_small_data_p, score7_function_value): Likewise.
691         (score7_trampoline_init): Use LCT_NORMAL.
692         (score7_print_operand): Initialize code as UNKNOWN.
693         * config/score/score3.h (score3_return_in_memory): Update prototype.
694         (score3_in_small_data_p, score3_function_value): Likewise.
695         * config/score/score-protos.h (score_function_value): Likewise.
696         * config/score/score7.h (score7_return_in_memory): Update prototype.
697         (score7_in_small_data_p, score7_function_value): Likewise.
698         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
699         (score_return_in_memory, score_pass_by_reference): Constify arguments.
700         (score_output_mi_thunk, score_function_prologue): Don't return a value.
701         (score_function_epilogue, score_in_small_data_p): Likewise.
702         (score_option_override, score_asm_trampoline_template): Likewise.
703         (score_trampoline_init, score_print_operand): Likewise.
704         (score_print_operand_address, score_prologue): Likewise.
705         (score_epilogue, score_call, score_call_value): Likewise.
706         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
707         (score_function_arg_advance): Likewise. Make static.
708         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
709         (score_function_arg, score_legitimate_address_p): Make static.
710         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
711         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
712         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
713         Allow (W) == HOST_BITS_PER_WIDE_INT.
714
715         PR java/46386
716         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
717         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
718
719 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
720
721         * config/arc/arc.c: Delete pasto.
722         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
723
724 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
725
726         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
727         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
728         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
729         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
730         (mn10300_preferred_reload_class,
731         mn10300_preferred_output_reload_class): New functions.
732
733 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
734
735         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
736         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
737         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
738         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
739
740 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
741
742         * builtins.c (std_gimplify_va_arg_expr): Use
743         targetm.calls.function_arg_boundary.
744         * function.c (assign_parms, locate_and_pad_parm): Likewise.
745         * calls.c (struct arg_data): Update comment.
746         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
747         * target.def (function_arg_boundary): Define.
748         * targhooks.h (default_function_arg_boundary): Declare.
749         * targhooks.c (default_function_arg_boundary): Define.
750         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
751         TARGET_FUNCTION_ARG_BOUNDARY.
752         (FUNCTION_ARG_BOUNDARY): Delete.
753         (TARGET_FUNCTION_ARG_BOUNDARY): New.
754         * doc/tm.texi: Regenerate.
755         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
756         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
757         * config/arc/arc.c (arc_function_arg_boundary): Define.
758         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
759         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
760         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
761         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
762         (arm_function_arg_boundary): Define.
763         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
764         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
765         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
766         * config/frv/frv.c (frv_function_arg_boundary): Make static.
767         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
768         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
769         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
770         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
771         (ix86_compat_function_arg_boundary): Take and return unsigned int.
772         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
773         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
774         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
775         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
776         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
777         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
778         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
779         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
780         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
781         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
782         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
783         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
784         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
785         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
786         * config/mips/mips.c (mips_function_arg_boundary): Make static.
787         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
788         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
789         * config/pa/pa.c (pa_function_arg_boundary): Define.
790         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
791         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
792         * config/picochip/picochip-protos.h
793         (picochip_get_function_arg_boundary): Delete.
794         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
795         Rename to...
796         (picochip_function_arg_boundary): ...this.  Make static.
797         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
798         (picochip_arg_advance): Adjust.
799         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
800         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
801         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
802         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
803         (rs6000_function_arg_boundary): ...this.  Make static.
804         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
805         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
806         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
807         * config/rx/rx.c (rx_function_arg_boundary): Define.
808         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
809         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
810         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
811         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
812         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
813         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
814         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
815         (xtensa_function_arg_boundary): ...this.  Make static.
816         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
817
818 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
819
820         * expr.c (alignment_for_piecewise_move): New function.
821         (widest_int_mode_for_size): New function.
822         (move_by_pieces, move_by_pieces_ninsns): Call them.
823         (can_store_by_pieces, store_by_pieces_1): Likewise.
824
825 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
826
827         * gcc.c (char_p): Define.  Define a VEC of it.
828         (n_linker_options, n_assembler_options, n_preprocessor_options):
829         Delete.
830         (linker_options, assembler_options, preprocessor_options): Convert
831         to a VEC.
832         (add_preprocessor_option): Adjust.
833         (add_assembler_option): Adjust.
834         (add_linker_option): Adjust.
835         (do_specs_vec): New function.
836         (do_spec_1): Call it.  Adjust for new types.
837
838 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
839
840         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
841         (sreal.o, statistics.o, stringpool.o): Likewise.
842
843 2010-11-16  Richard Guenther  <rguenther@suse.de>
844
845         PR tree-optimization/44545
846         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
847         statements are not reassociatable.
848         (reassociate_bb): Likewise.
849
850 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
851
852         * bitmap.c: Delete unnecessary includes.
853         * ebitmap.c: Likewise.
854         * et-forest.c: Likewise.
855         * sreal.c: Likewise.
856         * statistics.c: Likewise.
857         * stringpool.c: Likewise.
858         * double-int.c: Add comment for inclusion of tm.h.
859
860 2010-11-16  Richard Guenther  <rguenther@suse.de>
861
862         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
863         (visit_nary_op): ... this.
864         (visit_binary_op): Remove.
865         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
866
867 2010-11-16  Richard Guenther  <rguenther@suse.de>
868
869         PR middle-end/45172
870         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
871
872 2010-11-16  Nick Clifton  <nickc@redhat.com>
873
874         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
875         record is packed.
876
877 2010-11-15  Richard Henderson  <rth@redhat.com>
878
879         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
880         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
881         DOT_PROD_EXPR.
882
883 2010-11-15  Richard Henderson  <rth@redhat.com>
884
885         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
886         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
887         fma rtx_code.
888
889 2010-11-15  Richard Henderson  <rth@redhat.com>
890
891         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
892         and *mulsubsf4 respectively.  Use fma rtx_code.
893
894 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
895
896         * gcc.c: Include "vec.h".
897         (argbuf): Make into a VEC.
898         (argbuf_length, argbuf_index): Remove.
899         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
900         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
901         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
902         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
903         (gcc.o): Depend on $(VEC_H).
904
905 2010-11-15  Richard Henderson  <rth@redhat.com>
906
907         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
908         via FMA if unsafe math.
909         (insert_var_expansion_initialization): Handle FMA.
910         (combine_var_copies_in_loop_exit): Likewise.
911
912 2010-11-15  Richard Henderson  <rth@redhat.com>
913
914         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
915         * config/ia64/ia64.opt: Remove mfused-madd.
916         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
917         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
918         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
919         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
920         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
921         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
922         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
923         (fmav2sf4): Rename from fpma; use FMA code.
924         (fmsv2sf4): Rename from fpms; use FMA code.
925         (fnmav2sf4): Rename from *fpnma; use FMA code.
926         * config/ia64/ia64.md (MODE_SDF): New iterator.
927         (suffix): New mode attribute.
928         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
929         (fmssf4): Rename from *fmssf4.
930         (fnmasf4): Rename from *nfmasf4.
931         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
932         (*nmadddf4, *nmadddf4_truncsf): Remove.
933         (fmsdf4): Rename from *fmsdf4.
934         (fnmadf4): Rename from *nfmadf4.
935         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
936         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
937         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
938         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
939         (fmsxf4): Rename from *fmsxf4.
940         (fnmaxf4): Rename from *nfmaxf4.
941         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
942         (*fnmaxf_trunc_<MODE_SDF>): New.
943
944 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
945
946         PR tree-optimization/46461
947         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
948         a gimple val.
949
950 2010-11-15  Ian Lance Taylor  <iant@google.com>
951
952         * godump.c: New file.
953         * common.opt (fdump-go-spec=): New option.
954         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
955         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
956         (TYPE_SYMTAB_IS_DIE): Define.
957         (struct tree_type): Change GTY for symtab field to use
958         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
959         to pick the union field.
960         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
961         (dump_go_spec_init): Declare.
962         * toplev.c (process_options): Handle flag_dump_go_spec.
963         * debug.c: Include "tree.h".
964         (do_nothing_debug_hooks): Set tree_type_symtab_field.
965         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
966         * dbxout.c (dbx_debug_hooks): Likewise.
967         (xcoff_debug_hooks): Likewise.
968         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
969         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
970         SDB_DEBUGGING_INFO is not defined.
971         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
972         (Overall Options): Document -fdump-go-spec.
973         * Makefile.in (OBJS-common): Add godump.o.
974         (debug.o): Add dependency on $(TREE_H).
975         (godump.o): New target.
976         (GTFILES): Add $(srcdir)/godump.c.
977
978 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
979
980         PR debug/46095
981         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
982         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
983         style < 0, add REG_FRAME_RELATED_EXPR.
984
985         PR debug/46387
986         * rtl.h (vt_equate_reg_base_value): New prototype.
987         * alias.c (vt_equate_reg_base_value): New function.
988         * var-tracking.c (vt_init_cfa_base): Use it.
989
990 2010-11-15  Jan Hubicka  <jh@suse.cz>
991             Diego Novillo  <dnovillo@google.com>
992
993         PR lto/41528
994         * doc/lto.texi: Add.
995         * doc/gccint.texi: Add reference to lto.texi.
996         * doc/invoke.texi: Update user documentation for LTO.
997         Move internal flags to lto.texi
998
999 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
1000
1001         * c-typeck.c (build_unary_op): Use
1002         objc_build_incr_expr_for_property_ref to build the pre/post
1003         increment/decrement of an Objective-C property ref, and skip the
1004         lvalue_or_else check in that case.
1005
1006 2010-11-15  Martin Jambor  <mjambor@suse.cz>
1007
1008         PR tree-optimization/46349
1009         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1010         (contains_vce_or_bfcref_p): Likewise.
1011         (sra_modify_assign): Use them.
1012
1013 2010-11-15  Richard Guenther  <rguenther@suse.de>
1014
1015         PR tree-optimization/46467
1016         * tree-ssa-structalias.c (do_structure_copy): Properly treat
1017         variables without subvars.
1018
1019 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
1020
1021         * config/picochip/picochip.c (file header): Picochip name change.
1022         * config/picochip/picochip.md (file header): Likewise.
1023         * config/picochip/predicates.md (file header): Likewise.
1024         * config/picochip/dfa_space.md (file header): Likewise.
1025         * config/picochip/dfa_speed.md (file header): Likewise.
1026         * config/picochip/picochip.h(file header): Likewise.
1027         * config/picochip/constraints.md (file header): Likewise.
1028         * config/picochip/picochip-protos.h (file header): Likewise.
1029         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1030         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1031         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1032         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1033         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1034         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1035         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1036         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1037         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1038         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1039         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1040         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1041         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1042         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1043
1044 2010-11-15  Richard Guenther  <rguenther@suse.de>
1045
1046         PR bootstrap/46474
1047         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1048
1049 2010-11-15  Nick Clifton  <nickc@redhat.com>
1050
1051         * config/stormy16/stormy16.c (direct_return): Do not generate a
1052         direct return for interrupt handlers.
1053
1054 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
1055
1056         * Makefile.in (tm.texi): Replace with rule for:
1057         ($(srcdir)/doc/tm.texi).
1058         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1059         $(srcdir)/doc/tm.texi .
1060         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1061         tm.texi .
1062
1063         PR target/46427
1064         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1065
1066         PR bootstrap/45444
1067         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1068         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1069
1070         PR target/46432
1071         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1072
1073 2010-11-15  Richard Guenther  <rguenther@suse.de>
1074
1075         PR lto/44150
1076         * lto-opts.c (lto_write_options): Write -fexceptions even if
1077         not set by the user.
1078
1079 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1080
1081         PR c/46462
1082         * c-decl.c (declspecs_add_type): Make variables with error types
1083         integers.
1084         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1085         do not start a declaration before an Objective-C foreach.
1086         (c_parser_declaration_or_fndef): Improve recovery after unknown
1087         type name.
1088         (c_parser_for_statement): Hoist entrance of "foreach context"
1089         before ifs, add corresponding reset where it was missing.  Do
1090         not set objc_could_be_foreach_context for C.
1091
1092 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1093
1094         PR tree-optimization/45722
1095         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1096         this is a reference to a component.
1097         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1098         (ipa_note_param_call): Adjust comment.
1099
1100 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
1101
1102         * config/mips/mips.c (machine_function): Remove
1103         initialized_mips16_gp_pseudo_p.
1104         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1105         detect whether a pseudo has already been created.  Unconditionally
1106         create a new one if not.
1107         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1108         expanding to rtl.  Create a new pseudo otherwise, if allowed.
1109
1110 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
1111
1112         PR target/43440
1113         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1114         * tm.texi: Regenerated.
1115         * output.h (decode_reg_name_and_count): Declare.
1116         * varasm.c (decode_reg_name_and_count): New function.
1117         (decode_reg_name): Reimplement using decode_reg_name_and_count.
1118         * reginfo.c (fix_register): Use decode_reg_name_and_count and
1119         iterate over all regs used.
1120         * stmt.c (expand_asm_operands): Likewise.
1121         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1122         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1123         multiple machine registers.
1124
1125 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
1126
1127         * stor-layout.c (place_union_field): Do not put location information
1128         on offset expressions.
1129         (place_field): Likewise.
1130         (finalize_record_size): Likewise on size expressions.
1131         (finalize_type_size): Likewise.
1132         (layout_type): Likewise.
1133
1134 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
1135
1136         PR debug/42889
1137         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1138         * df-core.c (df_set_bb_dirty_nonrl): Remove.
1139         * df.h (df_set_bb_dirty_nonlr): Likewise.
1140
1141 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
1142
1143         * config/mips/mips.md (call_internal): Pass curr_insn to
1144         mips_split_call.
1145         (call_internal_direct): Ditto.
1146         (call_value_internal): Ditto.
1147         (call_value_internal_direct): Ditto.
1148         (call_value_multiple_internal): Ditto.
1149         * config/mips/mips.c (mips_split_call): Do not copy
1150         CALL_INSN_FUNCTION_USAGE here.
1151
1152 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
1153
1154         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1155         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1156         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1157         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1158         (TUNE_LOONGSON_3A): Define.
1159         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1160         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1161         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1162         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1163         (mips_rtx_cost_data): Add Loongson-3A.
1164
1165 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1166
1167         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1168         switches.
1169
1170 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
1171
1172         * dwarf2out.c (macinfo_entry): New struct.
1173         (output_comp_unit): Emit the section start label here and flag that we
1174         will emit an info section.
1175         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1176         emitting directly.
1177         (dwarf2out_end_source_file): Likewise.
1178         (dwarf2out_define): Likewise.
1179         (dwarf2out_undef): Likewise.
1180         (output_macinfo): New.
1181         (dwarf2out_init): Do not emit debug section switches here, allocate a
1182         vec for macinfo, when required.
1183         (dwarf2out_finish): First switch to debug_abbrev_section here.
1184         debug_line_section,  debug_macinfo_section, Likewise.
1185         Check that the pubtypes table has at least one unpruned entry before
1186         trying to emit it.
1187
1188 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1189
1190         PR c/20385
1191         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1192         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
1193         token lookahead.
1194         (c_parser_compound_statement_nostart, c_parser_label,
1195         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1196         (c_parser_declaration_or_fndef): Detect the case now matched by
1197         c_parser_next_tokens_start_declaration, give error and correct it.
1198
1199 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1200
1201         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1202         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1203         with typespec_kind.
1204         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1205         (shadow_tag_warned, check_compound_literal_type): Adjust
1206         uses of tag_defined_p.
1207         (declspecs_add_type): Set typespec_kind.
1208         * c-parser.c (c_parser_declaration_or_fndef,
1209         c_parser_declspecs, c_parser_struct_declaration,
1210         c_parser_parameter_declaration, c_parser_type_name,
1211         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1212         of type_seen_p.
1213         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1214         tag_defined_p, pass ctsk_firstref through.
1215
1216 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
1217
1218         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1219         (struct format_wanted_type): Replace field "name" with "kind", add
1220         "format_start" and "format_length".
1221         (check_format_info_main): Fill in new fields.  Fill in
1222         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
1223         after the final NUL outside the while loop.  Do not include
1224         width and precision modifiers in the format_start/format_length
1225         of the main format.
1226         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1227         arguments.  Compute WANTED_TYPE first so that format_type_warning
1228         can be called for missing arguments.  Adjust calls to
1229         format_type_warning.
1230         (format_type_warning): Fetch as much information as possible
1231         from format_wanted_type.  Adjust printing now that every
1232         warning has a "descr", as well as for missing argument warnings
1233         and to include % sign for format specifiers.
1234
1235 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
1236
1237         PR rtl-optimization/46204
1238         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1239         Update all callers.  Do not recompute topological order.  Adjust
1240         fallthrough edges following a degenerate conditional jump.
1241
1242 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1243
1244         * opts-common.c (control_warning_option): New.
1245         * opts.c (set_default_handlers): New.
1246         (decode_options): Use set_default_handlers and
1247         control_warning_option.
1248         (common_handle_option): Update call to enable_warning_as_error.
1249         (enable_warning_as_error): Take gcc_options parameters.  Use
1250         control_warning_option.
1251         * opts.h (set_default_handlers, control_warning_option): Declare.
1252
1253 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
1254
1255         * Makefile.in (OPTS_H): Define.
1256         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1257         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1258         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1259         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1260         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1261         * gcc.c (driver_handle_option): Take location_t parameter.
1262         (process_command, do_self_spec): Update calls to
1263         read_cmdline_option.
1264         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1265         * langhooks.c (lhd_handle_option): Take location_t parameter.
1266         * langhooks.h (handle_option): Take location_t parameter.
1267         * lto-opts.c (lto_reissue_options): Update call to set_option.
1268         * opts-common.c (handle_option): Make static.  Take location_t
1269         parameter and pass it to other functions.
1270         (handle_generated_option): Take location_t parameter and pass it
1271         to other functions.
1272         (read_cmdline_option): Take location_t parameter and pass it to
1273         other functions.  Use warning_at and error_at.
1274         (set_option): Take location_t parameter and pass it to other
1275         functions.
1276         * opts.c (common_handle_option): Take location_t parameter and
1277         pass it to other functions.
1278         (enable_warning_as_error): Make static.  Take location_t parameter
1279         and pass it to other functions.
1280         (lang_handle_option): Take location_t parameter and pass it to
1281         other functions.
1282         (target_handle_option): Take location_t parameter.
1283         (read_cmdline_options, maybe_default_option,
1284         maybe_default_options, default_options_optimization,
1285         decode_options): Take location_t parameter and pass it to other
1286         functions.
1287         * opts.h: Include input.h.
1288         (struct cl_option_handler_func, decode_options, set_option,
1289         handle_generated_option, read_cmdline_option): Take location_t
1290         parameters.
1291         (handle_option, enable_warning_as_error): Remove.
1292         * toplev.c (toplev_main): Update call to decode_options.
1293
1294 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
1295
1296         * graphite-cloog-util.c (oppose_constraint,
1297         cloog_matrix_to_ppl_constraint,
1298         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1299         CLooG isl uses unsigned integers.  This triggered a warning.
1300
1301 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1302
1303         PR target/46438
1304         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1305         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1306         (xtensa_function_arg_1): De-constify cum.
1307         (xtensa_expand_prologue): Use add_reg_note.
1308
1309         PR target/46435
1310         * config/cris/cris.c (saved_regs_mentioned): Delete.
1311         (cris_reload_address_legitimized): Cast itype to enum reload_type.
1312         Remove unused variable op0p.
1313         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1314         (cris_emit_movem_store): Use add_reg_note.
1315
1316         PR bootstrap/46456
1317         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1318
1319 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1320
1321         * function.c (expand_function_end): Set the locator of the prologue on
1322         the stack checking insns.
1323
1324 2010-11-12  Richard Henderson  <rth@redhat.com>
1325
1326         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1327         * config/xtensa/xtensa.opt (mfused-madd): Remove.
1328         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1329         MASK_FUSED_MADD.
1330         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1331         (fnmasf4): Rename from mulsubsf3; use fma.
1332
1333 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1334             Richard Henderson  <rth@redhat.com>
1335
1336         PR target/46428
1337         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1338         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1339         comparison.
1340
1341 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
1342
1343         * opts-common.c (decode_cmdline_option): Initialize separate_args.
1344
1345 2010-11-12  Jan Hubicka  <jh@suse.cz>
1346
1347         * doc/invoke.texi (early-inlining-insns): Update default.
1348         * params.def (early-inlining-insns): Default to 10.
1349
1350 2010-11-12  Olivier Hainque  <hainque@adacore.com>
1351
1352         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1353
1354 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1355
1356         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1357         (SUPPORTS_INIT_PRIORITY): Define.
1358
1359 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1360
1361         PR target/46430
1362         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1363         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1364         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1365         (avr_device_to_devicelib): Likewise.
1366         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1367         into block.
1368         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1369         (zero_extendhidi2, zero_extendsidi2): Likewise.
1370         * config/avr/avr.c (avr_num_arg_regs): Constify type.
1371         (avr_return_addr_rtx): De-constify tem.
1372         (avr_rotate_bytes): Move declarations to start of block.
1373         Don't use variable length array.  Put nested if/else into block.
1374
1375         PR rtl-optimization/46433
1376         * var-tracking.c: Include tm_p.h .
1377
1378         PR bootstrap/44756
1379         PR build/44767
1380         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1381         should be unsigned.
1382         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1383         * doc/tm.texi: Regenerate.
1384
1385         PR target/46412
1386         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1387         * config/bfin/bfin.c: Include sel-sched.h .
1388         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1389         (expand_interrupt_handler_prologue): Remove unused variable insn.
1390         (bfin_load_pic_reg): Likewise.
1391         (bfin_rtx_costs): Make code / outer_code variables of type
1392         enum rtx_code, copied from re-named parameters.
1393         (bfin_local_alignment): Change align argument and return type
1394         to unsigned.
1395         (bfin_adjust_cost): Remove unused variable insn_type.
1396         Declare variables at start of block.
1397         (struct loop_info): Rename to...
1398         (struct loop_info_d).
1399         (workaround_rts_anomaly): Change type of icode to int.
1400         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1401         with int-typed variable.
1402         (note_np_check_stores): Likewise.
1403         (trapping_loads_p): Remove unused variable pat.
1404         (bfin_expand_binop_builtin): Use expand_normal.
1405         (bfin_expand_unop_builtin): Likewise.
1406         (bfin_expand_builtin): Likewise.  Set tmode before use.
1407
1408         PR middle-end/44769
1409         * final.c (split_double): Don't use BITS_PER_WORD directly in
1410         shift count.
1411
1412         PR target/46431
1413         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1414         assignment.
1415
1416         PR target/46450
1417         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1418         Use add_reg_note.
1419         (xstormy16_function_arg): Dereference cum.
1420         (xstormy16_expand_builtin): Use expand_normal.
1421         Change type of omode to enum machine_mode.
1422         (combine_bnp): Rename and to and_insn.
1423
1424         PR target/46437
1425         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
1426         localreg.
1427
1428 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1429
1430         PR debug/46375
1431         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
1432
1433 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
1434
1435         PR lto/46376
1436         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
1437
1438 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
1439
1440         PR c/44782
1441         * common.opt (fmax-errors=): New option.
1442         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
1443         * diagnostic.h (struct diagnostic_context): Add max_errors field.
1444         * diagnostic.c (diagnostic_initialize): Initialize it.
1445         (diagnostic_action_after_output): Exit if more than max_errors
1446         have been output.
1447         * doc/invoke.texi (Warning Options): Add -fmax-errors.
1448         (-fmax-errors): Document.
1449
1450 2010-11-11  Richard Henderson  <rth@redhat.com>
1451
1452         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
1453
1454 2010-11-11  Richard Henderson  <rth@redhat.com>
1455
1456         * config/fused-madd.opt: New file.
1457         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
1458         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
1459         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1460         * config/i386/i386.opt (mfused-madd): Remove.
1461         * config/i386/sse.md (split_fma): Remove.
1462         (split_fms, split_fnma, split_fnms): Remove.
1463
1464 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
1465
1466         PR target/46088
1467         * config/i386/i386.md (*ashl<mode>3_cconly,
1468         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
1469         change nonimmediate_operand predicate to register_operand.
1470
1471 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
1472
1473         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
1474
1475 2010-11-11  Jan Hubicka  <jh@suse.cz>
1476
1477         * opts.c (finish_options): Do not error on -flto-partition alone.
1478
1479         * doc/invoke.texi (-fwhopr): Merge into -flto section.
1480         (-flto-partition): Document none.
1481         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
1482         * lto-wrapper.c: Update comment.
1483         (run_gcc): Update LTO option parsing.
1484         * opts.c (finish_options): add support -flto-partition=none
1485         (common_handle_option): Remove fwhopr.
1486         * common.opt: Turn fwhopr into flto.
1487         * collect2.c (main): Update option handling.
1488         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
1489         * ipa-split.c (execute_split_functions): Remove flag_whopr.
1490         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1491         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1492         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1493
1494 2010-11-11  Jan Hubicka  <jh@suse.cz>
1495
1496         PR tree-optimize/40436
1497         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1498         (eliminated_by_inlining_prob): ... this one; return 50% probability
1499         for SRA.
1500         (estimate_function_body_sizes): Update use of
1501         eliminated_by_inlining_prob; estimate static function size
1502         for 2 instructions.
1503
1504 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
1505
1506         PR target/44749
1507         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1508         declare.  Change type of argument four to type int.
1509         (mep_secondary_input_reload_class): Returns enum reg_class.
1510         (mep_secondary_output_reload_class): Likewise.
1511         (mep_function_value): Change types of arguments to cont_tree.
1512         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1513         argument four to type int.
1514         (mep_secondary_input_reload_class): Returns enum reg_class.
1515         (mep_secondary_output_reload_class): Likewise.
1516         (mep_function_value): Change types of arguments to cont_tree.
1517         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1518         mep_regno_reg_class to enum reg_class.
1519
1520 2010-11-11  Richard Henderson  <rth@redhat.com>
1521
1522         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1523         that the target has the exact fma operation that we matched.
1524
1525 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1526
1527         * reginfo.c (fix_register): Avoid inserting English word in
1528         diagnostic sentence.  Use %qs for quoting and %'.
1529
1530 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
1531
1532         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1533         Intel processor family 6, model 0x2c.
1534
1535 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1536
1537         * opts.c (warning_as_error_callback,
1538         register_warning_as_error_callback): Remove.
1539         (enable_warning_as_error): Don't use warning_as_error_callback.
1540         * opts.h (register_warning_as_error_callback): Remove.
1541
1542 2010-11-11  Richard Henderson  <rth@redhat.com>
1543
1544         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1545         in between the MULT and the PLUS/MINUS.
1546
1547 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1548
1549         PR middle-end/46388
1550         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1551         BLKmode mode for it.
1552         (expand_expr_real_1): Similarly for op0.
1553
1554 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1555
1556         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1557         Document optional target selector.
1558
1559 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1560
1561         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1562         assembling high and low parts of size if not using 32-bit HWINT; else
1563         use DECL_SIZE_UNITS, not DECL_SIZE.
1564
1565 2010-11-11  Martin Jambor  <mjambor@suse.cz>
1566
1567         PR tree-optimization/46383
1568         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1569         offsets.
1570         (compute_complex_ancestor_jump_func): Likewise.
1571         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1572
1573 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1574
1575         PR debug/46150
1576         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1577         true if expr1->hash != expr2->hash.
1578
1579 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1580
1581         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
1582         diagnostics with lowercase letters.
1583         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
1584         lowercase letters.
1585         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
1586         diagnostic.
1587         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1588         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
1589         lowercase letters.
1590         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1591         Remove trailing ' ' from diagnostic.
1592         * config/avr/avr.c (print_operand_address): Start diagnostic with
1593         a lowercase letter and remove trailing '.'.
1594         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
1595         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
1596         with lowercase letters.  Use %' in diagnostics.  Remove trailing
1597         '.' from diagnostics.
1598         (bfin_handle_longcall_attribute): Use %' in diagnostic.
1599         * config/cris/cris.c (cris_split_movdx,
1600         cris_expand_pic_call_address): Start diagnostics with lowercase
1601         letters.
1602         (cris_asm_output_label_ref): Use %' in diagnostic.
1603         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
1604         letter.
1605         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
1606         lowercase letter.
1607         * config/darwin-c.c (version_as_macro): Start diagnostic with a
1608         lowercase letter.
1609         * config/darwin-driver.c (darwin_default_min_version): Use %' in
1610         diagnostic.
1611         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
1612         diagnostic.
1613         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1614         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
1615         diagnostics.
1616         * config/i386/i386.c (ix86_option_override_internal): Write
1617         diagnostic as a single sentence without trailing '.'.  Use %' in
1618         diagnostics.
1619         (ix86_function_sseregparm, classify_argument): Start diagnostics
1620         with lowercase letters.
1621         (ix86_expand_prologue): Use %' in diagnostic.
1622         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
1623         diagnostic.
1624         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
1625         lowercase letter.
1626         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
1627         diagnostic.
1628         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1629         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
1630         '`' in help text.
1631         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
1632         lowercase letter.
1633         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
1634         lowercase letters.
1635         * config/microblaze/microblaze.c (microblaze_handle_option):
1636         Remove trailing '.' from diagnostic.
1637         (print_operand): Start diagnostic with a lowercase letter.
1638         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
1639         lowercase letters.  Avoid '`' in diagnostics.
1640         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
1641         lowercase letters.  Avoid '`' in diagnostics.
1642         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
1643         lowercase letters.  Avoid '`' in diagnostics.
1644         * config/picochip/picochip.c (picochip_option_override,
1645         picochip_emit_save_register, picochip_function_arg,
1646         picochip_output_label, picochip_output_internal_label,
1647         picochip_asm_output_opcode, picochip_output_cbranch,
1648         picochip_output_compare, picochip_output_branch,
1649         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
1650         diagnostics. Start diagnostics with lowercase letters.  Use %' in
1651         diagnostics.
1652         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
1653         "SPE" capitalization.  Start diagnostic with a lowercase letter.
1654         (rs6000_handle_option): Start diagnostics with lowercase letters.
1655         (def_builtin): Remove trailing '.' from diagnostic.
1656         (rs6000_savres_routine_name): Start diagnostic with a lowercase
1657         letter.
1658         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
1659         diagnostic.
1660         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
1661         lowercase letter.
1662         * config/s390/s390.c (s390_option_override) Start diagnostics with
1663         lowercase letters.  Use %' in diagnostic.
1664         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
1665         lowercase letters.
1666         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
1667         diagnostic.
1668         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
1669         diagnostic.
1670         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
1671         diagnostic.
1672         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1673         * config/spu/spu.c (spu_option_override): Start diagnostics with
1674         lowercase letters.  Use %qs for quoting in diagnostics.
1675         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
1676         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
1677         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
1678         from diagnostic.
1679         * convert.c (convert_to_integer, convert_to_vector): Use %' in
1680         diagnostics.
1681         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
1682         letter and use "cannot" spelling.
1683         * expmed.c (extract_fixed_bit_field): Start diagnostic with
1684         lowercase letter and format as a single sentence without '.'.
1685         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
1686         Use %' in diagnostics.
1687         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1688         Use %' in diagnostics.
1689         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1690         Use %' in diagnostics.
1691         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
1692         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
1693         with lowercase letters and remove tailing '.' and '\n'.
1694         * lto-cgraph.c (input_profile_summary): Start diagnostic with
1695         lowercase letter and remove trailing '.'.
1696         (input_cgraph): Start diagnostics with lowercase letters and
1697         remove trailing '\n'.
1698         * opts.c (finish_options, common_handle_option): Start diagnostics
1699         with lowercase letters and remove trailing '.'.  Fix typo in
1700         diagnostic.
1701         * passes.c (position_pass): Start diagnostic with lowercase letter.
1702         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
1703         register_callback, try_init_one_plugin): Start diagnostics with
1704         lowercase letters.
1705         * reload1.c (spill_failure): Use %' in diagnostic.
1706         (gen_reload): Start diagnostic with a lowercase letter.
1707         * stor-layout.c (place_field): Start diagnostic with a lowercase
1708         letter.
1709         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
1710         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
1711         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
1712         Start diagnostics with lowercase letters, remove trailing '.' and
1713         use %' in diagnostics.
1714         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
1715         (verify_ssa): Don't split diagnostic across two error calls.
1716         Spell out "number" and use %' in diagnostic.
1717         * value-prof.c (visit_hist, check_counter): Start diagnostics with
1718         lowercase letters.
1719
1720 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
1721
1722         PR middle-end/46419
1723         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
1724         (_mm_cvtpu16_ps): Ditto.
1725
1726 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1727
1728         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
1729         warn_larger_than, larger_than_size, warn_frame_larger_than,
1730         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
1731         default_visibility, flag_tls_default): New Variable declarations.
1732         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
1733         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
1734         (v): Declare as Common and document here.
1735         * flags.h (default_visibility, flag_generate_lto,
1736         warn_larger_than, larger_than_size, warn_frame_larger_than,
1737         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
1738         flag_shlib, flag_excess_precision_cmdline): Remove.
1739         (set_Wstrict_aliasing): Update prototype.
1740         * gcc.c (verbose_flag): Remove.
1741         (driver_handle_option): Add diagnostic_context parameter.  Don't
1742         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
1743         incrementing it.
1744         * opts-common.c (handle_option): Pass dc to handler.
1745         * opts.c (warn_larger_than, larger_than_size,
1746         warn_frame_larger_than, frame_larger_than_size,
1747         default_visibility): Remove.
1748         (common_handle_option): Add diagnostic_context parameter.
1749         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
1750         gcc_options parameters.
1751         (lang_handle_option, target_handle_option, read_cmdline_options,
1752         decode_options): Add diagnostic_context parameters.
1753         (finish_options): Access option state through opts pointer where
1754         possible.
1755         (common_handle_option): Access option state through opts pointer
1756         where possible.  Do not set local static variable verbose.  Do not
1757         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
1758         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
1759         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
1760         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
1761         OPT_fwhopr_.  Do not explicitly set .opt file variables for
1762         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
1763         (set_Wstrict_aliasing): Add gcc_options parameter.
1764         * opts.h (struct cl_option_handler_func): Add diagnostic_context
1765         parameter to handler.
1766         (decode_options): Add diagnostic_context parameter.
1767         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
1768         asm_file_name, flag_generate_lto, flag_gen_aux_info,
1769         aux_info_file_name, flag_shlib, flag_tls_default,
1770         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
1771         (toplev_main): Pass global_dc to decode_options.
1772         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
1773         aux_info_file_name, asm_file_name): Remove.
1774         * tree.h (flag_tls_default): Remove.
1775
1776 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1777
1778         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
1779         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
1780
1781 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1782
1783         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
1784         (x86_64-*-*): Likewise.
1785         * config/i386/cpuid.h: Define TBM bit.
1786         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1787         and set has_tbm.
1788         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1789         isa_flag for TBM.
1790         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
1791         (OPTION_MASK_ISA_TBM_UNSET): New.
1792         (ix86_handle_option): Handle -mtbm.
1793         (isa_opts): Add -mtbm.
1794         (enum pta_flags): Add PTA_TBM.
1795         (ix86_option_override_internal): Add TBM support.
1796         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
1797         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
1798         (IX86_BUILTIN_BEXTRI64): Likewise.
1799         (bdesc_args): Add TBM intrinsics.
1800         (ix86_expand_builtin): Add TBM specific case.
1801         * config/i386/i386.h (TARGET_TBM): New for TBM.
1802         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
1803         (tbm_bextri_<mode>): Likewise.
1804         (*tbm_blcfill_<mode>): Likewise.
1805         (*tbm_blci_<mode>): Likewise.
1806         (*tbm_blcic_<mode>): Likewise.
1807         (*tbm_blcmsk_<mode>): Likewise.
1808         (*tbm_blcs_<mode>): Likewise.
1809         (*tbm_blsfill_<mode>): Likewise.
1810         (*tbm_blsic_<mode>): Likewise.
1811         (*tbm_t1mskc_<mode>): Likewise.
1812         (*tbm_tzmsk_<mode>): Likewise.
1813         * config/i386/i386.opt: Add -mtbm.
1814         * config/i386/tbmintrin.h (__bextri_u32): New.
1815         (__blcfill_u32): Likewise.
1816         (__blci_u32): Likewise.
1817         (__blcic_u32): Likewise.
1818         (__blcmsk_u32): Likewise.
1819         (__blcs_u32): Likewise.
1820         (__blsfill_u32): Likewise.
1821         (__blsic_u32): Likewise.
1822         (__t1mskc_u32): Likewise.
1823         (__tzmsk_u32): Likewise.
1824         (__bextri_u64): Likewise.
1825         (__blcfill_u64): Likewise.
1826         (__blci_u64): Likewise.
1827         (__blcic_u64): Likewise.
1828         (__blcmsk_u64): Likewise.
1829         (__blcs_u64): Likewise.
1830         (__blsfill_u64): Likewise.
1831         (__blsic_u64): Likewise.
1832         (__t1mskc_u64): Likewise.
1833         (__tzmsk_u64): Likewise.
1834         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
1835         * doc/invoke.texi: Document -mtbm.
1836         * doc/extend.texi: Document TBM built-in functions.
1837
1838 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1839
1840         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
1841         (x86_64-*-*): Likewise.
1842         * config/i386/cpuid.h: Define BMI bit.
1843         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1844         and set has_bmi.
1845         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1846         isa_flag for BMI.
1847         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
1848         (OPTION_MASK_ISA_BMI_UNSET): New.
1849         (ix86_handle_option): Handle -mbmi.
1850         (isa_opts): Add -mbmi.
1851         (enum pta_flags): Add PTA_BMI.
1852         (ix86_option_override_internal): Add BMI support.
1853         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
1854         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
1855         (IX86_BUILTIN_BEXTR64): Likewise.
1856         (IX86_BUILTIN_CTZS): Likewise.
1857         (bdesc_args): Add BMI intrinsics.
1858         (ix86_expand_args_builtin): Add BMI specific cases.
1859         * config/i386/i386.h (TARGET_BMI): New for BMI.
1860         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
1861         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
1862         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
1863         (UNSPEC_TZCNT): Likewise.
1864         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
1865         (bmi_andn_<mode>): New for BMI.
1866         (bmi_bextr_<mode>): Likewise.
1867         (bmi_blsi_<mode>): Likewise.
1868         (bmi_blsmsk_<mode>): Likewise.
1869         (bmi_blsr_<mode>): Likewise.
1870         * config/i386/i386.opt: Add -mbmi.
1871         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
1872         * config/i386/bmiintrin.h (__lzcnt_u16): New.
1873         (__tzcnt_u16): Likewise.
1874         (__andn_u32): Likewise.
1875         (__bextr_u32): Likewise.
1876         (__blsi_u32): Likewise.
1877         (__blsmsk_u32): Likewise.
1878         (__blsr_u32): Likewise.
1879         (__lzcnt_u32): Likewise.
1880         (__tzcnt_u32): Likewise.
1881         (__andn_u64): Likewise.
1882         (__bextr_u64): Likewise.
1883         (__blsi_u64): Likewise.
1884         (__blsmsk_u64): Likewise.
1885         (__blsr_u64): Likewise.
1886         (__lzcnt_u64): Likewise.
1887         (__tzcnt_u64): Likewise.
1888         * doc/invoke.texi: Document -mbmi and -mno-bmi.
1889         * doc/extend.texi: Document BMI built-in functions.
1890
1891 2010-11-10  Jan Hubicka  <jh@suse.cz>
1892
1893         PR tree-optimize/46228
1894         * doc/invoke.texi (comdat-sharing-probability): Document.
1895         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
1896         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
1897
1898 2010-11-10  Jan Hubicka  <jh@suse.cz>
1899
1900         PR tree-optimize/46228
1901         * cgraph.c (cgraph_propagate_frequency): Fix typo.
1902
1903 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
1904
1905         PR tree-optimization/46414
1906         * tree-inline.c (estimate_move_cost): Check preferred vector
1907         mode for vector type.
1908
1909 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1910
1911         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
1912
1913 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
1914
1915         PR tree-optimization/45971
1916         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
1917         for phi nodes analyzable by scev.
1918
1919 2010-11-10  Richard Guenther  <rguenther@suse.de>
1920
1921         PR tree-optimization/44964
1922         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
1923
1924 2010-11-10  Martin Jambor  <mjambor@suse.cz>
1925
1926         PR tree-optimization/46351
1927         PR tree-optimization/46377
1928         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
1929         aggregate bit-fields.
1930
1931 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1932
1933         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1934         * doc/tm.texi: Regenerate.
1935         * opts-common.c (tm.h): Don't include.
1936         (target_option_translations): Remove.
1937         (decode_cmdline_options_to_array): Don't handle translating options.
1938         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
1939         * config/darwin-driver.c: Don't condition includes on
1940         CROSS_DIRECTORY_STRUCTURE.
1941         (darwin_default_min_version): Make static.
1942         (darwin_driver_init): New.  Call darwin_default_min_version if not
1943         CROSS_DIRECTORY_STRUCTURE.
1944         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1945         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
1946         (ASM_SPEC): Add %{static}.
1947         (darwin_default_min_version): Don't declare.
1948         (darwin_driver_init): Declare.
1949         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
1950         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
1951         * config/darwin.opt (all_load, allowable_client,
1952         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
1953         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
1954         exported_symbols_list, filelist, findirect-virtual-calls,
1955         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
1956         framework, fterminated-vtables, gfull, gused, image_base, init,
1957         install_name, multi_module, multiply_defined,
1958         multiply_defined_unused, no_dead_strip_inits_and_terms,
1959         seg_addr_table, seg_addr_table_filename, segaddr,
1960         segs_read_only_addr, segs_read_write_addr, single_module,
1961         umbrella, unexported_symbols_list, weak_reference_mismatches,
1962         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
1963         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
1964         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
1965         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
1966         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
1967         (ASM_SPEC): Add %{static}.
1968         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1969         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1970         (DRIVER_SELF_SPECS): Handle options formerly in
1971         TARGET_OPTION_TRANSLATE_TABLE.
1972         * config/mep/mep.opt (mfar): New.
1973         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1974         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
1975         TARGET_OPTION_TRANSLATE_TABLE.
1976         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
1977         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1978         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
1979         ffix-and-continue, findirect-data): New.
1980         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1981         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
1982         (mnofpu): Define mask and use Report here.
1983
1984 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1985
1986         * config/s390/s390.c (s390_emit_prologue): Report the stack
1987         size if -fstack-usage is used.
1988
1989 2010-11-10  Richard Guenther  <rguenther@suse.de>
1990
1991         PR tree-optimization/46398
1992         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
1993
1994 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
1995
1996         PR target/44760
1997         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
1998         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
1999         GP_REG_OR_PSEUDO_STRICT_P.
2000         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2001         unexpected alternative.
2002         (*movsf_internal): Likewise.
2003         (indirect_jump): Replace call to non-existant function with call to
2004         internal_error.
2005         (tablejump): Likewise.
2006         * config/iq2000/iq2000.c: Include df.h .
2007         (iq2000_function_arg_advance): Use CONST_CAST2.
2008         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2009         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2010         a non-zero function address.
2011         (iq2000_initial_elimination_offset): Add gcc_unreachable for
2012         unexpected value of FROM.
2013         (symbolic_expression_p): Delete.
2014         (iq2000_function_value): Constify func.
2015         (expand_one_builtin): Use expand_normal.
2016         (iq2000_print_operand): Don't print VALUE if calculating it failed.
2017
2018         PR rtl-optimization/44764
2019         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2020
2021         PR target/46407
2022         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2023         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2024         with ATTRIBUTE_UNUSED.
2025         (valid_psw_flag): Constify parameter which.
2026         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2027
2028         PR target/46415
2029         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2030         (mmix_dbx_register_number): Likewise.
2031         * config/mmix/mmix.c: Include df.h .
2032         (mmix_local_alignment): Change argument basic_align and return type
2033         to unsigned.
2034         (mmix_dbx_register_number): Change argument and return type to
2035         unsigned.
2036         (mmix_expand_prologue): Use add_reg_note.
2037
2038         PR target/46417
2039         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2040         (spu_split_store): Use aform.
2041         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2042
2043 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2044
2045         PR/46268
2046         * doc/gty.texi (GTY Options): Clarify that variable_size produces
2047         allocators taking size in bytes, compare with length option.  Add
2048         size calculation example.
2049         (Invoking the garbage collector): Ensure that sentences are
2050         followed by two spaces.  Describe that pointer fields must be
2051         initialized at ggc_collect call.
2052         (Troubleshooting): New section.
2053
2054 2010-11-09  Jan Hubicka  <jh@suse.cz>
2055
2056         PR tree-optimization/40436
2057         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2058         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2059         normal instructions; be sure bultin is not implemented in this file;
2060         compute non-zero return cost.
2061         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2062         * tree-inline.h (eni_weights_d): Add return cost.
2063
2064 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
2065
2066         * c-parser.c (c_parser_struct_declaration): Handle declaration
2067         specifiers followed by CPP_CLOSE_BRACE.
2068
2069 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2070
2071         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2072         split occurs before reload, and we allocate memory at the time of
2073         the split, not during expansion.  Add attributes.
2074         (floatsi<mode>2_lfiwax_mem): Ditto.
2075         (floatunssi<mode>2_lfiwzx): Ditto.
2076         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2077         (floatsidf2): Ditto.
2078         (floatunssisf2): Ditto.
2079         (floatunssidf2): Ditto.
2080         (fix_trunc<mode>si2): Ditto.
2081         (fix_trunc<mode>si2_stfiwx): Ditto.
2082         (fix_trunc<mode>si2_internal): Ditto.
2083         (fix_trunc<mode>si2): Ditto.
2084         (fix_trunc<mode>di2): Ditto.
2085         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2086         (floatsisf2): Ditto.
2087         (floatdidf2_mem): Ditto.
2088         (floatunsdidf2_mem): Ditto.
2089         (floatunsdidf2): Ditto.
2090         (floatdisf2_internal1): Ditto.
2091         (floatdisf2_mem): Ditto.
2092         (floatunsdisf2_mem): Ditto.
2093         (floatsi<mode>2_lfiwax_mem2): Delete.
2094         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2095         (fix_trunc<mode>si2_mem): Ditto.
2096         (fixuns_trunc<mode>si2_mem): Ditto.
2097         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2098         type operations to reduce copying the values to multiple memory slots.
2099         (roundu32<mode>2_fprs): Ditto.
2100
2101         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2102         PRE_INC, PRE_DEC, PRE_MODIFY.
2103         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2104
2105         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2106         Delete prototype.
2107
2108 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2109
2110         PR target/43808
2111         * cfgexpand.c (partition_stack_vars): Call
2112         update_alias_info_with_stack_vars unconditionally.
2113         (update_alias_info_with_stack_vars): Allow unused
2114         unreferenced vars when not optimizing.
2115
2116 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
2117
2118         PR tree-optimization/46036
2119         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2120         add_to_dst_predicate_list.
2121
2122 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2123
2124         PR debug/46171
2125         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2126         earlier.
2127         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2128         argument, call dead_debug_reset when adding REG_UNUSED note.
2129         (dead_debug_reset): New function.
2130         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2131         df_create_unused_note callers.
2132
2133 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
2134
2135         * config/fr30/fr30.c: Include "df.h".
2136
2137 2010-11-09  Richard Guenther  <rguenther@suse.de>
2138
2139         PR tree-optimization/46355
2140         * tree-loop-distribution.c (tree_loop_distribution): Do not
2141         distribute loops without a single exit.
2142
2143 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2144
2145         PR rtl-optimization/46237
2146         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2147         saved hard regs if they might get partially clobbered.
2148
2149 2010-11-09  Paul Koning  <ni1d@arrl.net>
2150
2151         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2152
2153 2010-11-09  Richard Guenther  <rguenther@suse.de>
2154
2155         PR tree-optimization/46177
2156         * tree-loop-distribution.c (prop_phis): Remove.
2157         (generate_builtin): Re-use the old loop exit edge to avoid
2158         needing to update PHI nodes.
2159
2160 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
2161
2162         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2163         type of args_size to unsigned HOST_WIDE_INT.
2164
2165         PR target/44755
2166         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2167         * config/t-pnt16-warn: New file.
2168         * config/picochip/picochip.c (picochip_emit_stack_allocate):
2169         Use add_reg_note.
2170         (picochip_emit_save_register): Likewise.
2171         (picochip_emit_restore_register): Remove variable insn.
2172         (picochip_legitimize_address): Don't use C++ style comments.
2173         (picochip_legitimize_reload_address): Likewise.
2174         (reorder_var_tracking_notes): Remove variable vliw_start.
2175         (picochip_reorg): Cast first arguemnt to emit_note_after to
2176         enum insn_note.
2177         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2178         (picochip_expand_builtin_3op): Likewise.
2179         (picochip_expand_builtin_2opvoid): Likewise.
2180         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2181         (picochip_expand_array_testport): Likewise.
2182         (picochip_init_builtins): Remove unused variables.
2183         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2184         to unsigned long, and output it as such.
2185         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2186         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2187         (schedType): Cast result of picochip_schedule_type to
2188         enum attr_schedType.
2189
2190         PR target/44759
2191         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2192         conditional to type of S.
2193         (mn10300_function_arg): Remove unused variable align.
2194         (mn10300_arg_partial_bytes): Likewise.
2195         * config/mn10300/mn10300.md (attribute cpu): Cast value to
2196         enum attr_cpu.
2197
2198 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
2199
2200         PR bootstrap/46392
2201         * gengtype-parse.c (type): Call get_input_file_name to get file name.
2202
2203 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2204
2205         * tree.h (contains_placeholder_p): Fix comment.
2206         (type_contains_placeholder_p): Adjust comment.
2207         * tree.c (contains_placeholder_p): Fix comment.
2208         (type_contains_placeholder_1): Do not recurse on pointed-to types and
2209         adjust comment.
2210         (type_contains_placeholder_p): Add comment.
2211
2212 2010-11-09  Paul Koning  <ni1d@arrl.net>
2213
2214         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2215         output of byte values.
2216
2217 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
2218
2219         PR middle-end/46360
2220         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2221         not in SSA mode.
2222
2223 2010-11-09  Richard Guenther  <rguenther@suse.de>
2224
2225         PR middle-end/46221
2226         * varasm.c (compute_visible_aliases): New function.
2227         (remove_unreachable_alias_pairs): Aliases make a target available
2228         even though we reclaimed the cgraph node.
2229         (finish_aliases_1): Likewise.
2230         * Makefile.in (varasm.o): Add pointer-set.h dependency.
2231
2232 2010-11-09  Nick Clifton  <nickc@redhat.com>
2233
2234         * config/mn10300/mn10300-modes.def: New file.
2235
2236 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
2237             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2238
2239         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2240         (plugin_files, get_file_basename, get_file_realbasename)
2241         (get_file_langdir, error_at_line, gt_files, this_file)
2242         (system_h_file, read_input_list, create_field_all)
2243         (get_file_srcdir_relative_path, get_file_basename)
2244         (get_file_langdir, get_file_gtfilename)
2245         (get_output_file_with_visibility, get_output_file_name)
2246         (struct flist, put_mangled_filename, walk_type)
2247         (put_mangled_filename, finish_root_table, write_roots): Use
2248         input_file-s.
2249         (lang_dir_names, num_lang_dirs): Remove static.
2250         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2251         (main): Use input_file-s.
2252
2253         * gengtype.h: (struct input_file_st, input_file): New type.
2254         (struct fileloc): Use it.
2255         (gt_files, num_gt_files, this_file, system_h_file)
2256         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2257         (get_input_file_name): New function.
2258         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2259         use input_file.
2260         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2261         (get_output_file_name): Ditto.
2262
2263         * gengtype-lex.l (yybegin): Use input_file.
2264
2265         * gengtype-parse.c (parse_error): Use input_file.
2266
2267 2010-11-08  Xinliang David Li  <davidxl@google.com>
2268
2269         PR tree-optimization/46316
2270         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2271         * double-int.h (double_int_mul_with_sign): New function.
2272         * double-int.c (double_int_mul_with_sign): New function.
2273
2274 2010-11-08  Paul Koning  <ni1d@arrl.net>
2275
2276         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2277
2278 2010-11-08  Paul Koning  <ni1d@arrl.net>
2279
2280         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2281
2282 2010-11-08  Paul Koning  <ni1d@arrl.net>
2283
2284         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2285         to 8 bits.
2286
2287 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2288
2289         PR target/46378
2290         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2291         turn on ISA 2.04 rounding instructions for power5.
2292
2293         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2294         not ISA 2.02.
2295
2296         PR target/45585
2297         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2298         in FPR registers.
2299         (movdi_low_st): Ditto.
2300
2301 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2302             Richard Henderson  <rth@redhat.com>
2303
2304         PR target/44758
2305         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2306         (attribute acc_group): Cast value to enum attr_acc_group.
2307         (*movdi_nodouble+6): Use gen_int_mode.
2308         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2309         if RTX_CODE is defined or not.
2310         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2311         struct frv_io.
2312         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2313         (frv_frame_access, frv_expand_prologue): Remove unused variables.
2314         (frv_expand_block_clear): Likewise.
2315         (frv_trampoline_init): Use LCT_NORMAL.
2316         (struct frv_packet_group): New struct, broken out of type of
2317         frv_packet.
2318         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2319         use cast in loop counter increment.
2320         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2321         assigning to io->type.
2322         (bdesc_set): Use rtx_code UNKNOWN in initializer.
2323         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2324         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2325         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2326         (frv_read_argument): Use expand_normal.
2327
2328         PR target/44757
2329         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2330         lm32_legitimate_constant_p.
2331         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2332         * config/lm32/lm32.c (gen_int_relational): Make new block for
2333         LE / LT / LEU / LTU case.  Declare variables at start of block.
2334         (lm32_block_move_inline): Use XALLOCAVEC.
2335
2336 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2337
2338         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2339
2340 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2341
2342         * gengtype (get_output_file_for_structure): Ensure type is union
2343         or struct.
2344         (write_splay_tree_allocator_def): Use
2345         get_output_file_with_visibility.
2346
2347 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2348
2349         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2350         to defined values in case of an error.
2351         (s390_option_override): Skip further processing if the -march
2352         parameter wasn't recognized.
2353
2354 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2355
2356         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2357         assert that REG is a hard register number before using it as an index.
2358
2359         PR bootstrap/46358
2360         * config/i386/i386.c (ix86_expand_split_stack_prologue):
2361         Avoid warnings when HOST_WIDE_INT is 32 bit.
2362
2363 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2364
2365         PR target/46208
2366         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2367         (sparc_promote_prototypes): Likewise.
2368         (sparc_promote_function_mode): Promote in 32-bit mode as well.
2369         (sparc_return_in_memory): Remove superfluous parentheses.
2370         (sparc_struct_value_rtx): Fix long lines.
2371         (sparc_function_value_1): Promote in 32-bit mode as well.
2372
2373 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
2374
2375         PR rtl-optimization/45352
2376         * sel-sched.c (find_best_expr): Do not set pneed_stall when
2377         the variable_issue hook is not implemented.
2378         (fill_insns): Remove dead variable stall_iterations.
2379         (init_seqno_1): Force EBB start for resetting sched cycles on any
2380         successor blocks of the rescheduled region.
2381         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2382         (reset_sched_cycles_in_current_ebb): Add debug printing.
2383         New variable issued_insns.  Advance state when we have issued
2384         issue_rate insns.
2385
2386 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2387
2388         * gengtype (main): Get here's position using POS_HERE macro for
2389         do*typedef calls.
2390
2391 2010-11-07  Ian Lance Taylor  <iant@google.com>
2392
2393         PR target/46089
2394         * config/i386/i386.c (split_stack_fn_large): New static variable.
2395         (ix86_expand_split_stack_prologue): Handle large model.
2396
2397 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
2398
2399         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2400         all possible addressing modes.
2401
2402 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
2403
2404         PR tree-optimization/46346
2405         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2406
2407 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2408
2409         * config/mips/mips.c: Revert previous patch.
2410         * config/mips/mips.md: Likewise.
2411
2412 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2413
2414         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2415         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2416         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2417         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
2418         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
2419         to use FMA.
2420         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
2421         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
2422         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
2423         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2424
2425 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
2426
2427         PR c/43384
2428         * c-decl.c (lookup_label): Labels can only be referenced in a
2429         function's scope.
2430         (store_parm_decls_oldstyle): Skip erroneous parameters.
2431
2432 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
2433
2434         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2435         LIBCALL_VALUE): Remove macros.
2436         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2437         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2438         (fr30_function_value_regno_p, fr30_function_value,
2439         fr30_libcall_value): New functions.
2440
2441 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
2442
2443         PR middle-end/46314
2444         * target.def (generate_internal_label): New asm_out hook.
2445         * output.h (default_generate_internal_label): Declare.
2446         * varasm.c (default_generate_internal_label): Define.
2447
2448 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
2449
2450         PR target/44981
2451         * doc/extend.tex (format): Document NSString extension.
2452         (format_arg): Likewise.
2453         (Darwin Format Checks): New section.
2454         * doc/tm.texi: Document string object hooks (generated).
2455         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
2456         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2457         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2458         * target.def (objc_construct_string_object): Rename, amend
2459         documentation.
2460         (string_object_ref_type_p): New hook.
2461         (check_string_object_format_arg): New hook.
2462         * c-parser.c (c_parser_attributes): Allow objective-c class names as
2463         attribute identifiers.
2464         * config/darwin-c.c (darwin_cfstring_ref_p): New.
2465         (darwin_check_cfstring_format_arg): New.
2466         (darwin_additional_format_types): New.
2467         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
2468         (darwin_check_cfstring_format_arg): New.
2469         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
2470         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2471         (TARGET_N_FORMAT_TYPES): New.
2472         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2473
2474 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
2475             Pascal Obry  <obry@adacore.com>
2476
2477         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
2478         in 64-bit mode and 17 otherwise.
2479
2480 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2481
2482         PR debug/45939
2483         * var-tracking.c (emit_note_insn_var_location): Make sure that
2484         call related var location notes come before the normal ones.
2485
2486 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2487
2488         PR target/46326
2489         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2490         in the last change.
2491
2492 2010-11-05  Ian Lance Taylor  <iant@google.com>
2493
2494         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2495
2496 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2497
2498         PR c/44772
2499         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2500         pointer_set_contains if DECL_NAME is NULL.
2501
2502 2010-11-05  Ian Lance Taylor  <iant@google.com>
2503
2504         PR target/46084
2505         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2506         request enough additional space for alignment, and force alignment.
2507
2508 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
2509
2510         * config/i386/i386.c (legitimate_pic_address_disp_p):
2511         Handle UNSPEC_PCREL.
2512         (ix86_legitimate_address_p): Likewise.
2513         (legitimize_pic_address): Likewise.
2514         (output_pic_addr_const): Likewise.
2515         (ix86_delegitimize_address): Likewise.
2516         (ix86_find_base_term): Likewise.
2517         (memory_address_length): Likewise.
2518         (x86_output_mi_thunk): Handle special case x64
2519         for non local binding.
2520         * config/i386/i386.md (UNSPEC_PCREL): New.
2521         * config/i386/winnt.c (i386_pe_binds_local_p):
2522         Allow weak symbol for x64 windows with non-local binding.
2523
2524 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2525
2526         PR target/45670
2527         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2528         instead of EXPAND_NORMAL for base expansion.
2529
2530 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
2531
2532         * config.gcc: Support --with-fpmath=avx for x86.
2533         * config/i386/avxmath.h: New.
2534         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2535
2536 2010-11-05  Ian Lance Taylor  <iant@google.com>
2537
2538         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2539         * gengtype.c (walk_type): Don't recognize descbits option.
2540
2541 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
2542
2543         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2544         WORD_SWITCH_TAKES_ARG): Remove.
2545         * doc/options.texi (Args): Document.
2546         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2547         * doc/tm.texi: Regenerate.
2548         * opt-functions.awk (switch_flags): Handle Args.
2549         * opts-common.c: Update comment on tm.h include.
2550         (decode_cmdline_option): Handle options with multiple arguments.
2551         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2552         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2553         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2554         CL_COMMON): Update values.
2555         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2556         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2557         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2558         sectobjectsymbols, sectorder, segcreate, segprot): New.
2559
2560 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2561             Uros Bizjak  <ubizjak@gmail.com>
2562
2563         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2564         256bit AVX register is used.
2565         (ix86_expand_vector_move_misalign): Likewise.
2566         (ix86_expand_vector_move): Replace use_avx256_p with
2567         VALID_AVX256_REG_MODE.
2568
2569 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
2570
2571          PR target/44750
2572         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2573         change.  Set $@-warn.o to -Wno-error.
2574
2575         PR bootstrap/44756
2576         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2577         comparing it to a signed value.
2578
2579         PR middle-end/44766
2580         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
2581         PR bootstrap/44770
2582         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
2583         to i.
2584
2585         PR target/44754
2586         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
2587         (m32c_function_arg).  Add comma between arguments two and three.
2588         (m32c_promote_prototypes): Remove declaration.
2589         (current_function_special_page_vector): Likewise.
2590         (m32c_regno_reg_class): Change return type to enum reg_class.
2591         (m32c_pushm_popm): Use add_reg_note.
2592         (m32c_push_rounding): Change return type to unsigned int.
2593         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
2594         enum reload_type.
2595         (m32c_insert_attributes): Constify variable name.
2596         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
2597         (m32c_prepare_shift): Remove variable lref.
2598         (m32c_expand_movcc): Remove variable cmp.
2599         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
2600         (m32c_compare_redundant): Remove variable op2.
2601         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
2602         (m32c_pragma_memregs): Assign the number to target_memregs.
2603         (m32c_pragma_address): Remove variable var_str.
2604         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
2605         enum reg_class.
2606         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
2607         * config/m32c/bitops.md (andsi3): Add default case to switch.
2608         (iorsi3, xorsi3): Likewise.
2609         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
2610         * config/m32c/jump.md (call, call_value): Likewise.
2611         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
2612         (m32c_regno_reg_class): Likewise.
2613         (current_function_special_page_vector): Declare.
2614
2615 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2616
2617         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
2618
2619         PR tree-optimization/46099
2620         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
2621         if it is NULL and uid wasn't found in the hash table.  Just fold the
2622         result if it is NULL otherwise.  Insert other potentially needed
2623         stmts right before current stmt instead of on the entry edge.
2624         (struct elv_data): Add gsi and reset fields.
2625         (eliminate_local_variables_1): Adjust caller.  If take_address_of
2626         failed for debug stmt, set dta->reset and return.
2627         (eliminate_local_variables_stmt): Change STMT argument for GSI,
2628         pass GSI through to the callback, handle resetting of debug stmts.
2629         (eliminate_local_variables): Adjust caller.  Process debug stmts
2630         in second phase.
2631
2632         PR middle-end/43690
2633         * gimplify.c (gimplify_asm_expr): If a "m" input is a
2634         {pre,post}{in,de}crement, fail.
2635
2636         PR debug/46307
2637         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
2638         * tree-pretty-print.c (dump_generic_node): Likewise.
2639         (op_code_prio): Likewise.
2640         * cfgexpand.c (expand_debug_expr): Likewise.
2641
2642 2010-11-04  Paul Koning  <ni1d@arrl.net>
2643
2644         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
2645         constraints.
2646
2647 2010-11-04  Chao-ying Fu  <fu@mips.com>
2648
2649         * configure.ac: Test assembler support for DSP Rev1 mult.
2650         * configure: Regenerate.
2651         * config.in: Regenerate.
2652         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
2653         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
2654         (CODE_FOR_mips_multu): New define.
2655         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
2656         dspr2_32 to dsp_32.
2657         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
2658         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
2659         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
2660         New define_expand patterns.
2661         * config/mips/constraints.md (ka): Update the constraint to test
2662         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
2663         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
2664         mips_multu): Delete.
2665         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
2666         Change target constraint to "ka".
2667         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
2668         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
2669         Emit the accumulator destination when ISA_HAS_DSP_MULT.
2670         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
2671         Emit the accumulator destination when ISA_HAS_DSP_MULT.
2672         (<u>maddsidi4): Likewise.
2673         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
2674         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
2675
2676 2010-11-04  Paul Koning  <ni1d@arrl.net>
2677
2678         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
2679
2680 2010-11-04  Paul Koning  <ni1d@arrl.net>
2681
2682         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
2683
2684 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
2685
2686         Fixed using the Objective-C 2.0 dot-syntax with class names.
2687         * c-parser.c (c_parser_next_token_starts_declspecs): In
2688         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
2689         (c_parser_next_token_starts_declaration): Same.
2690         (c_parser_postfix_expression): Parse the Objective-C 2.0
2691         dot-syntax with a class name.
2692
2693 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
2694
2695         * final.c (compute_alignments): Compute/free loop info all the time.
2696         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
2697         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
2698         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
2699         * config/rs6000/rs6000.c (cfgloop.h): Include.
2700         (can_override_loop_align): New.
2701         (rs6000_option_override_internal): Set it.
2702         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
2703         (rs6000_loop_align): New function.
2704         (rs6000_loop_align_max_skip): Likewise.
2705
2706 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2707
2708         PR driver/45703
2709         * collect2.c (main): Print --help output to stdout.  Do not
2710         exit right away, so ld --help is appended.  Add empty lines
2711         to separate output suitably.
2712
2713 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
2714
2715         PR tree-optimization/46233
2716         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
2717         after calling analyze_function, not before.
2718
2719         PR target/46234
2720         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
2721         instead of build_va_arg_indirect_ref.
2722         * config/spu/spu.c (spu_va_start): Likewise.
2723         * config/s390/s390.c (s390_va_start): Likewise.
2724
2725 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
2726
2727         PR middle-end/46292
2728         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
2729         if the innermode is not vector mode, determine the mode of a subreg
2730         by using mode_for_size of inner_size.
2731
2732 2010-11-04  Richard Guenther  <rguenther@suse.de>
2733
2734         PR rtl-optimization/46183
2735         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
2736         (execute_rtl_pre): Likewise.
2737         (execute_rtl_hoist): Likewise.
2738
2739 2010-11-04  Richard Guenther  <rguenther@suse.de>
2740
2741         PR tree-optimization/46068
2742         * ipa-split.c (consider_split): Remove gcc_unreachable.
2743
2744 2010-11-04  Richard Guenther  <rguenther@suse.de>
2745
2746         * tree-nested.c (build_addr): Use build_fold_addr_expr.
2747
2748 2010-11-04  Richard Guenther  <rguenther@suse.de>
2749
2750         PR tree-optimization/45991
2751         * gimplify.c (force_gimple_operand_1): Use the provded test
2752         function in the initial test.
2753
2754 2010-11-04  Jeff Law  <law@redhat.com>
2755
2756         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
2757         of readonly memory equivalances for const/pure calls.
2758
2759 2010-11-04  Richard Guenther  <rguenther@suse.de>
2760
2761         PR tree-optimization/45733
2762         * tree-vect-stmts.c (reverse_vec_elements): Honor the
2763         permute builtins function return type.
2764
2765 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
2766
2767         PR middle-end/44765
2768         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
2769         as an index, check it is not INVALID_REGNUM.
2770
2771         PR bootstrap/44756
2772         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
2773         unsignedp.
2774         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
2775
2776         PR bootstrap/44756
2777         * function.c (thread_prologue_and_epilogue_insns): Add
2778         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
2779
2780         PR bootstrap/44756
2781         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
2782
2783         PR target/44750
2784         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
2785         (pdp11_preferred_reload_class): Rename class to rclass.
2786         (pdp11_preferred_output_reload_class): Likewise.
2787         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
2788         ALL_COMPILERFLAGS .
2789         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
2790
2791         PR bootstrap/44756
2792         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
2793         iteration variables to enum machine_mode.
2794
2795         PR target/44751
2796         * config/h8300/h8300.c: Include df.h.
2797         (push, pop): Use add_reg_note.
2798         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
2799         (compute_a_shift_cc): Likewise.
2800         (expand_a_shift): Argument code has type enum rtx_code.
2801         (struct shift_insn): Member cc_valid has type enum attr_cc.
2802         (struct shift_info) <cc_inline, cc_special>: Likewise.
2803         enum attr_cc.
2804         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
2805         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
2806
2807 2010-11-04  Ira Rosen  <irar@il.ibm.com>
2808
2809         PR tree-optimization/46213
2810         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
2811         MINUS_EXPR only if the first operand is reduction operand.
2812
2813 2010-11-04  Richard Guenther  <rguenther@suse.de>
2814             Richard Henderson  <rth@redhat.com>
2815
2816         * tree.def (FMA_EXPR): New tree code.
2817         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
2818         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
2819         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
2820         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
2821         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2822         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
2823         (execute_optimize_widening_mul): Call it.  Reorganize to allow
2824         dead stmt removal.  Move TODO flags ...
2825         (pass_optimize_widening_mul): ... here.
2826         * flag-types.h (enum fp_contract_mode): New enum.
2827         * common.opt (flag_fp_contract_mode): New variable.
2828         (-ffp-contract): New option.
2829         * opts.c (common_handle_option): Handle it.
2830         * doc/invoke.texi (-ffp-contract): Document.
2831         * tree.h (fold_fma): Declare.
2832         * builtins.c (fold_fma): New function.
2833         (fold_builtin_fma): Likewise.
2834         (fold_builtin_3): Call it for fma.
2835         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
2836         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
2837         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
2838         New expanders.
2839         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
2840         named patterns.
2841         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
2842         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
2843         (fms_optab, fnma_optab, fnms_optab): New defines.
2844         * gimplify.c (gimplify_expr): Handle binary truth expressions
2845         explicitly.  Handle FMA_EXPR.
2846         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
2847         operations.
2848
2849 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
2850             Richard Guenther  <rguenther@suse.de>
2851
2852         * passes.c (init_optimization_passes): Move veclower after SSA.
2853         * tree-vect-generic.c (uniform_vector_p): New function.
2854         (expand_vector_operations_1): Handle conversion.
2855         (pass_lower_vector): Update SSA form.
2856
2857 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
2858
2859         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
2860         plugin capabilities.
2861         * configure: Regenerate.
2862
2863 2010-11-03  Xinliang David Li  <davidxl@google.com>
2864
2865         PR target/46200
2866         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
2867         Adjust cbase if the use stmt is after iv update.
2868
2869 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2870
2871         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
2872
2873 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2874
2875         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
2876         comment.  Pass true to the last argument of output_stack_adjust.
2877
2878 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2879
2880         PR target/46295
2881         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
2882         if 256bit AVX register is used.
2883
2884 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2885
2886         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
2887         xsmindp/xsmaxdp on VSX for single precision min/max.
2888         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
2889         (vsx_sminsf3): Ditto.
2890
2891 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2892
2893         * combine.c (try_combine): Fix formatting issues, improve comments and
2894         fix a pasto.
2895
2896 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2897
2898         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
2899         of the result before building binary expressions.
2900
2901 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2902
2903         PR rtl-optimization/45865
2904         * Makefile.in (df-problems.o): Revert revision 164552.
2905         * basic-block.h (enum bb_flags): Likewise.
2906         * cfgcleanup.c (block_was_dirty): Likewise.
2907         (try_forward_edges): Likewise.
2908         (try_crossjump_bb): Likewise.
2909         (try_head_merge_bb): Likewise.
2910         (try_optimize_cfg): Likewise.
2911         (cleanup_cfg): Likewise.
2912         * df-core.c (df_set_bb_dirty): Likewise.
2913         * df-problems.c: Likewise.
2914         (df_simulate_find_uses): Likewise.
2915         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
2916         (find_memory, find_memory_store): Likewise.
2917         (can_move_insns_across): Likewise.
2918         * df.h (can_move_insns_across): Likewise.
2919         * ifcvt.c (find_memory): Likewise.
2920         (dead_or_predicable): Likewise.
2921
2922 2010-11-03  Richard Guenther  <rguenther@suse.de>
2923
2924         PR middle-end/46288
2925         * predict.c (strip_predict_hints): Simply DCE builtin expect if
2926         the result is unused.
2927
2928 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2929
2930         PR tree-optimization/46009
2931         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
2932         cond_if_else_store_replacement if bb1 and bb2 have the same
2933         single successor.
2934         (cond_store_replacement): Use gimple_assign_single_p, don't
2935         check if rhs is SSA_NAME or invariant.  Call release_defs for
2936         assign.
2937         (cond_if_else_store_replacement): New function.
2938
2939 2010-11-03  Richard Guenther  <rguenther@suse.de>
2940
2941         * opts.c (finish_options): Properly check for all WHOPR
2942         flags before complaining about -flto-partition.
2943
2944 2010-11-04  Alan Modra  <amodra@gmail.com>
2945
2946         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
2947         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
2948         TARGET_SECURE_PLT.
2949         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
2950         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
2951         on input, "r" on output.
2952
2953 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
2954
2955         Implemented -fobjc-std=objc1 flag.
2956         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
2957         option.
2958         * doc/standards.texi (Standards): Updated the section on
2959         Objective-C; mention support for Objective-C 2.0 features and the
2960         new -fstd-objc=objc1 flag to disable them.
2961
2962 2010-11-03  Richard Guenther  <rguenther@suse.de>
2963
2964         PR middle-end/46241
2965         * dwarf2out.c (scope_die_for): Properly detect global scope.
2966
2967 2010-11-03  Richard Guenther  <rguenther@suse.de>
2968
2969         PR tree-optimization/46190
2970         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2971         Properly compute peel iterations.
2972
2973 2010-11-03  Richard Guenther  <rguenther@suse.de>
2974
2975         PR tree-optimization/46286
2976         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
2977         re-allocated vector data.
2978
2979 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2980
2981         PR target/46285
2982         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
2983         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
2984         is completed.
2985
2986 2010-11-03  Richard Guenther  <rguenther@suse.de>
2987
2988         PR tree-optimization/46217
2989         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
2990         flag matches.
2991         (execute_update_addresses_taken): Likewise.
2992
2993 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2994
2995         PR bootstrap/44335
2996         * targhooks.c (targhook_words_big_endian): New function.
2997         (targhook_float_words_big_endian): Likewise.
2998         * targhooks.h (targhook_words_big_endian): Declare.
2999         (targhook_float_words_big_endian): Likewise.
3000         * target.def (words_big_endian, float_words_big_endian): New hooks.
3001
3002 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3003
3004         PR tree-optimization/46165
3005         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3006         a normal call into noreturn call.
3007
3008 2010-11-03  Richard Guenther  <rguenther@suse.de>
3009
3010         PR middle-end/46251
3011         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3012         not INDIRECT_REFs.
3013
3014 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3015
3016         PR tree-optimization/46107
3017         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3018         if cfg_hook_duplicate_loop_to_header_edge failed.
3019
3020 2010-11-03  Ian Lance Taylor  <iant@google.com>
3021
3022         PR lto/46273
3023         * config.gcc: Don't set lto_binary_reader.
3024         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3025         (Configuration): Mention --disable-lto.  Remove --with-libelf
3026         paragraph.
3027
3028 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
3029
3030         PR debug/46252
3031         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3032         prev_real_insn.
3033         * gcse.c (insert_insn_end_basic_block): Likewise.
3034
3035         PR rtl-optimization/46034
3036         PR rtl-optimization/46212
3037         PR rtl-optimization/46248
3038         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3039         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3040         before i0dest -> i0src substitution and pass 1 instead of 0 as last
3041         argument to subst on i2pat.
3042
3043 2010-11-02  Ian Lance Taylor  <iant@google.com>
3044
3045         * configure.ac: Use AC_SYS_LARGEFILE.
3046         * configure: Rebuild.
3047         * config.in: Rebuild.
3048
3049 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3050
3051         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3052         fold_convert.
3053         * c-typeck.c (build_function_call_vec): Likewise.
3054         * cfgexpand.c (expand_debug_expr): Likewise.
3055         * cgraphunit.c (assemble_thunk): Likewise.
3056         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3057         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3058         (fold_binary_loc, fold_ternary_loc): Likewise.
3059         * gimple-fold.c (get_symbol_constant_value): Likewise.
3060         * gimple-low.c (lower_builtin_setjmp): Likewise.
3061         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3062         * gimplify.c (gimplify_init_constructor): Likewise.
3063         * lambda.h (build_linear_expr): Likewise.
3064         * omp-low.c (omp_reduction_init): Likewise.
3065         * tree-inline.c (remap_ssa_name): Likewise.
3066         * tree-object-size.c (compute_object_sizes): Likewise.
3067         * tree-sra.c (init_subtree_with_zero): Likewise.
3068         (sra_ipa_modify_assign): Likewise.
3069         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3070         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3071         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3072         (undistribute_ops_list): Likewise.
3073         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3074         * tree-vect-stmts.c (vectorizable_call): Likewise.
3075         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3076         (build_zero_cst): Handle more cases directly.  Update comment.
3077
3078 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3079
3080         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3081         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3082
3083         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3084         and call ix86_split_call_vzeroupper instead of
3085         ix86_split_call_pop_vzeroupper.
3086         (*call_pop_1_vzeroupper): Likewise.
3087         (*sibcall_pop_1_vzeroupper): Likewise.
3088         (*call_value_pop_0_vzeroupper): Likewise.
3089         (*call_value_pop_1_vzeroupper): Likewise.
3090         (*sibcall_value_pop_1_vzeroupper): Likewise.
3091
3092 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3093
3094         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3095
3096 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
3097
3098         * basic-block.h (insert_insn_end_bb_new): Delete.
3099         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3100
3101 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
3102             H.J. Lu  <hongjiu.lu@intel.com>
3103
3104         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3105         (ix86_split_call_pop_vzeroupper): Likewise.
3106
3107         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3108         (ix86_expand_call): Conditionally decorate calls with
3109         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3110         (ix86_split_call_vzeroupper): New.
3111         (ix86_split_call_pop_vzeroupper): Likewise.
3112
3113         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3114         (*call_pop_0_vzeroupper): New insn_and_split pattern.
3115         (*call_pop_1_vzeroupper): Likewise.
3116         (*sibcall_pop_1_vzeroupper): Likewise.
3117         (*call_0_vzeroupper): Likewise.
3118         (*call_1_vzeroupper): Likewise.
3119         (*sibcall_1_vzeroupper): Likewise.
3120         (*call_1_rex64_vzeroupper): Likewise.
3121         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3122         (*call_1_rex64_large_vzeroupper): Likewise.
3123         (*sibcall_1_rex64_vzeroupper): Likewise.
3124         (*call_value_pop_0_vzeroupper): Likewise.
3125         (*call_value_pop_1_vzeroupper): Likewise.
3126         (*sibcall_value_pop_1_vzeroupper): Likewise.
3127         (*call_value_0_vzeroupper): Likewise.
3128         (*call_value_0_rex64_vzeroupper): Likewise.
3129         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3130         (*call_value_1_vzeroupper): Likewise.
3131         (*sibcall_value_1_vzeroupper): Likewise.
3132         (*call_value_1_rex64_vzeroupper): Likewise.
3133         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3134         (*call_value_1_rex64_large_vzeroupper): Likewise.
3135         (*sibcall_value_1_rex64_vzeroupper): Likewise.
3136
3137 2010-11-02  Ian Lance Taylor  <iant@google.com>
3138
3139         PR lto/46273
3140         * config.gcc: Revert last patch: set lto_binary_reader.
3141
3142 2010-11-02  Richard Guenther  <rguenther@suse.de>
3143
3144         PR tree-optimization/46149
3145         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3146         non-indirect MEM_REF variants.
3147
3148 2010-11-02  Richard Guenther  <rguenther@suse.de>
3149
3150         PR tree-optimization/46216
3151         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3152         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3153
3154 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3155
3156         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3157         (*-*-osf*): Likewise.
3158         * configure: Regenerate.
3159
3160 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
3161
3162         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3163         for Intel Core 2 and Core i7.
3164
3165 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
3166
3167         Model decoder of Core 2/i7 for multipass scheduling.
3168
3169         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3170         New type to hold target-specific data for multipass scheduling.
3171         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3172         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3173         Core 2/i7.
3174         (core2i7_secondary_decoder_max_insn_size,)
3175         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3176         New static variables.
3177         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3178         ([_]ix86_first_cycle_multipass_data): New static variable.
3179         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3180         Implement targetm.sched hooks.
3181         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3182         of ...
3183         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3184         Implement new targetm.sched hooks.
3185         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3186         targetm.sched hook to install multipass scheduling hooks on demand.
3187
3188         * doc/tm.texi.in: Document new targetm.sched hooks.
3189         * doc/tm.texi: Regenerate.
3190
3191         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3192         (first_cycle_multipass_data_t): New typedef.
3193         (struct choice_entry: target_data): New field.
3194         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
3195         to allow target model restrictions not represented in DFA.
3196         (choose_ready, schedule_block): Update.
3197         (sched_extend_ready_list, sched_finish_ready_list): Call new target
3198         hooks to initialize target-specific data for multipass scheduling.
3199         * sched-int.h (max_issue): Update declaration.
3200         * sel-sched.c (choose_best_insn): Update.
3201         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3202         (first_cycle_multipass_{init, fini}): Define and document new
3203         targetm.sched hooks.
3204
3205 2010-11-02  Richard Guenther  <rguenther@suse.de>
3206
3207         PR tree-optimization/46184
3208         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3209         input vector type from the reduction operand as well.
3210
3211 2010-11-02  Richard Guenther  <rguenther@suse.de>
3212
3213         PR tree-optimization/46177
3214         * tree-loop-distribution.c (prop_phis): Use
3215         mark_virtual_phi_result_for_renaming.
3216
3217 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3218
3219         PR middle-end/46120
3220         * tree.c (get_binfo_at_offset): Bail out on artificial
3221         fields.  Identify primary bases according to their offsets.
3222
3223 2010-11-02  Martin Jambor  <mjambor@suse.cz>
3224
3225         PR tree-optimization/45875
3226         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
3227         (gimple_get_relevant_ref_binfo): Detect primary bases according to
3228         their field offset.
3229
3230 2010-11-02  Ian Lance Taylor  <iant@google.com>
3231
3232         * doc/install.texi (Configuration): Note in two places that Java
3233         is not enabled by default.
3234
3235 2010-11-02  Ian Lance Taylor  <iant@google.com>
3236
3237         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3238         (Configuration): Mention --disable-lto.  Remove --with-libelf
3239         paragraph.
3240
3241 2010-11-02  Ian Lance Taylor  <iant@google.com>
3242
3243         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
3244         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
3245         LIBELFINC.  Remove HAVE_libelf.
3246         * config.gcc: Don't set lto_binary_reader.
3247         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
3248         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
3249         (LIBS): Remove $(LIBELFLIBS).
3250         (INCLUDES): Remove $(LIBELFINC).
3251         * configure: Rebuild.
3252         * config.in: Rebuild.
3253
3254 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
3255
3256         * config/microblaze/microblaze-protos.h (function_arg): Delete.
3257         (function_arg_advance): Delete.
3258         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
3259         (FUNCTION_ARG): Delete.
3260         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
3261         (microblaze_function_arg_advance): ...this.  Make static.  Take a
3262         const_tree and a bool.
3263         (function-arg): Rename to...
3264         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
3265         and a bool.
3266         (microblaze_expand_prologue): Call targetm.calls.function_arg and
3267         targetm.calls.function_arg_advance.
3268         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3269
3270 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3271
3272         Merge from FSF "apple/trunk" branch.
3273
3274         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
3275         * config/darwin.opt: .. to here.
3276         (matt-stubs): New option.
3277         * config/i386/darwin.opt: Delete.
3278         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
3279         (MACHO_DYNAMIC_NO_PIC_P): New.
3280         (MACHOPIC_INDIRECT): New.
3281         (MACHOPIC_PURE): New.
3282         * config/i386/darwin.h (DARWIN_X86) Define to 1.
3283         (MACHOPIC_ATT_STUB): New.
3284         (CC1_SPEC): Do not remove mdynamic-no-pic.
3285         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3286         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3287         (FUNCTION_PROFILER): Correct over-length line.
3288         (SUBTARGET_OVERRIDE_OPTIONS): New.
3289         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3290         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
3291         (legitimate_constant_p): Handle mdynamic-no-pic.
3292         (ix86_legitimate_address_p): Likewise.
3293         (ix86_legitimize_address): Likewise.
3294         (ix86_expand_move): Likewise.
3295         (machopic_output_stub): Update for ATT-style stubs and
3296         mdynamic-no-pic.
3297         * config/darwin-protos.h (machopic_symbol_defined_p): New.
3298         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
3299         TARGET_DYNAMIC_NO_PIC: Remove.
3300         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
3301         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
3302         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
3303         Remove handling of mdynamic-no-pic.
3304         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
3305         Define if required.
3306         (machopic_symbol_defined_p): Do not try to use current_function_decl
3307         when generating _get_pc thunks within stubs.
3308         (machopic_indirect_data_reference): Rework for direct conditionals
3309         rather than #ifdefs, add x86 mdynamic-no-pic
3310         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
3311         defined value.
3312         (darwin_override_options): Handle mdynamic-no-pic here.
3313         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
3314         (machopic_lazy_symbol_ptr3_section): New.
3315         (machopic_picsymbol_stub2_section): New.
3316         (machopic_picsymbol_stub3_section): New.
3317         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
3318         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
3319         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
3320         Moved common definition from x86 and rs6000.
3321         (MACHO_DYNAMIC_NO_PIC_P): Override value.
3322         (MACHOPIC_INDIRECT): Likewise.
3323         (MACHOPIC_PURE): Likewise.
3324         * config.gcc (x86-darwin-*): Remove darwin.opt.
3325
3326 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
3327
3328         PR debug/46255
3329         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
3330         instead of gsi_last_bb.
3331
3332 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3333             Maxim Kuvyrkov  <maxim@codesourcery.com>
3334
3335         * config/i386/i386.c (cpu_names): Add "corei7".
3336         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
3337
3338 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3339             Maxim Kuvyrkov  <maxim@codesourcery.com>
3340
3341         Tune alignment for Intel Core i7
3342
3343         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
3344         (enum processor_type): Update comment.  Add entries for Core i7.
3345         * config/i386-c.c (ix86_target_macros_internal): Update.
3346         * config/i386.c (m_COREI7{_32,_64}): New macros.
3347         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
3348         (processor_target_table): Tune alignment for Core i7.
3349         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
3350
3351         * doc/invoke.texi: Document "corei7" option value.
3352
3353 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3354             Maxim Kuvyrkov  <maxim@codesourcery.com>
3355             H.J. Lu  <hjl.tools@gmail.com>
3356
3357         Basic support for Intel Core i7
3358
3359         * i386.c (ix86_option_override_internal): Add entry for corei7, use
3360         generic tuning.  Use generic32 when compiling for 32-bit ABI.
3361
3362 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3363
3364         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
3365         sections and call darwin_asm_dwarf_section() to handle them.
3366         (darwin_asm_dwarf_section): New.
3367         (darwin_file_start): Remove code emitting dwarf section symbols.
3368
3369 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
3370
3371         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
3372         explicitly disable stack protection when building libgcc.
3373         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
3374
3375 2010-11-01  Jason Merrill  <jason@redhat.com>
3376
3377         * fold-const.c (fold_indirect_ref_1): Handle folding
3378         POINTER_PLUS_EXPR to ARRAY_REF.
3379
3380 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3381
3382         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
3383         (sh_delegitimize_address): New function.
3384
3385 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3386
3387         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
3388         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
3389         (CC1_SPEC): Don't handle -target.
3390         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
3391         options.
3392         * config/darwin.opt (Zallowable_client, Zbundle_loader,
3393         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
3394         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
3395         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
3396         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
3397         Zweak_reference_mismatches, client_name, compatibility_version,
3398         current_version, dylinker_install_name, pagezero_size,
3399         read_only_relocs, seg1addr, segs_read_only_addr,
3400         segs_read_write_addr, sub_library, sub_umbrella): New.
3401         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
3402         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
3403         * config/freebsd.opt: New.
3404         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
3405         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
3406         * config/rpath.opt: New.
3407         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
3408         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
3409         Use rpath.opt.
3410
3411 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3412
3413         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
3414         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
3415         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
3416         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
3417         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
3418         Document that options in .opt files do not need to be included.
3419         * doc/tm.texi: Regenerate.
3420         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
3421         * opts-common.c: Update comment on tm.h include.
3422         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
3423         * system.h (SWITCH_TAKES_ARG): Poison.
3424         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
3425         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
3426         in darwin.opt.
3427         (LINK_COMMAND_SPEC_A): Don't include %{x}.
3428         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3429         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
3430         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
3431         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3432         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
3433         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
3434         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
3435         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
3436         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3437         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
3438         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
3439         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
3440         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
3441         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
3442         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
3443         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
3444         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
3445         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
3446         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
3447         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
3448         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
3449         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
3450         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3451
3452 2010-11-01  Paul Koning  <ni1d@arrl.net>
3453
3454         * config/pdp11/pdp11.md: Use iterators.
3455         (addqi3, subqi3, iorsi3, xorsi3): Delete.
3456
3457 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
3458
3459         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
3460         GCC_INSN_FLAGS_H.
3461         * libgcov.c (__gcov_indirect_call_profiler): Set
3462         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
3463         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
3464
3465 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3466
3467         PR tree-optimization/46259
3468
3469         Revert:
3470         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3471         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
3472         build_vector_from_val.
3473
3474 2010-11-01  DJ Delorie  <dj@redhat.com>
3475
3476         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
3477         as well as an assertion.
3478
3479 2010-11-01  Paul Koning  <ni1d@arrl.net>
3480
3481         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
3482         complex modes in memory.
3483
3484 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3485
3486         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
3487
3488 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
3489
3490         PR target/45250
3491         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
3492         (cfa_base_offset): New variable.
3493         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
3494         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
3495         is NULL.
3496         (vt_init_cfa_base): Initialize cfa_base_offset.
3497
3498 2010-11-01  Alan Modra  <amodra@gmail.com>
3499
3500         PR target/46030
3501         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
3502         and savres_strategy.
3503         (stack_info): New file scope var.
3504         (rs6000_init_machine_status): Init stack_info.
3505         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
3506         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
3507         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
3508         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
3509         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
3510         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
3511         (rs6000_savres_strategy): Rewrite.
3512         (rs6000_stack_info): Use "stack_info" in place of local "info".
3513         Return cached stack info when reload_completed unless ENABLE_CHECKING
3514         in which case confirm newly calculated stack info matches old info.
3515         Delay calculation of lr_save_p, set it for out of line gp save/restore
3516         as well as fp.  Call rs6000_savres_strategy from here..
3517         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
3518         (rs6000_output_function_prologue): Use info->savres_strategy to
3519         determine whether fp save/restore externs need to be emitted.
3520
3521 2010-10-31  Jason Merrill  <jason@redhat.com>
3522
3523         * tree.h (EXPR_LOC_OR_HERE): New macro.
3524         * builtins.c (c_strlen): Use it.
3525         * c-decl.c (build_enumerator): Likewise.
3526         * gimplify.c (internal_get_tmp_var): Likewise.
3527         (shortcut_cond_expr): Likewise.
3528         (gimplify_one_sizepos): Likewise.
3529
3530 2010-10-31  Richard Henderson  <rth@redhat.com>
3531
3532         * config/i386/cygming.h (TARGET_SEH): New.
3533         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
3534         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
3535         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
3536         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
3537         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
3538         (ASM_DECLARE_FUNCTION_SIZE): New.
3539         * config/i386/i386-protos.h: Update.
3540         * config/i386/i386.c (ix86_option_override_internal): Enable
3541         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
3542         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
3543         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
3544         (ix86_compute_frame_layout): For SEH, disable
3545         use_fast_prologue_epilogue, move frame pointer to the end of
3546         the frame.  Initialize hfp_save_offset.
3547         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
3548         at end of prologue for SEH.
3549         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
3550         emit blockage at beginning of epilogue.
3551         (ix86_expand_binary_operator): After reload, emit LEA if needed.
3552         (ix86_output_call_insn): New.
3553         * config/i386/i386.h (TARGET_SEH): New.
3554         (struct machine_function): Add member seh.
3555         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
3556         * config/i386/winnt.c (struct seh_frame_state): New.
3557         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
3558         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
3559         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
3560         i386_pe_start_function, i386_pe_end_function): New.
3561
3562         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
3563         as CFA_STORE in rules 12 and 13.
3564
3565 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
3566
3567         PR tree-optimization/46142
3568         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
3569         accommodate third function argument.
3570
3571 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3572
3573         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
3574
3575 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3576
3577         * fold-const.c (build_zero_vector): Use build_vector_from_val.
3578         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3579         (get_initial_def_for_reduction): Likewise.
3580         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3581         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
3582         * tree.c (build_one_cst): Likewise.
3583         (build_vector_from_val): Use types_compatible_p for assert.
3584
3585 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3586
3587         * emit-rtl.c (mark_used_flags): New function.
3588         (set_used_flags, reset_used_flags): Call it.
3589
3590 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
3591
3592         PR middle-end/44569
3593         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
3594         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
3595
3596 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
3597
3598         PR target/46195
3599         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
3600         (ix86_compat_aligned_value_p): This.
3601         (ix86_old_function_arg_boundary): Renamed to ...
3602         (ix86_compat_function_arg_boundary): This.  Updated.
3603         (ix86_contains_aligned_value_p): New.
3604         (ix86_function_arg_boundary): Align long double parameters on
3605         stack to 4byte in 32bit.
3606
3607 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
3608
3609         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
3610         * c-parser.c (c_parser_objc_at_property_declaration): Removed
3611         parsing of RID_COPIES and RID_IVAR.  Updated call to
3612         objc_add_property_declaration.
3613         * c-typecheck.c (build_component_ref): Call
3614         objc_maybe_build_component_ref instead of objc_build_setter_call.
3615         Use objc_is_property_ref to improve Objective-C checks.
3616         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
3617         of objc_build_getter_call.
3618
3619 2010-10-29  Paul Koning  <ni1d@arrl.net>
3620
3621         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3622         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
3623         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
3624         (REG_OK_STRICT): Move description.
3625
3626 2010-10-29  Paul Koning  <ni1d@arrl.net>
3627
3628         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
3629
3630 2010-10-29  Paul Koning  <ni1d@arrl.net>
3631
3632         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
3633
3634 2010-10-29  Paul Koning  <ni1d@arrl.net>
3635
3636         PR/41822
3637         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
3638
3639 2010-10-29  Richard Henderson  <rth@redhat.com>
3640
3641         PR rtl-opt/46226
3642         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
3643         for asm goto.
3644
3645 2010-10-29  Paul Koning  <ni1d@arrl.net>
3646
3647         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
3648         register to register move.
3649
3650 2010-10-29  Paul Koning  <ni1d@arrl.net>
3651
3652         * config/pdp11/pdp11.c (print_operand_address): Correct handling
3653         of integer constant addresses, delete vax-only logic.
3654
3655 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
3656
3657         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
3658         a conditional expression.
3659
3660 2010-10-29  Paul Koning  <ni1d@arrl.net>
3661
3662         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
3663         instruction encoding.
3664
3665 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3666             Andrew Pinski  <pinskia@gmail.com>
3667
3668         * tree.h (build_vector_from_val): Declare.
3669         * tree.c (build_vector_from_val): New function.
3670         * c-typeck.c (build_binary_op): Handle vector shifting.
3671         * doc/extend.texi: Description of the vector shifting operation.
3672
3673 2010-10-29  Paul Koning  <pkoning@equallogic.com>
3674
3675         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
3676         pdp11_secondary_memory_needed): Declare.
3677         * config/pdp11/predicates.md (float_operand): New predicate.
3678         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
3679         (cbranchdf4, movdf): Change predicate.
3680         (movsf): Handle FPU register case.
3681         (truncdfsf2, extendsfdf2): Add FPU register case.
3682         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
3683         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
3684         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3685         (pdp11_register_move_cost): Update cost matrix.
3686         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
3687         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
3688         pdp11_secondary_memory_needed): New function.
3689         (pdp11_return_in_memory): Add other float types.
3690         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
3691         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
3692         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
3693         REGISTER_MOVE_COST): Delete.
3694         (BASE_RETURN_VALUE_REG): Add other float types.
3695
3696 2010-10-29  Nick Clifton  <nickc@redhat.com>
3697
3698         * doc/invoke.texi: Document -mam34 and -mtune options.
3699         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
3700         (mn10300_tune_cpu): New variable.
3701         (mn10300_handle_option): Handle -mam34 and -mtune options.
3702         (mn10300_option_override): Convert tune string into tune cpu variable.
3703         (mn10300_legitimate_constant_p): Delete unused local variable.
3704         (is_load_insn): New function.
3705         (is_store_insn): New function.
3706         (mn10300_adjust_schedule_cost): New function.
3707         (TARGET_SCHED_ADJUST_COST): Define.
3708         * config/mn10300/mn10300.opt (mam34): New option.
3709         (mtune): New option.
3710         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
3711         (enum processor_type): Add AM34.
3712         (TARGET_AM34): Define.
3713         * config/mn10300/mn10300.md (attr cpu): Add am34.
3714         Add pipeline description.
3715         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
3716         Remove unneeded alternatives.  Add timing attribute.
3717         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
3718         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
3719         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
3720         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
3721         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
3722         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
3723         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
3724         float_conditional_branch, jump, indirect_jump, tablejump,
3725         call_internal, call_value_internal, zero_extendqisi2_am33,
3726         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
3727         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
3728         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
3729         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
3730         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
3731         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
3732         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
3733         return_internal_regs, store_movm, return, call_next_insn):
3734         Add timing attribute.
3735         (am33_subsi3): Add missing clobber of CC_REG.
3736         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
3737         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
3738         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
3739         extendqisi2): Fix predicates.
3740         (call_internal, call_internal_value): Separate alternatives.
3741         * config/mn10300/t-mn10300: Add AM34 multilib.
3742
3743 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
3744
3745         * config/sh/sh.c (sh_promote_function_mode): Use
3746         default_promote_function_mode if !sh_promote_prototypes.
3747
3748 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
3749
3750         * recog.c (split_all_insns): Remove dead code.
3751
3752 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3753
3754         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3755
3756 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3757
3758         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3759         (FUNCTION_ARG_ADVANCE): Delete.
3760         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
3761         functions.
3762         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
3763         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3764         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3765
3766 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3767
3768         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
3769         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3770         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3771         Take a const_tree and a bool.
3772         (mcore_function_arg_advance): New function.
3773         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3774
3775 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3776
3777         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
3778         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3779         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3780         Take a const_tree and a bool.
3781         (mcore_function_arg_advance): New function.
3782         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3783
3784 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3785
3786         * config/h8300/h8300-protos.h (function_arg): Delete.
3787         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3788         * config/h8300/h8300.c (function_arg): Rename to...
3789         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
3790         a bool.
3791         (h8300_function_arg_advance): New function.
3792         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3793
3794 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3795
3796         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
3797         to...
3798         * config/arc/arc.c (arc_function_arg): ...here and...
3799         (arc_function_arg_advance): ...here.  New functions.
3800         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3801
3802 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3803
3804         * config/crx/crx-protos.h (crx_function_arg): Delete.
3805         (crx_function_arg_advance): Delete.
3806         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3807         * config/crx/crx.c (crx_function_arg): Make static.  Take a
3808         const_tree and a bool.
3809         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
3810         (enough_regs_for_param): Take a const_tree.
3811         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3812
3813 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3814
3815         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
3816         (m68hc11_function_arg_advance): Delete.
3817         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
3818         (FUNCTION_ARG_ADVANCE): Delete.
3819         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
3820         Take a const_tree and a bool.
3821         (m68hc11_function_arg_advance): Likewise.
3822         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3823
3824 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3825
3826         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
3827         (xstormy16_function_arg_advance): Delete.
3828         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
3829         (FUNCTION_ARG_ADVANCE): Delete.
3830         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
3831         Take a const_tree and a bool.
3832         (xstormy16_function_arg_advance): Likewise.  Return void, updating
3833         the CUM parameter instead.
3834         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3835
3836 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3837
3838         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
3839         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3840         (MOXIE_FUNCTION_ARG_SIZE): Move to...
3841         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
3842         (moxie_function_arg): Make static.  Take a const_tree and a bool.
3843         (moxie_function_arg_advance): New function.
3844         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3845
3846 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3847
3848         * config/mn10300/mn10300-protos.h (function_arg): Delete.
3849         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
3850         (FUNCTION_ARG_ADVANCE): Delete.
3851         * config/mn10300/mn10300.c (function_arg): Rename to...
3852         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
3853         and a bool.
3854         (mn10300_function_arg_advance): New function.
3855         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3856
3857 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3858
3859         * config/iq2000/iq2000-protos.h (function_arg): Delete.
3860         (function_arg_advance): Delete.
3861         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3862         * config/iq2000/iq2000.c (function_arg): Rename to...
3863         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
3864         a bool.
3865         (function_arg_advance): Rename to...
3866         (iq2000_function_arg_advance): ...this.  Make static.  Take a
3867         const_tree and a bool.
3868         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
3869         iq2000_function_arg.
3870         (iq2000_pass_by_reference): Call iq2000_function_arg).
3871         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3872
3873 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3874
3875         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
3876         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3877         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
3878         const_tree.
3879         (fr30_function_arg): New function.
3880         (fr30_function_arg_advance): New function.
3881         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3882
3883 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3884
3885         * config/frv/frv-protos.h (frv_function_arg): Delete.
3886         (frv_function_arg_advance): Delete.
3887         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3888         * config/frv/frv.c (frv_function_arg): Rename to...
3889         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
3890         (frv_function_arg, frv_function_incoming_arg): New functions.
3891         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
3892         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3893         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3894
3895 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
3896
3897         PR target/46153
3898         * config/i386/sse.md (sse_movhlps_exp): Use destination
3899         returned from ix86_fixup_binary_operands to expand insn.
3900         (sse_movlhps_exp): Ditto.
3901         (sse_loadhps_exp): Ditto.
3902         (sse_loadlps_exp): Ditto.
3903         (sse2_loadhpd_exp): Ditto.
3904         (sse2_loadlpd_exp): Ditto.
3905
3906 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
3907
3908         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
3909         constants in thumb2.
3910
3911 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3912
3913         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
3914         arithmetics in masking operations.
3915         (contains_muldiv): Likewise.
3916         (try_combine): Likewise.
3917         (find_split_point): Likewise.
3918         (combine_simplify_rtx): Likewise.
3919         (simplify_if_then_else): Likewise.
3920         (simplify_set): Likewise.
3921         (expand_compound_operation): Likewise.
3922         (expand_field_assignment): Likewise.
3923         (make_extraction): Likewise.
3924         (extract_left_shift): Likewise.
3925         (make_compound_operation): Likewise.
3926         (force_to_mode): Likewise.
3927         (make_field_assignment): Likewise.
3928         (reg_nonzero_bits_for_combine): Likewise.
3929         (simplify_shift_const_1): Likewise.
3930         (simplify_comparison): Likewise.
3931
3932 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
3933
3934         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
3935         (ia64_function_arg_advance): Delete.
3936         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3937         (FUNCTION_ARG_ADVANCE): Delete.
3938         * config/ia64/ia64.c (ia64_function_arg): Rename to...
3939         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
3940         bool arguments.
3941         (ia64_function_arg, ia64_function_incoming_arg): New functions.
3942         (ia64_function_arg_advance): Make static.  Take a const_tree and
3943         a bool.
3944         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3945         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3946
3947 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
3948
3949         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
3950         (TARGET_GET_RAW_ARG_MODE): New.
3951         * doc/tm.texi: Regenerate.
3952         * target.def (get_raw_result_mode): New.
3953         (get_raw_arg_mode): New.
3954         * targhooks.c (default_get_reg_raw_mode): New.
3955         * targhooks.h (default_get_reg_raw_mode): New.
3956         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
3957         (apply_result_size): Ditto.
3958         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
3959         (TARGET_GET_RAW_RESULT_MODE): Define.
3960         (TARGET_GET_RAW_ARG_MODE): Ditto.
3961
3962 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3963
3964         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
3965         for newer Solaris 10 release.
3966         (sparc_fallback_frame_state): Likewise.
3967
3968 2010-10-27  Jason Merrill  <jason@redhat.com>
3969
3970         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
3971         variables sooner.
3972
3973 2010-10-27  Jie Zhang  <jie@codesourcery.com>
3974             Maxim Kuvyrkov  <maxim@codesourcery.com>
3975
3976         * haifa-sched.c (ISSUE_POINTS): Remove.
3977         (max_issue): Don't issue more than issue_rate instructions.
3978
3979 2010-10-27  Ian Lance Taylor  <iant@google.com>
3980
3981         PR target/46197
3982         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
3983         (split_stack_return): Replace UNSPEC_STACK_CHECK with
3984         UNSPECV_SPLIT_STACK_RETURN.
3985
3986 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
3987
3988         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
3989
3990         * config/i386/i386.c (block_info): New.
3991         (BLOCK_INFO): Likewise.
3992         (call_avx256_state): Likewise.
3993         (check_avx256_stores): Likewise.
3994         (move_or_delete_vzeroupper_2): Likewise.
3995         (move_or_delete_vzeroupper_1): Likewise.
3996         (move_or_delete_vzeroupper): Likewise.