OSDN Git Service

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