Fix typo in the comment.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
2
3         * resource.h (struct resources): Fix typo in the comment.
4
5 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
6
7         PR target/46546
8         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
9
10 2010-11-18  Richard Henderson  <rth@redhat.com>
11
12         PR middle-end/46515
13         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
14         maybe_copy_epilogue_insn; handle prologue insns as well.
15         * rtl.h, cfglayout.c: Update for rename.
16         * recog.c (peep2_attempt): Copy prologue/epilogue data for
17         RTX_FRAME_RELATED_P insns.
18
19 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
20
21         PR middle-end/46534
22         * builtins.c (fold_builtin_printf): Don't copy and modify string
23         before build_string_literal, instead modify what
24         build_string_literal returned.
25
26 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
27
28         PR c/33193
29         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
30         REALPART_EXPR and IMAGPART_EXPR.
31
32 2010-11-18  Richard Guenther  <rguenther@suse.de>
33
34         PR tree-optimization/46172
35         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
36         function.
37         (slpeel_tree_peel_loop_to_edge): Call it.
38
39 2010-11-18  Jeff Law  <law@redhat.com>
40
41         PR middle-end-optimization/46297
42         * postreload.c (reload_combine_note_store): Deal with embedded
43         side effects in MEM expressions.
44
45 2010-11-18  Richard Guenther  <rguenther@suse.de>
46
47         PR lto/45089
48         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
49         when checking is not enabled.
50
51 2010-11-18  Richard Guenther  <rguenther@suse.de>
52
53         PR lto/46525
54         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
55         type leaders.
56         (gimple_register_canonical_type): Also cache the canoncial type
57         for non type leaders.
58
59 2010-11-18  Richard Guenther  <rguenther@suse.de>
60
61         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
62
63 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
64
65         PR middle-end/46518
66         * sel-sched-ir.c (init_expr): Use the correct type for
67         target_available.
68         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
69
70 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
71
72         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
73         as well as -mrelocatable at the same time.
74
75 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
76
77         PR target/46422
78         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
79         Call the clz builtin.
80
81 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
82             Steve Ellcey  <sje@cup.hp.com>
83
84         PR middle-end/31490
85         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
86         if section attribute used.
87
88 2010-11-17  Jan Hubicka  <jh@suse.cz>
89
90         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
91         expand errno setting variant when optimizing for size.
92
93 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
94
95         * postreload.c (reload_combine): Call control_flow_insn_p only once.
96         Reverse backward loop.  Fix formatting issues.
97
98 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
99
100         * c-parser.c (c_token_is_qualifier,
101         c_parser_next_token_is_qualifier): New.
102         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
103         Improve error message on specs->tagdef_seen_p.
104         (c_parser_struct_or_union_specifier): Improve error recovery.
105         (c_parser_declspecs): Move exit condition on C_ID_ID early.
106         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
107         using c_parser_next_token_is_qualifier; extend it to cover
108         a ctsk_tagdef typespec and !typespec_ok in general.
109
110 2010-11-17  Richard Guenther  <rguenther@suse.de>
111
112         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
113         (gimple_mod_pow2_value_transform): Likewise.
114         (gimple_mod_subtract_transform): Likewise.
115
116 2010-11-17  Richard Guenther  <rguenther@suse.de>
117
118         PR lto/46504
119         * gimple.c (gimple_register_canonical_type): Make sure to only
120         make type leaders canonical types.
121
122 2010-11-17  Michael Matz  <matz@suse.de>
123
124         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
125         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
126         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
127         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
128         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
129         (pass_build_ssa): ... but here.
130         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
131         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
132         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
133         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
134         * predict.c (rebuild_frequencies): Ditto.
135         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
136         * emit-rtl.c (verify_rtl_sharing): Ditto.
137         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
138         * tree-ssa-live.c (remove_unused_locals): Ditto.
139         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
140         * tree-ssa.c (pass_early_warn_uninitialized,
141         execute_update_addresses_taken, pass_update_address_taken): Ditto.
142         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
143         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
144         * passes.c (pass_postreload, execute_todo): Ditto.
145         * tree-ssanames.c (pass_release_ssa_names): Ditto.
146
147 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
148
149         * doc/invoke.texi (-dy): Remove.
150         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
151         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
152         * langhooks.c (lhd_do_nothing_i): Remove.
153         * langhooks.h (lang_hooks.parse_file): Take no arguments.
154         * toplev.c (set_yydebug): Remove.
155         (compile_file): Update call to lang_hooks.parse_file.
156         (decode_d_option): Don't handle -dy.
157
158 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
159
160         PR rtl-optimization/46440
161         * combine.c (update_cfg_for_uncondjump): When changing
162         an indirect jump into unconditional jump, remove BARRIERs
163         from bb's footer.
164
165 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
166
167         * opts.c (target_handle_option): Do not assert that loc ==
168         UNKNOWN_LOCATION.
169
170 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
171             Richard Guenther  <rguenther@suse.de>
172
173         PR middle-end/45838
174         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
175         call_may_clobber_ref_p_1): Return true for __sync_* and some
176         OpenMP builtins that act as threading barriers.
177
178 2010-11-17  Richard Guenther  <rguenther@suse.de>
179
180         PR tree-optimization/46498
181         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
182
183 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
184
185         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
186         (xtensa_function_arg_boundary): ...this.
187         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
188         thinko in declaration.
189         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
190         number of parameters to picochip_function_arg_boundary.
191         (picochip_arg_advance): Likewise.
192
193 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
194
195         PR target/46512
196         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
197         under check for type.
198
199 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
200
201         * ifcvt.c (dead_or_predicable): Fix typo.
202
203 2010-11-16  Richard Henderson  <rth@redhat.com>
204
205         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
206         * config/s390/s390.opt (mfused-madd): Remove.
207         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
208         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
209         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
210         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
211
212 2010-11-16  Richard Henderson  <rth@redhat.com>
213
214         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
215         * config/rs6000/rs6000.opt (mfused-madd): Remove.
216         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
217         (*altivec_vmaddfp_1): Remove.
218         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
219         (altivec_mulv4sf3): Expand to FMA directly.
220         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
221         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
222         * config/rs6000/paired.md (paired_madds0): Use FMA.
223         (paired_madds1): Likewise.
224         (*paired_madd): Rename from paired_madd; use FMA.
225         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
226         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
227         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
228         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
229         (rs6000_emit_madd): Use fma_optab.
230         (rs6000_emit_msub): Use fms_optab.
231         (rs6000_emit_nmsub): Expand the FMA pattern directly.
232         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
233         (*fmasf4_fpr): Rename from fmasf4_fpr.
234         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
235         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
236         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
237         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
238         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
239         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
240         (*fmadf4_fpr): Rename from fmadf4_fpr.
241         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
242         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
243         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
244         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
245         (fmasf4, fmadf4): Macroize into...
246         (fma<FMA_F>4): ... here.
247         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
248         (nfma<FMA_F>4, nfms<FMA_F>4): New.
249         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
250         TARGET_FUSED_MADD.
251         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
252         (*vsx_fmadd<mode>4_1): Remove.
253         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
254         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
255         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
256         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
257         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
258         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
259         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
260
261 2010-11-16  Richard Henderson  <rth@redhat.com>
262
263         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
264         (fmasf4, fnmadf4, fnmasf4): Likewise.
265         (unnamed plus+mult insns and splitters): Delete.
266
267 2010-11-16  Richard Henderson  <rth@redhat.com>
268
269         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
270         (fnma<VSF>4): Rename from fnms_<VSF>.
271         (fms<VSF>4): Rename from fms_<VSF>.
272         (fma<VDF>4): Rename from fma_<VDF>.
273         (fms<VDF>4): Rename from fms_<VDF>.
274         (nfma<VDF>4): Rename from fnma_<VDF>.
275         (nfms<VDF>4): Rename from fnms_<VDF>.
276         (fnma<VDF>4, fnms<VDF>4): New expanders.
277         (floatunsdisf2): Update for the renames.
278         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
279         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
280
281 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
282
283         PR rtl-optimization/46490
284         * combine.c (expand_compound_operation): Fix thinko.
285
286 2010-11-16  Richard Henderson  <rth@redhat.com>
287
288         PR target/46470
289         * recog.c (peep2_attempt): Convert frame-related info when possible.
290         (peep2_fill_buffer): Allow frame-related insns into the buffer.
291         (peephole2_optimize): Allow peep2_attempt to fail.
292
293 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
294
295         PR rtl-optimization/46315
296         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
297         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
298         extracted from...
299         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
300         (remove_reg_equal_equiv_notes_for_defs): ...this.
301         (delete_unmarked_insns): Adjust to above renaming.
302         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
303         referring to registers set in the insns being moved, if any.
304
305         * df-core.c (df_ref_dump): New function extracted from...
306         (df_refs_chain_dump): ...here.  Call it.
307         (df_regs_chain_dump): Likewise.
308         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
309         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
310
311 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
312
313         PR rtl-optimization/46395
314         * postreload.c (reload_combine): Invalidate register use
315         information on all control flow insns.
316
317         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
318         LABEL_REF in UNSPEC operand.
319
320 2010-11-16  Jan Hubicka  <jh@suse.cz>
321
322         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
323         when !flag_toplevel_reorder do not remove unless variable is
324         COMDAT or ARTIFICIAL.
325         * ipa.c (varpool_can_remove_if_no_refs): ... here.
326         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
327         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
328         * varpool.c (decide_is_variable_needed): Do not handle visibility
329         issues.
330         (varpool_finalize_decl): Likewise.
331         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
332         update outdated comment on DECL_RTL_SET_P check.
333
334 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
335
336         * config/sol2.h (NM_FLAGS): Define.
337         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
338         * doc/tm.texi: Update.
339
340 2010-11-16  Nick Clifton  <nickc@redhat.com>
341
342         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
343         (msubsf4): Rename to fmssf4, and use fma.
344         (nmaddsf4): Rename to fnmasf4 and use fma.
345         (nmsubsf4): Rename to fnmssf4 and use fma.
346
347 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
348
349         PR target/44762
350         * config/score/score3.c (score3_return_in_memory): Constify arguments.
351         (score3_in_small_data_p, score3_function_value): Likewise.
352         (score3_trampoline_init): Use LCT_NORMAL.
353         (score3_print_operand): Initialize code as UNKNOWN.
354         * config/score/predicates.md (score_load_multiple_operation):
355         Remove unused variable.
356         (score_store_multiple_operation): Likewise.
357         * config/score/score7.c (score7_return_in_memory): Constify arguments.
358         (score7_in_small_data_p, score7_function_value): Likewise.
359         (score7_trampoline_init): Use LCT_NORMAL.
360         (score7_print_operand): Initialize code as UNKNOWN.
361         * config/score/score3.h (score3_return_in_memory): Update prototype.
362         (score3_in_small_data_p, score3_function_value): Likewise.
363         * config/score/score-protos.h (score_function_value): Likewise.
364         * config/score/score7.h (score7_return_in_memory): Update prototype.
365         (score7_in_small_data_p, score7_function_value): Likewise.
366         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
367         (score_return_in_memory, score_pass_by_reference): Constify arguments.
368         (score_output_mi_thunk, score_function_prologue): Don't return a value.
369         (score_function_epilogue, score_in_small_data_p): Likewise.
370         (score_option_override, score_asm_trampoline_template): Likewise.
371         (score_trampoline_init, score_print_operand): Likewise.
372         (score_print_operand_address, score_prologue): Likewise.
373         (score_epilogue, score_call, score_call_value): Likewise.
374         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
375         (score_function_arg_advance): Likewise. Make static.
376         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
377         (score_function_arg, score_legitimate_address_p): Make static.
378         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
379         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
380         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
381         Allow (W) == HOST_BITS_PER_WIDE_INT.
382
383         PR java/46386
384         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
385         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
386
387 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
388
389         * config/arc/arc.c: Delete pasto.
390         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
391
392 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
393
394         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
395         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
396         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
397         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
398         (mn10300_preferred_reload_class,
399         mn10300_preferred_output_reload_class): New functions.
400
401 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
402
403         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
404         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
405         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
406         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
407
408 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
409
410         * builtins.c (std_gimplify_va_arg_expr): Use
411         targetm.calls.function_arg_boundary.
412         * function.c (assign_parms, locate_and_pad_parm): Likewise.
413         * calls.c (struct arg_data): Update comment.
414         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
415         * target.def (function_arg_boundary): Define.
416         * targhooks.h (default_function_arg_boundary): Declare.
417         * targhooks.c (default_function_arg_boundary): Define.
418         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
419         TARGET_FUNCTION_ARG_BOUNDARY.
420         (FUNCTION_ARG_BOUNDARY): Delete.
421         (TARGET_FUNCTION_ARG_BOUNDARY): New.
422         * doc/tm.texi: Regenerate.
423         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
424         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
425         * config/arc/arc.c (arc_function_arg_boundary): Define.
426         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
427         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
428         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
429         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
430         (arm_function_arg_boundary): Define.
431         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
432         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
433         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
434         * config/frv/frv.c (frv_function_arg_boundary): Make static.
435         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
436         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
437         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
438         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
439         (ix86_compat_function_arg_boundary): Take and return unsigned int.
440         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
441         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
442         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
443         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
444         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
445         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
446         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
447         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
448         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
449         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
450         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
451         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
452         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
453         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
454         * config/mips/mips.c (mips_function_arg_boundary): Make static.
455         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
456         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
457         * config/pa/pa.c (pa_function_arg_boundary): Define.
458         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
459         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
460         * config/picochip/picochip-protos.h
461         (picochip_get_function_arg_boundary): Delete.
462         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
463         Rename to...
464         (picochip_function_arg_boundary): ...this.  Make static.
465         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
466         (picochip_arg_advance): Adjust.
467         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
468         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
469         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
470         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
471         (rs6000_function_arg_boundary): ...this.  Make static.
472         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
473         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
474         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
475         * config/rx/rx.c (rx_function_arg_boundary): Define.
476         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
477         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
478         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
479         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
480         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
481         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
482         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
483         (xtensa_function_arg_boundary): ...this.  Make static.
484         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
485
486 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
487
488         * expr.c (alignment_for_piecewise_move): New function.
489         (widest_int_mode_for_size): New function.
490         (move_by_pieces, move_by_pieces_ninsns): Call them.
491         (can_store_by_pieces, store_by_pieces_1): Likewise.
492
493 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
494
495         * gcc.c (char_p): Define.  Define a VEC of it.
496         (n_linker_options, n_assembler_options, n_preprocessor_options):
497         Delete.
498         (linker_options, assembler_options, preprocessor_options): Convert
499         to a VEC.
500         (add_preprocessor_option): Adjust.
501         (add_assembler_option): Adjust.
502         (add_linker_option): Adjust.
503         (do_specs_vec): New function.
504         (do_spec_1): Call it.  Adjust for new types.
505
506 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
507
508         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
509         (sreal.o, statistics.o, stringpool.o): Likewise.
510
511 2010-11-16  Richard Guenther  <rguenther@suse.de>
512
513         PR tree-optimization/44545
514         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
515         statements are not reassociatable.
516         (reassociate_bb): Likewise.
517
518 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
519
520         * bitmap.c: Delete unnecessary includes.
521         * ebitmap.c: Likewise.
522         * et-forest.c: Likewise.
523         * sreal.c: Likewise.
524         * statistics.c: Likewise.
525         * stringpool.c: Likewise.
526         * double-int.c: Add comment for inclusion of tm.h.
527
528 2010-11-16  Richard Guenther  <rguenther@suse.de>
529
530         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
531         (visit_nary_op): ... this.
532         (visit_binary_op): Remove.
533         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
534
535 2010-11-16  Richard Guenther  <rguenther@suse.de>
536
537         PR middle-end/45172
538         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
539
540 2010-11-16  Nick Clifton  <nickc@redhat.com>
541
542         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
543         record is packed.
544
545 2010-11-15  Richard Henderson  <rth@redhat.com>
546
547         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
548         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
549         DOT_PROD_EXPR.
550
551 2010-11-15  Richard Henderson  <rth@redhat.com>
552
553         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
554         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
555         fma rtx_code.
556
557 2010-11-15  Richard Henderson  <rth@redhat.com>
558
559         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
560         and *mulsubsf4 respectively.  Use fma rtx_code.
561
562 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
563
564         * gcc.c: Include "vec.h".
565         (argbuf): Make into a VEC.
566         (argbuf_length, argbuf_index): Remove.
567         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
568         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
569         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
570         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
571         (gcc.o): Depend on $(VEC_H).
572
573 2010-11-15  Richard Henderson  <rth@redhat.com>
574
575         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
576         via FMA if unsafe math.
577         (insert_var_expansion_initialization): Handle FMA.
578         (combine_var_copies_in_loop_exit): Likewise.
579
580 2010-11-15  Richard Henderson  <rth@redhat.com>
581
582         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
583         * config/ia64/ia64.opt: Remove mfused-madd.
584         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
585         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
586         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
587         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
588         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
589         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
590         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
591         (fmav2sf4): Rename from fpma; use FMA code.
592         (fmsv2sf4): Rename from fpms; use FMA code.
593         (fnmav2sf4): Rename from *fpnma; use FMA code.
594         * config/ia64/ia64.md (MODE_SDF): New iterator.
595         (suffix): New mode attribute.
596         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
597         (fmssf4): Rename from *fmssf4.
598         (fnmasf4): Rename from *nfmasf4.
599         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
600         (*nmadddf4, *nmadddf4_truncsf): Remove.
601         (fmsdf4): Rename from *fmsdf4.
602         (fnmadf4): Rename from *nfmadf4.
603         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
604         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
605         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
606         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
607         (fmsxf4): Rename from *fmsxf4.
608         (fnmaxf4): Rename from *nfmaxf4.
609         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
610         (*fnmaxf_trunc_<MODE_SDF>): New.
611
612 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
613
614         PR tree-optimization/46461
615         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
616         a gimple val.
617
618 2010-11-15  Ian Lance Taylor  <iant@google.com>
619
620         * godump.c: New file.
621         * common.opt (fdump-go-spec=): New option.
622         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
623         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
624         (TYPE_SYMTAB_IS_DIE): Define.
625         (struct tree_type): Change GTY for symtab field to use
626         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
627         to pick the union field.
628         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
629         (dump_go_spec_init): Declare.
630         * toplev.c (process_options): Handle flag_dump_go_spec.
631         * debug.c: Include "tree.h".
632         (do_nothing_debug_hooks): Set tree_type_symtab_field.
633         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
634         * dbxout.c (dbx_debug_hooks): Likewise.
635         (xcoff_debug_hooks): Likewise.
636         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
637         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
638         SDB_DEBUGGING_INFO is not defined.
639         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
640         (Overall Options): Document -fdump-go-spec.
641         * Makefile.in (OBJS-common): Add godump.o.
642         (debug.o): Add dependency on $(TREE_H).
643         (godump.o): New target.
644         (GTFILES): Add $(srcdir)/godump.c.
645
646 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
647
648         PR debug/46095
649         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
650         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
651         style < 0, add REG_FRAME_RELATED_EXPR.
652
653         PR debug/46387
654         * rtl.h (vt_equate_reg_base_value): New prototype.
655         * alias.c (vt_equate_reg_base_value): New function.
656         * var-tracking.c (vt_init_cfa_base): Use it.
657
658 2010-11-15  Jan Hubicka  <jh@suse.cz>
659             Diego Novillo  <dnovillo@google.com>
660
661         PR lto/41528
662         * doc/lto.texi: Add.
663         * doc/gccint.texi: Add reference to lto.texi.
664         * doc/invoke.texi: Update user documentation for LTO.
665         Move internal flags to lto.texi
666
667 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
668
669         * c-typeck.c (build_unary_op): Use
670         objc_build_incr_expr_for_property_ref to build the pre/post
671         increment/decrement of an Objective-C property ref, and skip the
672         lvalue_or_else check in that case.
673
674 2010-11-15  Martin Jambor  <mjambor@suse.cz>
675
676         PR tree-optimization/46349
677         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
678         (contains_vce_or_bfcref_p): Likewise.
679         (sra_modify_assign): Use them.
680
681 2010-11-15  Richard Guenther  <rguenther@suse.de>
682
683         PR tree-optimization/46467
684         * tree-ssa-structalias.c (do_structure_copy): Properly treat
685         variables without subvars.
686
687 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
688
689         * config/picochip/picochip.c (file header): Picochip name change.
690         * config/picochip/picochip.md (file header): Likewise.
691         * config/picochip/predicates.md (file header): Likewise.
692         * config/picochip/dfa_space.md (file header): Likewise.
693         * config/picochip/dfa_speed.md (file header): Likewise.
694         * config/picochip/picochip.h(file header): Likewise.
695         * config/picochip/constraints.md (file header): Likewise.
696         * config/picochip/picochip-protos.h (file header): Likewise.
697         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
698         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
699         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
700         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
701         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
702         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
703         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
704         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
705         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
706         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
707         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
708         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
709         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
710         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
711
712 2010-11-15  Richard Guenther  <rguenther@suse.de>
713
714         PR bootstrap/46474
715         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
716
717 2010-11-15  Nick Clifton  <nickc@redhat.com>
718
719         * config/stormy16/stormy16.c (direct_return): Do not generate a
720         direct return for interrupt handlers.
721
722 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
723
724         * Makefile.in (tm.texi): Replace with rule for:
725         ($(srcdir)/doc/tm.texi).
726         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
727         $(srcdir)/doc/tm.texi .
728         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
729         tm.texi .
730
731         PR target/46427
732         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
733
734         PR bootstrap/45444
735         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
736         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
737
738         PR target/46432
739         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
740
741 2010-11-15  Richard Guenther  <rguenther@suse.de>
742
743         PR lto/44150
744         * lto-opts.c (lto_write_options): Write -fexceptions even if
745         not set by the user.
746
747 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
748
749         PR c/46462
750         * c-decl.c (declspecs_add_type): Make variables with error types
751         integers.
752         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
753         do not start a declaration before an Objective-C foreach.
754         (c_parser_declaration_or_fndef): Improve recovery after unknown
755         type name.
756         (c_parser_for_statement): Hoist entrance of "foreach context"
757         before ifs, add corresponding reset where it was missing.  Do
758         not set objc_could_be_foreach_context for C.
759
760 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
761
762         PR tree-optimization/45722
763         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
764         this is a reference to a component.
765         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
766         (ipa_note_param_call): Adjust comment.
767
768 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
769
770         * config/mips/mips.c (machine_function): Remove
771         initialized_mips16_gp_pseudo_p.
772         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
773         detect whether a pseudo has already been created.  Unconditionally
774         create a new one if not.
775         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
776         expanding to rtl.  Create a new pseudo otherwise, if allowed.
777
778 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
779
780         PR target/43440
781         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
782         * tm.texi: Regenerated.
783         * output.h (decode_reg_name_and_count): Declare.
784         * varasm.c (decode_reg_name_and_count): New function.
785         (decode_reg_name): Reimplement using decode_reg_name_and_count.
786         * reginfo.c (fix_register): Use decode_reg_name_and_count and
787         iterate over all regs used.
788         * stmt.c (expand_asm_operands): Likewise.
789         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
790         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
791         multiple machine registers.
792
793 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
794
795         * stor-layout.c (place_union_field): Do not put location information
796         on offset expressions.
797         (place_field): Likewise.
798         (finalize_record_size): Likewise on size expressions.
799         (finalize_type_size): Likewise.
800         (layout_type): Likewise.
801
802 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
803
804         PR debug/42889
805         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
806         * df-core.c (df_set_bb_dirty_nonrl): Remove.
807         * df.h (df_set_bb_dirty_nonlr): Likewise.
808
809 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
810
811         * config/mips/mips.md (call_internal): Pass curr_insn to
812         mips_split_call.
813         (call_internal_direct): Ditto.
814         (call_value_internal): Ditto.
815         (call_value_internal_direct): Ditto.
816         (call_value_multiple_internal): Ditto.
817         * config/mips/mips.c (mips_split_call): Do not copy
818         CALL_INSN_FUNCTION_USAGE here.
819
820 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
821
822         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
823         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
824         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
825         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
826         (TUNE_LOONGSON_3A): Define.
827         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
828         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
829         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
830         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
831         (mips_rtx_cost_data): Add Loongson-3A.
832
833 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
834
835         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
836         switches.
837
838 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
839
840         * dwarf2out.c (macinfo_entry): New struct.
841         (output_comp_unit): Emit the section start label here and flag that we
842         will emit an info section.
843         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
844         emitting directly.
845         (dwarf2out_end_source_file): Likewise.
846         (dwarf2out_define): Likewise.
847         (dwarf2out_undef): Likewise.
848         (output_macinfo): New.
849         (dwarf2out_init): Do not emit debug section switches here, allocate a
850         vec for macinfo, when required.
851         (dwarf2out_finish): First switch to debug_abbrev_section here.
852         debug_line_section,  debug_macinfo_section, Likewise.
853         Check that the pubtypes table has at least one unpruned entry before
854         trying to emit it.
855
856 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
857
858         PR c/20385
859         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
860         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
861         token lookahead.
862         (c_parser_compound_statement_nostart, c_parser_label,
863         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
864         (c_parser_declaration_or_fndef): Detect the case now matched by
865         c_parser_next_tokens_start_declaration, give error and correct it.
866
867 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
868
869         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
870         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
871         with typespec_kind.
872         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
873         (shadow_tag_warned, check_compound_literal_type): Adjust
874         uses of tag_defined_p.
875         (declspecs_add_type): Set typespec_kind.
876         * c-parser.c (c_parser_declaration_or_fndef,
877         c_parser_declspecs, c_parser_struct_declaration,
878         c_parser_parameter_declaration, c_parser_type_name,
879         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
880         of type_seen_p.
881         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
882         tag_defined_p, pass ctsk_firstref through.
883
884 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
885
886         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
887         (struct format_wanted_type): Replace field "name" with "kind", add
888         "format_start" and "format_length".
889         (check_format_info_main): Fill in new fields.  Fill in
890         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
891         after the final NUL outside the while loop.  Do not include
892         width and precision modifiers in the format_start/format_length
893         of the main format.
894         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
895         arguments.  Compute WANTED_TYPE first so that format_type_warning
896         can be called for missing arguments.  Adjust calls to
897         format_type_warning.
898         (format_type_warning): Fetch as much information as possible
899         from format_wanted_type.  Adjust printing now that every
900         warning has a "descr", as well as for missing argument warnings
901         and to include % sign for format specifiers.
902
903 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
904
905         PR rtl-optimization/46204
906         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
907         Update all callers.  Do not recompute topological order.  Adjust
908         fallthrough edges following a degenerate conditional jump.
909
910 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
911
912         * opts-common.c (control_warning_option): New.
913         * opts.c (set_default_handlers): New.
914         (decode_options): Use set_default_handlers and
915         control_warning_option.
916         (common_handle_option): Update call to enable_warning_as_error.
917         (enable_warning_as_error): Take gcc_options parameters.  Use
918         control_warning_option.
919         * opts.h (set_default_handlers, control_warning_option): Declare.
920
921 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
922
923         * Makefile.in (OPTS_H): Define.
924         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
925         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
926         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
927         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
928         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
929         * gcc.c (driver_handle_option): Take location_t parameter.
930         (process_command, do_self_spec): Update calls to
931         read_cmdline_option.
932         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
933         * langhooks.c (lhd_handle_option): Take location_t parameter.
934         * langhooks.h (handle_option): Take location_t parameter.
935         * lto-opts.c (lto_reissue_options): Update call to set_option.
936         * opts-common.c (handle_option): Make static.  Take location_t
937         parameter and pass it to other functions.
938         (handle_generated_option): Take location_t parameter and pass it
939         to other functions.
940         (read_cmdline_option): Take location_t parameter and pass it to
941         other functions.  Use warning_at and error_at.
942         (set_option): Take location_t parameter and pass it to other
943         functions.
944         * opts.c (common_handle_option): Take location_t parameter and
945         pass it to other functions.
946         (enable_warning_as_error): Make static.  Take location_t parameter
947         and pass it to other functions.
948         (lang_handle_option): Take location_t parameter and pass it to
949         other functions.
950         (target_handle_option): Take location_t parameter.
951         (read_cmdline_options, maybe_default_option,
952         maybe_default_options, default_options_optimization,
953         decode_options): Take location_t parameter and pass it to other
954         functions.
955         * opts.h: Include input.h.
956         (struct cl_option_handler_func, decode_options, set_option,
957         handle_generated_option, read_cmdline_option): Take location_t
958         parameters.
959         (handle_option, enable_warning_as_error): Remove.
960         * toplev.c (toplev_main): Update call to decode_options.
961
962 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
963
964         * graphite-cloog-util.c (oppose_constraint,
965         cloog_matrix_to_ppl_constraint,
966         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
967         CLooG isl uses unsigned integers.  This triggered a warning.
968
969 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
970
971         PR target/46438
972         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
973         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
974         (xtensa_function_arg_1): De-constify cum.
975         (xtensa_expand_prologue): Use add_reg_note.
976
977         PR target/46435
978         * config/cris/cris.c (saved_regs_mentioned): Delete.
979         (cris_reload_address_legitimized): Cast itype to enum reload_type.
980         Remove unused variable op0p.
981         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
982         (cris_emit_movem_store): Use add_reg_note.
983
984         PR bootstrap/46456
985         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
986
987 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
988
989         * function.c (expand_function_end): Set the locator of the prologue on
990         the stack checking insns.
991
992 2010-11-12  Richard Henderson  <rth@redhat.com>
993
994         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
995         * config/xtensa/xtensa.opt (mfused-madd): Remove.
996         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
997         MASK_FUSED_MADD.
998         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
999         (fnmasf4): Rename from mulsubsf3; use fma.
1000
1001 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1002             Richard Henderson  <rth@redhat.com>
1003
1004         PR target/46428
1005         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1006         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1007         comparison.
1008
1009 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
1010
1011         * opts-common.c (decode_cmdline_option): Initialize separate_args.
1012
1013 2010-11-12  Jan Hubicka  <jh@suse.cz>
1014
1015         * doc/invoke.texi (early-inlining-insns): Update default.
1016         * params.def (early-inlining-insns): Default to 10.
1017
1018 2010-11-12  Olivier Hainque  <hainque@adacore.com>
1019
1020         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1021
1022 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1023
1024         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1025         (SUPPORTS_INIT_PRIORITY): Define.
1026
1027 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
1028
1029         PR target/46430
1030         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1031         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1032         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1033         (avr_device_to_devicelib): Likewise.
1034         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1035         into block.
1036         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1037         (zero_extendhidi2, zero_extendsidi2): Likewise.
1038         * config/avr/avr.c (avr_num_arg_regs): Constify type.
1039         (avr_return_addr_rtx): De-constify tem.
1040         (avr_rotate_bytes): Move declarations to start of block.
1041         Don't use variable length array.  Put nested if/else into block.
1042
1043         PR rtl-optimization/46433
1044         * var-tracking.c: Include tm_p.h .
1045
1046         PR bootstrap/44756
1047         PR build/44767
1048         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1049         should be unsigned.
1050         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1051         * doc/tm.texi: Regenerate.
1052
1053         PR target/46412
1054         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1055         * config/bfin/bfin.c: Include sel-sched.h .
1056         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1057         (expand_interrupt_handler_prologue): Remove unused variable insn.
1058         (bfin_load_pic_reg): Likewise.
1059         (bfin_rtx_costs): Make code / outer_code variables of type
1060         enum rtx_code, copied from re-named parameters.
1061         (bfin_local_alignment): Change align argument and return type
1062         to unsigned.
1063         (bfin_adjust_cost): Remove unused variable insn_type.
1064         Declare variables at start of block.
1065         (struct loop_info): Rename to...
1066         (struct loop_info_d).
1067         (workaround_rts_anomaly): Change type of icode to int.
1068         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1069         with int-typed variable.
1070         (note_np_check_stores): Likewise.
1071         (trapping_loads_p): Remove unused variable pat.
1072         (bfin_expand_binop_builtin): Use expand_normal.
1073         (bfin_expand_unop_builtin): Likewise.
1074         (bfin_expand_builtin): Likewise.  Set tmode before use.
1075
1076         PR middle-end/44769
1077         * final.c (split_double): Don't use BITS_PER_WORD directly in
1078         shift count.
1079
1080         PR target/46431
1081         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1082         assignment.
1083
1084         PR target/46450
1085         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1086         Use add_reg_note.
1087         (xstormy16_function_arg): Dereference cum.
1088         (xstormy16_expand_builtin): Use expand_normal.
1089         Change type of omode to enum machine_mode.
1090         (combine_bnp): Rename and to and_insn.
1091
1092         PR target/46437
1093         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
1094         localreg.
1095
1096 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
1097
1098         PR debug/46375
1099         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
1100
1101 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
1102
1103         PR lto/46376
1104         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
1105
1106 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
1107
1108         PR c/44782
1109         * common.opt (fmax-errors=): New option.
1110         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
1111         * diagnostic.h (struct diagnostic_context): Add max_errors field.
1112         * diagnostic.c (diagnostic_initialize): Initialize it.
1113         (diagnostic_action_after_output): Exit if more than max_errors
1114         have been output.
1115         * doc/invoke.texi (Warning Options): Add -fmax-errors.
1116         (-fmax-errors): Document.
1117
1118 2010-11-11  Richard Henderson  <rth@redhat.com>
1119
1120         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
1121
1122 2010-11-11  Richard Henderson  <rth@redhat.com>
1123
1124         * config/fused-madd.opt: New file.
1125         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
1126         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
1127         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1128         * config/i386/i386.opt (mfused-madd): Remove.
1129         * config/i386/sse.md (split_fma): Remove.
1130         (split_fms, split_fnma, split_fnms): Remove.
1131
1132 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
1133
1134         PR target/46088
1135         * config/i386/i386.md (*ashl<mode>3_cconly,
1136         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
1137         change nonimmediate_operand predicate to register_operand.
1138
1139 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
1140
1141         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
1142
1143 2010-11-11  Jan Hubicka  <jh@suse.cz>
1144
1145         * opts.c (finish_options): Do not error on -flto-partition alone.
1146
1147         * doc/invoke.texi (-fwhopr): Merge into -flto section.
1148         (-flto-partition): Document none.
1149         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
1150         * lto-wrapper.c: Update comment.
1151         (run_gcc): Update LTO option parsing.
1152         * opts.c (finish_options): add support -flto-partition=none
1153         (common_handle_option): Remove fwhopr.
1154         * common.opt: Turn fwhopr into flto.
1155         * collect2.c (main): Update option handling.
1156         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
1157         * ipa-split.c (execute_split_functions): Remove flag_whopr.
1158         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1159         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1160         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1161
1162 2010-11-11  Jan Hubicka  <jh@suse.cz>
1163
1164         PR tree-optimize/40436
1165         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1166         (eliminated_by_inlining_prob): ... this one; return 50% probability
1167         for SRA.
1168         (estimate_function_body_sizes): Update use of
1169         eliminated_by_inlining_prob; estimate static function size
1170         for 2 instructions.
1171
1172 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
1173
1174         PR target/44749
1175         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1176         declare.  Change type of argument four to type int.
1177         (mep_secondary_input_reload_class): Returns enum reg_class.
1178         (mep_secondary_output_reload_class): Likewise.
1179         (mep_function_value): Change types of arguments to cont_tree.
1180         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1181         argument four to type int.
1182         (mep_secondary_input_reload_class): Returns enum reg_class.
1183         (mep_secondary_output_reload_class): Likewise.
1184         (mep_function_value): Change types of arguments to cont_tree.
1185         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1186         mep_regno_reg_class to enum reg_class.
1187
1188 2010-11-11  Richard Henderson  <rth@redhat.com>
1189
1190         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1191         that the target has the exact fma operation that we matched.
1192
1193 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1194
1195         * reginfo.c (fix_register): Avoid inserting English word in
1196         diagnostic sentence.  Use %qs for quoting and %'.
1197
1198 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
1199
1200         * config/i386/driver-i386.c (host_detect_local_cpu): Support
1201         Intel processor family 6, model 0x2c.
1202
1203 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
1204
1205         * opts.c (warning_as_error_callback,
1206         register_warning_as_error_callback): Remove.
1207         (enable_warning_as_error): Don't use warning_as_error_callback.
1208         * opts.h (register_warning_as_error_callback): Remove.
1209
1210 2010-11-11  Richard Henderson  <rth@redhat.com>
1211
1212         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1213         in between the MULT and the PLUS/MINUS.
1214
1215 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1216
1217         PR middle-end/46388
1218         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1219         BLKmode mode for it.
1220         (expand_expr_real_1): Similarly for op0.
1221
1222 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1223
1224         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1225         Document optional target selector.
1226
1227 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
1228
1229         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1230         assembling high and low parts of size if not using 32-bit HWINT; else
1231         use DECL_SIZE_UNITS, not DECL_SIZE.
1232
1233 2010-11-11  Martin Jambor  <mjambor@suse.cz>
1234
1235         PR tree-optimization/46383
1236         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1237         offsets.
1238         (compute_complex_ancestor_jump_func): Likewise.
1239         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1240
1241 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
1242
1243         PR debug/46150
1244         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1245         true if expr1->hash != expr2->hash.
1246
1247 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1248
1249         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
1250         diagnostics with lowercase letters.
1251         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
1252         lowercase letters.
1253         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
1254         diagnostic.
1255         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1256         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
1257         lowercase letters.
1258         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1259         Remove trailing ' ' from diagnostic.
1260         * config/avr/avr.c (print_operand_address): Start diagnostic with
1261         a lowercase letter and remove trailing '.'.
1262         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
1263         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
1264         with lowercase letters.  Use %' in diagnostics.  Remove trailing
1265         '.' from diagnostics.
1266         (bfin_handle_longcall_attribute): Use %' in diagnostic.
1267         * config/cris/cris.c (cris_split_movdx,
1268         cris_expand_pic_call_address): Start diagnostics with lowercase
1269         letters.
1270         (cris_asm_output_label_ref): Use %' in diagnostic.
1271         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
1272         letter.
1273         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
1274         lowercase letter.
1275         * config/darwin-c.c (version_as_macro): Start diagnostic with a
1276         lowercase letter.
1277         * config/darwin-driver.c (darwin_default_min_version): Use %' in
1278         diagnostic.
1279         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
1280         diagnostic.
1281         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1282         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
1283         diagnostics.
1284         * config/i386/i386.c (ix86_option_override_internal): Write
1285         diagnostic as a single sentence without trailing '.'.  Use %' in
1286         diagnostics.
1287         (ix86_function_sseregparm, classify_argument): Start diagnostics
1288         with lowercase letters.
1289         (ix86_expand_prologue): Use %' in diagnostic.
1290         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
1291         diagnostic.
1292         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
1293         lowercase letter.
1294         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
1295         diagnostic.
1296         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1297         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
1298         '`' in help text.
1299         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
1300         lowercase letter.
1301         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
1302         lowercase letters.
1303         * config/microblaze/microblaze.c (microblaze_handle_option):
1304         Remove trailing '.' from diagnostic.
1305         (print_operand): Start diagnostic with a lowercase letter.
1306         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
1307         lowercase letters.  Avoid '`' in diagnostics.
1308         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
1309         lowercase letters.  Avoid '`' in diagnostics.
1310         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
1311         lowercase letters.  Avoid '`' in diagnostics.
1312         * config/picochip/picochip.c (picochip_option_override,
1313         picochip_emit_save_register, picochip_function_arg,
1314         picochip_output_label, picochip_output_internal_label,
1315         picochip_asm_output_opcode, picochip_output_cbranch,
1316         picochip_output_compare, picochip_output_branch,
1317         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
1318         diagnostics. Start diagnostics with lowercase letters.  Use %' in
1319         diagnostics.
1320         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
1321         "SPE" capitalization.  Start diagnostic with a lowercase letter.
1322         (rs6000_handle_option): Start diagnostics with lowercase letters.
1323         (def_builtin): Remove trailing '.' from diagnostic.
1324         (rs6000_savres_routine_name): Start diagnostic with a lowercase
1325         letter.
1326         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
1327         diagnostic.
1328         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
1329         lowercase letter.
1330         * config/s390/s390.c (s390_option_override) Start diagnostics with
1331         lowercase letters.  Use %' in diagnostic.
1332         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
1333         lowercase letters.
1334         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
1335         diagnostic.
1336         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
1337         diagnostic.
1338         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
1339         diagnostic.
1340         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1341         * config/spu/spu.c (spu_option_override): Start diagnostics with
1342         lowercase letters.  Use %qs for quoting in diagnostics.
1343         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
1344         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
1345         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
1346         from diagnostic.
1347         * convert.c (convert_to_integer, convert_to_vector): Use %' in
1348         diagnostics.
1349         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
1350         letter and use "cannot" spelling.
1351         * expmed.c (extract_fixed_bit_field): Start diagnostic with
1352         lowercase letter and format as a single sentence without '.'.
1353         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
1354         Use %' in diagnostics.
1355         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1356         Use %' in diagnostics.
1357         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1358         Use %' in diagnostics.
1359         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
1360         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
1361         with lowercase letters and remove tailing '.' and '\n'.
1362         * lto-cgraph.c (input_profile_summary): Start diagnostic with
1363         lowercase letter and remove trailing '.'.
1364         (input_cgraph): Start diagnostics with lowercase letters and
1365         remove trailing '\n'.
1366         * opts.c (finish_options, common_handle_option): Start diagnostics
1367         with lowercase letters and remove trailing '.'.  Fix typo in
1368         diagnostic.
1369         * passes.c (position_pass): Start diagnostic with lowercase letter.
1370         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
1371         register_callback, try_init_one_plugin): Start diagnostics with
1372         lowercase letters.
1373         * reload1.c (spill_failure): Use %' in diagnostic.
1374         (gen_reload): Start diagnostic with a lowercase letter.
1375         * stor-layout.c (place_field): Start diagnostic with a lowercase
1376         letter.
1377         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
1378         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
1379         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
1380         Start diagnostics with lowercase letters, remove trailing '.' and
1381         use %' in diagnostics.
1382         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
1383         (verify_ssa): Don't split diagnostic across two error calls.
1384         Spell out "number" and use %' in diagnostic.
1385         * value-prof.c (visit_hist, check_counter): Start diagnostics with
1386         lowercase letters.
1387
1388 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
1389
1390         PR middle-end/46419
1391         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
1392         (_mm_cvtpu16_ps): Ditto.
1393
1394 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1395
1396         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
1397         warn_larger_than, larger_than_size, warn_frame_larger_than,
1398         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
1399         default_visibility, flag_tls_default): New Variable declarations.
1400         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
1401         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
1402         (v): Declare as Common and document here.
1403         * flags.h (default_visibility, flag_generate_lto,
1404         warn_larger_than, larger_than_size, warn_frame_larger_than,
1405         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
1406         flag_shlib, flag_excess_precision_cmdline): Remove.
1407         (set_Wstrict_aliasing): Update prototype.
1408         * gcc.c (verbose_flag): Remove.
1409         (driver_handle_option): Add diagnostic_context parameter.  Don't
1410         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
1411         incrementing it.
1412         * opts-common.c (handle_option): Pass dc to handler.
1413         * opts.c (warn_larger_than, larger_than_size,
1414         warn_frame_larger_than, frame_larger_than_size,
1415         default_visibility): Remove.
1416         (common_handle_option): Add diagnostic_context parameter.
1417         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
1418         gcc_options parameters.
1419         (lang_handle_option, target_handle_option, read_cmdline_options,
1420         decode_options): Add diagnostic_context parameters.
1421         (finish_options): Access option state through opts pointer where
1422         possible.
1423         (common_handle_option): Access option state through opts pointer
1424         where possible.  Do not set local static variable verbose.  Do not
1425         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
1426         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
1427         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
1428         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
1429         OPT_fwhopr_.  Do not explicitly set .opt file variables for
1430         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
1431         (set_Wstrict_aliasing): Add gcc_options parameter.
1432         * opts.h (struct cl_option_handler_func): Add diagnostic_context
1433         parameter to handler.
1434         (decode_options): Add diagnostic_context parameter.
1435         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
1436         asm_file_name, flag_generate_lto, flag_gen_aux_info,
1437         aux_info_file_name, flag_shlib, flag_tls_default,
1438         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
1439         (toplev_main): Pass global_dc to decode_options.
1440         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
1441         aux_info_file_name, asm_file_name): Remove.
1442         * tree.h (flag_tls_default): Remove.
1443
1444 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1445
1446         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
1447         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
1448
1449 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1450
1451         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
1452         (x86_64-*-*): Likewise.
1453         * config/i386/cpuid.h: Define TBM bit.
1454         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1455         and set has_tbm.
1456         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1457         isa_flag for TBM.
1458         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
1459         (OPTION_MASK_ISA_TBM_UNSET): New.
1460         (ix86_handle_option): Handle -mtbm.
1461         (isa_opts): Add -mtbm.
1462         (enum pta_flags): Add PTA_TBM.
1463         (ix86_option_override_internal): Add TBM support.
1464         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
1465         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
1466         (IX86_BUILTIN_BEXTRI64): Likewise.
1467         (bdesc_args): Add TBM intrinsics.
1468         (ix86_expand_builtin): Add TBM specific case.
1469         * config/i386/i386.h (TARGET_TBM): New for TBM.
1470         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
1471         (tbm_bextri_<mode>): Likewise.
1472         (*tbm_blcfill_<mode>): Likewise.
1473         (*tbm_blci_<mode>): Likewise.
1474         (*tbm_blcic_<mode>): Likewise.
1475         (*tbm_blcmsk_<mode>): Likewise.
1476         (*tbm_blcs_<mode>): Likewise.
1477         (*tbm_blsfill_<mode>): Likewise.
1478         (*tbm_blsic_<mode>): Likewise.
1479         (*tbm_t1mskc_<mode>): Likewise.
1480         (*tbm_tzmsk_<mode>): Likewise.
1481         * config/i386/i386.opt: Add -mtbm.
1482         * config/i386/tbmintrin.h (__bextri_u32): New.
1483         (__blcfill_u32): Likewise.
1484         (__blci_u32): Likewise.
1485         (__blcic_u32): Likewise.
1486         (__blcmsk_u32): Likewise.
1487         (__blcs_u32): Likewise.
1488         (__blsfill_u32): Likewise.
1489         (__blsic_u32): Likewise.
1490         (__t1mskc_u32): Likewise.
1491         (__tzmsk_u32): Likewise.
1492         (__bextri_u64): Likewise.
1493         (__blcfill_u64): Likewise.
1494         (__blci_u64): Likewise.
1495         (__blcic_u64): Likewise.
1496         (__blcmsk_u64): Likewise.
1497         (__blcs_u64): Likewise.
1498         (__blsfill_u64): Likewise.
1499         (__blsic_u64): Likewise.
1500         (__t1mskc_u64): Likewise.
1501         (__tzmsk_u64): Likewise.
1502         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
1503         * doc/invoke.texi: Document -mtbm.
1504         * doc/extend.texi: Document TBM built-in functions.
1505
1506 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
1507
1508         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
1509         (x86_64-*-*): Likewise.
1510         * config/i386/cpuid.h: Define BMI bit.
1511         * config/i386/driver-i386.c (host_detect_local_cpu): Define
1512         and set has_bmi.
1513         * config/i386/i386-c.c (ix86_target_macros_internal): Check
1514         isa_flag for BMI.
1515         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
1516         (OPTION_MASK_ISA_BMI_UNSET): New.
1517         (ix86_handle_option): Handle -mbmi.
1518         (isa_opts): Add -mbmi.
1519         (enum pta_flags): Add PTA_BMI.
1520         (ix86_option_override_internal): Add BMI support.
1521         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
1522         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
1523         (IX86_BUILTIN_BEXTR64): Likewise.
1524         (IX86_BUILTIN_CTZS): Likewise.
1525         (bdesc_args): Add BMI intrinsics.
1526         (ix86_expand_args_builtin): Add BMI specific cases.
1527         * config/i386/i386.h (TARGET_BMI): New for BMI.
1528         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
1529         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
1530         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
1531         (UNSPEC_TZCNT): Likewise.
1532         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
1533         (bmi_andn_<mode>): New for BMI.
1534         (bmi_bextr_<mode>): Likewise.
1535         (bmi_blsi_<mode>): Likewise.
1536         (bmi_blsmsk_<mode>): Likewise.
1537         (bmi_blsr_<mode>): Likewise.
1538         * config/i386/i386.opt: Add -mbmi.
1539         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
1540         * config/i386/bmiintrin.h (__lzcnt_u16): New.
1541         (__tzcnt_u16): Likewise.
1542         (__andn_u32): Likewise.
1543         (__bextr_u32): Likewise.
1544         (__blsi_u32): Likewise.
1545         (__blsmsk_u32): Likewise.
1546         (__blsr_u32): Likewise.
1547         (__lzcnt_u32): Likewise.
1548         (__tzcnt_u32): Likewise.
1549         (__andn_u64): Likewise.
1550         (__bextr_u64): Likewise.
1551         (__blsi_u64): Likewise.
1552         (__blsmsk_u64): Likewise.
1553         (__blsr_u64): Likewise.
1554         (__lzcnt_u64): Likewise.
1555         (__tzcnt_u64): Likewise.
1556         * doc/invoke.texi: Document -mbmi and -mno-bmi.
1557         * doc/extend.texi: Document BMI built-in functions.
1558
1559 2010-11-10  Jan Hubicka  <jh@suse.cz>
1560
1561         PR tree-optimize/46228
1562         * doc/invoke.texi (comdat-sharing-probability): Document.
1563         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
1564         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
1565
1566 2010-11-10  Jan Hubicka  <jh@suse.cz>
1567
1568         PR tree-optimize/46228
1569         * cgraph.c (cgraph_propagate_frequency): Fix typo.
1570
1571 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
1572
1573         PR tree-optimization/46414
1574         * tree-inline.c (estimate_move_cost): Check preferred vector
1575         mode for vector type.
1576
1577 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1578
1579         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
1580
1581 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
1582
1583         PR tree-optimization/45971
1584         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
1585         for phi nodes analyzable by scev.
1586
1587 2010-11-10  Richard Guenther  <rguenther@suse.de>
1588
1589         PR tree-optimization/44964
1590         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
1591
1592 2010-11-10  Martin Jambor  <mjambor@suse.cz>
1593
1594         PR tree-optimization/46351
1595         PR tree-optimization/46377
1596         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
1597         aggregate bit-fields.
1598
1599 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
1600
1601         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1602         * doc/tm.texi: Regenerate.
1603         * opts-common.c (tm.h): Don't include.
1604         (target_option_translations): Remove.
1605         (decode_cmdline_options_to_array): Don't handle translating options.
1606         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
1607         * config/darwin-driver.c: Don't condition includes on
1608         CROSS_DIRECTORY_STRUCTURE.
1609         (darwin_default_min_version): Make static.
1610         (darwin_driver_init): New.  Call darwin_default_min_version if not
1611         CROSS_DIRECTORY_STRUCTURE.
1612         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1613         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
1614         (ASM_SPEC): Add %{static}.
1615         (darwin_default_min_version): Don't declare.
1616         (darwin_driver_init): Declare.
1617         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
1618         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
1619         * config/darwin.opt (all_load, allowable_client,
1620         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
1621         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
1622         exported_symbols_list, filelist, findirect-virtual-calls,
1623         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
1624         framework, fterminated-vtables, gfull, gused, image_base, init,
1625         install_name, multi_module, multiply_defined,
1626         multiply_defined_unused, no_dead_strip_inits_and_terms,
1627         seg_addr_table, seg_addr_table_filename, segaddr,
1628         segs_read_only_addr, segs_read_write_addr, single_module,
1629         umbrella, unexported_symbols_list, weak_reference_mismatches,
1630         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
1631         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
1632         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
1633         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
1634         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
1635         (ASM_SPEC): Add %{static}.
1636         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1637         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1638         (DRIVER_SELF_SPECS): Handle options formerly in
1639         TARGET_OPTION_TRANSLATE_TABLE.
1640         * config/mep/mep.opt (mfar): New.
1641         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1642         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
1643         TARGET_OPTION_TRANSLATE_TABLE.
1644         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
1645         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
1646         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
1647         ffix-and-continue, findirect-data): New.
1648         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
1649         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
1650         (mnofpu): Define mask and use Report here.
1651
1652 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1653
1654         * config/s390/s390.c (s390_emit_prologue): Report the stack
1655         size if -fstack-usage is used.
1656
1657 2010-11-10  Richard Guenther  <rguenther@suse.de>
1658
1659         PR tree-optimization/46398
1660         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
1661
1662 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
1663
1664         PR target/44760
1665         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
1666         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
1667         GP_REG_OR_PSEUDO_STRICT_P.
1668         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
1669         unexpected alternative.
1670         (*movsf_internal): Likewise.
1671         (indirect_jump): Replace call to non-existant function with call to
1672         internal_error.
1673         (tablejump): Likewise.
1674         * config/iq2000/iq2000.c: Include df.h .
1675         (iq2000_function_arg_advance): Use CONST_CAST2.
1676         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
1677         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
1678         a non-zero function address.
1679         (iq2000_initial_elimination_offset): Add gcc_unreachable for
1680         unexpected value of FROM.
1681         (symbolic_expression_p): Delete.
1682         (iq2000_function_value): Constify func.
1683         (expand_one_builtin): Use expand_normal.
1684         (iq2000_print_operand): Don't print VALUE if calculating it failed.
1685
1686         PR rtl-optimization/44764
1687         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
1688
1689         PR target/46407
1690         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
1691         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
1692         with ATTRIBUTE_UNUSED.
1693         (valid_psw_flag): Constify parameter which.
1694         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
1695
1696         PR target/46415
1697         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
1698         (mmix_dbx_register_number): Likewise.
1699         * config/mmix/mmix.c: Include df.h .
1700         (mmix_local_alignment): Change argument basic_align and return type
1701         to unsigned.
1702         (mmix_dbx_register_number): Change argument and return type to
1703         unsigned.
1704         (mmix_expand_prologue): Use add_reg_note.
1705
1706         PR target/46417
1707         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
1708         (spu_split_store): Use aform.
1709         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
1710
1711 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1712
1713         PR/46268
1714         * doc/gty.texi (GTY Options): Clarify that variable_size produces
1715         allocators taking size in bytes, compare with length option.  Add
1716         size calculation example.
1717         (Invoking the garbage collector): Ensure that sentences are
1718         followed by two spaces.  Describe that pointer fields must be
1719         initialized at ggc_collect call.
1720         (Troubleshooting): New section.
1721
1722 2010-11-09  Jan Hubicka  <jh@suse.cz>
1723
1724         PR tree-optimization/40436
1725         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
1726         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
1727         normal instructions; be sure bultin is not implemented in this file;
1728         compute non-zero return cost.
1729         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
1730         * tree-inline.h (eni_weights_d): Add return cost.
1731
1732 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
1733
1734         * c-parser.c (c_parser_struct_declaration): Handle declaration
1735         specifiers followed by CPP_CLOSE_BRACE.
1736
1737 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
1738
1739         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
1740         split occurs before reload, and we allocate memory at the time of
1741         the split, not during expansion.  Add attributes.
1742         (floatsi<mode>2_lfiwax_mem): Ditto.
1743         (floatunssi<mode>2_lfiwzx): Ditto.
1744         (floatunssi<mode>2_lfiwzx_mem): Ditto.
1745         (floatsidf2): Ditto.
1746         (floatunssisf2): Ditto.
1747         (floatunssidf2): Ditto.
1748         (fix_trunc<mode>si2): Ditto.
1749         (fix_trunc<mode>si2_stfiwx): Ditto.
1750         (fix_trunc<mode>si2_internal): Ditto.
1751         (fix_trunc<mode>si2): Ditto.
1752         (fix_trunc<mode>di2): Ditto.
1753         (fixuns_trunc<mode>si2_stfiwx): Ditto.
1754         (floatsisf2): Ditto.
1755         (floatdidf2_mem): Ditto.
1756         (floatunsdidf2_mem): Ditto.
1757         (floatunsdidf2): Ditto.
1758         (floatdisf2_internal1): Ditto.
1759         (floatdisf2_mem): Ditto.
1760         (floatunsdisf2_mem): Ditto.
1761         (floatsi<mode>2_lfiwax_mem2): Delete.
1762         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
1763         (fix_trunc<mode>si2_mem): Ditto.
1764         (fixuns_trunc<mode>si2_mem): Ditto.
1765         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
1766         type operations to reduce copying the values to multiple memory slots.
1767         (roundu32<mode>2_fprs): Ditto.
1768
1769         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
1770         PRE_INC, PRE_DEC, PRE_MODIFY.
1771         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
1772
1773         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
1774         Delete prototype.
1775
1776 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1777
1778         PR target/43808
1779         * cfgexpand.c (partition_stack_vars): Call
1780         update_alias_info_with_stack_vars unconditionally.
1781         (update_alias_info_with_stack_vars): Allow unused
1782         unreferenced vars when not optimizing.
1783
1784 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
1785
1786         PR tree-optimization/46036
1787         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
1788         add_to_dst_predicate_list.
1789
1790 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1791
1792         PR debug/46171
1793         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
1794         earlier.
1795         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
1796         argument, call dead_debug_reset when adding REG_UNUSED note.
1797         (dead_debug_reset): New function.
1798         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
1799         df_create_unused_note callers.
1800
1801 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
1802
1803         * config/fr30/fr30.c: Include "df.h".
1804
1805 2010-11-09  Richard Guenther  <rguenther@suse.de>
1806
1807         PR tree-optimization/46355
1808         * tree-loop-distribution.c (tree_loop_distribution): Do not
1809         distribute loops without a single exit.
1810
1811 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1812
1813         PR rtl-optimization/46237
1814         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
1815         saved hard regs if they might get partially clobbered.
1816
1817 2010-11-09  Paul Koning  <ni1d@arrl.net>
1818
1819         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
1820
1821 2010-11-09  Richard Guenther  <rguenther@suse.de>
1822
1823         PR tree-optimization/46177
1824         * tree-loop-distribution.c (prop_phis): Remove.
1825         (generate_builtin): Re-use the old loop exit edge to avoid
1826         needing to update PHI nodes.
1827
1828 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
1829
1830         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
1831         type of args_size to unsigned HOST_WIDE_INT.
1832
1833         PR target/44755
1834         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
1835         * config/t-pnt16-warn: New file.
1836         * config/picochip/picochip.c (picochip_emit_stack_allocate):
1837         Use add_reg_note.
1838         (picochip_emit_save_register): Likewise.
1839         (picochip_emit_restore_register): Remove variable insn.
1840         (picochip_legitimize_address): Don't use C++ style comments.
1841         (picochip_legitimize_reload_address): Likewise.
1842         (reorder_var_tracking_notes): Remove variable vliw_start.
1843         (picochip_reorg): Cast first arguemnt to emit_note_after to
1844         enum insn_note.
1845         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
1846         (picochip_expand_builtin_3op): Likewise.
1847         (picochip_expand_builtin_2opvoid): Likewise.
1848         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
1849         (picochip_expand_array_testport): Likewise.
1850         (picochip_init_builtins): Remove unused variables.
1851         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
1852         to unsigned long, and output it as such.
1853         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
1854         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
1855         (schedType): Cast result of picochip_schedule_type to
1856         enum attr_schedType.
1857
1858         PR target/44759
1859         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
1860         conditional to type of S.
1861         (mn10300_function_arg): Remove unused variable align.
1862         (mn10300_arg_partial_bytes): Likewise.
1863         * config/mn10300/mn10300.md (attribute cpu): Cast value to
1864         enum attr_cpu.
1865
1866 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
1867
1868         PR bootstrap/46392
1869         * gengtype-parse.c (type): Call get_input_file_name to get file name.
1870
1871 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1872
1873         * tree.h (contains_placeholder_p): Fix comment.
1874         (type_contains_placeholder_p): Adjust comment.
1875         * tree.c (contains_placeholder_p): Fix comment.
1876         (type_contains_placeholder_1): Do not recurse on pointed-to types and
1877         adjust comment.
1878         (type_contains_placeholder_p): Add comment.
1879
1880 2010-11-09  Paul Koning  <ni1d@arrl.net>
1881
1882         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
1883         output of byte values.
1884
1885 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
1886
1887         PR middle-end/46360
1888         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
1889         not in SSA mode.
1890
1891 2010-11-09  Richard Guenther  <rguenther@suse.de>
1892
1893         PR middle-end/46221
1894         * varasm.c (compute_visible_aliases): New function.
1895         (remove_unreachable_alias_pairs): Aliases make a target available
1896         even though we reclaimed the cgraph node.
1897         (finish_aliases_1): Likewise.
1898         * Makefile.in (varasm.o): Add pointer-set.h dependency.
1899
1900 2010-11-09  Nick Clifton  <nickc@redhat.com>
1901
1902         * config/mn10300/mn10300-modes.def: New file.
1903
1904 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
1905             Jeremie Salvucci  <jeremie.salvucci@free.fr>
1906
1907         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
1908         (plugin_files, get_file_basename, get_file_realbasename)
1909         (get_file_langdir, error_at_line, gt_files, this_file)
1910         (system_h_file, read_input_list, create_field_all)
1911         (get_file_srcdir_relative_path, get_file_basename)
1912         (get_file_langdir, get_file_gtfilename)
1913         (get_output_file_with_visibility, get_output_file_name)
1914         (struct flist, put_mangled_filename, walk_type)
1915         (put_mangled_filename, finish_root_table, write_roots): Use
1916         input_file-s.
1917         (lang_dir_names, num_lang_dirs): Remove static.
1918         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
1919         (main): Use input_file-s.
1920
1921         * gengtype.h: (struct input_file_st, input_file): New type.
1922         (struct fileloc): Use it.
1923         (gt_files, num_gt_files, this_file, system_h_file)
1924         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
1925         (get_input_file_name): New function.
1926         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
1927         use input_file.
1928         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
1929         (get_output_file_name): Ditto.
1930
1931         * gengtype-lex.l (yybegin): Use input_file.
1932
1933         * gengtype-parse.c (parse_error): Use input_file.
1934
1935 2010-11-08  Xinliang David Li  <davidxl@google.com>
1936
1937         PR tree-optimization/46316
1938         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
1939         * double-int.h (double_int_mul_with_sign): New function.
1940         * double-int.c (double_int_mul_with_sign): New function.
1941
1942 2010-11-08  Paul Koning  <ni1d@arrl.net>
1943
1944         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
1945
1946 2010-11-08  Paul Koning  <ni1d@arrl.net>
1947
1948         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
1949
1950 2010-11-08  Paul Koning  <ni1d@arrl.net>
1951
1952         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
1953         to 8 bits.
1954
1955 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1956
1957         PR target/46378
1958         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
1959         turn on ISA 2.04 rounding instructions for power5.
1960
1961         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
1962         not ISA 2.02.
1963
1964         PR target/45585
1965         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
1966         in FPR registers.
1967         (movdi_low_st): Ditto.
1968
1969 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
1970             Richard Henderson  <rth@redhat.com>
1971
1972         PR target/44758
1973         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
1974         (attribute acc_group): Cast value to enum attr_acc_group.
1975         (*movdi_nodouble+6): Use gen_int_mode.
1976         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
1977         if RTX_CODE is defined or not.
1978         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
1979         struct frv_io.
1980         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
1981         (frv_frame_access, frv_expand_prologue): Remove unused variables.
1982         (frv_expand_block_clear): Likewise.
1983         (frv_trampoline_init): Use LCT_NORMAL.
1984         (struct frv_packet_group): New struct, broken out of type of
1985         frv_packet.
1986         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
1987         use cast in loop counter increment.
1988         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
1989         assigning to io->type.
1990         (bdesc_set): Use rtx_code UNKNOWN in initializer.
1991         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
1992         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
1993         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
1994         (frv_read_argument): Use expand_normal.
1995
1996         PR target/44757
1997         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
1998         lm32_legitimate_constant_p.
1999         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2000         * config/lm32/lm32.c (gen_int_relational): Make new block for
2001         LE / LT / LEU / LTU case.  Declare variables at start of block.
2002         (lm32_block_move_inline): Use XALLOCAVEC.
2003
2004 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2005
2006         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2007
2008 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2009
2010         * gengtype (get_output_file_for_structure): Ensure type is union
2011         or struct.
2012         (write_splay_tree_allocator_def): Use
2013         get_output_file_with_visibility.
2014
2015 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2016
2017         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2018         to defined values in case of an error.
2019         (s390_option_override): Skip further processing if the -march
2020         parameter wasn't recognized.
2021
2022 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
2023
2024         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2025         assert that REG is a hard register number before using it as an index.
2026
2027         PR bootstrap/46358
2028         * config/i386/i386.c (ix86_expand_split_stack_prologue):
2029         Avoid warnings when HOST_WIDE_INT is 32 bit.
2030
2031 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2032
2033         PR target/46208
2034         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2035         (sparc_promote_prototypes): Likewise.
2036         (sparc_promote_function_mode): Promote in 32-bit mode as well.
2037         (sparc_return_in_memory): Remove superfluous parentheses.
2038         (sparc_struct_value_rtx): Fix long lines.
2039         (sparc_function_value_1): Promote in 32-bit mode as well.
2040
2041 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
2042
2043         PR rtl-optimization/45352
2044         * sel-sched.c (find_best_expr): Do not set pneed_stall when
2045         the variable_issue hook is not implemented.
2046         (fill_insns): Remove dead variable stall_iterations.
2047         (init_seqno_1): Force EBB start for resetting sched cycles on any
2048         successor blocks of the rescheduled region.
2049         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2050         (reset_sched_cycles_in_current_ebb): Add debug printing.
2051         New variable issued_insns.  Advance state when we have issued
2052         issue_rate insns.
2053
2054 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
2055
2056         * gengtype (main): Get here's position using POS_HERE macro for
2057         do*typedef calls.
2058
2059 2010-11-07  Ian Lance Taylor  <iant@google.com>
2060
2061         PR target/46089
2062         * config/i386/i386.c (split_stack_fn_large): New static variable.
2063         (ix86_expand_split_stack_prologue): Handle large model.
2064
2065 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
2066
2067         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2068         all possible addressing modes.
2069
2070 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
2071
2072         PR tree-optimization/46346
2073         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2074
2075 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2076
2077         * config/mips/mips.c: Revert previous patch.
2078         * config/mips/mips.md: Likewise.
2079
2080 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
2081
2082         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2083         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2084         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2085         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
2086         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
2087         to use FMA.
2088         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
2089         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
2090         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
2091         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2092
2093 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
2094
2095         PR c/43384
2096         * c-decl.c (lookup_label): Labels can only be referenced in a
2097         function's scope.
2098         (store_parm_decls_oldstyle): Skip erroneous parameters.
2099
2100 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
2101
2102         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2103         LIBCALL_VALUE): Remove macros.
2104         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2105         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2106         (fr30_function_value_regno_p, fr30_function_value,
2107         fr30_libcall_value): New functions.
2108
2109 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
2110
2111         PR middle-end/46314
2112         * target.def (generate_internal_label): New asm_out hook.
2113         * output.h (default_generate_internal_label): Declare.
2114         * varasm.c (default_generate_internal_label): Define.
2115
2116 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
2117
2118         PR target/44981
2119         * doc/extend.tex (format): Document NSString extension.
2120         (format_arg): Likewise.
2121         (Darwin Format Checks): New section.
2122         * doc/tm.texi: Document string object hooks (generated).
2123         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
2124         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2125         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2126         * target.def (objc_construct_string_object): Rename, amend
2127         documentation.
2128         (string_object_ref_type_p): New hook.
2129         (check_string_object_format_arg): New hook.
2130         * c-parser.c (c_parser_attributes): Allow objective-c class names as
2131         attribute identifiers.
2132         * config/darwin-c.c (darwin_cfstring_ref_p): New.
2133         (darwin_check_cfstring_format_arg): New.
2134         (darwin_additional_format_types): New.
2135         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
2136         (darwin_check_cfstring_format_arg): New.
2137         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
2138         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2139         (TARGET_N_FORMAT_TYPES): New.
2140         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2141
2142 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
2143             Pascal Obry  <obry@adacore.com>
2144
2145         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
2146         in 64-bit mode and 17 otherwise.
2147
2148 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2149
2150         PR debug/45939
2151         * var-tracking.c (emit_note_insn_var_location): Make sure that
2152         call related var location notes come before the normal ones.
2153
2154 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2155
2156         PR target/46326
2157         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2158         in the last change.
2159
2160 2010-11-05  Ian Lance Taylor  <iant@google.com>
2161
2162         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2163
2164 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2165
2166         PR c/44772
2167         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2168         pointer_set_contains if DECL_NAME is NULL.
2169
2170 2010-11-05  Ian Lance Taylor  <iant@google.com>
2171
2172         PR target/46084
2173         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2174         request enough additional space for alignment, and force alignment.
2175
2176 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
2177
2178         * config/i386/i386.c (legitimate_pic_address_disp_p):
2179         Handle UNSPEC_PCREL.
2180         (ix86_legitimate_address_p): Likewise.
2181         (legitimize_pic_address): Likewise.
2182         (output_pic_addr_const): Likewise.
2183         (ix86_delegitimize_address): Likewise.
2184         (ix86_find_base_term): Likewise.
2185         (memory_address_length): Likewise.
2186         (x86_output_mi_thunk): Handle special case x64
2187         for non local binding.
2188         * config/i386/i386.md (UNSPEC_PCREL): New.
2189         * config/i386/winnt.c (i386_pe_binds_local_p):
2190         Allow weak symbol for x64 windows with non-local binding.
2191
2192 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2193
2194         PR target/45670
2195         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2196         instead of EXPAND_NORMAL for base expansion.
2197
2198 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
2199
2200         * config.gcc: Support --with-fpmath=avx for x86.
2201         * config/i386/avxmath.h: New.
2202         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2203
2204 2010-11-05  Ian Lance Taylor  <iant@google.com>
2205
2206         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2207         * gengtype.c (walk_type): Don't recognize descbits option.
2208
2209 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
2210
2211         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2212         WORD_SWITCH_TAKES_ARG): Remove.
2213         * doc/options.texi (Args): Document.
2214         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2215         * doc/tm.texi: Regenerate.
2216         * opt-functions.awk (switch_flags): Handle Args.
2217         * opts-common.c: Update comment on tm.h include.
2218         (decode_cmdline_option): Handle options with multiple arguments.
2219         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2220         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2221         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2222         CL_COMMON): Update values.
2223         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2224         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2225         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2226         sectobjectsymbols, sectorder, segcreate, segprot): New.
2227
2228 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
2229             Uros Bizjak  <ubizjak@gmail.com>
2230
2231         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2232         256bit AVX register is used.
2233         (ix86_expand_vector_move_misalign): Likewise.
2234         (ix86_expand_vector_move): Replace use_avx256_p with
2235         VALID_AVX256_REG_MODE.
2236
2237 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
2238
2239          PR target/44750
2240         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2241         change.  Set $@-warn.o to -Wno-error.
2242
2243         PR bootstrap/44756
2244         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2245         comparing it to a signed value.
2246
2247         PR middle-end/44766
2248         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
2249         PR bootstrap/44770
2250         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
2251         to i.
2252
2253         PR target/44754
2254         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
2255         (m32c_function_arg).  Add comma between arguments two and three.
2256         (m32c_promote_prototypes): Remove declaration.
2257         (current_function_special_page_vector): Likewise.
2258         (m32c_regno_reg_class): Change return type to enum reg_class.
2259         (m32c_pushm_popm): Use add_reg_note.
2260         (m32c_push_rounding): Change return type to unsigned int.
2261         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
2262         enum reload_type.
2263         (m32c_insert_attributes): Constify variable name.
2264         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
2265         (m32c_prepare_shift): Remove variable lref.
2266         (m32c_expand_movcc): Remove variable cmp.
2267         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
2268         (m32c_compare_redundant): Remove variable op2.
2269         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
2270         (m32c_pragma_memregs): Assign the number to target_memregs.
2271         (m32c_pragma_address): Remove variable var_str.
2272         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
2273         enum reg_class.
2274         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
2275         * config/m32c/bitops.md (andsi3): Add default case to switch.
2276         (iorsi3, xorsi3): Likewise.
2277         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
2278         * config/m32c/jump.md (call, call_value): Likewise.
2279         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
2280         (m32c_regno_reg_class): Likewise.
2281         (current_function_special_page_vector): Declare.
2282
2283 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
2284
2285         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
2286
2287         PR tree-optimization/46099
2288         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
2289         if it is NULL and uid wasn't found in the hash table.  Just fold the
2290         result if it is NULL otherwise.  Insert other potentially needed
2291         stmts right before current stmt instead of on the entry edge.
2292         (struct elv_data): Add gsi and reset fields.
2293         (eliminate_local_variables_1): Adjust caller.  If take_address_of
2294         failed for debug stmt, set dta->reset and return.
2295         (eliminate_local_variables_stmt): Change STMT argument for GSI,
2296         pass GSI through to the callback, handle resetting of debug stmts.
2297         (eliminate_local_variables): Adjust caller.  Process debug stmts
2298         in second phase.
2299
2300         PR middle-end/43690
2301         * gimplify.c (gimplify_asm_expr): If a "m" input is a
2302         {pre,post}{in,de}crement, fail.
2303
2304         PR debug/46307
2305         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
2306         * tree-pretty-print.c (dump_generic_node): Likewise.
2307         (op_code_prio): Likewise.
2308         * cfgexpand.c (expand_debug_expr): Likewise.
2309
2310 2010-11-04  Paul Koning  <ni1d@arrl.net>
2311
2312         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
2313         constraints.
2314
2315 2010-11-04  Chao-ying Fu  <fu@mips.com>
2316
2317         * configure.ac: Test assembler support for DSP Rev1 mult.
2318         * configure: Regenerate.
2319         * config.in: Regenerate.
2320         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
2321         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
2322         (CODE_FOR_mips_multu): New define.
2323         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
2324         dspr2_32 to dsp_32.
2325         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
2326         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
2327         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
2328         New define_expand patterns.
2329         * config/mips/constraints.md (ka): Update the constraint to test
2330         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
2331         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
2332         mips_multu): Delete.
2333         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
2334         Change target constraint to "ka".
2335         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
2336         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
2337         Emit the accumulator destination when ISA_HAS_DSP_MULT.
2338         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
2339         Emit the accumulator destination when ISA_HAS_DSP_MULT.
2340         (<u>maddsidi4): Likewise.
2341         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
2342         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
2343
2344 2010-11-04  Paul Koning  <ni1d@arrl.net>
2345
2346         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
2347
2348 2010-11-04  Paul Koning  <ni1d@arrl.net>
2349
2350         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
2351
2352 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
2353
2354         Fixed using the Objective-C 2.0 dot-syntax with class names.
2355         * c-parser.c (c_parser_next_token_starts_declspecs): In
2356         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
2357         (c_parser_next_token_starts_declaration): Same.
2358         (c_parser_postfix_expression): Parse the Objective-C 2.0
2359         dot-syntax with a class name.
2360
2361 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
2362
2363         * final.c (compute_alignments): Compute/free loop info all the time.
2364         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
2365         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
2366         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
2367         * config/rs6000/rs6000.c (cfgloop.h): Include.
2368         (can_override_loop_align): New.
2369         (rs6000_option_override_internal): Set it.
2370         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
2371         (rs6000_loop_align): New function.
2372         (rs6000_loop_align_max_skip): Likewise.
2373
2374 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2375
2376         PR driver/45703
2377         * collect2.c (main): Print --help output to stdout.  Do not
2378         exit right away, so ld --help is appended.  Add empty lines
2379         to separate output suitably.
2380
2381 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
2382
2383         PR tree-optimization/46233
2384         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
2385         after calling analyze_function, not before.
2386
2387         PR target/46234
2388         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
2389         instead of build_va_arg_indirect_ref.
2390         * config/spu/spu.c (spu_va_start): Likewise.
2391         * config/s390/s390.c (s390_va_start): Likewise.
2392
2393 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
2394
2395         PR middle-end/46292
2396         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
2397         if the innermode is not vector mode, determine the mode of a subreg
2398         by using mode_for_size of inner_size.
2399
2400 2010-11-04  Richard Guenther  <rguenther@suse.de>
2401
2402         PR rtl-optimization/46183
2403         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
2404         (execute_rtl_pre): Likewise.
2405         (execute_rtl_hoist): Likewise.
2406
2407 2010-11-04  Richard Guenther  <rguenther@suse.de>
2408
2409         PR tree-optimization/46068
2410         * ipa-split.c (consider_split): Remove gcc_unreachable.
2411
2412 2010-11-04  Richard Guenther  <rguenther@suse.de>
2413
2414         * tree-nested.c (build_addr): Use build_fold_addr_expr.
2415
2416 2010-11-04  Richard Guenther  <rguenther@suse.de>
2417
2418         PR tree-optimization/45991
2419         * gimplify.c (force_gimple_operand_1): Use the provded test
2420         function in the initial test.
2421
2422 2010-11-04  Jeff Law  <law@redhat.com>
2423
2424         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
2425         of readonly memory equivalances for const/pure calls.
2426
2427 2010-11-04  Richard Guenther  <rguenther@suse.de>
2428
2429         PR tree-optimization/45733
2430         * tree-vect-stmts.c (reverse_vec_elements): Honor the
2431         permute builtins function return type.
2432
2433 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
2434
2435         PR middle-end/44765
2436         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
2437         as an index, check it is not INVALID_REGNUM.
2438
2439         PR bootstrap/44756
2440         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
2441         unsignedp.
2442         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
2443
2444         PR bootstrap/44756
2445         * function.c (thread_prologue_and_epilogue_insns): Add
2446         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
2447
2448         PR bootstrap/44756
2449         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
2450
2451         PR target/44750
2452         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
2453         (pdp11_preferred_reload_class): Rename class to rclass.
2454         (pdp11_preferred_output_reload_class): Likewise.
2455         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
2456         ALL_COMPILERFLAGS .
2457         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
2458
2459         PR bootstrap/44756
2460         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
2461         iteration variables to enum machine_mode.
2462
2463         PR target/44751
2464         * config/h8300/h8300.c: Include df.h.
2465         (push, pop): Use add_reg_note.
2466         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
2467         (compute_a_shift_cc): Likewise.
2468         (expand_a_shift): Argument code has type enum rtx_code.
2469         (struct shift_insn): Member cc_valid has type enum attr_cc.
2470         (struct shift_info) <cc_inline, cc_special>: Likewise.
2471         enum attr_cc.
2472         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
2473         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
2474
2475 2010-11-04  Ira Rosen  <irar@il.ibm.com>
2476
2477         PR tree-optimization/46213
2478         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
2479         MINUS_EXPR only if the first operand is reduction operand.
2480
2481 2010-11-04  Richard Guenther  <rguenther@suse.de>
2482             Richard Henderson  <rth@redhat.com>
2483
2484         * tree.def (FMA_EXPR): New tree code.
2485         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
2486         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
2487         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
2488         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
2489         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
2490         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
2491         (execute_optimize_widening_mul): Call it.  Reorganize to allow
2492         dead stmt removal.  Move TODO flags ...
2493         (pass_optimize_widening_mul): ... here.
2494         * flag-types.h (enum fp_contract_mode): New enum.
2495         * common.opt (flag_fp_contract_mode): New variable.
2496         (-ffp-contract): New option.
2497         * opts.c (common_handle_option): Handle it.
2498         * doc/invoke.texi (-ffp-contract): Document.
2499         * tree.h (fold_fma): Declare.
2500         * builtins.c (fold_fma): New function.
2501         (fold_builtin_fma): Likewise.
2502         (fold_builtin_3): Call it for fma.
2503         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
2504         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
2505         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
2506         New expanders.
2507         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
2508         named patterns.
2509         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
2510         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
2511         (fms_optab, fnma_optab, fnms_optab): New defines.
2512         * gimplify.c (gimplify_expr): Handle binary truth expressions
2513         explicitly.  Handle FMA_EXPR.
2514         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
2515         operations.
2516
2517 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
2518             Richard Guenther  <rguenther@suse.de>
2519
2520         * passes.c (init_optimization_passes): Move veclower after SSA.
2521         * tree-vect-generic.c (uniform_vector_p): New function.
2522         (expand_vector_operations_1): Handle conversion.
2523         (pass_lower_vector): Update SSA form.
2524
2525 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
2526
2527         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
2528         plugin capabilities.
2529         * configure: Regenerate.
2530
2531 2010-11-03  Xinliang David Li  <davidxl@google.com>
2532
2533         PR target/46200
2534         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
2535         Adjust cbase if the use stmt is after iv update.
2536
2537 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2538
2539         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
2540
2541 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2542
2543         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
2544         comment.  Pass true to the last argument of output_stack_adjust.
2545
2546 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2547
2548         PR target/46295
2549         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
2550         if 256bit AVX register is used.
2551
2552 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
2553
2554         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
2555         xsmindp/xsmaxdp on VSX for single precision min/max.
2556         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
2557         (vsx_sminsf3): Ditto.
2558
2559 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2560
2561         * combine.c (try_combine): Fix formatting issues, improve comments and
2562         fix a pasto.
2563
2564 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
2565
2566         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
2567         of the result before building binary expressions.
2568
2569 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2570
2571         PR rtl-optimization/45865
2572         * Makefile.in (df-problems.o): Revert revision 164552.
2573         * basic-block.h (enum bb_flags): Likewise.
2574         * cfgcleanup.c (block_was_dirty): Likewise.
2575         (try_forward_edges): Likewise.
2576         (try_crossjump_bb): Likewise.
2577         (try_head_merge_bb): Likewise.
2578         (try_optimize_cfg): Likewise.
2579         (cleanup_cfg): Likewise.
2580         * df-core.c (df_set_bb_dirty): Likewise.
2581         * df-problems.c: Likewise.
2582         (df_simulate_find_uses): Likewise.
2583         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
2584         (find_memory, find_memory_store): Likewise.
2585         (can_move_insns_across): Likewise.
2586         * df.h (can_move_insns_across): Likewise.
2587         * ifcvt.c (find_memory): Likewise.
2588         (dead_or_predicable): Likewise.
2589
2590 2010-11-03  Richard Guenther  <rguenther@suse.de>
2591
2592         PR middle-end/46288
2593         * predict.c (strip_predict_hints): Simply DCE builtin expect if
2594         the result is unused.
2595
2596 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2597
2598         PR tree-optimization/46009
2599         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
2600         cond_if_else_store_replacement if bb1 and bb2 have the same
2601         single successor.
2602         (cond_store_replacement): Use gimple_assign_single_p, don't
2603         check if rhs is SSA_NAME or invariant.  Call release_defs for
2604         assign.
2605         (cond_if_else_store_replacement): New function.
2606
2607 2010-11-03  Richard Guenther  <rguenther@suse.de>
2608
2609         * opts.c (finish_options): Properly check for all WHOPR
2610         flags before complaining about -flto-partition.
2611
2612 2010-11-04  Alan Modra  <amodra@gmail.com>
2613
2614         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
2615         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
2616         TARGET_SECURE_PLT.
2617         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
2618         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
2619         on input, "r" on output.
2620
2621 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
2622
2623         Implemented -fobjc-std=objc1 flag.
2624         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
2625         option.
2626         * doc/standards.texi (Standards): Updated the section on
2627         Objective-C; mention support for Objective-C 2.0 features and the
2628         new -fstd-objc=objc1 flag to disable them.
2629
2630 2010-11-03  Richard Guenther  <rguenther@suse.de>
2631
2632         PR middle-end/46241
2633         * dwarf2out.c (scope_die_for): Properly detect global scope.
2634
2635 2010-11-03  Richard Guenther  <rguenther@suse.de>
2636
2637         PR tree-optimization/46190
2638         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2639         Properly compute peel iterations.
2640
2641 2010-11-03  Richard Guenther  <rguenther@suse.de>
2642
2643         PR tree-optimization/46286
2644         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
2645         re-allocated vector data.
2646
2647 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
2648
2649         PR target/46285
2650         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
2651         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
2652         is completed.
2653
2654 2010-11-03  Richard Guenther  <rguenther@suse.de>
2655
2656         PR tree-optimization/46217
2657         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
2658         flag matches.
2659         (execute_update_addresses_taken): Likewise.
2660
2661 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
2662
2663         PR bootstrap/44335
2664         * targhooks.c (targhook_words_big_endian): New function.
2665         (targhook_float_words_big_endian): Likewise.
2666         * targhooks.h (targhook_words_big_endian): Declare.
2667         (targhook_float_words_big_endian): Likewise.
2668         * target.def (words_big_endian, float_words_big_endian): New hooks.
2669
2670 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2671
2672         PR tree-optimization/46165
2673         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
2674         a normal call into noreturn call.
2675
2676 2010-11-03  Richard Guenther  <rguenther@suse.de>
2677
2678         PR middle-end/46251
2679         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
2680         not INDIRECT_REFs.
2681
2682 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2683
2684         PR tree-optimization/46107
2685         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
2686         if cfg_hook_duplicate_loop_to_header_edge failed.
2687
2688 2010-11-03  Ian Lance Taylor  <iant@google.com>
2689
2690         PR lto/46273
2691         * config.gcc: Don't set lto_binary_reader.
2692         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2693         (Configuration): Mention --disable-lto.  Remove --with-libelf
2694         paragraph.
2695
2696 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
2697
2698         PR debug/46252
2699         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
2700         prev_real_insn.
2701         * gcse.c (insert_insn_end_basic_block): Likewise.
2702
2703         PR rtl-optimization/46034
2704         PR rtl-optimization/46212
2705         PR rtl-optimization/46248
2706         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
2707         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
2708         before i0dest -> i0src substitution and pass 1 instead of 0 as last
2709         argument to subst on i2pat.
2710
2711 2010-11-02  Ian Lance Taylor  <iant@google.com>
2712
2713         * configure.ac: Use AC_SYS_LARGEFILE.
2714         * configure: Rebuild.
2715         * config.in: Rebuild.
2716
2717 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2718
2719         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
2720         fold_convert.
2721         * c-typeck.c (build_function_call_vec): Likewise.
2722         * cfgexpand.c (expand_debug_expr): Likewise.
2723         * cgraphunit.c (assemble_thunk): Likewise.
2724         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
2725         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
2726         (fold_binary_loc, fold_ternary_loc): Likewise.
2727         * gimple-fold.c (get_symbol_constant_value): Likewise.
2728         * gimple-low.c (lower_builtin_setjmp): Likewise.
2729         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
2730         * gimplify.c (gimplify_init_constructor): Likewise.
2731         * lambda.h (build_linear_expr): Likewise.
2732         * omp-low.c (omp_reduction_init): Likewise.
2733         * tree-inline.c (remap_ssa_name): Likewise.
2734         * tree-object-size.c (compute_object_sizes): Likewise.
2735         * tree-sra.c (init_subtree_with_zero): Likewise.
2736         (sra_ipa_modify_assign): Likewise.
2737         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
2738         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
2739         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
2740         (undistribute_ops_list): Likewise.
2741         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
2742         * tree-vect-stmts.c (vectorizable_call): Likewise.
2743         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
2744         (build_zero_cst): Handle more cases directly.  Update comment.
2745
2746 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2747
2748         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
2749         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
2750
2751         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
2752         and call ix86_split_call_vzeroupper instead of
2753         ix86_split_call_pop_vzeroupper.
2754         (*call_pop_1_vzeroupper): Likewise.
2755         (*sibcall_pop_1_vzeroupper): Likewise.
2756         (*call_value_pop_0_vzeroupper): Likewise.
2757         (*call_value_pop_1_vzeroupper): Likewise.
2758         (*sibcall_value_pop_1_vzeroupper): Likewise.
2759
2760 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2761
2762         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
2763
2764 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2765
2766         * basic-block.h (insert_insn_end_bb_new): Delete.
2767         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
2768
2769 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
2770             H.J. Lu  <hongjiu.lu@intel.com>
2771
2772         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
2773         (ix86_split_call_pop_vzeroupper): Likewise.
2774
2775         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
2776         (ix86_expand_call): Conditionally decorate calls with
2777         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
2778         (ix86_split_call_vzeroupper): New.
2779         (ix86_split_call_pop_vzeroupper): Likewise.
2780
2781         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
2782         (*call_pop_0_vzeroupper): New insn_and_split pattern.
2783         (*call_pop_1_vzeroupper): Likewise.
2784         (*sibcall_pop_1_vzeroupper): Likewise.
2785         (*call_0_vzeroupper): Likewise.
2786         (*call_1_vzeroupper): Likewise.
2787         (*sibcall_1_vzeroupper): Likewise.
2788         (*call_1_rex64_vzeroupper): Likewise.
2789         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
2790         (*call_1_rex64_large_vzeroupper): Likewise.
2791         (*sibcall_1_rex64_vzeroupper): Likewise.
2792         (*call_value_pop_0_vzeroupper): Likewise.
2793         (*call_value_pop_1_vzeroupper): Likewise.
2794         (*sibcall_value_pop_1_vzeroupper): Likewise.
2795         (*call_value_0_vzeroupper): Likewise.
2796         (*call_value_0_rex64_vzeroupper): Likewise.
2797         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
2798         (*call_value_1_vzeroupper): Likewise.
2799         (*sibcall_value_1_vzeroupper): Likewise.
2800         (*call_value_1_rex64_vzeroupper): Likewise.
2801         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
2802         (*call_value_1_rex64_large_vzeroupper): Likewise.
2803         (*sibcall_value_1_rex64_vzeroupper): Likewise.
2804
2805 2010-11-02  Ian Lance Taylor  <iant@google.com>
2806
2807         PR lto/46273
2808         * config.gcc: Revert last patch: set lto_binary_reader.
2809
2810 2010-11-02  Richard Guenther  <rguenther@suse.de>
2811
2812         PR tree-optimization/46149
2813         * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
2814         non-indirect MEM_REF variants.
2815
2816 2010-11-02  Richard Guenther  <rguenther@suse.de>
2817
2818         PR tree-optimization/46216
2819         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2820         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
2821
2822 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2823
2824         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
2825         (*-*-osf*): Likewise.
2826         * configure: Regenerate.
2827
2828 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
2829
2830         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
2831         for Intel Core 2 and Core i7.
2832
2833 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2834
2835         Model decoder of Core 2/i7 for multipass scheduling.
2836
2837         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
2838         New type to hold target-specific data for multipass scheduling.
2839         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2840         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
2841         Core 2/i7.
2842         (core2i7_secondary_decoder_max_insn_size,)
2843         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
2844         New static variables.
2845         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
2846         ([_]ix86_first_cycle_multipass_data): New static variable.
2847         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
2848         Implement targetm.sched hooks.
2849         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
2850         of ...
2851         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
2852         Implement new targetm.sched hooks.
2853         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
2854         targetm.sched hook to install multipass scheduling hooks on demand.
2855
2856         * doc/tm.texi.in: Document new targetm.sched hooks.
2857         * doc/tm.texi: Regenerate.
2858
2859         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
2860         (first_cycle_multipass_data_t): New typedef.
2861         (struct choice_entry: target_data): New field.
2862         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
2863         to allow target model restrictions not represented in DFA.
2864         (choose_ready, schedule_block): Update.
2865         (sched_extend_ready_list, sched_finish_ready_list): Call new target
2866         hooks to initialize target-specific data for multipass scheduling.
2867         * sched-int.h (max_issue): Update declaration.
2868         * sel-sched.c (choose_best_insn): Update.
2869         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
2870         (first_cycle_multipass_{init, fini}): Define and document new
2871         targetm.sched hooks.
2872
2873 2010-11-02  Richard Guenther  <rguenther@suse.de>
2874
2875         PR tree-optimization/46184
2876         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
2877         input vector type from the reduction operand as well.
2878
2879 2010-11-02  Richard Guenther  <rguenther@suse.de>
2880
2881         PR tree-optimization/46177
2882         * tree-loop-distribution.c (prop_phis): Use
2883         mark_virtual_phi_result_for_renaming.
2884
2885 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2886
2887         PR middle-end/46120
2888         * tree.c (get_binfo_at_offset): Bail out on artificial
2889         fields.  Identify primary bases according to their offsets.
2890
2891 2010-11-02  Martin Jambor  <mjambor@suse.cz>
2892
2893         PR tree-optimization/45875
2894         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
2895         (gimple_get_relevant_ref_binfo): Detect primary bases according to
2896         their field offset.
2897
2898 2010-11-02  Ian Lance Taylor  <iant@google.com>
2899
2900         * doc/install.texi (Configuration): Note in two places that Java
2901         is not enabled by default.
2902
2903 2010-11-02  Ian Lance Taylor  <iant@google.com>
2904
2905         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
2906         (Configuration): Mention --disable-lto.  Remove --with-libelf
2907         paragraph.
2908
2909 2010-11-02  Ian Lance Taylor  <iant@google.com>
2910
2911         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
2912         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
2913         LIBELFINC.  Remove HAVE_libelf.
2914         * config.gcc: Don't set lto_binary_reader.
2915         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
2916         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
2917         (LIBS): Remove $(LIBELFLIBS).
2918         (INCLUDES): Remove $(LIBELFINC).
2919         * configure: Rebuild.
2920         * config.in: Rebuild.
2921
2922 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
2923
2924         * config/microblaze/microblaze-protos.h (function_arg): Delete.
2925         (function_arg_advance): Delete.
2926         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
2927         (FUNCTION_ARG): Delete.
2928         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
2929         (microblaze_function_arg_advance): ...this.  Make static.  Take a
2930         const_tree and a bool.
2931         (function-arg): Rename to...
2932         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
2933         and a bool.
2934         (microblaze_expand_prologue): Call targetm.calls.function_arg and
2935         targetm.calls.function_arg_advance.
2936         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2937
2938 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
2939
2940         Merge from FSF "apple/trunk" branch.
2941
2942         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
2943         * config/darwin.opt: .. to here.
2944         (matt-stubs): New option.
2945         * config/i386/darwin.opt: Delete.
2946         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
2947         (MACHO_DYNAMIC_NO_PIC_P): New.
2948         (MACHOPIC_INDIRECT): New.
2949         (MACHOPIC_PURE): New.
2950         * config/i386/darwin.h (DARWIN_X86) Define to 1.
2951         (MACHOPIC_ATT_STUB): New.
2952         (CC1_SPEC): Do not remove mdynamic-no-pic.
2953         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2954         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2955         (FUNCTION_PROFILER): Correct over-length line.
2956         (SUBTARGET_OVERRIDE_OPTIONS): New.
2957         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2958         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
2959         (legitimate_constant_p): Handle mdynamic-no-pic.
2960         (ix86_legitimate_address_p): Likewise.
2961         (ix86_legitimize_address): Likewise.
2962         (ix86_expand_move): Likewise.
2963         (machopic_output_stub): Update for ATT-style stubs and
2964         mdynamic-no-pic.
2965         * config/darwin-protos.h (machopic_symbol_defined_p): New.
2966         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
2967         TARGET_DYNAMIC_NO_PIC: Remove.
2968         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
2969         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
2970         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
2971         Remove handling of mdynamic-no-pic.
2972         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
2973         Define if required.
2974         (machopic_symbol_defined_p): Do not try to use current_function_decl
2975         when generating _get_pc thunks within stubs.
2976         (machopic_indirect_data_reference): Rework for direct conditionals
2977         rather than #ifdefs, add x86 mdynamic-no-pic
2978         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
2979         defined value.
2980         (darwin_override_options): Handle mdynamic-no-pic here.
2981         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
2982         (machopic_lazy_symbol_ptr3_section): New.
2983         (machopic_picsymbol_stub2_section): New.
2984         (machopic_picsymbol_stub3_section): New.
2985         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
2986         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
2987         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
2988         Moved common definition from x86 and rs6000.
2989         (MACHO_DYNAMIC_NO_PIC_P): Override value.
2990         (MACHOPIC_INDIRECT): Likewise.
2991         (MACHOPIC_PURE): Likewise.
2992         * config.gcc (x86-darwin-*): Remove darwin.opt.
2993
2994 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
2995
2996         PR debug/46255
2997         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
2998         instead of gsi_last_bb.
2999
3000 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3001             Maxim Kuvyrkov  <maxim@codesourcery.com>
3002
3003         * config/i386/i386.c (cpu_names): Add "corei7".
3004         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
3005
3006 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3007             Maxim Kuvyrkov  <maxim@codesourcery.com>
3008
3009         Tune alignment for Intel Core i7
3010
3011         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
3012         (enum processor_type): Update comment.  Add entries for Core i7.
3013         * config/i386-c.c (ix86_target_macros_internal): Update.
3014         * config/i386.c (m_COREI7{_32,_64}): New macros.
3015         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
3016         (processor_target_table): Tune alignment for Core i7.
3017         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
3018
3019         * doc/invoke.texi: Document "corei7" option value.
3020
3021 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
3022             Maxim Kuvyrkov  <maxim@codesourcery.com>
3023             H.J. Lu  <hjl.tools@gmail.com>
3024
3025         Basic support for Intel Core i7
3026
3027         * i386.c (ix86_option_override_internal): Add entry for corei7, use
3028         generic tuning.  Use generic32 when compiling for 32-bit ABI.
3029
3030 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
3031
3032         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
3033         sections and call darwin_asm_dwarf_section() to handle them.
3034         (darwin_asm_dwarf_section): New.
3035         (darwin_file_start): Remove code emitting dwarf section symbols.
3036
3037 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
3038
3039         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
3040         explicitly disable stack protection when building libgcc.
3041         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
3042
3043 2010-11-01  Jason Merrill  <jason@redhat.com>
3044
3045         * fold-const.c (fold_indirect_ref_1): Handle folding
3046         POINTER_PLUS_EXPR to ARRAY_REF.
3047
3048 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3049
3050         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
3051         (sh_delegitimize_address): New function.
3052
3053 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3054
3055         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
3056         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
3057         (CC1_SPEC): Don't handle -target.
3058         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
3059         options.
3060         * config/darwin.opt (Zallowable_client, Zbundle_loader,
3061         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
3062         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
3063         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
3064         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
3065         Zweak_reference_mismatches, client_name, compatibility_version,
3066         current_version, dylinker_install_name, pagezero_size,
3067         read_only_relocs, seg1addr, segs_read_only_addr,
3068         segs_read_write_addr, sub_library, sub_umbrella): New.
3069         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
3070         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
3071         * config/freebsd.opt: New.
3072         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
3073         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
3074         * config/rpath.opt: New.
3075         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
3076         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
3077         Use rpath.opt.
3078
3079 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
3080
3081         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
3082         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
3083         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
3084         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
3085         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
3086         Document that options in .opt files do not need to be included.
3087         * doc/tm.texi: Regenerate.
3088         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
3089         * opts-common.c: Update comment on tm.h include.
3090         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
3091         * system.h (SWITCH_TAKES_ARG): Poison.
3092         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
3093         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
3094         in darwin.opt.
3095         (LINK_COMMAND_SPEC_A): Don't include %{x}.
3096         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3097         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
3098         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
3099         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3100         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
3101         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
3102         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
3103         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
3104         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3105         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
3106         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
3107         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
3108         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
3109         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
3110         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
3111         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
3112         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
3113         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
3114         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
3115         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
3116         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
3117         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
3118         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
3119
3120 2010-11-01  Paul Koning  <ni1d@arrl.net>
3121
3122         * config/pdp11/pdp11.md: Use iterators.
3123         (addqi3, subqi3, iorsi3, xorsi3): Delete.
3124
3125 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
3126
3127         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
3128         GCC_INSN_FLAGS_H.
3129         * libgcov.c (__gcov_indirect_call_profiler): Set
3130         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
3131         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
3132
3133 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3134
3135         PR tree-optimization/46259
3136
3137         Revert:
3138         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3139         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
3140         build_vector_from_val.
3141
3142 2010-11-01  DJ Delorie  <dj@redhat.com>
3143
3144         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
3145         as well as an assertion.
3146
3147 2010-11-01  Paul Koning  <ni1d@arrl.net>
3148
3149         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
3150         complex modes in memory.
3151
3152 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
3153
3154         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
3155
3156 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
3157
3158         PR target/45250
3159         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
3160         (cfa_base_offset): New variable.
3161         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
3162         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
3163         is NULL.
3164         (vt_init_cfa_base): Initialize cfa_base_offset.
3165
3166 2010-11-01  Alan Modra  <amodra@gmail.com>
3167
3168         PR target/46030
3169         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
3170         and savres_strategy.
3171         (stack_info): New file scope var.
3172         (rs6000_init_machine_status): Init stack_info.
3173         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
3174         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
3175         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
3176         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
3177         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
3178         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
3179         (rs6000_savres_strategy): Rewrite.
3180         (rs6000_stack_info): Use "stack_info" in place of local "info".
3181         Return cached stack info when reload_completed unless ENABLE_CHECKING
3182         in which case confirm newly calculated stack info matches old info.
3183         Delay calculation of lr_save_p, set it for out of line gp save/restore
3184         as well as fp.  Call rs6000_savres_strategy from here..
3185         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
3186         (rs6000_output_function_prologue): Use info->savres_strategy to
3187         determine whether fp save/restore externs need to be emitted.
3188
3189 2010-10-31  Jason Merrill  <jason@redhat.com>
3190
3191         * tree.h (EXPR_LOC_OR_HERE): New macro.
3192         * builtins.c (c_strlen): Use it.
3193         * c-decl.c (build_enumerator): Likewise.
3194         * gimplify.c (internal_get_tmp_var): Likewise.
3195         (shortcut_cond_expr): Likewise.
3196         (gimplify_one_sizepos): Likewise.
3197
3198 2010-10-31  Richard Henderson  <rth@redhat.com>
3199
3200         * config/i386/cygming.h (TARGET_SEH): New.
3201         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
3202         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
3203         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
3204         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
3205         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
3206         (ASM_DECLARE_FUNCTION_SIZE): New.
3207         * config/i386/i386-protos.h: Update.
3208         * config/i386/i386.c (ix86_option_override_internal): Enable
3209         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
3210         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
3211         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
3212         (ix86_compute_frame_layout): For SEH, disable
3213         use_fast_prologue_epilogue, move frame pointer to the end of
3214         the frame.  Initialize hfp_save_offset.
3215         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
3216         at end of prologue for SEH.
3217         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
3218         emit blockage at beginning of epilogue.
3219         (ix86_expand_binary_operator): After reload, emit LEA if needed.
3220         (ix86_output_call_insn): New.
3221         * config/i386/i386.h (TARGET_SEH): New.
3222         (struct machine_function): Add member seh.
3223         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
3224         * config/i386/winnt.c (struct seh_frame_state): New.
3225         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
3226         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
3227         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
3228         i386_pe_start_function, i386_pe_end_function): New.
3229
3230         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
3231         as CFA_STORE in rules 12 and 13.
3232
3233 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
3234
3235         PR tree-optimization/46142
3236         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
3237         accommodate third function argument.
3238
3239 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3240
3241         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
3242
3243 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3244
3245         * fold-const.c (build_zero_vector): Use build_vector_from_val.
3246         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3247         (get_initial_def_for_reduction): Likewise.
3248         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3249         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
3250         * tree.c (build_one_cst): Likewise.
3251         (build_vector_from_val): Use types_compatible_p for assert.
3252
3253 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
3254
3255         * emit-rtl.c (mark_used_flags): New function.
3256         (set_used_flags, reset_used_flags): Call it.
3257
3258 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
3259
3260         PR middle-end/44569
3261         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
3262         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
3263
3264 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
3265
3266         PR target/46195
3267         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
3268         (ix86_compat_aligned_value_p): This.
3269         (ix86_old_function_arg_boundary): Renamed to ...
3270         (ix86_compat_function_arg_boundary): This.  Updated.
3271         (ix86_contains_aligned_value_p): New.
3272         (ix86_function_arg_boundary): Align long double parameters on
3273         stack to 4byte in 32bit.
3274
3275 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
3276
3277         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
3278         * c-parser.c (c_parser_objc_at_property_declaration): Removed
3279         parsing of RID_COPIES and RID_IVAR.  Updated call to
3280         objc_add_property_declaration.
3281         * c-typecheck.c (build_component_ref): Call
3282         objc_maybe_build_component_ref instead of objc_build_setter_call.
3283         Use objc_is_property_ref to improve Objective-C checks.
3284         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
3285         of objc_build_getter_call.
3286
3287 2010-10-29  Paul Koning  <ni1d@arrl.net>
3288
3289         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3290         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
3291         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
3292         (REG_OK_STRICT): Move description.
3293
3294 2010-10-29  Paul Koning  <ni1d@arrl.net>
3295
3296         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
3297
3298 2010-10-29  Paul Koning  <ni1d@arrl.net>
3299
3300         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
3301
3302 2010-10-29  Paul Koning  <ni1d@arrl.net>
3303
3304         PR/41822
3305         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
3306
3307 2010-10-29  Richard Henderson  <rth@redhat.com>
3308
3309         PR rtl-opt/46226
3310         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
3311         for asm goto.
3312
3313 2010-10-29  Paul Koning  <ni1d@arrl.net>
3314
3315         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
3316         register to register move.
3317
3318 2010-10-29  Paul Koning  <ni1d@arrl.net>
3319
3320         * config/pdp11/pdp11.c (print_operand_address): Correct handling
3321         of integer constant addresses, delete vax-only logic.
3322
3323 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
3324
3325         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
3326         a conditional expression.
3327
3328 2010-10-29  Paul Koning  <ni1d@arrl.net>
3329
3330         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
3331         instruction encoding.
3332
3333 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
3334             Andrew Pinski  <pinskia@gmail.com>
3335
3336         * tree.h (build_vector_from_val): Declare.
3337         * tree.c (build_vector_from_val): New function.
3338         * c-typeck.c (build_binary_op): Handle vector shifting.
3339         * doc/extend.texi: Description of the vector shifting operation.
3340
3341 2010-10-29  Paul Koning  <pkoning@equallogic.com>
3342
3343         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
3344         pdp11_secondary_memory_needed): Declare.
3345         * config/pdp11/predicates.md (float_operand): New predicate.
3346         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
3347         (cbranchdf4, movdf): Change predicate.
3348         (movsf): Handle FPU register case.
3349         (truncdfsf2, extendsfdf2): Add FPU register case.
3350         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
3351         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
3352         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3353         (pdp11_register_move_cost): Update cost matrix.
3354         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
3355         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
3356         pdp11_secondary_memory_needed): New function.
3357         (pdp11_return_in_memory): Add other float types.
3358         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
3359         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
3360         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
3361         REGISTER_MOVE_COST): Delete.
3362         (BASE_RETURN_VALUE_REG): Add other float types.
3363
3364 2010-10-29  Nick Clifton  <nickc@redhat.com>
3365
3366         * doc/invoke.texi: Document -mam34 and -mtune options.
3367         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
3368         (mn10300_tune_cpu): New variable.
3369         (mn10300_handle_option): Handle -mam34 and -mtune options.
3370         (mn10300_option_override): Convert tune string into tune cpu variable.
3371         (mn10300_legitimate_constant_p): Delete unused local variable.
3372         (is_load_insn): New function.
3373         (is_store_insn): New function.
3374         (mn10300_adjust_schedule_cost): New function.
3375         (TARGET_SCHED_ADJUST_COST): Define.
3376         * config/mn10300/mn10300.opt (mam34): New option.
3377         (mtune): New option.
3378         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
3379         (enum processor_type): Add AM34.
3380         (TARGET_AM34): Define.
3381         * config/mn10300/mn10300.md (attr cpu): Add am34.
3382         Add pipeline description.
3383         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
3384         Remove unneeded alternatives.  Add timing attribute.
3385         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
3386         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
3387         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
3388         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
3389         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
3390         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
3391         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
3392         float_conditional_branch, jump, indirect_jump, tablejump,
3393         call_internal, call_value_internal, zero_extendqisi2_am33,
3394         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
3395         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
3396         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
3397         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
3398         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
3399         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
3400         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
3401         return_internal_regs, store_movm, return, call_next_insn):
3402         Add timing attribute.
3403         (am33_subsi3): Add missing clobber of CC_REG.
3404         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
3405         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
3406         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
3407         extendqisi2): Fix predicates.
3408         (call_internal, call_internal_value): Separate alternatives.
3409         * config/mn10300/t-mn10300: Add AM34 multilib.
3410
3411 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
3412
3413         * config/sh/sh.c (sh_promote_function_mode): Use
3414         default_promote_function_mode if !sh_promote_prototypes.
3415
3416 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
3417
3418         * recog.c (split_all_insns): Remove dead code.
3419
3420 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3421
3422         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3423
3424 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3425
3426         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3427         (FUNCTION_ARG_ADVANCE): Delete.
3428         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
3429         functions.
3430         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
3431         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3432         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3433
3434 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3435
3436         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
3437         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3438         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3439         Take a const_tree and a bool.
3440         (mcore_function_arg_advance): New function.
3441         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3442
3443 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3444
3445         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
3446         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3447         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
3448         Take a const_tree and a bool.
3449         (mcore_function_arg_advance): New function.
3450         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3451
3452 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3453
3454         * config/h8300/h8300-protos.h (function_arg): Delete.
3455         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3456         * config/h8300/h8300.c (function_arg): Rename to...
3457         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
3458         a bool.
3459         (h8300_function_arg_advance): New function.
3460         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3461
3462 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3463
3464         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
3465         to...
3466         * config/arc/arc.c (arc_function_arg): ...here and...
3467         (arc_function_arg_advance): ...here.  New functions.
3468         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3469
3470 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3471
3472         * config/crx/crx-protos.h (crx_function_arg): Delete.
3473         (crx_function_arg_advance): Delete.
3474         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3475         * config/crx/crx.c (crx_function_arg): Make static.  Take a
3476         const_tree and a bool.
3477         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
3478         (enough_regs_for_param): Take a const_tree.
3479         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3480
3481 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3482
3483         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
3484         (m68hc11_function_arg_advance): Delete.
3485         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
3486         (FUNCTION_ARG_ADVANCE): Delete.
3487         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
3488         Take a const_tree and a bool.
3489         (m68hc11_function_arg_advance): Likewise.
3490         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3491
3492 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3493
3494         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
3495         (xstormy16_function_arg_advance): Delete.
3496         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
3497         (FUNCTION_ARG_ADVANCE): Delete.
3498         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
3499         Take a const_tree and a bool.
3500         (xstormy16_function_arg_advance): Likewise.  Return void, updating
3501         the CUM parameter instead.
3502         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3503
3504 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3505
3506         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
3507         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3508         (MOXIE_FUNCTION_ARG_SIZE): Move to...
3509         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
3510         (moxie_function_arg): Make static.  Take a const_tree and a bool.
3511         (moxie_function_arg_advance): New function.
3512         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3513
3514 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3515
3516         * config/mn10300/mn10300-protos.h (function_arg): Delete.
3517         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
3518         (FUNCTION_ARG_ADVANCE): Delete.
3519         * config/mn10300/mn10300.c (function_arg): Rename to...
3520         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
3521         and a bool.
3522         (mn10300_function_arg_advance): New function.
3523         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3524
3525 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3526
3527         * config/iq2000/iq2000-protos.h (function_arg): Delete.
3528         (function_arg_advance): Delete.
3529         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3530         * config/iq2000/iq2000.c (function_arg): Rename to...
3531         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
3532         a bool.
3533         (function_arg_advance): Rename to...
3534         (iq2000_function_arg_advance): ...this.  Make static.  Take a
3535         const_tree and a bool.
3536         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
3537         iq2000_function_arg.
3538         (iq2000_pass_by_reference): Call iq2000_function_arg).
3539         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3540
3541 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3542
3543         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
3544         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3545         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
3546         const_tree.
3547         (fr30_function_arg): New function.
3548         (fr30_function_arg_advance): New function.
3549         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3550
3551 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
3552
3553         * config/frv/frv-protos.h (frv_function_arg): Delete.
3554         (frv_function_arg_advance): Delete.
3555         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3556         * config/frv/frv.c (frv_function_arg): Rename to...
3557         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
3558         (frv_function_arg, frv_function_incoming_arg): New functions.
3559         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
3560         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3561         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3562
3563 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
3564
3565         PR target/46153
3566         * config/i386/sse.md (sse_movhlps_exp): Use destination
3567         returned from ix86_fixup_binary_operands to expand insn.
3568         (sse_movlhps_exp): Ditto.
3569         (sse_loadhps_exp): Ditto.
3570         (sse_loadlps_exp): Ditto.
3571         (sse2_loadhpd_exp): Ditto.
3572         (sse2_loadlpd_exp): Ditto.
3573
3574 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
3575
3576         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
3577         constants in thumb2.
3578
3579 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3580
3581         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
3582         arithmetics in masking operations.
3583         (contains_muldiv): Likewise.
3584         (try_combine): Likewise.
3585         (find_split_point): Likewise.
3586         (combine_simplify_rtx): Likewise.
3587         (simplify_if_then_else): Likewise.
3588         (simplify_set): Likewise.
3589         (expand_compound_operation): Likewise.
3590         (expand_field_assignment): Likewise.
3591         (make_extraction): Likewise.
3592         (extract_left_shift): Likewise.
3593         (make_compound_operation): Likewise.
3594         (force_to_mode): Likewise.
3595         (make_field_assignment): Likewise.
3596         (reg_nonzero_bits_for_combine): Likewise.
3597         (simplify_shift_const_1): Likewise.
3598         (simplify_comparison): Likewise.
3599
3600 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
3601
3602         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
3603         (ia64_function_arg_advance): Delete.
3604         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
3605         (FUNCTION_ARG_ADVANCE): Delete.
3606         * config/ia64/ia64.c (ia64_function_arg): Rename to...
3607         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
3608         bool arguments.
3609         (ia64_function_arg, ia64_function_incoming_arg): New functions.
3610         (ia64_function_arg_advance): Make static.  Take a const_tree and
3611         a bool.
3612         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3613         (TARGET_FUNCTION_ARG_ADVANCE): Define.
3614
3615 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
3616
3617         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
3618         (TARGET_GET_RAW_ARG_MODE): New.
3619         * doc/tm.texi: Regenerate.
3620         * target.def (get_raw_result_mode): New.
3621         (get_raw_arg_mode): New.
3622         * targhooks.c (default_get_reg_raw_mode): New.
3623         * targhooks.h (default_get_reg_raw_mode): New.
3624         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
3625         (apply_result_size): Ditto.
3626         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
3627         (TARGET_GET_RAW_RESULT_MODE): Define.
3628         (TARGET_GET_RAW_ARG_MODE): Ditto.
3629
3630 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3631
3632         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
3633         for newer Solaris 10 release.
3634         (sparc_fallback_frame_state): Likewise.
3635
3636 2010-10-27  Jason Merrill  <jason@redhat.com>
3637
3638         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
3639         variables sooner.
3640
3641 2010-10-27  Jie Zhang  <jie@codesourcery.com>
3642             Maxim Kuvyrkov  <maxim@codesourcery.com>
3643
3644         * haifa-sched.c (ISSUE_POINTS): Remove.
3645         (max_issue): Don't issue more than issue_rate instructions.
3646
3647 2010-10-27  Ian Lance Taylor  <iant@google.com>
3648
3649         PR target/46197
3650         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
3651         (split_stack_return): Replace UNSPEC_STACK_CHECK with
3652         UNSPECV_SPLIT_STACK_RETURN.
3653
3654 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
3655
3656         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
3657
3658         * config/i386/i386.c (block_info): New.
3659         (BLOCK_INFO): Likewise.
3660         (call_avx256_state): Likewise.
3661         (check_avx256_stores): Likewise.
3662         (move_or_delete_vzeroupper_2): Likewise.
3663         (move_or_delete_vzeroupper_1): Likewise.
3664         (move_or_delete_vzeroupper): Likewise.
3665         (use_avx256_p): Likewise.
3666         (function_pass_avx256_p): Likewise.
3667         (flag_opts): Add -mvzeroupper.
3668         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
3669         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
3670         is disabled.
3671         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
3672         generate vzeroupper.
3673         (init_cumulative_args): Add an int to indicate caller.  Set
3674         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
3675         based on return type.
3676         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
3677         caller_pass_avx256_p based on argument type.
3678         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
3679         is used, but not returned by caller.
3680         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
3681         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
3682         is used.
3683         (ix86_minimum_alignment): Likewise.
3684         (ix86_expand_special_args_builtin): Set target to
3685         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
3686         (ix86_reorg): Run the vzeroupper optimization if needed.
3687
3688         * config/i386/i386.h (ix86_args): Add caller.
3689         (INIT_CUMULATIVE_ARGS): Updated.
3690         (machine_function): Add use_vzeroupper_p, use_avx256_p,
3691         caller_pass_avx256_p, caller_return_avx256_p,
3692         callee_pass_avx256_p and callee_return_avx256_p.
3693
3694         * config/i386/i386.opt (-mvzeroupper): New.
3695
3696         * config/i386/predicates.md (vzeroupper_operation): Removed.
3697
3698         * config/i386/sse.md (avx_vzeroupper): Removed.
3699         (*avx_vzeroupper): Removed.
3700         (avx_vzeroupper): New.
3701
3702         * doc/invoke.texi: Document -mvzeroupper.
3703
3704 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3705
3706         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
3707         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
3708         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
3709
3710 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
3711             Olivier Hainque  <hainque@adacore.com>
3712
3713         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
3714         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
3715         fs->signal_frame instead.
3716
3717 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3718
3719         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
3720         parsing of RID_COPIES and RID_IVAR.
3721
3722 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3723
3724         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
3725         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
3726         Do not use objc_set_property_attr, but use local variables
3727         instead.  Detect repeated usage of setter, getter and ivar
3728         attributes.  Improved error processing when a setter name does not
3729         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
3730         that the token is a keyword.  Updated call to
3731         objc_add_property_declaration.
3732
3733 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
3734
3735         * c-parser.c (c_parser_objc_at_property): Renamed to
3736         c_parser_objc_at_property_declaration.  Updated calls to
3737         objc_add_property_variable, now objc_add_property_declaration.
3738         Code rewritten to be much more robust in recovering from syntax
3739         errors.  Added comments.
3740         (c_parser_objc_property_attrlist): Removed.
3741         (c_parser_external_declaration): Updated calls to
3742         c_parser_objc_at_property, now
3743         c_parser_objc_at_property_declaration.
3744         (c_parser_objc_methodprotolist): Same change.
3745
3746 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3747
3748         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
3749
3750 2010-10-26  Jan Hubicka  <jh@suse.cz>
3751
3752         * ipa.c (process_references): Enqueue all referenced nodes;
3753         mark as reachable only non-external nodes.
3754         (cgraph_remove_unreachable_nodes): All referenced nodes should
3755         be enqueued; remove bogues node->needed check.
3756
3757 2010-10-26  Jan Hubicka  <jh@suse.cz>
3758
3759         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
3760         to represent OMP.
3761
3762 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3763
3764         * config/i386/i386.md (split_stack_return): Replace
3765         unspec_volatile with unspec.
3766
3767 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
3768
3769         * doc/install.texi: Fix typo in --with-sysroot description.
3770
3771 2010-10-26  Jan Hubicka  <jh@suse.cz>
3772
3773         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
3774         Use info provided by linker plugin.
3775
3776 2010-10-26  Jason Merrill  <jason@redhat.com>
3777
3778         * varasm.c (constructor_static_from_elts_p): Don't require a
3779         CONSTRUCTOR to have elements to be suitable for static
3780         initialization.  Allow ARRAY_TYPE as well.
3781
3782 2010-10-26  Jan Hubicka  <jh@suse.cz>
3783
3784         PR middle-end/45736
3785         * cgraph.c (cgraph_set_readonly_flag): Rename to...
3786         (cgraph_set_const_flags) ... this one; get also looping argument;
3787         clear constructor/destructor flags.
3788         (cgraph_set_pure_flag): Likewise.
3789         (cgraph_set_looping_const_or_pure_flag): Remove.
3790         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
3791         to optimize away static ctors/dtors; it does not work on inline clones;
3792         external functions can always be rmeoved.
3793         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
3794         inline clones; in LTO external functions always can go.
3795         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
3796         (cgraph_mark_address_taken_node): Assert that we are not taking
3797         address of inline clone.
3798         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
3799         external functions.
3800         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
3801         address taken.
3802         (ipcp_initialize_node_lattices): Only local functions can be
3803         handled without cloning.
3804         * cgraph.h (cgraph_set_readonly_flag,
3805         cgraph_set_looping_const_or_pure_flag): Remove.
3806         (cgraph_set_const_flag): Declare.
3807         (cgraph_set_pure_flag): Update.
3808         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
3809         flags setting code.
3810         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
3811         look at inline clones; fix handling of external definitions.
3812         (cgraph_postorder): Do not look at inline clones in the first pass.
3813         (function_and_variable_visibility): Drop constructors/destructor
3814         flags at pure and const functions.
3815         * tree-profile.c (tree_profiling): Update.
3816         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
3817         address taken; external functions do not account to whole program size.
3818         (cgraph_decide_inlining): Likewise; do not try to inline
3819         functions already inlined.
3820
3821 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3822
3823         * doc/invoke.texi: Improve documentation of
3824         -fstrict-volatile-bitfields.
3825
3826 2010-10-26  Ira Rosen  <irar@il.ibm.com>
3827
3828         PR tree-optimization/46167
3829         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
3830         is basic block for the statement.
3831
3832 2010-10-26  Paul Koning  <ni1d@arrl.net>
3833
3834         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
3835         current definition of struct_real_format.
3836
3837 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
3838
3839         PR target/44948
3840         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
3841         (ix86_function_arg_boundary): Always align parameters on stack
3842         in 64bit and align parameters with alignment >= 16byte on stack
3843         in 32bit.  Warn alignment change.
3844
3845 2010-10-26  Ian Lance Taylor  <iant@google.com>
3846
3847         PR middle-end/45687
3848         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
3849         offset.
3850
3851 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
3852
3853         Implement opaque-enum-specifiesr for C++0x
3854         * tree.h (ENUM_IS_OPAQUE): New.
3855         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
3856
3857 2010-10-26  Jie Zhang  <jie@codesourcery.com>
3858
3859         * stor-layout.c (layout_decl): Use the field's type to
3860         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
3861         * config/arm/arm.c (arm_override_options): Default to
3862         -fstrict-volatile-bitfields.
3863
3864 2010-10-25  Paul Koning  <ni1d@arrl.net>
3865
3866         * config/pdp11/pdp11.md: Add define_constants for register
3867         numbers, branch offset limits.
3868         * config/pdp11/pdp11.c: Use named constants instead of numbers.
3869         * config/pdp11.pdp11.h: Ditto.
3870
3871 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
3872
3873         * configure.ac: Use $cpu_type instead of $target to define the nop.
3874         * configure: Regenerate.
3875
3876 2010-10-25  Jie Zhang  <jie@codesourcery.com>
3877
3878         * combine.c (try_combine): If insns need to be kept around, check that
3879         they can be copied in the merged instruction.
3880
3881 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3882
3883         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
3884         has been modified.
3885         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
3886         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
3887         it has been modified.
3888
3889 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3890
3891         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
3892
3893 2010-10-24  Paul Koning  <ni1d@arrl.net>
3894
3895         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
3896         * config/pdp11/pdp11.c (output_jump): Ditto.
3897
3898 2010-10-24  Ian Lance Taylor  <iant@google.com>
3899
3900         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
3901
3902 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
3903
3904         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
3905         least one insn with a locus corresponding to an edge's goto_locus,
3906         disregard non-fallthru edges to the exit block and merge the blocks
3907         created for the same goto_locus.
3908
3909 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
3910
3911         * gcc.c (n_switches_alloc_debug_check): New.
3912         (set_option_handlers): New.
3913         (process_command): Use set_option_handlers.
3914         (do_self_spec): Pass spec-generated options through option handlers.
3915         (main): Also save and restore n_switches_alloc when swapping
3916         switch arrays.
3917
3918 2010-10-23  Richard Henderson  <rth@redhat.com>
3919
3920         PR target/46144
3921         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
3922         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
3923         Honor matching operands when splitting to XOR.
3924
3925 2010-10-23  Ian Lance Taylor  <iant@google.com>
3926
3927         * tree-vrp.c (extract_range_from_binary_expr): If
3928         flag_non_call_exceptions don't eliminate division by zero.
3929         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3930
3931 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
3932
3933         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3934         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
3935         __ORDER_PDP_ENDIAN__.
3936         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3937         (struct DWstruct): Define based on __BYTE_ORDER__.
3938         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3939         (struct INTstruct): Define based on __BYTE_ORDER__.
3940         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3941         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
3942         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
3943         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3944         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3945         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3946         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3947         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3948         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3949         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3950         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3951         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3952         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3953         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3954         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3955         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3956         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3957         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3958         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
3959         * doc/tm.texi: Regenerate.
3960         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
3961         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
3962
3963 2010-10-23  Jie Zhang  <jie@codesourcery.com>
3964
3965         PR rtl-optimization/37360
3966         * config/mips/mips.c (cached_can_issue_more): New local variable.
3967         (mips_sched_reorder_1): New.
3968         (mips_sched_reorder): Use mips_sched_reorder_1.
3969         (mips_sched_reorder2): New.
3970         (mips_variable_issue): Set cached_can_issue_more.
3971         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
3972         instead of mips_sched_reorder.
3973
3974         Revert:
3975         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
3976         PR rtl-optimization/37360
3977         * haifa-sched.c (max_issue): Do not assert that we never issue more
3978         insns than issue_rate.  Add comment.
3979
3980 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
3981
3982         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
3983         location info of the expression.
3984
3985 2010-10-22  DJ Delorie  <dj@redhat.com>
3986
3987         * doc/extend.texi (Named Address Spaces): Document the M32C named
3988         address space.
3989
3990         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
3991         __far address space.
3992         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
3993         "__far" address space for R8C and M16C processor variants.
3994         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
3995         (far_addr_space_p): New.
3996         (encode_pattern_1): Add sign and zero extend support.
3997         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
3998         (m32c_extra_constraint_p2): Add SF constraint.
3999         (m32c_legitimate_address_p): Support __far addresses.
4000         (m32c_addr_space_pointer_mode): New.
4001         (m32c_addr_space_address_mode): New.
4002         (m32c_addr_space_legitimate_address_p): New.
4003         (m32c_addr_space_legitimize_address): New.
4004         (m32c_addr_space_subset_p): New.
4005         (m32c_addr_space_convert): New.
4006         (conversions): Add __far operand patterns.
4007         (m32c_prepare_move): Force constants into registers for __far moves.
4008         (m32c_split_move): __far moves are always split.
4009         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
4010         * config/m32c/mov.md (mov<mode>_far_op1): New.
4011         (mov<mode>_far_op2): New.
4012         (movqi_op): Add __far (SF) support.
4013         (movhi_op): Likewise.
4014         (movsi_splittable): Split A1A0 also.
4015
4016 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
4017             Andrew Pinski  <pinskia@gmail.com>
4018
4019         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
4020         * doc/extend.texi: New paragraph
4021
4022 2010-10-22  Paul Koning  <ni1d@arrl.net>
4023
4024         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
4025
4026 2010-10-22  DJ Delorie  <dj@redhat.com>
4027
4028         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
4029
4030 2010-10-22  Paul Koning  <ni1d@arrl.net>
4031
4032         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
4033
4034 2010-10-22  Richard Henderson  <rth@redhat.com>
4035
4036         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
4037         cases for __builtin_fma and __builtin_fmaf.
4038
4039 2010-10-22  Richard Henderson  <rth@redhat.com>
4040
4041         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
4042         NEG+USE for vectors as well.
4043         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
4044         and splitter.
4045
4046 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
4047
4048         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
4049         SWITCH_CURTAILS_COMPILATION): Remove.
4050         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
4051         * doc/tm.texi: Regenerate.
4052         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
4053
4054 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
4055
4056         * config/i386/bdver1.md: New file.
4057         * config/i386/i386.md (include "bdver1.md"): Invoke the
4058         pipeline description for bdver1.
4059         (x86_sahf_1): Add "bdver1_decode" attribute.
4060         (*cmpfp_i_mixed): Likewise.
4061         (*cmpfp_i_sse): Likewise.
4062         (*cmpfp_i_i387): Likewise.
4063         (*cmpfp_iu_mixed): Likewise.
4064         (*cmpfp_iu_sse): Likewise.
4065         (*cmpfp_iu_387): Likewise.
4066         (*swap<mode>,*swap<mode>_1): Likewise.
4067         (fixuns_trunc<mode>hi2): Likewise.
4068         (fix_trunc<mode>si_sse): Likewise.
4069         (x86_fnstcw_1): Likewise.
4070         (x86_fldcw_1): Likewise.
4071         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
4072         (*floatsi<mode>2_vector_mixed): Likewise.
4073         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
4074         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
4075         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
4076         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
4077         (*floatsi<mode>2_vector_sse): Likewise.
4078         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
4079         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
4080         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
4081         (*mul<mode>3_1): Likewise.
4082         (*mulsi3_1_zext): Likewise.
4083         (*mulhi3_1): Likewise.
4084         (*mulqi3_1): Likewise.
4085         (*<u>mul<mode><dwi>3_1): Likewise.
4086         (*<u>mulqihi3_1): Likewise.
4087         (*<s>muldi3_highpart_1): Likewise.
4088         (*<s>mulsi3_highpart_1): Likewise.
4089         (*<s>mulsi3_highpart_zext): Likewise.
4090         (x86_64_shld): Likewise.
4091         (x86_shld): Likewise.
4092         (x86_64_shrd): Likewise.
4093         (x86_shrd): Likewise.
4094         (sqrtxf2): Likewise.
4095         (sqrt_extend<mode>xf2_i387): Likewise.
4096         (*sqrt<mode>2_sse): Likewise.
4097         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
4098         (sse_cvtsi2ssq): Likewise.
4099         (sse_cvtss2si): Likewise.
4100         (sse_cvtss2si_2): Likewise.
4101         (sse_cvtss2siq): Likewise.
4102         (sse_cvtss2siq_2): Likewise.
4103         (sse_cvttss2si): Likewise.
4104         (sse_cvttss2siq): Likewise.
4105         (sse2_cvtpi2pd): Likewise.
4106         (sse2_cvttpd2pi): Likewise.
4107         (sse2_cvtsi2sd): Likewise.
4108         (sse2_cvtsi2sdq): Likewise.
4109         (sse2_cvtsd2si): Likewise.
4110         (sse2_cvtsd2si_2): Likewise.
4111         (sse2_cvtsd2siq): Likewise.
4112         (sse2_cvtsd2siq_2): Likewise.
4113         (sse2_cvttsd2si): Likewise.
4114         (sse2_cvttsd2siq): Likewise.
4115         (*sse2_cvtpd2dq): Likewise.
4116         (*sse2_cvttpd2dq): Likewise.
4117         (sse2_cvtsd2ss): Likewise.
4118         (sse2_cvtss2sd): Likewise.
4119         (*sse2_cvtpd2ps): Likewise.
4120         (sse2_cvtps2pd): Likewise.
4121
4122 2010-10-22  Richard Guenther  <rguenther@suse.de>
4123
4124         PR middle-end/46137
4125         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
4126         remove the virtual operands if they are not needed.
4127
4128 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
4129
4130         * config/i386/i386.c (processor_costs bdver1_cost): Update
4131         insn costs and architectural parameters for bdver1.
4132
4133 2010-10-22  Richard Guenther  <rguenther@suse.de>
4134
4135         * gimple.h (gimple_register_canonical_type): Declare.
4136         * gimple.c (gimple_canonical_types): New global hashtable.
4137         (struct gimple_type_leader_entry_s): New type.
4138         (gimple_type_leader): New global cache.
4139         (gimple_lookup_type_leader): New function.
4140         (gtc_visit): Query the proper cache.
4141         (gimple_types_compatible_p): Likewise.
4142         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
4143         (gimple_canonical_type_eq): New function.
4144         (gimple_register_canonical_type): Likewise.
4145         (print_gimple_types_stats): Adjust for gimple_canonical_types.
4146         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
4147         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
4148         gimple_types_compatible_p for LTO.
4149
4150 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
4151
4152         PR target/46098
4153         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
4154         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
4155         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
4156         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
4157         (<sse>_movu<ssemodesuffix>): New expander.
4158         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
4159         (avx_movdqu<avxmodesuffix>): New expander.
4160         (*sse2_movdqu): Rename from sse2_movdqu.
4161         (sse2_movdqu): New expander.
4162
4163 2010-10-22  Richard Guenther  <rguenther@suse.de>
4164
4165         PR tree-optimization/45720
4166         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
4167         Handle negative step.
4168         (vect_enhance_data_refs_alignment): Likewise.
4169         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
4170         (vect_create_cond_for_align_checks): Likewise.
4171         (vect_create_cond_for_alias_checks): Likewise.
4172
4173 2010-10-22  Ira Rosen  <irar@il.ibm.com>
4174
4175         PR tree-optimization/46126
4176         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
4177         vectorizable_shift in case of basic block vectorization.
4178
4179 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
4180
4181         * target.h (enum opt_levels, struct default_options): New.
4182         * target.def (handle_ofast): Remove hook.
4183         (target_option.optimization): Change to
4184         target_option.optimization_table.
4185         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
4186         TARGET_OPTION_OPTIMIZATION_TABLE.
4187         (CAN_DEBUG_WITHOUT_FP): Remove.
4188         * doc/tm.texi: Regenerate.
4189         * opts.c (maybe_default_option, maybe_default_options,
4190         default_options_table): New.
4191         (default_options_optimization): Take extra parameters.  Don't
4192         assert that global_options and global_options_set are in use.  Use
4193         maybe_default_options.
4194         (decode_options): Pass extra parameters to
4195         default_options_optimization.
4196         * common.opt (falign-loops): Use value 0 with Var.
4197         (frerun-cse-after-loop, ftree-ter): Remove Init.
4198         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
4199         TARGET_OPTION_OPTIMIZATION): Remove.
4200         * targhooks.c (empty_optimization_table): New.
4201         * targhooks.h (empty_optimization_table): Declare.
4202         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
4203         * config/alpha/alpha.c (alpha_option_optimization_table,
4204         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4205         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
4206         * config/arm/arm.c (arm_option_optimization: Change to
4207         arm_option_optimization_table.
4208         (TARGET_OPTION_OPTIMIZATION): Change to
4209         TARGET_OPTION_OPTIMIZATION_TABLE.
4210         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
4211         * config/avr/avr.c (avr_option_optimization_table,
4212         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4213         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
4214         * config/cris/cris.c (cris_option_optimization): Change to
4215         cris_option_optimization_table.
4216         (TARGET_OPTION_OPTIMIZATION): Change to
4217         TARGET_OPTION_OPTIMIZATION_TABLE.
4218         * config/crx/crx.c (crx_option_optimization): Change to
4219         crx_option_optimization_table.
4220         (TARGET_OPTION_OPTIMIZATION): Change to
4221         TARGET_OPTION_OPTIMIZATION_TABLE.
4222         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
4223         * config/fr30/fr30.c (fr30_option_optimization_table,
4224         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4225         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
4226         * config/frv/frv.c (frv_option_optimization_table,
4227         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4228         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
4229         * config/h8300/h8300.c (h8300_option_optimization): Change to
4230         h8300_option_optimization_table.
4231         (TARGET_OPTION_OPTIMIZATION): Change to
4232         TARGET_OPTION_OPTIMIZATION_TABLE.
4233         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
4234         * config/i386/i386.c (ix86_option_optimization): Change to
4235         ix86_option_optimization_table.
4236         (TARGET_OPTION_OPTIMIZATION): Change to
4237         TARGET_OPTION_OPTIMIZATION_TABLE.
4238         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
4239         as initializer.
4240         * config/ia64/ia64.c (ia64_option_optimization): Change to
4241         ia64_option_optimization_table.
4242         (TARGET_OPTION_OPTIMIZATION): Change to
4243         TARGET_OPTION_OPTIMIZATION_TABLE.
4244         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
4245         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
4246         initializer.
4247         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
4248         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4249         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
4250         * config/lm32/lm32.c (lm32_option_optimization_table,
4251         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4252         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
4253         * config/m32r/m32r.c (m32r_option_optimization): Change to
4254         m32r_option_optimization_table.
4255         (TARGET_OPTION_OPTIMIZATION): Change to
4256         TARGET_OPTION_OPTIMIZATION_TABLE.
4257         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
4258         CAN_DEBUG_WITHOUT_FP): Remove.
4259         * config/mcore/mcore.c (mcore_option_optimization): Change to
4260         mcore_option_optimization_table.
4261         (TARGET_OPTION_OPTIMIZATION): Change to
4262         TARGET_OPTION_OPTIMIZATION_TABLE.
4263         * config/mep/mep.c (mep_option_optimization): Change to
4264         mep_option_optimization_table.
4265         (TARGET_OPTION_OPTIMIZATION): Change to
4266         TARGET_OPTION_OPTIMIZATION_TABLE.
4267         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
4268         * config/microblaze/microblaze.c
4269         (microblaze_option_optimization_table,
4270         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4271         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
4272         * config/mips/mips.c (mips_option_optimization_table,
4273         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4274         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
4275         * config/mmix/mmix.c (mmix_option_optimization): Change to
4276         mmix_option_optimization_table.
4277         (TARGET_OPTION_OPTIMIZATION): Change to
4278         TARGET_OPTION_OPTIMIZATION_TABLE.
4279         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
4280         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
4281         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4282         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
4283         * config/pa/pa.c (pa_option_optimization_table,
4284         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4285         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
4286         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
4287         pdp11_option_optimization_table.
4288         (TARGET_OPTION_OPTIMIZATION): Change to
4289         TARGET_OPTION_OPTIMIZATION_TABLE.
4290         * config/picochip/picochip.c (picochip_option_optimization_table,
4291         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4292         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
4293         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
4294         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4295         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
4296         * config/rx/rx.c (rx_option_optimization_table,
4297         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4298         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
4299         * config/s390/s390.c (s390_option_optimization): Change to
4300         s390_option_optimization_table.
4301         (s390_option_override): Update comment.
4302         (TARGET_OPTION_OPTIMIZATION): Change to
4303         TARGET_OPTION_OPTIMIZATION_TABLE.
4304         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
4305         * config/score/score.c (score_option_optimization_table,
4306         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4307         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
4308         * config/sh/sh.c (sh_option_optimization): Change to
4309         sh_option_optimization_table.
4310         (TARGET_OPTION_OPTIMIZATION): Change to
4311         TARGET_OPTION_OPTIMIZATION_TABLE.
4312         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
4313         (sh_option_override, expand_block_move, multcosts, find_barrier,
4314         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
4315         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
4316         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
4317         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
4318         instead of TARGET_SMALLCODE.
4319         * config/sh/sh.opt (mspace): Make into an alias for -Os.
4320         * config/sparc/sparc.c (sparc_option_optimization_table,
4321         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4322         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
4323         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
4324         TARGET_OPTION_OPTIMIZATION_TABLE): New.
4325         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
4326         * config/v850/v850.c (v850_option_optimization): Change to
4327         v850_option_optimization_table.
4328         (TARGET_OPTION_OPTIMIZATION): Change to
4329         TARGET_OPTION_OPTIMIZATION_TABLE.
4330         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
4331         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
4332         xtensa_option_optimization_table.
4333         (TARGET_OPTION_OPTIMIZATION): Change to
4334         TARGET_OPTION_OPTIMIZATION_TABLE.
4335         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
4336
4337 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
4338
4339         Based on the CFString implementation in FSF apple/trunk branch.
4340
4341         * target.def (objc_construct_string): New Hook.
4342         * doc/tm.texi (objc_construct_string): Document.
4343         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
4344         * config/t-darwin: Amend build rules for darwin.o.
4345         * config/darwin.opt: Add cfstrings flags.
4346         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
4347         (darwin_objc_construct_string): New.
4348         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
4349         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
4350         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
4351         (darwin_fold_builtin): Likewise.
4352         (darwin_build_constant_cfstring): Likewise.
4353         (darwin_objc_construct_string): Likewise.
4354         (darwin_cfstring_p): Likewise.
4355         (darwin_enter_string_into_cfstring_table): Likewise.
4356         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
4357         * config/darwin.c (darwin_running_cxx): New var.
4358         (machopic_select_section): Return cfstring_constant_object_section.
4359         (darwin_override_options): Set darwin_running_cxx.
4360         (add_builtin_field_decl): New.
4361         (darwin_init_cfstring_builtins): New.
4362         (darwin_build_constant_cfstring): New.
4363         (darwin_fold_builtin): New.
4364         (cfstring_hash): New.
4365         (cfstring_eq): New.
4366         (darwin_enter_string_into_cfstring_table): New.
4367         * config/darwin-sections.def (cfstring_constant_object_section): New.
4368         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
4369         (TARGET_OBJC_CONSTRUCT_STRING): Define.
4370
4371 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4372
4373         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
4374         TYPE_STUB_DECL instead of TREE_CHAIN.
4375         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
4376         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
4377         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
4378         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
4379         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
4380         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
4381         Likewise.
4382         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
4383
4384 2010-10-22  Jie Zhang  <jie@codesourcery.com>
4385
4386         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
4387         (copy_blkmode_from_reg): Likewise.
4388         (read_complex_part): Likewise.
4389         (expand_expr_real_1): Calculate packedp and pass it to
4390         extract_bit_field.
4391         * expr.h (extract_bit_field): Update declaration.
4392         * calls.c (store_unaligned_arguments_into_pseudos): Update call
4393         to extract_bit_field.
4394         * expmed.c (extract_fixed_bit_field): Update calls to
4395         extract_fixed_bit_field.
4396         (store_split_bit_field): Likewise.
4397         (extract_bit_field_1): Add new argument packedp.
4398         (extract_bit_field): Add new argument packedp.
4399         (extract_fixed_bit_field): Add new argument packedp and let
4400         packed attribute override volatile.
4401         * stmt.c (expand_return): Update call to extract_bit_field.
4402
4403 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4404
4405         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
4406
4407 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4408
4409         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
4410         of gcc_checking_assert.
4411         * sel-sched.c (code_motion_process_successors): Likewise.
4412
4413 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4414
4415         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
4416         when stopping because of a different locus on edge or insn.
4417         (try_optimize_cfg): Add comment.
4418         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
4419         block is a forwarder block, propagate locus on the edge.
4420         (cfg_layout_merge_blocks): Likewise.
4421
4422 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
4423
4424         PR target/45946
4425         * config/i386/i386.md (*pushti2): New insn pattern.
4426         (pushti2 splitter): New insn splitter.
4427         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
4428         DWI mode iterator.
4429
4430 2010-10-21  Paul Koning  <ni1d@arrl.net>
4431
4432         * config/pdp11/pdp11-protos.md (arith_operand,
4433         const_immediate_operand, expand_shift_operand,
4434         immediate15_operand): Delete
4435         * config/pdp11/pdp11.c: Ditto.
4436         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
4437         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
4438         EXTRA_CONSTRAINT): Delete.
4439         * config/pdp11/pdp11.md (various): Use standard constraints
4440         instead of removed ones.
4441         * config/pdp11/constraints.md: New file.
4442         * config/pdp11/predicates.md: New file.
4443
4444 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
4445
4446         PR c/45834
4447         * alias.c (true_dependence_1): Remove obsolete check for QImode.
4448         (may_alias_p): Ditto.
4449
4450 2010-10-21  Martin Jambor  <mjambor@suse.cz>
4451
4452         PR tree-optimization/45875
4453         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
4454
4455 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4456
4457         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
4458         variables.
4459         (create_new_def_for): Likewise.
4460
4461 2010-10-21  Nick Clifton  <nickc@redhat.com>
4462
4463         * config/mn10300/mn10300.c: Fold code to 80-character width.
4464         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4465         MEM, CONST_INT and CONST_DOUBLE.
4466         (targetm): Move initialization to end of file.
4467         (print_operand): Rename to mn10300_print_operand.
4468         (print_operand_address): Rename to mn10300_print_operand_address.
4469         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
4470         (expand_prologue): Rename to mn10300_expand_prologue.
4471         (expand_epilogue): Rename to mn10300_expand_epilogue.
4472         (initial_offset): Rename to mn10300_initial_offset.
4473         (function_arg): Rename to mn10300_function_arg.
4474         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
4475         (symbolic_operand): Rename to mn10300_symbolic_operand.
4476         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
4477         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
4478         * config/mn10300/mn10300-protos.h: Update prototypes.
4479         * config/mn10300/mn10300.h: Fold code to 80-character width.
4480         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4481         MEM, CONST_INT and CONST_DOUBLE.
4482         (CPP_SPEC): Move to...
4483         (TARGET_CPU_CPP_BUILTINS): ... here.
4484         * config/mn10300/mn10300.md: Fold code to 80-character width.
4485         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
4486         MEM, CONST_INT and CONST_DOUBLE.
4487
4488 2010-10-21  Ira Rosen  <irar@il.ibm.com>
4489
4490         PR tree-optimization/46049
4491         PR tree-optimization/46052
4492         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
4493         (vect_get_slp_defs): Add arguments.
4494         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
4495         operands to vect_get_slp_defs.
4496         (vectorizable_reduction): Fix comment, pass scalar operands to
4497         vect_get_slp_defs.
4498         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
4499         type to determine number of units in the created vector.
4500         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
4501         (vectorizable_conversion): Fix comment.
4502         (vectorizable_shift): New function.
4503         (vectorizable_operation): Move code that handles shifts to
4504         vectorizable_shift.
4505         (vectorizable_type_demotion): Fix comment, pass scalar operands to
4506         vect_get_slp_defs.
4507         (vectorizable_type_promotion, vectorizable_store): Likewise.
4508         (vectorizable_condition): Fix comment.
4509         (vect_analyze_stmt): Call vectorizable_shift.
4510         (vect_transform_stmt): Likewise.
4511         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
4512         Use it as the operand to create vectors for, except reduction
4513         initial definition and store.  Use operands type.
4514         (vect_get_slp_defs): Add new arguments.  Pass them to
4515          vect_get_constant_vectors.
4516
4517 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4518
4519         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
4520         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
4521         * cfghooks.c (fixup_reorder_chain): Likewise.
4522         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
4523         * cgraph.c (cgraph_add_thunk): Likewise.
4524         (cgraph_create_edge_1): Likewise.
4525         (cgraph_create_virtual_clone): Likewise.
4526         * ddg.c (add_cross_iteration_register_deps): Likewise.
4527         * dwarf2out.c (modified_type_die): Likewise.
4528         * emit-rtl.c (set_mem_alias_set): Likewise.
4529         * ggc-zone.c (zone_allocate_marks): Likewise.
4530         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
4531         * gimple.c (iterative_hash_gimple_type): Likewise.
4532         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
4533         (create_single_exit_edge): Likewise.
4534         * haifa-sched.c (choose_ready): Likewise.
4535         * lto-streamer-in.c (input_gimple_stmt): Likewise.
4536         * passes.c (execute_todo): Likewise.
4537         * sched-ebb.c (begin_schedule_ready): Likewise.
4538         * sel-sched.c (code_motion_process_successors): Likewise.
4539         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
4540         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
4541         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
4542         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
4543         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
4544         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
4545         (ssa_conflicts_add): Likewise.
4546         * tree-ssa-copy.c (replace_exp): Likewise.
4547         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
4548         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
4549         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
4550         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
4551         (compute_antic): Likewise.
4552         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
4553         (add_dependence): Likewise.
4554         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
4555         * tree-vrp.c (supports_overflow_infinity): Likewise.
4556         (make_overflow_infinity, negative_overflow_infinity): Likewise.
4557         (avoid_overflow_infinity, register_new_assert_for): Likewise.
4558         (process_assert_insertions_for): Likewise.
4559         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
4560         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
4561         (intersect_loc_chains, variable_merge_over_cur): Likewise.
4562
4563 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
4564
4565         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
4566         * reload1.c (has_nonexceptional_receiver): Likewise.
4567         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
4568         (create_new_def_for): Likewise.
4569         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
4570         (merge_phi_nodes): Likewise.
4571         (has_abnormal_incoming_edge_p): Delete.
4572
4573 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
4574
4575         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
4576
4577 2010-10-21  Richard Guenther  <rguenther@suse.de>
4578             Michael Matz  <matz@suse.de>
4579
4580         PR tree-optimization/45764
4581         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
4582         Adjust initial misalignment for negative DR_STEP.
4583         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
4584         do not have the same alignment over the whole iteration domain.
4585
4586 2010-10-21  Richard Guenther  <rguenther@suse.de>
4587
4588         PR tree-optimization/46111
4589         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
4590
4591 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4592
4593         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
4594
4595 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4596
4597         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
4598         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
4599
4600 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4601
4602         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
4603         signal_frame.
4604         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
4605
4606 2010-10-21  Tristan Gingold  <gingold@adacore.com>
4607
4608         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
4609         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
4610
4611 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
4612
4613         * basic-block.h (find_fallthru_edge): Define.
4614         * cfgcleanup.c (merge_blocks_move): Use it.
4615         (try_crossjump_bb): Likewise.
4616         * cfglayout.c (fixup_reorder_chains): Likewise.
4617         (fixup_fallthru_exit_predecessor): Likewise.
4618         * cfgrtl.c (rtl_split_edge): Likewise.
4619         (rtl_verify_flow_info): Likewise.
4620         * function.c (thread_prologue_and_epilogue_insns): Likewise.
4621         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
4622         * ifcvt.c (block_fallthru): Likewise.
4623         * reload1.c (fixup_abnormal_edges): Likewise.
4624         * sched-ebb.c (being_schedule_ready): Likewise.
4625         (schedule_ebb): Likwise.
4626         * sched-rgn.c (find_single_block_region): Likewise.
4627         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
4628         * tree-complex.c (expand_complex_move): Likewise.
4629         * sched-int.h (find_fallthru_edge): Rename to...
4630         (find_fallthru_edge_from): ...this.
4631         * haifa-sched.c (find_fallthru_edge): Rename to...
4632         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
4633         (init_before_recovery): Call find_fallthru_edge_from.
4634         * sel-sched-ir.c (merge_fences): Likewise.
4635         * sel-sched.c (in_fallthru_bb_p): Likewise.
4636         (move_cond_jump): Likewise.
4637
4638 2010-10-20  Paul Koning  <ni1d@arrl.net>
4639
4640         * config/pdp11/pdp11.md (various): Fix conditions on a number of
4641         insn to check for target 11/40 or higher.
4642
4643 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
4644
4645         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
4646         bool instead of a tree.
4647         (c_parser_objc_method_decl): Added bool argument.  Updated call to
4648         objc_build_method_signature.
4649         (c_parser_objc_method_definition): Do not call
4650         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
4651         c_parser_objc_method_decl and objc_start_method_definition.
4652         (c_parser_objc_methodproto): Do not call objc_set_method_type.
4653         Updated calls to c_parser_objc_method_type,
4654         c_parser_objc_method_decl and objc_add_method_declaration.
4655
4656 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
4657
4658         PR tree-optimization/45919
4659         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
4660         array members.
4661
4662         PR tree-optimization/46066
4663         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
4664         instead of gsi_last_bb.
4665
4666 2010-10-20  DJ Delorie  <dj@redhat.com>
4667
4668         * config/m32c/m32c.c (m32c_option_override): Always disable
4669         function-cse in 16-bit mode.  Indirect calls are always worse than
4670         direct calls as there is no 16-bit indirect call opcode.
4671         (m32c_override_options_after_change): New, likewise.
4672
4673 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
4674
4675         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
4676         emitting the conditional move in the inner mode of the SUBREG.
4677
4678 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
4679
4680         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
4681         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
4682         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
4683         (ia64_preferred_reload_class): Make static.  Change rclass argument
4684         and result types from enum reg_class to reg_class_t.
4685
4686 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
4687
4688         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
4689         call for single operand expression.
4690
4691 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
4692
4693         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
4694         if there is a call statement to pure or const function in the block.
4695
4696 2010-10-20  Paul Koning  <pkoning@equallogic.com>
4697
4698         Fix several build errors for pdp11 target.
4699         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
4700         (cbranchdf4): Conditional on TARGET_FPU.
4701         (movdf): Ditto; correct alternatives check.
4702         (movmemhi): Fix predicate and constraint.
4703         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
4704
4705 2010-10-20  Richard Guenther  <rguenther@suse.de>
4706
4707         PR lto/45667
4708         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
4709         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
4710         (verify_gimple_assign_single): Disable ADDR_EXPR type check
4711         when in LTO.
4712
4713 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
4714
4715         PR fortran/42169
4716         * ira-emit.c (store_can_be_removed_p): Return false instead of
4717         gcc_unreachable.
4718
4719 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
4720
4721         * fold-const.c (fold_binary_loc): New transformation.
4722
4723 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
4724
4725         PR target/46085
4726         * config/i386/sse.md (reduc_splus_v8sf): Updated.
4727         (reduc_splus_v4df): Likewise.
4728
4729 2010-10-20  Richard Guenther  <rguenther@suse.de>
4730
4731         PR tree-optimization/45860
4732         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
4733         conditional store replacement for non-register type stores.
4734
4735 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
4736
4737         * stor-layout.c (skip_simple_constant_arithmetic): New function.
4738         (self_referential_size): Use it instead of skip_simple_arithmetic.
4739
4740 2010-10-20  Olivier Hainque  <hainque@adacore.com>
4741
4742         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
4743         If the current function calls eh_return, claim live all registers
4744         that we need to check for liveness otherwise.
4745
4746 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
4747
4748         * c-decl.c (c_write_global_declarations): Call
4749         objc_write_global_declarations when compiling Objective-C.
4750         * c-lang.c (finish_file): Removed.
4751
4752 2010-10-19  DJ Delorie  <dj@redhat.com>
4753
4754         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
4755         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
4756         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
4757         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
4758         * doc/tm.texi: Regenerate.
4759         * targhooks.h (default_label_align_after_barrier_max_skip,
4760         default_loop_align_max_skip, default_label_align_max_skip,
4761         default_jump_align_max_skip): Declare.
4762         * target.def (label_align_after_barrier_max_skip): New.
4763         (loop_align_max_skip): New.
4764         (label_align_max_skip): New.
4765         (jump_align_max_skip): New.
4766         * system.h (poison): Add those macros to the list.
4767         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
4768         (LOOP_ALIGN_MAX_SKIP): Remove.
4769         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
4770         (JUMP_ALIGN_MAX_SKIP): Remove.
4771         (default_label_align_after_barrier_max_skip): New.
4772         (default_loop_align_max_skip): New.
4773         (default_label_align_max_skip): New.
4774         (default_jump_align_max_skip): New.
4775         (compute_alignments): Use the new hooks.
4776         (shorten_branches): Likewise.
4777
4778 2010-10-19  Richard Henderson  <rth@redhat.com>
4779
4780         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
4781         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
4782         (fma4i_fmadd_<mode>): New.
4783         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
4784         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
4785         standard fma patterns.
4786         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
4787         enable for FMA.
4788         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
4789         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
4790         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
4791
4792 2010-10-19  Paul Koning  <pkoning@equallogic.com>
4793
4794         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
4795         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
4796
4797 2010-10-19  Richard Henderson  <rth@redhat.com>
4798
4799         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
4800         (fmadf4, *fmsdf4, *nfmadf4): New.
4801         (fmaxf4, *fmsxf4, *nfmaxf4): New.
4802
4803 2010-10-19  Michael Eager  <eager@eagercon.com>
4804
4805         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
4806         Use sjlj unwind info for exceptions.
4807
4808 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
4809
4810         PR fortran/43414
4811         * dwarf2out.c (add_calling_convention_attribute): Flag main
4812         Fortran subroutine with DW_AT_main_subprogram.
4813
4814 2010-10-19  Nick Clifton  <nickc@redhat.com>
4815
4816         * config/rx/rx.c (rx_function_value): Small integer types are
4817         promoted to SImode.
4818         (rx_promote_function_mode): New function.
4819         (TARGET_PROMOTE_FUNCTION_MODE): Define.
4820
4821 2010-10-19  Nick Clifton  <nickc@redhat.com>
4822
4823         * config/mep/mep.c (mep_print_operand): Use
4824         targetm.strip_name_encoding.
4825         (mep_output_aligned_common): Likewise.
4826
4827 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
4828
4829         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
4830
4831 2010-10-18  Richard Henderson  <rth@redhat.com>
4832
4833         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
4834         (fma (neg a) (neg b) c) and (fma a (neg b) c).
4835
4836 2010-10-18  Richard Henderson  <rth@redhat.com>
4837
4838         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
4839         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
4840         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
4841         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
4842         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
4843         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
4844         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
4845         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
4846         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
4847         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
4848         (bdesc_multi_arg): Remove the corresponding builtins.
4849         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
4850         (UNSPEC_FMA4_FMSUBADD): Remove.
4851         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
4852         * config/i386/sse.md (FMA4MODEF4): Remove.
4853         (FMAMODE): Add.
4854         (fma<mode>4): New expander.
4855         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
4856         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
4857         (*fma4i_fmsub_<mode>): Similarly.
4858         (*fma4i_fnmadd_<mode>): Similarly.
4859         (*fma4i_fnmsub_<mode>): Similarly.
4860         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
4861         with the first operand.
4862         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
4863         of explicit arithmetic.  Macroize with AVXMODEF2P.
4864         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
4865         (xop_frcz<mode>2): Macroize with FMAMODE.
4866         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
4867         the first operand.
4868         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
4869         extra negations.
4870         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
4871         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
4872         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
4873         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
4874         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
4875         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
4876         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
4877         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
4878
4879 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
4880
4881         PR rtl-optimization/45966
4882         * combine.c (try_combine): If added_sets_2, deal with the case
4883         where i0 feeds i1 and i1 feeds i2.
4884
4885 2010-10-18  Jan Hubicka  <jh@suse.cz>
4886
4887         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
4888         preserve flags before trying to guess on visibility.
4889         (varpool_externally_visible_p): New function.
4890         (function_and_variable_visibility): Use it.
4891
4892 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4893
4894         Implemented parsing @synthesize and @dynamic for Objective-C.
4895         * c-parser.c (c_parser_external_declaration): Recognize
4896         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
4897         (c_parser_objc_at_synthesize_declaration): New.
4898         (c_parser_objc_at_dynamic_declaration): New.
4899
4900 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4901
4902         * c-parser.c (c_parser_objc_class_declaration): After finding an
4903         error, parse the whole declaration then reset parser->error.
4904
4905 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4906
4907         PR target/46041
4908         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
4909         * builtins.c (mode_has_fma): Ditto.
4910
4911 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
4912
4913         PR target/36898
4914         PR middle-end/43760
4915         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
4916
4917 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
4918
4919         * config/i386/i386.c (ix86_option_override_internal): Define and
4920         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
4921         default.
4922         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
4923         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
4924
4925 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4926
4927         Merge from 'apple/trunk' branch on FSF servers.
4928         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
4929         following Objective-C change:
4930
4931         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
4932
4933         Radar 4301047
4934         * c-parse.in (objc_quals): Build objc qualifier list same way
4935         as gcc-3.3
4936
4937 2010-10-18  Jan Hubicka  <jh@suse.cz>
4938
4939         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
4940         function_and_variable_visibility): Revert accidental commit.
4941
4942 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
4943
4944         Merge from 'apple/trunk' branch on FSF servers.
4945         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
4946         the following Objective-C change:
4947
4948         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
4949
4950         Radar 4204796
4951         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
4952         'volatilized' type used in a typeof operator.
4953
4954 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
4955
4956         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
4957         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
4958         rewrite modelled on gimple_purge_dead_eh_edges.
4959         (gimple_purge_all_dead_abnormal_call_edges): New function.
4960         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
4961         directly instead of through gimple_purge_dead_abnormal_call_edges.
4962         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
4963         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
4964         removed AB side-effects from one of its statements.
4965         (init_pre): Initialize need_ab_cleanup.
4966         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
4967         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
4968
4969 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
4970
4971         PR c/46015
4972         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
4973         on computed goto argument.
4974
4975 2010-10-18  Richard Guenther  <rguenther@suse.de>
4976
4977         PR tree-optimization/45967
4978         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
4979         (could_have_pointers): Likewise.
4980         (handle_rhs_call, handle_const_call, handle_pure_call,
4981         find_func_aliases, intra_create_variable_infos): Remove calls to them.
4982         (struct fieldoff): Add must_have_pointers field.
4983         (type_must_have_pointers): New function.
4984         (field_must_have_pointers): Likewise.
4985         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
4986         Adjust field merging.
4987         (create_function_info_for): May-have-pointers of varinfo is
4988         almost always true.
4989         (create_variable_info_for_1): Likewise.
4990
4991 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
4992
4993         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
4994         of operands to vec_concat.
4995
4996 2010-10-18  Richard Guenther  <rguenther@suse.de>
4997
4998         PR lto/44950
4999         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
5000         also clear references to entries of it.
5001
5002 2010-10-18  Andi Kleen  <ak@linux.intel.com>
5003
5004         PR other/43448
5005         * gccbug.in: Remove.
5006         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
5007         (doc, distclean, install-common): Remove reference to gccbug.
5008         * configure: Regenerate.
5009         * configure.ac (all_outputs): Remove gccbug.
5010         * doc/configfiles.texi: Remove references to gccbug.
5011         * doc/sourcebuild.texi: Dito.
5012
5013 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
5014
5015         PR middle-end/46019
5016         * fold-const.c (fold_binary_loc): If integer_pow2p has
5017         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
5018
5019 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
5020             Jeremie Salvucci  <jeremie.salvucci@free.fr>
5021
5022         * gengtype.c (verbosity_level): Add variable.
5023         (set_gc_used): Count variables for verbosity.
5024         (close_output_files): Backing up files, counting written ones
5025         verbosily.
5026         (write_types): Count emitted functions for verbosity. Added
5027         debug messages.
5028         (write_enum_defn): Count structures for verbosity. Added debug
5029         messages.
5030         (gengtype_long_options): Add "verbose" & "backupdir".
5031         (print_usage): Ditto.
5032         (main): Verbose display of parsed files.
5033
5034         * gengtype.h (verbosity_level): Add declaration.
5035
5036 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
5037
5038         * gengtype.c (parse_program_options): Add allocation of
5039         plugin_files, and correct test on nb_plugin_files.
5040
5041 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5042
5043         Merge from 'apple/trunk' branch on FSF servers.
5044
5045         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
5046
5047         Radar 4133425
5048         * c-decl.c (undeclared_variable): Issue diagnostic on
5049         private 'ivar' access.
5050
5051 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
5052
5053         PR target/46051
5054         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
5055         generated sequence to match *avx_vperm2f128<mode>_nozero.
5056         (vec_interleave_lowv4df): Ditto.
5057         (vec_interleave_highv8sf): Ditto.
5058         (vec_interleave_lowv8sf): Ditto.
5059
5060 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
5061
5062         * libgcov.c (create_file_directory): Enable it for win32 case.
5063         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
5064         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
5065         (GCOV_PREFIX_SKIP): Likewise.
5066
5067 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5068
5069         * doc/objc.texi (GNU Objective-C runtime API): New section.
5070         (Modern GNU Objective-C runtime API): New section.
5071         (Traditional GNU Objective-C runtime API): New section.
5072         (Executing code before main): Mention that this section is
5073         specific to the GNU Objective-C runtime.
5074         (Garbage Collection): Same.
5075
5076 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
5077
5078         * c-parser.c (c_parser_for_statement): Move initialization of
5079         cond and incr before if.
5080
5081 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
5082
5083         * target.def (preferred_output_reload_class): New hook.
5084         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
5085         * doc/tm.texi: Regenerate.
5086         * targhooks.c (default_preferred_output_reload_class): New function.
5087         * targhooks.h (default_preferred_output_reload_class): Declare.
5088         * reload.c (find_dummy_reload): Change rclass argument type from
5089         enum reg_class to reg_class_t. Change this_alternative array type
5090         from enum reg_class to reg_class_t.
5091         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
5092         (push_reload): Change preferred_class variable type to reg_class_t.
5093         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
5094         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
5095         argument type from enum reg_class to reg_class_t. Use
5096         HARD_REGISTER_NUM_P predicate.
5097         * recog.h (reg_fits_class_p): Update prototype.
5098
5099         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5100         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
5101         Remove.
5102         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
5103         static. Change regclass argument and result types from enum reg_class
5104         to reg_class_t.
5105         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5106
5107 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
5108
5109         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
5110         visibility enum, and handle @package.
5111
5112 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
5113
5114         * doc/objc.texi (What you can and what you cannot do in +load):
5115         Document that sending messages to constant string objects in +load
5116         is not guaranteed to work.
5117
5118 2010-10-16  Jan Hubicka  <jh@suse.cz>
5119
5120         PR middle-end/44206
5121         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
5122         existence of refrences before removing the function.
5123
5124 2010-10-16  Jan Hubicka  <jh@suse.cz>
5125
5126         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
5127         only_called_at_startup and only_called_at_exit.
5128         (cgraph_propagate_frequency): Compute only_called_at_startup and
5129         only_called_at_exit.
5130         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
5131         only_called_at_exit.
5132         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
5133         flags.
5134         * predict.c (compute_function_frequency): Initialize the new flags.
5135
5136 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
5137
5138         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
5139         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
5140         on the bounds of its domain.
5141         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
5142
5143 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
5144
5145         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
5146         * config/avr/avr-protos.h (preferred_reload_class): Remove.
5147         * config/avr/avr.c (preferred_reload_class): Remove.
5148         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
5149         * config/pa/pa.c (emit_move_sequence): Update comment
5150         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
5151         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
5152         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
5153         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
5154         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
5155         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
5156         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
5157         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
5158         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
5159         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
5160         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
5161         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
5162         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
5163
5164 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5165
5166         * opts.c (set_fast_math_flags,
5167         set_unsafe_math_optimizations_flags): Make static.
5168         * toplev.h (set_fast_math_flags,
5169         set_unsafe_math_optimizations_flags): Remove prototypes.
5170
5171 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
5172
5173         * config/arm/arm.c (arm_option_optimization): Set
5174         flag_section_anchors to 1 not 2.
5175         * config/i386/i386.c (ix86_option_override_internal): Check
5176         global_options_set.x_flag_zee and
5177         global_options_set.x_flag_omit_frame_pointer.
5178         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
5179         flag_zee to 2.
5180         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
5181         global_options_set.x_flag_omit_frame_pointer.
5182         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
5183         opts->x_flag_section_anchors to 1 not 2.
5184         * config/sh/sh.c (sh_option_optimization): Don't set
5185         flag_schedule_insns to 2.
5186         (sh_option_override): Check
5187         global_options_set.x_flag_schedule_insns.
5188         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
5189
5190 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
5191
5192         * configure.ac: Make sure inhibit_libc remains false for mingw targets
5193         as cross.
5194         * configure: Regenerated.
5195
5196 2010-10-15  Xinliang David Li  <davidxl@google.com>
5197
5198         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
5199         function.
5200         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
5201         into a recursive function.
5202
5203 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
5204
5205         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
5206         (*movdfcc_1): ditto.
5207
5208 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5209
5210         * target.def (target_option.init_struct): New hook.
5211         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
5212         * doc/tm.texi: Regenerate.
5213         * hooks.c (hook_void_gcc_optionsp): New.
5214         * hooks.h (hook_void_gcc_optionsp): Declare.
5215         * langhooks-def.h (lhd_init_options_struct): Remove.
5216         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
5217         * langhooks.c (lhd_init_options_struct): Remove.
5218         * opts.c (init_options_struct): Also call
5219         targetm.target_option.init_struct.
5220         * config/i386/i386.c (ix86_option_init_struct,
5221         TARGET_OPTION_INIT_STRUCT): New.
5222         (ix86_option_optimization): Move some settings to
5223         ix86_option_init_struct.
5224         * config/pdp11/pdp11.c (pdp11_option_init_struct,
5225         TARGET_OPTION_INIT_STRUCT): New.
5226         (pdp11_option_optimization): Move some settings to
5227         pdp11_option_init_struct.
5228         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
5229         rs6000_option_init_struct.  Use options structure pointer.
5230         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5231         * config/s390/s390.c (s390_option_init_struct,
5232         TARGET_OPTION_INIT_STRUCT): New.
5233         (s390_option_optimization): Don't set
5234         flag_asynchronous_unwind_tables here.
5235         * config/sh/sh.c (sh_option_init_struct,
5236         TARGET_OPTION_INIT_STRUCT): New.
5237         (sh_option_optimization): Don't set flag_finite_math_only here.
5238         * config/spu/spu.c (spu_option_optimization): Replace by
5239         spu_option_optimization.  Use options structure pointer.
5240         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
5241
5242 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5243
5244         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
5245
5246         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
5247         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
5248         (Standard names): Document fma.
5249
5250         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
5251         __FP_FAST_FMAF, __FP_FAST_FMAL.
5252
5253         * builitns.c (expand_builtin_mathfn_ternary): New function for
5254         expanding ternary math functions, like fma.
5255         (expand_builtin): Call it for the fma builtins.
5256
5257         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
5258         ops at present.
5259
5260         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
5261         vectorizable functions to support vectorizing fma.
5262
5263         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
5264         Handle fma builtins.
5265
5266         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
5267         (UNSPEC_VSX_MSUB): Ditto.
5268         (UNSPEC_VSX_NMADD): Ditto.
5269         (UNSPEC_VSX_NMSUB): Ditto.
5270         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
5271         of UNSPEC. Renumber combiner patterns.
5272         (vsx_fmsub<mode>4*): Ditto.
5273         (vsx_fnmadd<mode>4*): Ditto.
5274         (vsx_fnmsub<mode>4*): Ditto.
5275
5276         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
5277         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
5278         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
5279         (altivec_vmaddfp_1): Ditto.
5280         (altivec_vmaddfp_2): Ditto.
5281         (atlivec_mulv4sf3): Ditto.
5282         (altivec_vnmsubfp): Ditto.
5283         (altivec_vnmsubfp_1): Ditto.
5284         (altivec_vnmsubfp_2): Ditto.
5285         (altivec_vnmsubfp_3): Delete.
5286
5287         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
5288         (fmasf4_fpr): Ditto.
5289         (fmssf4_fpr): Ditto.
5290         (fnmasf4_fpr): Ditto.
5291         (fnmssf4_fpr): Ditto.
5292         (fmadf4): Ditto.
5293         (fmadf4_fpr): Ditto.
5294         (fmsdf4_fpr): Ditto.
5295         (fnmadf4_fpr): Ditto.
5296         (fnmsdf4_fpr): Ditto.
5297
5298         * optabs.h (OTI_fma): Add fma optab.
5299         (fma_optab): Ditto.
5300
5301         * genopinit.c (optabs): Set fma optab.
5302
5303         * rtl.def (FMA): Add FMA rtl.
5304
5305         * tree.h (mode_has_fma): New function to return if MODE supports a
5306         fast multiply and add instruction.
5307         * builtins.c (mode_has_fma): Ditto.
5308
5309 2010-10-15  Jan Hubicka  <jh@suse.cz>
5310
5311         * lto-streamer-out.c (write_symbol): Use pointer set of seen
5312         objects instead of bitmap.
5313         (produce_symtab): Likewise; output defined symbols first.
5314
5315 2010-10-15  Jie Zhang  <jie@codesourcery.com>
5316
5317         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
5318         Option Summary and Index.
5319
5320 2010-10-15  Richard Guenther  <rguenther@suse.de>
5321
5322         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
5323         for automatic variables again.
5324
5325 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5326
5327         * doc/extend.texi (Variable Length): Don't refer to VLAs not
5328         conforming to C99.
5329
5330 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5331
5332         * config/rx/rx.c (rx_option_optimization): Change to
5333         rx_override_options_after_change.  Don't change
5334         flag_lto_compression_level.  Don't check for changes to whether
5335         FPU instructions can be used.  Check and set only
5336         flag_finite_math_only, not other fast-math flags.
5337         (rx_option_override): Call rx_override_options_after_change.
5338         (TARGET_OPTION_OPTIMIZATION): Remove.
5339         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
5340
5341 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5342
5343         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
5344         disable section anchors for lang_hooks.name[4] != 'O'.
5345
5346 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
5347
5348         * config/frv/frv.c (frv_option_optimization,
5349         TARGET_OPTION_OPTIMIZATION): Remove.
5350         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
5351
5352 2010-10-15  Michael Matz  <matz@suse.de>
5353
5354         * cgraphunit.c (clone_of_p): Define unconditionally.
5355
5356 2010-10-15  Richard Guenther  <rguenther@suse.de>
5357
5358         PR lto/45957
5359         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
5360
5361 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
5362
5363         * ifcvt.c (find_active_insn_before): New function.
5364         (find_active_insn_after): New function.
5365         (cond_exec_process_if_block): Use new functions to replace
5366         prev_active_insn() and next_active_insn().
5367
5368 2010-10-14  Yao Qi  <yao@codesourcery.com>
5369
5370         PR target/45447
5371         * config/arm/arm.c (arm_build_builtin_va_list): Assign
5372         va_list_name to TYPE_STUB_DECL (va_list_type).
5373
5374 2010-10-14  Jan Hubicka  <jh@suse.cz>
5375
5376         PR middle-end/45621
5377         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
5378         redirected to clone, be happy.
5379         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
5380         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
5381         former_clone_of unconditionally.
5382
5383 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
5384
5385         Merge from FSF apple 'trunk' branch.
5386         2006 Fariborz Jahanian  <fjahanian@apple.com>
5387
5388         Radars 4436866, 4505126, 4506903, 4517826
5389         * c-parser.c (c_parser, objc_property_attr_context) New flag.
5390         (c_lex_one_token): Handle property attributes.
5391         (c_parser_external_declaration): Handle @property.
5392         (c_parser_declaration_or_fndef): Warn on invalid attributes before
5393         @alias, @class, @end and @property objc keywords.
5394         (c_parser_objc_methodprotolist): Handle @property.
5395         (c_parser_objc_property_attrlist): New.
5396         (c_parser_objc_at_property): New.
5397         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
5398         (build_modify_expr): Likewise.
5399
5400 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
5401
5402         PR tree-optimization/46008
5403         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
5404
5405 2010-10-14  Richard Guenther  <rguenther@suse.de>
5406
5407         PR tree-optimization/44913
5408         * tree-data-ref.c (disjoint_objects_p): Remove.
5409         (dr_may_alias_p): Simplify.  Only hand the base object to
5410         the alias-oracle.
5411         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
5412         some more trees, bail out instead of asserting.
5413         (ptr_derefs_may_alias_p): Likewise.  Export.
5414         (refs_may_alias_p_1): Handle STRING_CSTs.
5415         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
5416
5417 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
5418
5419         PR c/45969
5420         * c-typeck.c (build_binary_op): Don't try to compute a semantic
5421         type with excess precision for boolean operations.
5422
5423 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
5424             Basile Starynkevitch  <basile@starynkevitch.net>
5425
5426         * gengtype.c:  Include getopt.h and version.h.
5427
5428         (lang_bitmap, struct outf, outf_p)
5429         (get_output_file_with_visibility, oprintf): Definitions moved to
5430         gengtype.h
5431         (output_files, header_file, srcdir, srcdir_len, this_file)
5432         (do_dump): No more static variables.
5433         (do_debug): New.
5434         (dbgprint_count_type_at): Added new function.
5435         (gengtype_long_options): New.
5436         (print_usage, print_version, parse_program_options): New.
5437         (main): Call parse_program_options, and removed old option
5438         handling code.  Added some debug output.
5439
5440         * gengtype.h:  Updated copyright year.
5441         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
5442         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
5443         Moved from gengtype.c to here.
5444         (do_debug, read_state_filename, write_state_filename): New variables.
5445         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
5446
5447         * Makefile.in:
5448         (REVISION): Always defined.
5449         (version.o): Removed ifdef REVISION_c.
5450         (s-gtype): Pass arguments to build/gengtype program.
5451         (build/version.o): Added building rule.
5452         (build/gengtype$(build_exeext)): Added build/version.o.
5453
5454 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
5455
5456         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
5457         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
5458         __strong macros.
5459
5460 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
5461
5462         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
5463         may_trap_or_fault_p instead of may_trap_p predicate.
5464         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
5465         (substitute_placeholder_in_expr): Likewise.
5466         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
5467         flag on MEM_REF nodes.
5468         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
5469         flags on INDIRECT_REF nodes.
5470
5471 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
5472
5473         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
5474         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
5475         (arm*-*-eabi*) <tm_file>: Likewise.
5476         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
5477         (frv-*-*linux*) <tm_file>: Likewise.
5478         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
5479         and associated helper macros.
5480         * config/frv/frv-abi.h: Delete.
5481
5482 2010-10-14  Richard Guenther  <rguenther@suse.de>
5483
5484         PR lto/44561
5485         * tree.def (NULLPTR_TYPE): New tree code.
5486         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
5487         * dwarf2out.c (is_base_type): Likewise.
5488         (gen_type_die_with_usage): Likewise.
5489         * sdbout.c (plain_type_1): Likewise.
5490         * tree.c (build_int_cst_wide): Likewise.
5491         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
5492
5493 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
5494
5495         * params.c (params_finished): New.
5496         (add_params): Assert !params_finished.
5497         (finish_params): New.
5498         (set_param_value_internal): Take params and params_set
5499         parameters.  Assert params_finished.
5500         (set_param_value, maybe_set_param_value): Take params and
5501         params_set parameters.  Update calls to set_param_value_internal.
5502         (set_default_param_value): Assert !params_finished.  Don't use
5503         set_param_value_internal.
5504         (default_param_value, init_param_values): New.
5505         * params.h (struct param_info): Change value to default_value.
5506         Remove set.
5507         (set_param_value, maybe_set_param_value): Add params and
5508         params_set parameters.
5509         (PARAM_VALUE): Get parameters from global_options.
5510         (PARAM_SET_P): Remove.
5511         (finish_params, default_param_value, init_param_values): New.
5512         * common.opt (param_values): New Variable.
5513         * config/arm/arm.c (arm_option_override): Pass extra arguments to
5514         maybe_set_param_value.
5515         * config/i386/i386.c (ix86_option_override_internal): Pass extra
5516         arguments to maybe_set_param_value.
5517         * config/picochip/picochip.c (picochip_option_override): Pass
5518         extra arguments to maybe_set_param_value.
5519         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
5520         extra arguments to maybe_set_param_value.
5521         * config/s390/s390.c (s390_option_override): Use
5522         maybe_set_param_value instead of set_param_value.  Pass extra
5523         arguments to maybe_set_param_value.
5524         * config/sparc/sparc.c (sparc_option_override): Pass extra
5525         arguments to maybe_set_param_value.
5526         * config/spu/spu.c (spu_option_override): Pass extra arguments to
5527         maybe_set_param_value.
5528         * opts.c (handle_param): Take opts and opts_set parameters.
5529         Update call to set_param_value.
5530         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
5531         initial_loop_invariant_max_bbs_in_loop): Remove.
5532         (init_options_once): Don't set them.
5533         (init_options_struct): Initialize parameters structures.
5534         (default_options_optimization): Use default_param_value when
5535         restoring defaults.  Update calls to maybe_set_param_value.
5536         (finish_options): Update calls to maybe_set_param_value.
5537         (common_handle_option): Update calls to handle_param and
5538         set_param_value.
5539         * toplev.c (DEFPARAM): Update definition for changes to param_info.
5540         (general_init): Call finish_params.
5541
5542 2010-10-14  Nick Clifton  <nickc@redhat.com>
5543
5544         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
5545         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
5546         (FIRST_PSEUDO_REGISTER): Increase by one.
5547         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
5548         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
5549         (MODES_TIEABLE): Call mn10300_modes_tieable.
5550         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
5551         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
5552         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
5553         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
5554         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
5555         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
5556         (mn10300_cc_status_mdep): Delete.
5557         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
5558         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
5559         the combine-stack-adjust pass.
5560         (print_operand): Use the mode of the comparison operation to
5561         select the comparison suffix.
5562         (notice_update_cc): Delete.
5563         (mn10300_secondary_reload_class): Remove test for stack pointer
5564         based arithmetic.
5565         (output_tst): Rename to mn10300_output_cmp.
5566         (impossible_plus_operand): Move into predicates.md.
5567         (mn10300_legitimize_address): Make static.
5568         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
5569         constant pic operands.
5570         (mn10300_legitimate_constant_p): New function.
5571         (mn10300_case_values_threshold): Make static.
5572         (mn10300_hard_regno_mode_ok): New function.
5573         (mn10300_modes_tieable): New function.
5574         (mn10300_select_cc_mode): New function.
5575         * config/mn10300/predicates.md (impossible_plus_operand): Define.
5576         * config/mn10300/mn10300-protos.h: Tidy.
5577         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
5578         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
5579         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
5580         with clobbers or sets of CC_REG.
5581         (CC_REG): Define.
5582         (mov*): Remove use of CLR instruction.
5583         (cbranch_si4_<code>): New pattern/split.
5584         (integer_conditional_branch): New pattern.
5585         (cbranch_sf4_<code>): New pattern/split.
5586         (float_conditional_branch): New pattern.
5587         (casesi): Use addsi3 pattern instead of movsi pattern to add and
5588         move a value at the same time.
5589         (cc0 peepholes): Remove.
5590
5591 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5592
5593         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
5594         on RTX_FRAME_RELATED_P insns and the insn to which
5595         NOTE_INSN_EPILOGUE_BEG is attached.
5596         * sched-vis.c (print_value): Allow NULL value.
5597
5598 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5599
5600         PR rtl-optimization/45570
5601         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
5602         assert that we are pipelining outer loops.  Allow returning
5603         zero predecessors.
5604
5605 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
5606
5607         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
5608         (tidy_control_flow): Tidy vertical space.
5609         (sel_remove_bb): New variable idx.  Use it to remember the basic
5610         block index before deleting the block.
5611         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
5612         (sel_merge_blocks): ... here.
5613         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
5614
5615 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
5616
5617         * cse.c (is_dead_reg): Change into inline function that is not
5618         called through for_each_rtx.
5619         (set_live_p): Adjust caller.
5620         (insn_live_p): Don't reset DEBUG_INSNs here.
5621         (struct dead_debug_insn_data): New data.
5622         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
5623         (delete_trivially_dead_insns): If there is just one setter for the
5624         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
5625         and add DEBUG_INSN for it right before the removed setter and
5626         use the DEBUG_EXPR instead of the dead pseudo.
5627
5628 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
5629
5630         * et-forest.c (et_nca): Return NULL immediately when
5631         the dominance forest has disjoint components.
5632
5633 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
5634
5635         * ira.c (setup_class_hard_regs): Fix typo in indexing
5636         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
5637
5638 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
5639
5640         * graph.c (inbb): New variable.
5641         (start_bb): Set inbb to 1 if output is inside of a building block.
5642         (end_bb): Check if output is inside of a building block.
5643
5644 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
5645
5646         PR rtl-optimization/45912
5647         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
5648         regno of registers instead of their index to compute the alignment.
5649
5650 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
5651
5652         * config/i386/i386.c (ix86_build_const_vector): Check vector
5653         mode instead of scalar mode.
5654         (ix86_build_signbit_mask): Likewise.
5655         (ix86_expand_fp_absneg_operator): Updated.
5656         (ix86_expand_copysign): Likewise.
5657         (ix86_expand_int_vcond): Likewise.
5658         (ix86_emit_swdivsf): Likewise.
5659         (ix86_sse_copysign_to_positive): Likewise.
5660         (ix86_expand_sse_fabs): Likewise.
5661         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
5662         * config/i386/sse.md (copysign<mode>3): Likewise.
5663         (sse2_cvtudq2ps): Likewise.
5664         (vec_unpacku_float_hi_v4si): Likewise.
5665         (vec_unpacku_float_lo_v4si): Likewise.
5666
5667         * config/i386/i386.c (ix86_builtins): Add
5668         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
5669         (bdesc_args): Likewise.
5670         (ix86_builtin_vectorized_function): Support
5671         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
5672         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
5673         and IX86_BUILTIN_CVTPS2DQ256.
5674         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
5675
5676         * config/i386/sse.md (STORENT_MODE): New.
5677         (VEC_FLOAT_MODE): Likewise.
5678         (VEC_EXTRACT_MODE): Likewise.
5679         (*avx_cvtdq2pd256_2): Likewise.
5680         (vec_pack_trunc_v4df): Likewise.
5681         (vec_interleave_highv8sf): Likewise.
5682         (vec_interleave_lowv8sf): Likewise.
5683         (storent<mode>): Macroized.
5684         (<code><mode>2: absneg): Likewise.
5685         (copysign<mode>3): Likewise.
5686         (vec_extract<mode>): Likewise.
5687
5688         PR target/44180
5689         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
5690         for V8SFmode.
5691
5692 2010-10-13  Richard Guenther  <rguenther@suse.de>
5693             H.J. Lu  <hongjiu.lu@intel.com>
5694
5695         * config/i386/sse.md (reduc_splus_v8sf): Add.
5696         (reduc_splus_v4df): Likewise.
5697         (vec_unpacks_hi_v8sf): Likewise.
5698         (vec_unpacks_lo_v8sf): Likewise.
5699         (*avx_cvtps2pd256_2): Likewise.
5700         (vec_unpacks_float_hi_v8si): Likewise.
5701         (vec_unpacks_float_lo_v8si): Likewise.
5702         (vec_interleave_highv4df): Likewise.
5703         (vec_interleave_lowv4df): Likewise.
5704
5705 2010-10-13  Richard Guenther  <rguenther@suse.de>
5706
5707         PR objc/45878
5708         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
5709         alone if there are no virtual methods.
5710
5711 2010-10-13  Richard Henderson  <rth@redhat.com>
5712
5713         * expr.c (build_personality_function): Take parameter LANG instead
5714         of parameter NAME.  Build the name based on the lang prefix and the
5715         unwind method in use.
5716         * tree.c (lhd_gcc_personality): Update call to
5717         build_personality_function.
5718
5719 2010-10-13  Richard Guenther  <rguenther@suse.de>
5720
5721         PR objc/45878
5722         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
5723
5724 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
5725
5726         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
5727         Canonicalize input operands of ASM_OPERANDS insns.
5728
5729 2010-10-13  Richard Guenther  <rguenther@suse.de>
5730
5731         PR tree-optimization/45788
5732         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
5733         EH update until fixup-cfg.
5734
5735 2010-10-13  Julian Brown  <julian@codesourcery.com>
5736
5737         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
5738         from CORE_REGS and GENERAL_REGS classes.
5739         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
5740         final constraint for register preferencing.
5741
5742 2010-10-13  Richard Guenther  <rguenther@suse.de>
5743
5744         PR tree-optimization/45970
5745         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
5746         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
5747         (stmt_kills_ref_p): Likewise.
5748         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
5749
5750 2010-10-13  Richard Guenther  <rguenther@suse.de>
5751
5752         PR tree-optimization/45982
5753         * tree-ssa-structalias.c (make_constraints_to): New function.
5754         (make_constraint_to): Implement in terms of make_constraints_to.
5755         (find_func_aliases): Properly make return values of pure/const
5756         functions escape if they assign to sth that is not a pointer.
5757
5758 2010-10-13  Richard Guenther  <rguenther@suse.de>
5759
5760         PR middle-end/45874
5761         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
5762         Fixup the CFG when EH was fixed up.
5763
5764 2010-10-13  Ira Rosen  <irar@il.ibm.com>
5765
5766         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
5767         Use operand's type for POINTER_PLUS_EXPR.
5768
5769 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
5770
5771         * c-parser.c (c_parser_for_statement): Initialize incr.
5772
5773 2010-10-12  Xinliang David Li  <davidxl@google.com>
5774
5775         PR tree-optimization/45972
5776         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
5777         with too many arguments.
5778
5779 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
5780
5781         PR fortran/45636
5782         * tree-ssa-forwprop.c: Include expr.h.
5783         (constant_pointer_difference, simplify_builtin_call): New functions.
5784         (tree_ssa_forward_propagate_single_use_vars): Call
5785         simplify_builtin_call on builtin calls.
5786
5787 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
5788
5789         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
5790         (*adddi3_extend_sp32): Likewise.
5791         (*subdi3_insn_sp32): Likewise.
5792         (*subdi3_extend_sp32): Likewise.
5793         (*negdi2_sp32): Use negative test for consistency.
5794
5795 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
5796
5797         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
5798         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5799         * config/fixed-bit.h: Likewise.
5800         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5801         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
5802         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
5803         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
5804         (DF_SIZE): Likewise.
5805         * doc/tm.texi: Regenerate.
5806
5807 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
5808
5809         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
5810         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
5811         (*isel_reversed_unsigned_<mode>): New.
5812         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
5813         as valid comparisons and adjust operands and output appropriately.
5814         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
5815
5816 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
5817
5818         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
5819         DATA_ALIGNMENT and add COND parameter. Update comments above.
5820         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
5821         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
5822
5823 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
5824
5825         PR bootstrap/45958
5826         * exec-tool.in: Support '-plugin' as the second option to the linker.
5827
5828 2010-10-12  Richard Henderson  <rth@redhat.com>
5829
5830         PR middle-end/45962
5831         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
5832         (expand_stack_vars): Assert large base allocated when used.
5833
5834 2010-10-12  Richard Guenther  <rguenther@suse.de>
5835
5836         * tree-ssa-structalias.c (get_constraint_for_1): Constants
5837         only point to nonlocal, not anything.
5838
5839 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
5840
5841         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
5842         unwind info for exceptions.
5843
5844 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5845
5846         PR testsuite/45851
5847         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
5848         Document optional target selector.
5849
5850 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
5851
5852         * flag-types.h: New.
5853         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
5854         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
5855         options.h.
5856         (OPTIONS_H): Define.
5857         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
5858         of options.h.
5859         * configure.ac (tm_include_list): Include options.h not flags.h.
5860         * configure: Regenerate.
5861         * flags.h: Include flag-types.h.  Include options.h at top of file
5862         again.
5863         (enum debug_info_type, enum debug_info_level, enum
5864         debug_info_usage, enum symbol_visibility, struct visibility_flags,
5865         enum ira_algorithm, enum ira_region, enum excess_precision, enum
5866         graph_dump_types, enum stack_check_type,
5867         enum warn_strict_overflow_code): Move to flag-types.h
5868         * opth-gen.awk: Include flag-types.h in options.h.
5869
5870 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
5871
5872         * expr.c (store_expr): Share code for STRING_CST and
5873         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
5874         check if target is a MEM.
5875
5876         * rtl.h: Include hashtab.h.
5877         (iterative_hash_rtx): New prototype.
5878         * rtl.c (iterative_hash_rtx): New function.
5879         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
5880         (output_loc_list): Return immediately if emitted is set, set it.
5881         (hash_loc_operands, hash_locs, hash_loc_list,
5882         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
5883         optimize_location_lists_1, optimize_location_lists): New function.
5884         (dwarf2out_finish): Call optimize_location_lists.
5885         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
5886
5887 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5888
5889         PR testsuite/45974
5890         Revert:
5891         * Makefile.in ($(lang_checks_parallel))
5892         ($(lang_checks_parallelized)): Use single quotes for
5893         $(RUNTESTFLAGS), to allow passing quoted content.
5894
5895 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5896
5897         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
5898         actual_oldval.  Use __builtin_expect.
5899         (SUBWORD_VAL_CAS): Likewise.
5900
5901 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
5902
5903         * recog.c (nonmemory_operand): Call immediate_operand for
5904         CONSTANT_P operands.
5905
5906 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
5907
5908         * config/i386/i386.md (movmem<mode>): Macroize expander from
5909         movmem{si,di} using SWI48 mode iterator.
5910         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
5911         *strmovsi_rex_1 using P mode iterator.
5912         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
5913         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
5914         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
5915         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
5916         (setmem<mode>): Macroize expander from setmem{si,di} using
5917         SWI48 mode iterator.
5918         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
5919         *strsetsi_rex_1 using P mode iterator.
5920         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
5921         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
5922         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
5923         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
5924         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
5925         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
5926         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
5927         mode iterator.
5928         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
5929         *strlenqi_rex_1 using P mode iterator.
5930
5931 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
5932
5933         PR bootstrap/45445
5934         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
5935         static functions.
5936         (mark_ref_live, mark_ref_dead): Use them.
5937         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
5938         Save the original reg, and use the new functions.
5939         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
5940         changed.
5941         (check_and_make_def_conflict): Save the original reg.
5942
5943 2010-10-11  Martin Jambor  <mjambor@suse.cz>
5944
5945         PR middle-end/45699
5946         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
5947         thunks.
5948
5949 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5950
5951         * Makefile.in ($(lang_checks_parallel))
5952         ($(lang_checks_parallelized)): Use single quotes for
5953         $(RUNTESTFLAGS), to allow passing quoted content.
5954
5955         PR bootstrap/35855
5956         * opt-functions.awk (BEGIN): New section.
5957         (lower, upper, digit, alnum): New variables.
5958         (static_var, opt_sanitized_name): Use alnum instead of character
5959         classes, for non-C locale.
5960         * optc-gen.awk: Likewise.
5961         * opth-gen.awk: Likewise.
5962
5963 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
5964
5965         * target.def (preferred_reload_class): New hook.
5966         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
5967         * doc/tm.texi: Regenerate.
5968         * targhooks.c (default_preferred_reload_class): New function.
5969         * targhooks.h (default_preferred_reload_class): Declare.
5970         * reload.c (find_dummy_reload): Change preferred_class variable type
5971         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
5972         target hook.
5973         (find_reloads): Change goal_alternative array type from int to
5974         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
5975         (push_reload, find_reloads_address_part): Use
5976         TARGET_PREFERRED_RELOAD_CLASS target hook.
5977         * reload1.c (emit_input_reload_insns): Ditto.
5978         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
5979         hook. Change rclass argument and secondary_class variable types from
5980         'enum reg_class' to reg_class_t.
5981
5982         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
5983         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
5984         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
5985         Change regclass argument and result types from enum reg_class to
5986         reg_class_t.
5987         (TARGET_PREFERRED_RELOAD_CLASS): Define.
5988
5989 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
5990
5991         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
5992         in masking operations.
5993         (simplify_const_unary_operation): Likewise.
5994         (simplify_binary_operation_1): Likewise.
5995         (simplify_const_binary_operation): Likewise.
5996         (simplify_const_relational_operation): Likewise.
5997         (simplify_ternary_operation): Likewise.
5998         (simplify_immed_subreg): Likewise.
5999
6000 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6001
6002         PR middle-end/45862
6003         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
6004         (TARGET_SUPPORTS_WEAK): New.
6005         * doc/tm.texi: Regenerate.
6006         * defaults.h (SUPPORTS_WEAK): Update comment.
6007         (TARGET_SUPPORTS_WEAK): New.
6008         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
6009         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
6010         SUPPORTS_WEAK.
6011         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
6012         make_decl_one_only): Likewise.
6013         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
6014         TARGET_SUPPORTS_WEAK.
6015         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
6016         instead of SUPPORTS_WEAK.
6017
6018 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6019
6020         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
6021
6022 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
6023
6024         * vec.h (VEC_qsort): Define.
6025         * dbxout.c (output_used_types): Use it.
6026         * df-scan.c (df_sort_and_compress_refs): Likewise.
6027         (df_sort_and_compress_mws): Likewise.
6028         * genautomata.c (uniq_sort_alt_states): Likewise.
6029         (evaluate_equiv_classes): Likewise.
6030         (output_trans_table): Likewise.
6031         (output_state): Likewise.
6032         * gimplify.c (compare_case_labels): Likewise.
6033         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
6034         * ipa.c (build_cdtor_fns): Likewise.
6035         * lto.c (lto_wpa_write_files): Likewise.
6036         * sel-sched.c (fill_vec_av_set): Likewise.
6037         * tree-predcom.c (determine_roots_comp): Likewise.
6038         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
6039         (splice_param_accesses): Likewise.
6040         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
6041         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
6042         (reassociate_bb): Likewise.
6043         * tree-ssa-sccvn.c (sort_scc): Likewise.
6044         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
6045
6046 2010-10-11  Ian Lance Taylor  <iant@google.com>
6047
6048         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
6049         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
6050         TREE_THIS_NOTRAP when appropriate.
6051         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
6052         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
6053         newly created MEM_REF.
6054
6055 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
6056
6057         Nathan Froyds patch to hooks FUNCTION_ARG etc.
6058         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
6059         (picochip_incoming_function_arg): Delete.
6060         (picochip_arg_advance): Delete.
6061         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
6062         (FUNCTION_INCOMING_ARG): Delete.
6063         (FUNCTION_ARG_ADVANCE): Delete.
6064         * config/picochip/picochip.c (picochip_function_arg): Take a
6065         const_tree and a bool.
6066         (picochip_incoming_function_arg): Likewise.
6067         (picochip_arg_advance): Likewise.
6068         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6069         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6070
6071 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6072
6073         PR middle-end/45955
6074         * ipa.c (build_cdtor): Delete endless loop.
6075
6076 2010-10-07  Andi Kleen  <ak@linux.intel.com>
6077
6078         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
6079         checksum-options.
6080         (checksum-options): Add.
6081         (cc1-dummy): Remove.
6082         (cc1-checksum): Change to run checksum over object files
6083         and options only.
6084         * dummy-checksum.c: Remove.
6085         * genchecksum.c: Update copyright.
6086         (usage): Allow multiple arguments.
6087         (BLOCKSIZE): Add.
6088         (dosum): Change for incremental checksum. Remove C output.
6089         (main): Iterate over all argument files. Add C output.
6090
6091 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
6092
6093         * params.c (set_param_value_internal): New.
6094         (set_param_value): Use set_param_value_internal.
6095         (maybe_set_param_value, set_default_param_value): New.
6096         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
6097         (maybe_set_param_value, set_default_param_value): Declare.
6098         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
6099         * config/i386/i386.c (ix86_option_override_internal): Use
6100         maybe_set_param_value.
6101         * config/ia64/ia64.c (ia64_option_default_params,
6102         TARGET_OPTION_DEFAULT_PARAMS): New.
6103         (ia64_option_optimization): Move some code to
6104         ia64_option_default_params.
6105         * config/picochip/picochip.c (picochip_option_override): Use
6106         maybe_set_param_value.
6107         * config/rs6000/rs6000.c (rs6000_option_default_params,
6108         TARGET_OPTION_DEFAULT_PARAMS): New.
6109         (rs6000_option_override_internal): Use maybe_set_param_value.
6110         (rs6000_option_optimization): Move some code to
6111         rs6000_option_default_params.
6112         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
6113         * config/sh/sh.c (sh_option_default_params,
6114         TARGET_OPTION_DEFAULT_PARAMS): New.
6115         (sh_option_optimization): Move some code to sh_option_default_params.
6116         * config/sparc/sparc.c (sparc_option_override): Use
6117         maybe_set_param_value.
6118         * config/spu/spu.c (spu_option_default_params,
6119         TARGET_OPTION_DEFAULT_PARAMS): New.
6120         (spu_option_optimization): Move some code to spu_option_default_params.
6121         (spu_option_override): Use maybe_set_param_value.
6122         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
6123         * doc/tm.texi: Regenerate.
6124         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
6125         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
6126         compiler_params.
6127         (default_options_optimization): Use maybe_set_param_value.
6128         (finish_options): Use maybe_set_param_value.
6129         * target.def (target_option.default_params): New hook.
6130         * toplev.c (general_init): Call targetm.target_option.default_params.
6131
6132 2010-10-11  Ira Rosen  <irar@il.ibm.com>
6133
6134         PR tree-optimization/45902
6135         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
6136         vector type for constants, unless it's a pointer.
6137
6138 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6139
6140         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
6141
6142 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
6143
6144         PR target/45870
6145         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
6146         (ix86_delegitimize_address): Use it.
6147
6148 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
6149
6150         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
6151
6152 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
6153
6154         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
6155         to cum struct in the call to function_arg_advance.
6156         (alpha_function_arg_advance): Mark named as unused.
6157
6158 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
6159
6160         * config/mips/mips.c (mips_handle_option): Make "value" with
6161         ATTRIBUTE_UNUSED.
6162
6163 2010-10-09  Richard Henderson  <rth@redhat.com>
6164
6165         PR rtl-opt/33721
6166         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
6167         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
6168         required_align, tidy the code a bit.  Emit split_stack code in the
6169         right place.  Mark the return value with the alignment properly.
6170         * expr.h (allocate_dynamic_stack_space): Update decl.
6171         * builtins.c (expand_builtin_apply): Update call to
6172         allocate_dynamic_stack_space.
6173         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
6174         * calls.c (initialize_argument_information): Update call to
6175         allocate_dynamic_stack_space.
6176         (expand_call): Likewise.
6177
6178         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
6179         Don't update_stack_alignment here.
6180         (alloc_stack_frame_space): Make ALIGN unsigned.
6181         (stack_var_cmp): Sort by alignment too.
6182         (partition_stack_vars): Don't merge large and small alignment vars.
6183         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
6184         Take care when BASE is not virtual_stack_vars_rtx.
6185         (expand_stack_vars): Allocate dynamic stack space for large
6186         alignment variables.
6187         (expand_one_stack_var): Update all to expand_one_stack_var_at.
6188         (defer_stack_allocation): True for large alignment vars.
6189         (update_stack_alignment): Merge into ...
6190         (expand_one_var): ... here.
6191         (gimple_expand_cfg): Place code from expand_stack_vars.
6192
6193 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6194
6195         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6196         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
6197         (pdp11_function_arg_advance): New function.
6198         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6199
6200 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6201
6202         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
6203         * libgcc2.c: Likewise.
6204
6205 2010-10-09  Richard Guenther  <rguenther@suse.de>
6206
6207         PR lto/45956
6208         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
6209         Properly check if a decl is an automatic var.
6210
6211 2010-10-09  Richard Guenther  <rguenther@suse.de>
6212
6213         PR lto/45947
6214         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
6215
6216 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6217
6218         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
6219         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6220         * config/mmix/mmix.c (mmix_function_arg): Rename to...
6221         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
6222         bool arguments.
6223         (mmix_function_arg): New function.
6224         (mmix_function_incoming_arg): New function.
6225         (mmix_function_arg_advance): New function.
6226         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
6227         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6228
6229 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6230
6231         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6232         * config/vax/vax.c (vax_function_arg): New function.
6233         (vax_function_arg_advance): New function.
6234         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6235
6236 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6237
6238         * config/pa/pa-protos.h (function_arg): Delete.
6239         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6240         * config/pa/pa.c (function_arg): Rename to...
6241         (pa_function_arg): ...this.  Make static.  Take a const_tree and
6242         a bool.
6243         (pa_function_arg_advance): New function.
6244         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6245
6246 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6247
6248         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6249         * config/m68k/m68k.c (m68k_function_arg): New function.
6250         (m68k_function_arg_advance): New function.
6251         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6252
6253 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6254
6255         * config/avr/avr-protos.h (function_arg): Delete.
6256         (function_arg_advance): Delete.
6257         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6258         * config/avr/avr.c (function_arg): Rename to...
6259         (avr_function_arg): ...this.  Make static.  Take a const_tree and
6260         a bool.
6261         (function_arg_advance): Rename to...
6262         (avr_function_arg_advance): ...this.  Make static.  Take a
6263         const_tree and a bool.
6264         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6265
6266 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6267
6268         * config/alpha/alpha-protos.h (function_arg): Delete.
6269         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6270         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
6271         * config/alpha/alpha.c (function_arg): Rename to...
6272         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
6273         a bool.  Delete TARGET_ABI_UNICOSMK code.
6274         (alpha_function_arg_advance): New function.
6275         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6276
6277 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6278
6279         * config/mep/mep-protos.h (mep_function_arg): Delete.
6280         (mep_function_arg_advance): Delete.
6281         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6282         * config/mep/mep.c (mep_function_arg): Make static.  Take a
6283         const_tree and a bool.
6284         (mep_function_arg_advance): Likewise.
6285         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6286
6287 2010-10-09  Richard Guenther  <rguenther@suse.de>
6288
6289         PR tree-optimization/45945
6290         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
6291
6292 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
6293
6294         PR tree-optimization/45612
6295         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
6296         Test LABEL_DECLs as well.  Fix formatting issues.
6297         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
6298         whose label is present in NON_SSA_VARS.
6299         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
6300         as well.  Fix formatting issues.
6301         (visit_bb): Fix typos and formatting issue.
6302
6303 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
6304
6305         PR tree-optimization/45950
6306         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
6307         before initializing vno->op.
6308
6309 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
6310
6311         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
6312         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
6313
6314 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
6315
6316         PR target/45913
6317         * config/i386/i386.c (ix86_binary_operator_ok): Support
6318         "andhi/andsi/anddi" as a zero-extending move.
6319
6320 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6321
6322         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
6323         into a temporary array.
6324
6325 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
6326
6327         PR tree-optimization/45903
6328         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
6329         of {A,L}SHIFTRT of MEM.
6330
6331 2010-10-08  Richard Guenther  <rguenther@suse.de>
6332
6333         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
6334         Re-construct BLOCK_VARS.
6335         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
6336         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
6337         * tree.c (free_lang_data_in_block): Remove.
6338         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
6339         Do not touch the BLOCK tree.
6340         * expr.c (expand_expr_real_1): Allow externals.
6341
6342 2010-10-08  Richard Guenther  <rguenther@suse.de>
6343
6344         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
6345         Do not output BLOCK_SUBBLOCKS.
6346         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
6347         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
6348         Re-construct BLOCK_SUBBLOCKS of parent block.
6349         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
6350         for BINFO_BASE_ACCESSES.
6351
6352 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
6353
6354         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
6355         (TREE_H): Include $(FLAGS_H) instead of options.h.
6356         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
6357         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
6358         * common.opt (flag_complex_method, flag_evaluation_order,
6359         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
6360         Variable declarations.
6361         * configure.ac (tm_include_list): Include flags.h instead of options.h.
6362         * configure: Regenerate.
6363         * flags.h: Condition out contents for target libraries.  Include
6364         options.h at end of file.
6365         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
6366         flag_evaluation_order, flag_warn_unused_result): Remove.
6367         * gcc.c (main): Intialize global_options with global_options_init.
6368         * langhooks-def.h (lhd_init_options_struct): Declare.
6369         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
6370         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
6371         * langhooks.c (lhd_init_options_struct): New.
6372         * langhooks.h (struct lang_hooks): Add init_options_struct.
6373         Update comment on init_options.
6374         * optc-gen.awk: Generate initializer for global_options_init, not
6375         global_options.
6376         * opth-gen.awk: Condition out structure declarations for target
6377         libraries.  Declare global_options_init.
6378         * opts-common.c: Include flags.h instead of options.h.
6379         * opts.c (flag_warn_unused_result): Remove.
6380         (read_cmdline_options): Take gcc_options parameters.  Pass them to
6381         read_cmdline_option.
6382         (initial_lang_mask, initial_min_crossjump_insns,
6383         initial_max_fields_for_field_sensitive,
6384         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
6385         (init_options_once): New.  Split out of decode_options.
6386         (init_options_struct): New.  Split out of decode_options.
6387         (decode_cmdline_options_to_array_default_mask): New.
6388         (default_options_optimization): New.  Split out of decode_options.
6389         (decode_options): Move most code to other functions.  Update call
6390         to read_cmdline_options.
6391         (finish_options): New.  Split out of decode_options.
6392         * opts.h (decode_options): Add gcc_options parameters.
6393         (init_options_once, init_options_struct,
6394         decode_cmdline_options_to_array_default_mask): New.
6395         * toplev.c (flag_complex_method, flag_ira_algorithm,
6396         flag_ira_region, flag_evaluation_order): Remove.
6397         (general_init): Use global_options_init for initial flag values
6398         for global_dc.
6399         (toplev_main): Call init_options_once, init_options_struct,
6400         lang_hooks.init_options_struct,
6401         decode_cmdline_options_to_array_default_mask and
6402         lang_hooks.init_option before decode_options.  Update arguments to
6403         decode_options.
6404         * tree.h: Include flags.h instead of options.h.
6405
6406 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6407
6408         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6409
6410 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6411
6412         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
6413         Delete.
6414         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
6415         (FUNCTION_INCOMING_ARG): Delete.
6416         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
6417         (function_arg_slotno): Likewise.  Take bool arguments.
6418         (sparc_arg_partial_bytes): Update call to it.
6419         (function_arg): Rename to...
6420         (sparc_function_arg_1): ...this.  Take bool arguments.
6421         (sparc_function_arg, sparc_function_incoming_arg): New functions.
6422         (function_arg_advance): Rename to...
6423         (sparc_function_arg_advance): ...this.  Take bool argument.
6424         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
6425         (TARGET_FUNCTION_INCOMING_ARG): Define.
6426
6427 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6428
6429         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
6430         Delete.
6431         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6432         * config/bfin/bfin.c (function_arg_advance): Rename to...
6433         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
6434         and bool arguments.
6435         (function_arg): Rename to...
6436         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
6437         arguments.
6438         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6439
6440 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6441
6442         * config/score/score-protos.h (score_function_arg): Delete.
6443         (score_function_arg_advance): Delete.
6444         * config/score/score3.h (score3_function_arg_advance): Take a
6445         const_tree and a bool.
6446         (score3_function_arg): Likewise.
6447         * config/score/score7.h (score7_function_arg_advance): Likewise.
6448         (score7_function_arg): Likewise.
6449         * config/score/score3.c (score3_classify_arg): Likewise.
6450         (score3_function_arg_advance, score3_function_arg): Likewise.
6451         * config/score/score7.c (score7_classify_arg): Likewise.
6452         (score7_function_arg_advance, score7_function_arg): Likewise.
6453         * config/score/score.c (score_function_arg_advance): Likewise.
6454         (score_function_arg): Likewise.  De-const-ify `cum' argument.
6455         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6456
6457 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6458
6459         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
6460         (s390_function_arg): Delete.
6461         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6462         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
6463         (s390_function_arg_integer): Likewise.
6464         (s390_function_arg_advance): Make static.  Take a const_tree and
6465         a bool.
6466         (s390_function_arg): Likewise.
6467         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6468
6469 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6470
6471         * config/spu/spu-protos.h (spu_function_arg): Delete.
6472         * config/spu/spu.h (FUNCTION_ARG): Delete.
6473         (FUNCTION_ARG_ADVANCE): Move code to ...
6474         * config/spu/spu.c (spu_function_arg_advance): New function.
6475         (spu_function_arg): Make static.  Take a const_tree and a bool.
6476         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
6477         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6478
6479 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6480
6481         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6482
6483 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6484
6485         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
6486         (init_vn_nary_op_from_op): New function.
6487         (init_vn_nary_op_from_stmt): New function.
6488         (vn_nary_op_lookup_1): New function.
6489         (sizeof_vn_nary_op): New function.
6490         (alloc_vn_nary_op_noinit): New function.
6491         (alloc_vn_nary_op): New function.
6492         (vn_nary_op_insert_into): New function.
6493         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
6494         (vn_nary_op_lookup): Likewise.
6495         (vn_nary_op_lookup_stmt): Likewise.
6496         (vn_nary_op_insert_pieces): Likewise.
6497         (vn_nary_op_insert): Likewise.
6498         (vn_nary_op_insert_stmt): Likewise.
6499         (copy_nary): Likewise.
6500         (set_value_id_for_result): New function.
6501         (set_hashtable_value_ids): Call it.
6502
6503 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6504
6505         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6506         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
6507
6508 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
6509
6510         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
6511         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6512
6513 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
6514
6515         PR debug/45656
6516         * cse.c (cse_extended_basic_block): Preserve cc0 info across
6517         debug isnsn.  Skip them when searching for cc0 setter.
6518         (set_live_p): Skip debug insns when searching for cc0 user.
6519
6520 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
6521
6522         PR debug/45673
6523         PR debug/45604
6524         PR debug/45419
6525         PR debug/45408
6526         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
6527         type of MEM_REFs to INTEGER_CSTs.
6528
6529 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
6530
6531         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
6532         m68hc11_print_operand_address.
6533
6534 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
6535
6536         * builtins.c (rewrite_call_expr): Move code to...
6537         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
6538         (rewrite_call_expr_array): New function.
6539         (fold_builtin_sprintf_chk_1): New function.
6540         (fold_builtin_sprintf_chk): Call it.
6541         (gimple_fold_builtin_sprintf_chk): Likewise.
6542         (fold_builtin_snprintf_chk_1): New function.
6543         (fold_builtin_snprintf_chk): Call it.
6544         (gimple_fold_builtin_snprintf_chk): Likewise.
6545         (gimple_rewrite_call_expr): Delete.
6546
6547 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6548
6549         * config.host: Update copyright year.
6550
6551 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6552
6553         * config.host (host_lto_plugin_soname): New shell variable.
6554         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
6555         * config.in: Regenerate.
6556         * configure: Regenerate.
6557         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
6558         LTO plugin shared library.
6559
6560 2010-10-07  Richard Henderson  <rth@redhat.com>
6561
6562         * target.h (enum unwind_info_type): Move ...
6563         * coretypes.h: ... here.
6564
6565 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
6566
6567         * doc/objc.texi (Fast enumeration protocol): Mention that
6568         'unsigned int' can also be used instead of 'unsigned long' in
6569         countByEnumeratingWithState:objects:count:.
6570
6571 2010-10-07  Martin Jambor  <mjambor@suse.cz>
6572
6573         * tree-sra.c (struct access): New field grp_assignment_write.
6574         (dump_access): Dump grp_assignment_write.
6575         (build_accesses_from_assign): Set grp_assignment_write.
6576         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
6577         (mark_read_status): Renamed to mark_rw_status, individual values
6578         renamed too.
6579         (analyze_access_subtree): Changed type of mark_write to
6580         mark_read_status.  Fixed propagating of mark_read and
6581         mark_write.  Changed benefit estimate.  Updated comment.
6582
6583 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
6584
6585         PR Tree-Vect/45847
6586         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
6587         check for vectype_out returned by get_vectype_for_scalar_type().
6588
6589 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
6590
6591         PR target/45805
6592         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
6593         constraint, add register specifier in instruction template.
6594         (neon_vec_pack_trunc_<mode>): Likewise.
6595         (neon_vec_<US>mult_<mode>): Add register specifier to
6596         instruction template.
6597
6598 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
6599
6600         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
6601         cygwin2.o.
6602         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
6603         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
6604         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
6605         (cygwin2.o): Likewise.
6606         * config/i386/cygwin1.c: Delete file.
6607         * config/i386/cygwin2.c: Likewise.
6608         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
6609         make all {%!mno-cygwin} ones unconditional.
6610         (STARTFILE_SPEC): Likewise.
6611         (REAL_LIBGCC_SPEC): Likewise.
6612         (LIB_SPEC): Likewise.
6613         (CXX_WRAP_SPEC): Likewise.
6614         (LINK_SPEC): Likewise.
6615         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
6616         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
6617         (cygwin_gplusplus_include_dir): Delete now-unused array.
6618         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
6619         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
6620         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
6621         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
6622         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
6623         (cygwin_local_include_dir): Delete now-unused array.
6624         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
6625         (cygwin_cross_include_dir): Delete now-unused array.
6626         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
6627         (cygwin_tool_include_dir): Delete now-unused array.
6628         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
6629         (cygwin_standard_include_dir): Delete now-unused array.
6630         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
6631         (GEN_CVT_ARRAY): Delete now-unused macro definition.
6632         (cvt_to_mingw): Delete now-unused array.
6633         (mingw_scan): Remove prototype of deleted function.
6634         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
6635         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
6636         * doc/invoke.texi (-mcygwin): Don't document removed option.
6637         (-mno-cygwin): Likewise.
6638
6639 2010-10-07  Richard Guenther  <rguenther@suse.de>
6640
6641         * machmode.h (mode_for_vector): Declare.
6642         * stor-layout.c (mode_for_vector): New function, split out from ...
6643         (layout_type): ... here.
6644         * tree-vectorizer.h (current_vector_size): Declare.
6645         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
6646         mask vector type is available.
6647         (get_vectype_for_scalar_type): Rename to ...
6648         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
6649         size argument.
6650         (get_vectype_for_scalar_type): New wrapper around
6651         get_vectype_for_scalar_type_and_size using current_vector_size.
6652         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
6653         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
6654         of vect_analyze_loop here.
6655         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
6656         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
6657         to autodetect.
6658         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
6659         V8SF to V8SI conversion builtin.
6660
6661 2010-10-07  Richard Guenther  <rguenther@suse.de>
6662
6663         * target.def (autovectorize_vector_sizes): New target hook.
6664         * targhooks.c (default_autovectorize_vector_sizes): New function.
6665         * targhooks.h (default_autovectorize_vector_sizes): Declare.
6666         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
6667         Document.
6668         * doc/tm.texi: Update.
6669         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
6670         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6671
6672 2010-10-07  Richard Guenther  <rguenther@suse.de>
6673
6674         * target.def (units_per_simd_word): Rename to ...
6675         (preferred_simd_mode): ... this.  Return mode instead of size.
6676         * targhooks.c (default_units_per_simd_word): Rename to ...
6677         (default_preferred_simd_mode): ... this.  Return word_mode.
6678         * targhooks.h (default_preferred_simd_mode): Declare.
6679         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
6680         (arm_preferred_simd_mode): ... this.  Re-implement.
6681         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
6682         (ix86_preferred_simd_mode): ... this.  Re-implement.
6683         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
6684         (sparc_preferred_simd_mode): ... this.  Re-implement.
6685         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
6686         (mips_preferred_simd_mode): ... this.  Re-implement.
6687         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
6688         (rs6000_preferred_simd_mode): ... this.  Re-implement.
6689         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
6690         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
6691         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
6692         * doc/tm.texi: Update.
6693
6694 2010-10-07  Richard Guenther  <rguenther@suse.de>
6695
6696         PR middle-end/45869
6697         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
6698         of pointers.
6699
6700 2010-10-07  Alan Modra  <amodra@gmail.com>
6701
6702         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
6703         rather than sign extension by hand.
6704
6705 2010-10-07  Jan Hubicka  <jh@suse.cz>
6706
6707         PR middle-end/45926
6708         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
6709
6710 2010-10-07  Richard Guenther  <rguenther@suse.de>
6711
6712         PR bootstrap/45914
6713         * configure.ac: Fix typo.
6714         * configure: Regenerated.
6715
6716 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6717
6718         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
6719         define_builtin_std where it's unnecessary.
6720         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
6721
6722 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
6723
6724         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
6725         * doc/tm.texi.in: Regenerate.
6726         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
6727         * targhooks.c (default_class_likely_spilled_p): Don't use the
6728         CLASS_LIKELY_SPILLED_P macro.
6729
6730         * config/arm/arm.md: Update comment.
6731
6732 2010-10-06  Jan Hubicka  <jh@suse.cz>
6733
6734         * ipa.c (cgraph_remove_unreachable_nodes): External references can
6735         always be removed.
6736         (cgraph_externally_visible_p): We can not bring local comdats that
6737         are known to linker; fix handling of internal visibility.
6738         (function_and_variable_visibility): Likewise.
6739
6740 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
6741
6742         PR rtl-optimization/45394
6743         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
6744         (struct rtx_subst_pair): Remove AFTER field.
6745         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
6746         (propagate_for_debug): Remove MOVE parameter and adjust.
6747         (try_combine): In the special case where I2 is a PARALLEL, combine only
6748         destinations of SETs and set I2SRC to the I2 source.
6749         Adjust calls to propagate_for_debug throughout.
6750         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
6751         insns.
6752
6753 2010-10-06  Olivier Hainque  <hainque@adacore.com>
6754
6755         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
6756         switch on insn codes as sequence of ifs.
6757
6758 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6759
6760         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
6761         be UI_NONE for picochip.
6762         (picochip_option_override): Do not disable exception flags.
6763         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
6764         Declare.
6765
6766 2010-10-06  Richard Guenther  <rguenther@suse.de>
6767
6768         * Makefile.in (regmove.o): Depend on $(TARGET_H).
6769
6770 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
6771
6772         Implemented fast enumeration for Objective-C.
6773         * c-parser.c (objc_could_be_foreach_context): New.
6774         (c_lex_one_token): Recognize RID_IN keyword in a potential
6775         Objective-C foreach context.
6776         (c_parser_declaration_or_fndef): Added parameter.  Accept
6777         Objective-C RID_IN keyword as terminating a declaration; in that
6778         case, return the declaration in the new parameter.
6779         (c_parser_extenral_declaration): Updated calls to
6780         c_parser_declaration_or_fndef.
6781         (c_parser_declaration_or_fndef): Same change.
6782         (c_parser_compound_statement_nostart): Same change.
6783         (c_parser_label): Same change.
6784         (c_parser_objc_methodprotolist): Same change.
6785         (c_parser_omp_for_loop): Same change.
6786         (c_parser_for_statement): Detect and parse Objective-C foreach
6787         statements.
6788         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
6789         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
6790         fast enumeration parsing code to turn off the c99 error but still
6791         perform checks on the loop declarations.
6792         * c-tree.h (check_for_loop_decls): Updated declaration.
6793         * doc/objc.texi: Document fast enumeration.
6794
6795 2010-10-06  Nick Clifton  <nickc@redhat.com>
6796
6797         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
6798         (MDR_REGNUM): Define.
6799         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
6800         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
6801         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
6802         (REGISTER_NAMES): Add MDR.
6803         (DWARF2_DEBUGGING_INFO): Define to 1.
6804         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
6805         (F): New function.  Sets RTX_FRAME_RELATED_P.
6806         (mn10300_gen_multiple_store): Use F.
6807         (expand_prologue): Use F.  Use gen_movsf() to push floating
6808         point registers.
6809         (expand_epilogue): Use gen_movsf() to pop floating point registers.
6810         (mn10300_option_override): Disable combine stack adjust pass.
6811
6812 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
6813
6814         PR target/45901
6815         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
6816         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
6817
6818 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
6819
6820         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
6821         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
6822         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
6823         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
6824         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
6825         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
6826         BUILT_IN_TOUPPER): Mark as leaf.
6827
6828         PR middle-end/45838
6829         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
6830         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
6831         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
6832         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
6833         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
6834         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
6835         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
6836
6837 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
6838
6839         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
6840         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6841         (m68hc11_class_likely_spilled_p): New function.
6842
6843 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
6844
6845         * c-parser.c (c_parser_objc_method_definition): Updated comment.
6846
6847 2010-10-05  Jan Hubicka  <jh@suse.cz>
6848
6849         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
6850         Document.
6851         * opts.c (decode_options): Handle lto partitions.
6852         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
6853         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
6854
6855 2010-10-05  Jan Hubicka  <jh@suse.cz>
6856
6857         * cgraphunit.c (assemble_function): Output thunks and aliases before
6858         the function itself.
6859
6860 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
6861
6862         * config/picochip/picochip.c (picochip_option_override): Disable
6863         exception flags for picochip.
6864
6865 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
6866
6867         * opts-common.c (handle_option, handle_generated_option,
6868         read_cmdline_option, set_option): Add diagnostic_context
6869         parameter.  Update calls among these functions.
6870         (set_option): Don't use global_dc.
6871         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
6872         (decode_options): Pass global_dc to enable_warning_as_error.
6873         (common_handle_option): Pass global_dc to enable_warning_as_error.
6874         (enable_warning_as_error): Add diagnostic_context parameter.
6875         Document parameters.  Don't use global_dc.  Pass
6876         diagnostic_context parameter to handle_generated_option.
6877         * opts.h (set_option, handle_option, handle_generated_option,
6878         read_cmdline_option, enable_warning_as_error): Add
6879         diagnostic_context parameter.
6880         * Makefile.in (lto-opts.o): Update dependencies.
6881         * coretypes.h (struct diagnostic_context, diagnostic_context):
6882         Declare here.
6883         * diagnostic.h (diagnostic_context): Don't declare typedef here.
6884         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
6885         * langhooks-def.h (struct diagnostic_context): Don't declare here.
6886         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
6887         using diagnostic_context typedef.
6888         * langhooks.c (lhd_initialize_diagnostics): Declare using
6889         diagnostic_context typedef.
6890         * langhooks.h (struct diagnostic_context): Don't declare here.
6891         (initialize_diagnostics, print_error_function): Declare using
6892         diagnostic_context typedef.
6893         * lto-opts.c: Include diagnostic.h.
6894         (lto_reissue_options): Pass global_dc to set_option.  Pass
6895         DK_UNSPECIFIED not 0.
6896         * plugin.c (plugins_internal_error_function): Declare using
6897         diagnostic_context typedef.
6898         * plugin.h (struct diagnostic_context): Don't declare here.
6899         (plugins_internal_error_function): Declare using
6900         diagnostic_context typedef.
6901
6902 2010-10-05  Olivier Hainque  <hainque@adacore.com>
6903             Nicolas Roche  <roche@adacore.com>
6904
6905         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
6906         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
6907
6908 2010-10-05  Ira Rosen  <irar@il.ibm.com>
6909
6910         PR tree-optimization/45752
6911         * tree-vect-slp.c (vect_get_mask_element): Remove static
6912         variables, make them function arguments.
6913         (vect_transform_slp_perm_load): Pass new arguments to
6914         vect_get_mask_element.
6915
6916 2010-10-05  Richard Guenther  <rguenther@suse.de>
6917
6918         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
6919         (gimple_mod_pow2): Likewise.
6920         (gimple_mod_subtract): Likewise.
6921         (gimple_ic): Likewise.
6922         (gimple_stringop_fixed_value): Likewise.
6923         * tree-profile.c (tree_init_edge_profiler): Mark profile
6924         functions nothrow and leaf.
6925         (add_abnormal_goto_call_edges): Remove.
6926         (tree_gen_edge_profiler): Work on SSA form.
6927         (tree_gen_ic_profiler): Likewise.  Simplify.
6928         (do_tree_profiling): Update SSA form.
6929         (pass_tree_profile): Remove.
6930         (do_tree_profiling): Likewise.
6931         (gate_tree_profile_ipa): New function.
6932         (pass_ipa_tree_profile): New.
6933         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
6934         state of instrumented functions.
6935         * passes.c (init_optimization_passes): Remove early non-SSA
6936         inlining.  Move profiling after early optimizations.
6937         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
6938         (pass_ipa_early_inline): Likewise.
6939         * tree-pass.h (pass_ipa_early_inline): Remove.
6940         (pass_tree_profile): Likewise.
6941         (pass_ipa_tree_profile): Declare.
6942
6943 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6944             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
6945
6946         * config/s390/s390.c (z196_cost): New.
6947         (s390_handle_arch_option): Add -march=z196.
6948         (s390_option_override): Use the new cost function and use the z10
6949         defaults also for z196.
6950         (legitimate_reload_constant_p): Adjust comment.
6951         (legitimate_reload_fp_constant_p): New function.
6952         (s390_preferred_reload_class): Distingiush between FP and Int constants.
6953         (preferred_la_operand_p): Avoid la with index on z196.
6954         (s390_adjust_priority): Trigger also for z196.
6955         (s390_issue_rate): Issue rate for z196 is 3.
6956         (s390_z10_fix_long_loop_prediction): Rename to ...
6957         (s390_fix_long_loop_prediction): ... this.
6958         (s390_reorg): Apply the z10 adjustments also for z196.
6959         (s390_loop_unroll_adjust): Do this also for z196.
6960         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
6961         (enum processor_flags): Add PF_Z196.
6962         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
6963         (TARGET_CPU_Z196, TARGET_Z196): New macros.
6964         * config.gcc: Enable z196 for --with-arch.
6965         * config/s390/2817.md: New file.
6966         * config/s390/2084.md: New type for multiply and add.
6967         * config/s390/2097.md: Likewise.
6968         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
6969         (UNSPECV_ATOMIC_OP): New constants.
6970         (fmadddf, fmaddsf): New values for type attribute.
6971         (z196prop): New insn attribute.
6972         (cpu, cpu_facility): Add z196.
6973         (ATOMIC_Z196): New code iterator.
6974         (noxa): New code attribute.
6975         (gk): New mode attribute.
6976         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
6977         Support load zero for fp constants.
6978         (fixuns_truncdddi2, fixuns_trunctddi2)
6979         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
6980         for z196.
6981         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
6982         (popcounthi2, popcountqi2): New expander.
6983         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
6984         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
6985         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
6986         insn definition.
6987         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
6988         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
6989         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
6990         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
6991         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
6992         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
6993         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
6994         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
6995         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
6996         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
6997         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
6998         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
6999         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
7000         Support new z196 instructions.
7001
7002 2010-10-05  Richard Guenther  <rguenther@suse.de>
7003
7004         PR middle-end/45877
7005         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
7006         case where gimplification optimizes away the stmt.
7007
7008 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
7009
7010         PR debug/45849
7011         * var-tracking.c (strip_pointer_flags): New function.
7012         (emit_note_insn_var_location): If rtx_equal_p check failed,
7013         retry on locations simplified with simplify_replace_fn_rtx
7014         and strip_pointer_flags as its callback.
7015
7016 2010-10-04  Jan Hubicka  <jh@suse.cz>
7017
7018         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
7019         (can_refer_decl_in_current_unit_p): ... this one; reverse return
7020         value; handle comdats too.
7021         (canonicalize_constructor_val): Use it; handle function_decls
7022         correctly.
7023         (gimple_fold_obj_type_ref_known_binfo): Likewise.
7024         * gimple.c (get_base_address): Accept all kinds of decls.
7025
7026 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7027
7028         * flags.h (g_switch_value, g_switch_set): Remove.
7029         * opts.c (g_switch_value, g_switch_set): Remove.
7030         * config/g.opt (G): Add Var(g_switch_value).
7031         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
7032         (alpha_option_override): Check global_options_set.x_g_switch_value
7033         instead of g_switch_set.
7034         (alpha_in_small_data_p): Remove cast in comparison with
7035         g_switch_value.
7036         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
7037         g_switch_value to unsigned HOST_WIDE_INT.
7038         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
7039         with g_switch_value.
7040         (frv_handle_option): Don't handle -G here.
7041         (frv_option_override): Check global_options_set.x_g_switch_value
7042         instead of g_switch_set.  Don't modify g_switch_set.
7043         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
7044         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
7045         g_switch_value to unsigned HOST_WIDE_INT.
7046         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
7047         (ia64_option_override): Check global_options_set.x_g_switch_value
7048         instead of g_switch_set.
7049         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
7050         Remove.
7051         (lm32_in_small_data_p): Remove cast in comparison with
7052         g_switch_value.
7053         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
7054         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
7055         HOST_WIDE_INT.
7056         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
7057         (m32r_init): Check global_options_set.x_g_switch_value instead of
7058         g_switch_set.
7059         (m32r_in_small_data_p): Remove cast in comparison with
7060         g_switch_value.
7061         (m32r_file_start): Format g_switch_value with %d.
7062         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
7063         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
7064         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
7065         handle -G here.
7066         (microblaze_option_override): Check
7067         global_options_set.x_g_switch_value instead of g_switch_set.
7068         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
7069         (mips_option_override): Check global_options_set.x_g_switch_value
7070         instead of g_switch_set.
7071         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
7072         (rs6000_file_start): Format g_switch_value with %d.
7073         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
7074         comparisons with g_switch_value.
7075         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
7076         global_options_set.x_g_switch_value instead of g_switch_set.
7077         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7078         global_options_set.x_g_switch_value instead of g_switch_set.
7079         * config/score/score.c (score_handle_option): Don't handle -G here.
7080         * config/score/score3.c (score3_option_override): Check
7081         global_options_set.x_g_switch_value instead of g_switch_set.
7082         * config/score/score7.c (score7_option_override): Check
7083         global_options_set.x_g_switch_value instead of g_switch_set.
7084
7085 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
7086
7087         * common.opt (fira-coalesce): Remove.
7088
7089         * doc/invoke.texi (flag_ira_coalesce): Remove.
7090
7091         * ira-color.c (allocno_coalesced_p): Move before
7092         copy_freq_compare_func.
7093         processed_coalesced_allocno_bitmap): Ditto.
7094         (update_conflict_hard_regno_costs): Don't use
7095         ALLOCNO_FIRST_COALESCED_ALLOCNO.
7096         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
7097         (assign_hard_reg): Assume no coalesced allocnos.
7098         (get_coalesced_allocnos_attributes): Remove.
7099         (bucket_allocno_compare_func): Assume no coalesced allocnos.
7100         (push_allocno_to_stack): Ditto.
7101         (remove_allocno_from_bucket_and_push): Use
7102         ira_print_expanded_allocno instead of print_coalesced_allocno.
7103         (push_allocnos_to_stack): Assume uncoalesced allocnos.
7104         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
7105         all_conflicting_hard_regs.
7106         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
7107         (setup_allocno_left_conflicts_size): Ditto.
7108         (put_allocno_into_bucket): Ditto.
7109         (copy_freq_compare_func): Remove.
7110         (copy_freq_compare_func, merge_allocnos): Move before
7111         coalesced_pseudo_reg_freq_compare.
7112         coalesced_allocno_conflict_p): Ditto.
7113         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
7114         parameter.  Assume it true.
7115         (color_allocnos): Assume uncoalesced allocnos.  Use
7116         ira_print_expanded_allocno instead of print_coalesced_allocno.
7117         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
7118         parameter.
7119
7120         * ira.c: Remove comment about coalescing.
7121
7122 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7123
7124         * config/mips/mips.h (target_flags_explicit): Declare for
7125         GENERATOR_FILE.
7126
7127 2010-10-04  Andi Kleen  <ak@linux.intel.com>
7128
7129         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
7130         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
7131
7132 2010-10-04  Matthias Klose  <doko@ubuntu.com>
7133
7134         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
7135         multilib osdirname if it exists.
7136         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
7137
7138 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
7139
7140         PR middle-end/45876
7141         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
7142         arg0's type or its unsigned counterpart as utype.  Convert
7143         arg1 to utype unconditionally.
7144
7145 2010-10-04  Julian Brown  <julian@codesourcery.com>
7146
7147         * expr.c (expand_assignment): Add assertion to prevent emitting
7148         null rtx for movmisalign pattern.
7149         (expand_expr_real_1): Likewise.
7150         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
7151         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
7152         (arm_vector_alignment_reachable): New.
7153         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
7154         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
7155         (arm_print_operand): Include alignment qualifier in %A.
7156         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
7157         (movmisalign<mode>): New expander.
7158         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
7159         insn patterns.
7160
7161 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
7162
7163         * optc-gen.awk: Define global_options_set.  Don't define
7164         target_flags_explicit.
7165         * opth-gen.awk: Declare global_options_set.  Define
7166         target_flags_explicit as macro.
7167         * opts-common.c (handle_option): Take opts_set and generated_p
7168         parameters.
7169         (handle_generated_option, read_cmdline_option, set_option): Take
7170         opts_set parameter.
7171         (set_option): Use opts_set instead of hardcoding target_flags and
7172         target_flags_explicit.
7173         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
7174         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
7175         flag_value_profile_transformations_set, flag_peel_loops_set,
7176         flag_branch_probabilities_set, flag_inline_functions_set,
7177         flag_ipa_cp_set, flag_ipa_cp_clone_set,
7178         flag_predictive_commoning_set, flag_unswitch_loops_set,
7179         flag_gcse_after_reload_set): Remove.
7180         (common_handle_option, lang_handle_option, target_handle_option):
7181         Take opts_set parameter.  Assert that it is &global_options_set.
7182         (common_handle_option): Don't set _set variables.  Check opts_set
7183         instead of such variables.
7184         (enable_warning_as_error): Pass &global_options_set to
7185         handle_generated_option.
7186         * opts.h (cl_option_handler_func.handler, set_option,
7187         handle_option, handle_generated_option, read_cmdline_option): Add
7188         opts_set parameters.
7189         (handle_option): Add generated_p parameter.
7190         * config/i386/i386.c (ix86_function_specific_save,
7191         ix86_function_specific_restore): Updat for renaming of
7192         target_flags_explicit field.
7193         * config/i386/i386.opt (target_flags_explicit): Rename to
7194         ix86_target_flags_explicit.
7195         * config/ia64/ia64.c (ia64_override_options_after_change): Check
7196         global_options_set.x_flag_selective_scheduling and
7197         global_options_set.x_flag_selective_scheduling2, not
7198         sel_sched_switch_set.
7199         * flags.h (sel_sched_switch_set,
7200         flag_speculative_prefetching_set): Remove.
7201         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
7202         that it is &global_options_set.
7203         (process_command): Pass &global_options_set to read_cmdline_option.
7204         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
7205         set_option.
7206         * toplev.c (target_flags_explicit): Remove.
7207
7208 2010-10-04  Jan Hubicka  <jh@suse.cz>
7209
7210         PR middle-end/45871
7211         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
7212         use get_ref_base_and_offset to handle references.
7213         (fold_const_aggregate_ref): Update.
7214
7215 2010-10-04  Martin Jambor  <mjambor@suse.cz>
7216
7217         PR tree-optimization/45572
7218         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
7219         ipa_check_create_node_params.
7220         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
7221
7222 2010-10-04  Yao Qi  <yao@codesourcery.com>
7223
7224         * doc/passes.texi: Clean up.
7225
7226 2010-10-03  Ian Lance Taylor  <iant@google.com>
7227
7228         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
7229         referring to a field using a typedef name.
7230         (find_anonymous_field_with_type): New static function.
7231         (convert_to_anonymous_field): New static function.
7232         (convert_for_assignment): If -fplan9-extensions, permit converting
7233         pointer to struct to pointer to anonymous field.
7234         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
7235         (is_duplicate_field): New static function.
7236         (detect_field_duplicates_hash): If -fplan9-extensions, check for
7237         typedef names duplicating field names.
7238         (detect_field_duplicates): Likewise.
7239         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
7240         (C Dialect Options): Document -fplan9-extensions.
7241         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
7242
7243 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
7244
7245         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
7246         revision 164914.
7247         (vect_create_data_ref_ptr): Likewise.
7248         * tree-vect-stmts.c (vectorizable_store): Likewise.
7249         (perm_mask_for_reverse): Likewise.
7250         (reverse_vec_elements): Likewise.
7251         (vectorizable_load): Likewise.
7252
7253 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7254
7255         * cppbuiltin.c: New file.
7256         * cppbuiltin.h: New file.
7257         * Makefile.in: Take into account cppbuiltin.{h,c}.
7258
7259 2010-10-03  Andi Kleen  <ak@linux.intel.com>
7260
7261         * lto-cgraph.c (input_cgraph): Check for missing sections.
7262
7263 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
7264
7265         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
7266         to nonimmediate_operand.  Force operand 2 to register when allowed.
7267         (*<shiftrt_insn><mode>3_mask): Ditto.
7268         (*<rotate_insn><mode>3_mask): Ditto.
7269
7270 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
7271
7272         PR tree-optimization/45720
7273         PR tree-optimization/45764
7274         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
7275         Don't accept backwards consecutive accesses.
7276         (vect_create_data_ref_ptr): Disallow negative steps.
7277
7278         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
7279         (perm_mask_for_reverse): Removed.
7280         (reverse_vec_elements): Likewise.
7281         (vectorizable_load): Don't handle negative steps.
7282
7283 2010-10-02  Jan Hubicka  <jh@suse.cz>
7284
7285         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
7286         call destination is known.
7287
7288 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7289
7290         PR target/45820
7291         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
7292         earlier.
7293
7294 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7295
7296         * doc/install.texi (Configuration): Document build_configargs,
7297         host_configargs, target_configargs.
7298
7299 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
7300
7301         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
7302         (*<shiftrt_insn><mode>3_mask): Ditto.
7303         (*<rotate_insn><mode>3_mask): Ditto.
7304
7305 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
7306
7307         PR tree-optimization/44716
7308         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
7309         (HOT_TEXT_SECTION_NAME): Define.
7310
7311 2010-10-01  Nick Clifton  <nickc@redhat.com>
7312
7313         * common.opt: Add -fcombine-stack-adjustments.
7314         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
7315         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
7316         flag_combine_stack_adjustments.
7317         * doc/invoke.texi: Document the new option.
7318
7319 2010-10-01  Richard Guenther  <rguenther@suse.de>
7320
7321         PR tree-optimization/45854
7322         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
7323
7324 2010-10-01  Anthony Green  <green@moxielogic.com>
7325
7326         * config.gcc: Fix moxie-*-rtems* configuration.
7327
7328 2010-10-01  Richard Guenther  <rguenther@suse.de>
7329
7330         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
7331         (gen_decl_die): Likewise.
7332
7333 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7334
7335         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
7336         to the function code for SPU MD builtins.
7337         (spu_expand_builtin): Update.
7338         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
7339
7340 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7341
7342         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
7343         sjlj_except_unwind_info.
7344
7345 2010-10-01  Tristan Gingold  <gingold@adacore.com>
7346
7347         * configure.ac: Define the nop insn for avr*-*-*
7348         * configure: Regenerate.
7349
7350 2010-10-01  Alan Modra  <amodra@gmail.com>
7351
7352         PR target/45807
7353         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
7354         extend toc_restore_insn.
7355
7356 2010-09-30  Richard Guenther  <rguenther@suse.de>
7357
7358         PR tree-optimization/43959
7359         * function.c (gimplify_parameters): Use create_tmp_reg instead of
7360         create_tmp_var.
7361
7362 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
7363
7364         * config/sh/sh.c (sh_expand_prologue): Set
7365         current_function_static_stack_size.
7366
7367 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7368
7369         * configure.ac: Check for Solaris 8 ld with .hidden support.
7370         * configure: Regenerate.
7371
7372 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7373
7374         PR middle-end/45758
7375         * graphite.c (graphite_initialize): Call scev_reset.
7376
7377 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7378
7379         * sese.h (scev_analyzable_p): Return false for real or floating
7380         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
7381
7382 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7383
7384         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
7385         and ps.
7386         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
7387         domain.
7388         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
7389         Do not allocate ub_expr, it is passed in initialized.
7390
7391 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7392
7393         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
7394         (build_cloog_prog): Dump CLooG input file when
7395         flag_graphite_dump_cloog is set.  This is disabled on trunk.
7396         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
7397
7398 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7399
7400         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
7401         verify_dominators for CDI_POST_DOMINATORS.
7402         * sese.h: Remove comment about CDI_POST_DOMINATORS.
7403         (recompute_all_dominators): Remove call to free_dominance_info
7404         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
7405         for CDI_POST_DOMINATORS.
7406
7407 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7408
7409         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
7410         over pbb_dim_iter_domain.
7411
7412 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7413
7414         * graphite-flattening.c: Fix comments.
7415
7416 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7417
7418         * Makefile.in (OBJS-common): Add graphite-flattening.o.
7419         (graphite-flattening.o): New rule.
7420         * common.opt (floop-flatten): New flag.
7421         * doc/invoke.texi (-floop-flatten): Documented.
7422         * graphite-flattening.c: New.
7423         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
7424         * graphite-poly.h (flatten_all_loops): Declared.
7425         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
7426         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
7427         is set, also set flag_graphite.
7428
7429 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7430
7431         * graphite-poly.c (cloog_checksum): New.
7432         * graphite-poly.h (cloog_checksum): Declared.
7433
7434 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7435
7436         * graphite-poly.c (pbb_number_of_iterations): Removed.
7437         (pbb_number_of_iterations_at_time): Correctly compute the number
7438         of iterations in the transformed loop.
7439         * graphite-poly.h (pbb_number_of_iterations): Removed.
7440
7441 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7442
7443         * graphite-poly.h (lst_update_scattering_seq): Removed.
7444         (lst_update_scattering): Correctly handle outermost loop dewey
7445         renumbering.
7446
7447 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7448
7449         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
7450         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
7451         * graphite-poly.h (lst_niter_for_loop): New.
7452
7453 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7454
7455         * graphite-poly.c (apply_poly_transforms): Do not abort when the
7456         transform read from disk is not legal.  Call fatal_error instead.
7457
7458 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7459
7460         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
7461         (print_scop_header): Removed.  Inlined in the only call place...
7462         (print_scop): ... here.
7463
7464 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7465
7466         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
7467
7468 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7469
7470         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
7471
7472 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7473
7474         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
7475         (dot_deps_stmt): Same.
7476         * graphite-poly.c (dot_lst): Same.
7477
7478 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7479
7480         * graphite-blocking.c (scop_do_strip_mine): Do not call
7481         graphite_legal_transform.
7482         (scop_do_block): Same.
7483
7484 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
7485
7486         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
7487         description.
7488
7489 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7490
7491         * tree-scalar-evolution.c (instantiate_array_ref): New.
7492         (instantiate_scev_r): Also handle ARRAY_REFs.
7493
7494 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7495
7496         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
7497         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
7498         RESULT_DECL, and FIELD_DECL.  Return false for an
7499         SSA_NAME_IS_DEFAULT_DEF.
7500         (compute_scalar_evolution_in_loop): Do not further analyze the
7501         scalar evolution when no_evolution_in_loop_p returns true.
7502
7503 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7504
7505         * tree-chrec.h (evolution_function_is_affine_p): Do not check
7506         whether CHREC_LEFT is invariant.  A function is affine when
7507         CHREC_RIGHT is invariant.
7508
7509 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7510
7511         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
7512         is_gimple_reg.
7513         (rewrite_degenerate_phi): Same.
7514         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
7515
7516 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
7517
7518         * graphite-scop-detection.c (graphite_can_represent_scev,
7519         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
7520         graphite_can_represent_loop): Remove outermost_loop.
7521
7522 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7523
7524         PR middle-end/45229
7525         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
7526         handle GIMPLE_CALLs with no LHS.
7527
7528 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7529
7530         * graphite-poly.c (init_graphite_out_file): New.
7531         (init_graphite_in_file): New.
7532         (apply_poly_transforms): Updated to enable reading and writing of
7533         multiple scop files.
7534
7535 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
7536
7537         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
7538         redundant checks.
7539
7540 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7541
7542         * graphite-clast-to-gimple.c (precision_for_value): Adjust
7543         computation of precision by 1.
7544
7545 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7546
7547         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
7548         (openscop_read_polyhedron_matrix): New.
7549         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
7550         (openscop_read_N_int): Same.
7551         * graphite-poly.c (openscop_read_N_int): New.
7552         (openscop_read_one_int): New.
7553         (openscop_read_N_string): New.
7554         (openscop_read_one_string): New.
7555         (openscop_read_powerset_matrix): New.
7556         (graphite_read_transforms): Remove.
7557         (graphite_read_scatt): New.
7558         (graphite_read_scop_file): New.
7559         (apply_poly_transforms): Updated to call graphite_read_scop_file.
7560
7561 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7562
7563         * graphite-poly.c: Change include order.
7564
7565 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7566
7567         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
7568         (cloog_matrix_nrows): New.
7569
7570 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7571
7572         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
7573         from matrix lines.
7574         * graphite-poly.c (openscop_print_scattering_function_1): Same.
7575         (print_scattering_function_1): Same.
7576         (openscop_print_pbb_domain): Same.
7577         (openscop_print_scop_context): Same.
7578         (print_scop_context): Same.
7579
7580 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
7581
7582         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
7583         (openscop_print_pdr_polyhedron): Print pph.
7584
7585 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7586
7587         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
7588         priority signed types.
7589
7590 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
7591
7592         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
7593         the call to lang_hooks.types.type_for_size.  Call
7594         build_nonstandard_integer_type.
7595
7596 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
7597
7598         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
7599         (openscop_print_polyhedron_matrix): New.
7600         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
7601         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
7602         (openscop_print_pdr_powerset): New.
7603         (openscop_print_powerset_matrix): New.
7604         (openscop_print_scattering_function_1): New.
7605         (print_scattering_function): Add support for scattering names and
7606         OpenScop format.
7607         (graphite_write_transforms): Remove.
7608         (print_pdr_access_layout): Updated to support OpenScop format.
7609         (print_pdr): Same.
7610         (openscop_print_pbb_domain): New.
7611         (print_pbb_body): Added a parameter to allow indicating that pbb_body
7612         is not provided.
7613         (print_pbb): Updated to call the new print_pbb_body.
7614         (openscop_print_scop_context): New.
7615         (print_scop_header): New.
7616         (print_scop): Updated to call print_scop_header.
7617         * graphite-poly.h: Document OpenScop format.
7618
7619 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
7620
7621         * config/cris/m32c.c (cris_memory_move_cost): New.
7622         (cris_register_move_cost): Make static. Change arguments type from
7623         enum reg_class to reg_class_t.
7624         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7625         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
7626         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
7627
7628 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
7629
7630         PR target/45843
7631         * config/i386/i386.c (ix86_gimplify_va_arg): Use
7632         INTVAL (XEXP (slot, 1)) as prev_size.
7633
7634 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
7635
7636         PR target/45837
7637         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
7638         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
7639         defined.
7640         * config/rs6000/option-defaults.h (toplevel): Change #if
7641         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
7642         global option changes.
7643
7644 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
7645
7646         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
7647
7648         PR tree-optimization/31261
7649         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
7650         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
7651
7652 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7653
7654         PR bootstrap/45796
7655         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
7656         special-casing for generators and turn into ...
7657         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
7658         rule, for better error messages in case of toplevel dependency errors.
7659         (genprog): Add hooks, rename to ...
7660         (genprogerr): ... this, and let genprog also contain check,
7661         checksum, condmd.
7662         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
7663         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
7664         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
7665
7666 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
7667             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7668
7669         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
7670         for GMP, MPFR and MPC.
7671
7672 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7673
7674         * config/sparc/sparc.opt (mimpure-text): Move ...
7675         * config/sol2.opt: ... here.  Correct description.
7676         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
7677         * doc/invoke.texi (Option Summary, SPARC Options): Move
7678         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
7679         (Option Summary, Solaris 2 Options): ... here.
7680         (Submodel Options, Solaris 2 Options): New menu entry.
7681         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
7682         (Solaris 2 Options): ... here.
7683
7684 2010-09-30  Michael Eager  <eager@eagercon.com>
7685
7686         * extend.texi (interrupt_handler): Add MicroBlaze to list.
7687         (save_volatiles): Describe option for MicroBlaze.
7688         * invoke.texi: Add MicroBlaze Options.
7689         * contrib.texi: Add acknowledgment.
7690         * md.texi: Add MicroBlaze d and z constraints.
7691         * install.texi: Add microblaze-*-elf.
7692         * configure.ac: Add microblaze-*-* to target list.
7693         * configure: Regenerate.
7694         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
7695         * config/microblaze/microblaze-protos.h: New.
7696         * config/microblaze/crti.s: New.
7697         * config/microblaze/predicates.md: New.
7698         * config/microblaze/linux.h: New.
7699         * config/microblaze/microblaze.md: New.
7700         * config/microblaze/constraints.md: New.
7701         * config/microblaze/crtn.s: New.
7702         * config/microblaze/microblaze.opt: New.
7703         * config/microblaze/microblaze-c.c: New.
7704         * config/microblaze/t-microblaze: New.
7705         * config/microblaze/microblaze.c: New.
7706         * config/microblaze/microblaze.h: New.
7707
7708 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
7709
7710         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
7711         parse @optional/@required and set the flags as appropriate.
7712
7713 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
7714
7715         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
7716
7717 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
7718
7719         * opt-functions.awk (static_var): Update comment.
7720         (var_ref): Return offsetof expression or -1, not variable address.
7721         * optc-gen.awk: Generate structure field initializers instead of
7722         static variables.  Expect -1 for missing variables instead of null
7723         pointer.  Add gcc_options parameters to generated functions.
7724         * opth-gen.awk: Generate structure fields for static variables.
7725         Add gcc_options parameters to generated functions.
7726         * common.opt (optimize, optimize_size): Add variables.
7727         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
7728         &global_options to cl_target_option_restore.
7729         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
7730         &global_options to cl_optimization_restore, cl_target_option_save
7731         and cl_target_option_restore.
7732         (ix86_set_current_function): Pass &global_options to
7733         cl_target_option_restore.
7734         * config/pdp11/pdp11.h (optimize): Remove.
7735         * config/rs6000/rs6000.h (optimize): Remove.
7736         * config/sh/sh.h (optimize): Remove.
7737         * config/xtensa/xtensa.h (optimize): Remove.
7738         * coretypes.h (struct gcc_options): Declare.
7739         * diagnostic.c (diagnostic_initialize): Initialize
7740         context->option_state.
7741         (diagnostic_report_diagnostic): Pass option_state to
7742         option_enabled hook.
7743         * diagnostic.h (diagnostic_context.option_enabled): Add void *
7744         parameter.
7745         (diagnostic_context.option_state): New field.
7746         * final.c (final_start_function, final, final_scan_insn): Rename
7747         optimize parameter to optimize_p.
7748         * flags.h (optimize, optimize_size): Remove.
7749         * function.c (invoke_set_current_function_hook): Pass
7750         &global_options to cl_optimization_restore.
7751         * gcc.c (driver_handle_option): Take gcc_options parameter.
7752         Assert that it is &global_options.
7753         (process_command): Pass &global_options to read_cmdline_option.
7754         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
7755         option_enabled.
7756         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
7757         &global_options to set_option.
7758         * opts-common.c (handle_option, handle_generated_option,
7759         read_cmdline_option, set_option): Take explicit gcc_options
7760         parameters.  Use option_flag_var.
7761         (option_flag_var): New.
7762         * opts.c (common_handle_option, lang_handle_option,
7763         target_handle_option): Take gcc_options parameter.  Assert that it
7764         is &global_options.
7765         (read_cmdline_options): Pass &global_options to read_cmdline_option.
7766         (print_filtered_help): Use option_flag_var.  Pass &global_options
7767         to option_enabled.
7768         (common_handle_option): Use option_flag_var.
7769         (option_enabled): Take opts parameter.  Use option_flag_var.
7770         (get_option_state): Take gcc_options parameter.  Use
7771         option_flag_var.  Pass gcc_options parameter to option_enabled.
7772         (enable_warning_as_error): Pass &global_options to
7773         handle_generated_option.
7774         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
7775         (cl_option_handler_func.handler): Take gcc_options parameter.
7776         (option_enabled, get_option_state, set_option, handle_option,
7777         handle_generated_option, read_cmdline_option): Take gcc_options
7778         parameters.
7779         * toplev.c (optimize, optimize_size): Remove.
7780         (print_switch_values): Pass &global_options to option_enabled.
7781         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
7782         to get_option_state.
7783         (general_init): Initialize global_dc->option_state.
7784         * tree.c (build_optimization_node): Pass &global_options to
7785         cl_optimization_save.
7786         (build_target_option_node): Pass &global_options to
7787         cl_target_option_save.
7788
7789 2010-09-30  Martin Jambor  <mjambor@suse.cz>
7790
7791         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
7792         zero sized bit-fields.
7793
7794 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7795
7796         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
7797         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
7798         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
7799         (c_parser_objc_class_declaration): Same change.
7800         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
7801         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
7802         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
7803         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
7804         and RID_AT_PUBLIC instead of RID_PUBLIC.
7805         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
7806         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
7807
7808 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
7809
7810         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
7811         Add links to current providers of packages for Solaris and IRIX.
7812
7813 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7814
7815         Merge from 'apple/trunk' branch on FSF servers.
7816         * c-parser.c: Applied change originally in c-parse.in.
7817
7818         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
7819
7820         Radar 4281748
7821         * c-decl.c (start_decl): Check for redeclaration of class name.
7822         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
7823
7824 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
7825
7826         * config/ia64/ia64.c (ia64_builtin_decl): New.
7827         (TARGET_BUILTIN_DECL): Define.
7828         (ia64_builtins): New.
7829         (ia64_init_builtins): Save decls in ia64_builtins.
7830
7831 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
7832
7833         PR target/40457
7834         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
7835         (move2add_use_add3_insn): Likewise.
7836         (reload_cse_move2add): Likewise.
7837         * rtlanal.c (get_full_rtx_cost): New function.
7838         * rtl.h (struct full_rtx_costs): New.
7839         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
7840         costs_add_n_insns): New inline functions.
7841         (get_full_rtx_cost): Declare.
7842
7843         PR c/45054
7844         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
7845         invariants.  Check for reg_equiv_invariant.
7846         (reload): Assert that spilled_pseudos is empty when returning.
7847
7848 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
7849
7850         * config/i386/mingw32.h (TARGET_64BIT): replaced by
7851         TARGET_64BIT_DEFAULT in #if check.
7852
7853 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
7854
7855         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
7856
7857 2010-09-29  Mike Stump  <mikestump@comcast.net>
7858
7859         * config/darwin.h (flag_mkernel): Remove.
7860         (flag_apple_kext): Likewise.
7861
7862 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7863             Jack Howarth  <howarth@bromo.med.uc.edu>
7864
7865         * config/darwin.opt (undefined): Add.
7866
7867 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
7868
7869         PR testsuite/45664
7870         * configure.ac: Add --enable-indirect-function option.
7871         * config.gcc: Add default_gnu_indirect_function.
7872         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
7873         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
7874         * varasm.c (do_assemble_alias): Adjust for macro name change.
7875         * configure: Rebuilt.
7876         * doc/install.texi: Document --enable-indirect-function.
7877
7878 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7879
7880         * doc/options.texi (Variable, Var, Init): Update documentation
7881         without reference to VarExists.
7882         (VarExists): Remove.
7883         * common.opt, config/i386/i386.opt, config/linux.opt,
7884         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
7885         Don't use VarExists.
7886
7887 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
7888
7889         * optc-gen.awk: Generate global_options initializer instead of
7890         individual variables.  Add x_ prefix to names of structure members.
7891         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
7892         names of structure members.
7893         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7894         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
7895         * doc/tm.texi: Regenerate.
7896         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7897         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
7898         * c-parser.c (disable_extension_diagnostics,
7899         restore_extension_diagnostics): Update names of cpp_options members.
7900         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7901         * common.opt (fcompare-debug-second): Don't use Var.
7902         * config/alpha/alpha.h (target_flags): Remove.
7903         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7904         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7905         * config/bfin/bfin.h (target_flags): Remove.
7906         * config/cris/cris.h (target_flags): Remove.
7907         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
7908         cl_target_option members.
7909         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
7910         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
7911         ix86_can_inline_p): Update names of cl_target_option members.
7912         * config/i386/i386.h (ix86_isa_flags): Remove.
7913         * config/lm32/lm32.h (target_flags): Remove.
7914         * config/mcore/mcore.h (mcore_stack_increment): Remove.
7915         * config/mcore/mcore.md (addsi3): Remove extern declaration of
7916         flag_omit_frame_pointer.
7917         * config/mep/mep.h (target_flags): Remove.
7918         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7919         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
7920         * config/mmix/mmix.h (target_flags): Remove.
7921         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
7922         flag_expensive_optimizations): Remove.
7923         * config/s390/s390.h (flag_pic): Remove.
7924         * config/score/score-conv.h (target_flags): Remove.
7925         * config/sh/sh.h (sh_fixed_range_str): Remove.
7926         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
7927         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7928         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7929         * diagnostic.c (diagnostic_initialize): Update names of
7930         diagnostic_context members.
7931         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
7932         warn_system_headers.
7933         (diagnostic_report_warnings_p): Update for new names.
7934         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
7935         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
7936         HARD_FRAME_POINTER_IS_ARG_POINTER.
7937         * flags.h (flag_compare_debug): Declare.
7938         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7939         * opts.c (flag_compare_debug): Define.
7940         (common_handle_option): Update names of diagnostic_context
7941         members.  Handle -fcompare-debug-second.
7942         (fast_math_flags_struct_set_p): Update names of cl_optimization
7943         members.
7944         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7945         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7946         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7947         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7948         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
7949         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
7950         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
7951         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
7952         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
7953
7954 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
7955
7956         * config/picochip/picochip.c (picochip_output_internal_label):
7957         This function can now be called for debug CFI labels, which can come
7958         in the middle of a vliw instruction.  Postpone until end of vliw.
7959
7960 2010-09-29  Richard Guenther  <rguenther@suse.de>
7961
7962         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
7963         (DECL_FILE_SCOPE_P): Use it.
7964         (TYPE_FILE_SCOPE_P): New macro.
7965
7966 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7967
7968         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
7969         a CPP_NAME which is a reserved word, clearly separate cases for
7970         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
7971
7972 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
7973
7974         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
7975         token->value with the canonical spelling.  Do exactly like C and
7976         C++ and leave it as it is.
7977
7978 2010-09-28  Richard Henderson  <rth@redhat.com>
7979
7980         * config/alpha/alpha.c (alpha_builtins): New.
7981         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
7982         (alpha_builtin_function): New.
7983         (alpha_add_builtins, alpha_init_builtins): Use it.
7984
7985 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
7986
7987         * doc/standards.texi (Standards): Expanded the section on
7988         Objective-C and Objective-C++.
7989
7990 2010-09-28  DJ Delorie  <dj@redhat.com>
7991
7992         PR target/45800
7993         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
7994         volatile MEMs.
7995
7996 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
7997
7998         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
7999         attributes on methods.
8000          (c_parser_objc_method_definition): Handle attributes.
8001         (c_parser_objc_methodproto): Likewise.
8002         (c_parser_objc_maybe_method_attributes): New.
8003         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
8004         missing definition, similar to that in ObjC++.
8005
8006 2010-09-28  Richard Henderson  <rth@redhat.com>
8007
8008         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
8009         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
8010         (CONFIG_SJLJ_EXCEPTIONS): Remove.
8011         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
8012         (STACK_CHECK_PROTECT): Likewise.
8013         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
8014         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
8015         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
8016         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
8017         (dwarf2out_assembly_start): Likewise.
8018         * except.c (init_eh): Use targetm.except_unwind_info.
8019         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
8020         (output_one_function_exception_table): Likewise.
8021         * final.c: Unconditionally include dwarf2out.h.
8022         (final_start_function): Unconditionally call dwarf2out routines.
8023         (final_end_function, final_scan_insn): Likewise.
8024         * function.c (expand_function_end): Use targetm.except_unwind_info.
8025         * opts.c (decode_options): Use targetm.except_unwind_info.
8026         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
8027         * target.def (debug_unwind_info, except_unwind_info): New.
8028         * target.h (enum unwind_info_type): New.
8029         * targhooks.c (default_debug_unwind_info): New.
8030         (default_except_unwind_info): New.
8031         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
8032         * targhooks.h: Declare them.
8033         * tree-tailcall.c: Include "target.h"
8034         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
8035         * Makefile.in (tree-tailcall.o): Update.
8036         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
8037         (lhd_gcc_personality): Likewise.
8038
8039         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
8040         (TARGET_EXCEPT_UNWIND_INFO): New.
8041         (DWARF2_UNWIND_INFO): Update.
8042         (TARGET_DEBUG_UNWIND_INFO): New.
8043         * doc/tm.texi: Rebuild.
8044
8045         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
8046         targetm.except_unwind_info.
8047
8048         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
8049         (arm_except_unwind_info): New.
8050         (arm_compute_func_type): Use it.
8051         (arm_expand_prologue, thumb_pushpop): Likewise.
8052         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
8053         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
8054         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
8055         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
8056         (DWARF2_UNWIND_INFO): Remove.
8057         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
8058         (ARM_EABI_UNWIND_TABLES): Remove.
8059
8060         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
8061         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
8062         (ia64_except_unwind_info): New.
8063         (ia64_output_function_prologue): Use it.
8064         (ia64_add_bundle_selector_before): Likewise.
8065         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
8066         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
8067         (TARGET_UNWIND_INFO): Remove.
8068
8069         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
8070
8071 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
8072
8073         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
8074         (c_parser_objc_protocol_definition): Likewise.
8075         (c_parser_external_declaration): Provide dummy attribute arguments.
8076         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
8077         (c_parser_objc_class_definition): Handle attributes.
8078         (c_parser_objc_protocol_definition): Likewise.
8079
8080 2010-09-28  Tobias Burnus  <burnus@net-b.de>
8081
8082         PR fortran/40569
8083         PR fortran/40568
8084         * toplev.h (save_decoded_options, save_decoded_options_count):
8085         New global variables.
8086         * toplev.c (save_decoded_options, save_decoded_options_count):
8087         Export variables.
8088
8089 2010-09-28  Ian Lance Taylor  <iant@google.com>
8090
8091         * config/i386/i386.c (ix86_supports_split_stack): Test
8092         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
8093
8094 2010-09-28  Ian Lance Taylor  <iant@google.com>
8095
8096         PR target/45815
8097         * opts.c (decode_options): Don't test whether the target supports
8098         split stack if flag_split_stack == 0.
8099
8100 2010-09-28  Jan Hubicka  <jh@suse.cz>
8101
8102         * builtin-attrs.def (ATTR_LEAF): New attribute.
8103         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
8104         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
8105         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
8106         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
8107         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
8108         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
8109         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
8110         * sync-builtins.def: Annotate all builtins by leaf.
8111         * omp-builtins.def: Annotate all builtins by leaf.
8112         * builtins.def: Annotate relevant builtins with leaf attribute.
8113         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
8114         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
8115         leaf.
8116
8117 2010-09-28  Jan Hubicka  <jh@suse.cz>
8118
8119         * tree-ssa-ccp.c (fold_ctor_reference): New function.
8120         (fold_const_aggregate_ref): Use it.
8121         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
8122         into external static.
8123
8124 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8125
8126         PR target/44452
8127         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
8128         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
8129         (ix86_solaris_return_in_memory): Remove.
8130         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
8131         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
8132         (TARGET_SUBTARGET_DEFAULT): Redefine.
8133         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
8134         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
8135         (TARGET_SUBTARGET_DEFAULT): Redefine.
8136         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
8137         -mvect8-ret-in-mem.
8138         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
8139
8140 2010-09-29  Alan Modra  <amodra@gmail.com>
8141
8142         PR target/45807
8143         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
8144         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
8145         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
8146         Delete.
8147         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
8148         (rs6000_emit_prologue): Don't just create frame save info for r2,
8149         actually save r2.
8150
8151 2010-09-28  Richard Henderson  <rth@redhat.com>
8152
8153         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
8154         when 8 bytes are requested.
8155
8156 2010-09-28  Tristan Gingold  <gingold@adacore.com>
8157
8158         * config/avr/avr.c (expand_prologue): Set
8159         current_function_static_stack_size.
8160
8161 2010-09-28  Tristan Gingold  <gingold@adacore.com>
8162
8163         * config/alpha/alpha.md: Change the initial condition of the
8164         probing loop.
8165
8166 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
8167
8168         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
8169         Split from *avx_<maxmin:code><mode>3.
8170         (*avx_<smaxmin:code><mode>3): Ditto.
8171         * config/i386/i386.md (maxmin): Remove code iterator.
8172
8173 2010-09-27  Ian Lance Taylor  <iant@google.com>
8174
8175         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
8176         requires assembler support for CFI directives.
8177
8178 2010-09-27  Richard Henderson  <rth@redhat.com>
8179
8180         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
8181
8182 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8183
8184         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
8185         that AFTER is not in the range FROM..TO, inclusive.
8186
8187 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
8188             Bernd Schmidt  <bernds@codesourcery.com>
8189
8190         PR rtl-optimization/45792
8191         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
8192         If not all insns are to be merged, for each edge, stash the
8193         next candidate after the to-be-merged insns before doing the
8194         merge, and use them for the retry at the new insertion point.
8195         Handle CC0 targets when retrying.
8196
8197 2010-09-27  Ian Lance Taylor  <iant@google.com>
8198
8199         * common.opt (fsplit-stack): New option.
8200         * opts.c (decode_options): Set flag_split_stack to final value.
8201         * target.def (supports_split_stack): New hook.
8202         * gcc.c (STACK_SPLIT_SPEC): Define.
8203         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
8204         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
8205         (Code Gen Options): Document -fsplit-stack.
8206         * doc/extend.texi (Function Attributes): Mention no_split_stack.
8207         (Function Attributes): Document no_split_stack.
8208         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
8209         TARGET_SUPPORTS_SPLIT_STACK.
8210         * doc/tm.texi: Rebuild.
8211         * function.c (thread_prologue_and_epilogue_insns): If
8212         flag_split_stack, add split stack prologue.
8213         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
8214         * varasm.c (saw_no_split_stack): New static variable.
8215         (assemble_start_function): Set saw_no_split_stack if the function
8216         has the no_split_stack attribute.
8217         (file_end_indicate_split_stack): New function.
8218         * output.h (file_end_indicate_split_stack): Declare.
8219         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
8220         and function.
8221         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
8222         routines.
8223         * config/i386/i386.c (ix86_option_override_internal): Don't set
8224         expand_builtin_va_start to NULL if -fsplit-stack.
8225         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
8226         -fsplit-stack.
8227         (ix86_va_start): If -fsplit-stack, get overflow pointer from
8228         scratch register set by prologue.
8229         (ix86_code_end): If -fsplit-stack, call
8230         file_end_indicate_split_stack.
8231         (ix86_supports_split_stack): New static function.
8232         (SPLIT_STACK_AVAILABLE): Define.
8233         (split_stack_prologue_scratch_regno): New static function.
8234         (split_stack_fn): New static variable.
8235         (ix86_expand_split_stack_prologue): New function.
8236         (ix86_live_on_entry): New static function.
8237         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
8238         (output_pic_addr_const): Likewise.
8239         (i386_asm_output_addr_const_extra): Likewise.
8240         (ix86_expand_call): Change return type to rtx.  Return the new
8241         call instruction.
8242         (TARGET_SUPPORTS_SPLIT_STACK): Define.
8243         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
8244         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
8245         (split_stack_prologue, split_stack_return): New insns.
8246         (split_stack_space_check): New insn.
8247         * config/i386/i386.h (struct machine_function): Add
8248         split_stack_varargs_pointer field.
8249         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
8250         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
8251         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
8252         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
8253         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
8254         Declare.
8255         (ix86_expand_call): Update declaration.
8256
8257 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8258
8259         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
8260         code.  Added byref, which was missing in the list of codes.
8261         Explain that enumeration values are encoded as the integer type
8262         that the compiler uses to store them.  Explain and make examples
8263         of how 'const' interacts with pointers, and the complication of
8264         the encoding of 'const char *'.
8265         (Legacy type encoding): New subsection, explaining that GCC emits
8266         incorrect type encodings for the NeXT runtime for compatibility
8267         reasons.
8268         (@@encode): New subsection, explaining @encode and particularly
8269         that protocol qualifiers are not recognized inside an @encode()
8270         expression.
8271         (Method signatures): New subsection, explaining how method
8272         signatures are encoded.
8273
8274 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8275
8276         Merge from 'apple/trunk' branch on FSF servers.  Removed small
8277         change in build_conditional_expr that had been added when fixing
8278         PR objc/27377 and which did the same check in a less complete way.
8279
8280         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
8281
8282         Radar 4229905
8283         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
8284         looking for objective-c common pointer types.
8285
8286         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
8287
8288         Radar 4154928
8289         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
8290         use their ObjC common type.
8291
8292 2010-09-27  Richard Guenther  <rguenther@suse.de>
8293
8294         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
8295
8296 2010-09-27  Jie Zhang  <jie@codesourcery.com>
8297
8298         * print-tree.c (print_node): Print in-constant-pool.
8299
8300 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
8301
8302         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
8303         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
8304         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
8305         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
8306
8307 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
8308
8309         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
8310         from pro_epilogue_adjust_stack_<mode>_{1,2}.
8311         (pro_epilogue_adjust_stack_<mode>_add): Rename from
8312         pro_epilogue_adjust_stack_<mode>_3.
8313         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
8314         renamed pro_epilogue_adjust_stack_{si,di}_add.
8315         (ix86_expand_prologue): Use indirect functions.  Update for renamed
8316         pro_epilogue_adjust_stack_{si,di}_sub.
8317
8318 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
8319
8320         * config/i386/i386.md (movmsk_df): New insn.
8321         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
8322         sequence for TARGET_SSE_MATH.
8323
8324 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
8325
8326         * config/mips/mips.c (mips_builtin_decls): Declare.
8327         (mips_init_builtins): Store function declarations in
8328         mips_builtin_decls.
8329         (mips_builtin_decl): New function.
8330         (TARGET_BUILTIN_DECL): Define.
8331
8332 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
8333             Richard Henderson  <rth@redhat.com>
8334
8335         * config/i386/cygwin.asm: Include auto-host.h.
8336         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
8337         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
8338         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
8339         alignment code from the 64-bit path.  Use gas local labels.
8340         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
8341         from _di_2.  Remove the useless constant integer argument.
8342         (pro_epilogue_adjust_stack_<mode>_3): New.
8343         (allocate_stack_worker_probe_<mode>): Macroize from
8344         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
8345         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
8346         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
8347         (__chkstk_ms): New function.
8348         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
8349         * config/i386/t-interix: Likewise.
8350         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
8351         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
8352         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
8353         * configure, config.in: Rebuild.
8354
8355 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
8356
8357         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
8358         statements because of the return slot optimization.
8359
8360 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
8361
8362         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
8363         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
8364         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8365         (class_likely_spilled_p): Rename to...
8366         (avr_class_likely_spilled_p): ...this. Make static. Change argument
8367         type to reg_class_t.
8368
8369 2010-09-24  Jan Hubicka  <jh@suse.cz>
8370
8371         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
8372         (lto_symtab_resolve_symbols): Set it.
8373         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
8374         store resolution field in cgraph/varpool.
8375         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
8376         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
8377         (cgraph_dump_node): Drop used_from_object_file.
8378         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
8379         (cgraph_function_body_availability): Use decl_replaceable_p.
8380         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
8381         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
8382         cgraph_used_from_object_file_p.
8383         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
8384         cgraph_used_from_object_file_p.
8385         (resolution_used_from_other_file_p): New functoin.
8386         (cgraph_used_from_object_file_p): New predicate.
8387         * cgraph.h: Include plugin-api.h
8388         (struct cgraph_local_info): Remove used_from_object_file.
8389         (struct cgraph_node): Add resolution field.
8390         (struct varpool_node): Likewise; remove used_from_object_file;
8391         reove const_value_known.
8392         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
8393         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
8394         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8395         varpool_used_from_object_file_p): Declare.
8396         (varpool_get_node, varpool_extra_name_alias): Update prototype.
8397         * tree.h (DECL_REPLACEABLE_P): Remove.
8398         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
8399         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
8400         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
8401         input_overwrite_node, input_node, input_varpool_node): Stream
8402         resolution.
8403         * expr.c (expand_expr_real_1): Use const_value_known_p
8404         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
8405         const_value_known.
8406         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
8407         (function_and_variable_visibility): Set resolution for local vars
8408         and functions; use varpool_used_from_object_file_p.
8409         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
8410         static functions.
8411         (default_binds_local_p_1): Use resolutoin info.
8412         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
8413         * varpool.c (varpool_get_node): Constify.
8414         (const_value_known_p): Do not use vnode->const_value_known;
8415         use decl_replaceable_p.
8416         (varpool_finalize_decl): Do not set const_value_known.
8417         (cgraph_variable_initializer_availability): Use decl_replaceable_p
8418         (varpool_extra_name_alias): Return new node.
8419         (varpool_used_from_object_file_p): New function.
8420
8421 2010-09-24  Richard Henderson  <rth@redhat.com>
8422
8423         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
8424         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
8425         (do_spill): Use REG_CFA_OFFSET.
8426         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
8427         as appropriate.
8428         (ia64_expand_epilogue): Likewise.
8429         (process_set): Split into ...
8430         (process_cfa_adjust_cfa): this,
8431         (process_cfa_register): this,
8432         (process_cfa_offset): and this new function.
8433         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
8434         instead of REG_FRAME_RELATED_EXPR.
8435
8436 2010-09-24  Olivier Hainque  <hainque@adacore.com>
8437
8438         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
8439
8440 2010-09-24  Jan Hubicka  <jh@suse.cz>
8441
8442         * doc/extend.texi: (attribute leaf): Document.
8443         * tree.c (local_define_builtin): Handle ECF_LEAF.
8444         (build_common_builtin_nodes): Set ECF_LEAF where needed.
8445         * tree.h (ECF_LEAF): New.
8446         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
8447         overwrittable and unavailable functions.
8448         (ipa_init): Put all_module_statics into optimization_summary_obstack.
8449         (copy_global_bitmap): Do not copy all_module_statics.
8450         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
8451         (propagate): Handle overwritable and unavailable leaf functions;
8452         initialize global info for overwritable and unavailable leaf functions;
8453         do not free all module statics.
8454         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
8455         local statics.
8456         * calls.c (flags_from_decl_or_type): Handle leaf.
8457         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
8458         abnormal gotos.
8459
8460 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
8461
8462         * gengtype.c: Reindented.
8463         * gengtype.h: Reindented.
8464         * gengtype-parse.c: Reindented.
8465
8466 2010-09-24  Jan Hubicka  <jh@suse.cz>
8467
8468         PR tree-optimization/45738
8469         PR tree-optimization/45741
8470         * expr.c (string_constant): Allow CONST_DECL too;
8471         check that DECL_INITIAL is set.
8472         * varpool.c (const_value_known_p): Only look into VAR_DECL
8473         and CONST_DECL.
8474
8475 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
8476
8477         * common.opt (undef): New.
8478
8479 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
8480
8481         PR middle-end/45234
8482         * rtl.h (enum global_rtl_index): Add
8483         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
8484         (LAST_VIRTUAL_POINTER_REGISTER): Define.
8485         (virtual_preferred_stack_boundary_rtx,
8486         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
8487         (LAST_VIRTUAL_REGISTER): Increase by one.
8488         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
8489         instead of LAST_VIRTUAL_REGISTER.
8490         * function.c (instantiate_new_reg): Handle
8491         virtual_preferred_stack_boundary_rtx.
8492         * emit-rtl.c (init_virtual_regs): Handle
8493         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
8494         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
8495         * explow.c (round_push): If crtl->preferred_stack_boundary
8496         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
8497         virtual_preferred_stack_boundary_rtx alignment instead of
8498         crtl->preferred_stack_boundary alignment.
8499         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
8500         macros.  Never decrease crtl->preferred_stack_boundary,
8501         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
8502         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
8503         stack_pointer_delta in dynamic allocation, even when size
8504         is constant.
8505         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
8506         macro.
8507         * print-rtl.c (print_rtx): Handle
8508         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
8509         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
8510         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
8511         * config/frv/frv.c (frv_emit_movsi): Likewise.
8512         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
8513         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
8514         Likewise.
8515
8516         Revert:
8517         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
8518
8519         PR middle-end/45234
8520         * calls.c (expand_call): Make sure that all variable sized
8521         adjustments are multiple of preferred stack boundary after
8522         stack alignment.
8523
8524 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
8525             Dominique Dhumieres  <dominiq@lps.ens.fr>
8526
8527         PR bootstrap/45751
8528         * config/darwin-driver.c (darwin_default_min_version):
8529         Adjust size passed to memcpy in two places.
8530
8531 2010-09-24  Richard Guenther  <rguenther@suse.de>
8532
8533         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
8534         Make sure to not call set_type_context with error_mark_node.
8535         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
8536
8537 2010-09-24  Richard Guenther  <rguenther@suse.de>
8538
8539         * Makefile.in (OBJS-onestep): Remove.
8540         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
8541         (libbackend.a): Remove onestep support.
8542         (libbackend.o): Remove.
8543         * configure.ac (--enable-intermodule): Remove.
8544         * configure: Regenerate.
8545
8546 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
8547
8548         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
8549         reaching the end of a block if it occurs at a DEBUG_INSN.
8550
8551 2010-09-09  Tristan Gingold  <gingold@adacore.com>
8552
8553         PR target/44242
8554         * config/vms/vms-crt0-64.c: Removed.
8555         * config/vms/vms-crt0.c: Removed.
8556         * config/vms/vms-psxcrt0-64.c: Removed.
8557         * config/vms/vms-psxcrt0.c: Removed.
8558         * config/vms/vms-ucrt0.c: New file.
8559         * config/vms/t-vms64: Removed.
8560         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
8561         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
8562         * config.gcc (alpha-dec-vms): Use t-vms.
8563
8564 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8565
8566         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
8567         underfull hbox in DVI output.
8568         (-fobjc-class-cxx-cdtors): Same change.
8569         (-fobjc-exceptions): Tidied up documentation.  Explain what the
8570         option does, but moved the (lenghty) description of the exception
8571         syntax into objc.texi.
8572         (-fobjc-gc): Explain that the option is not useful with the GNU
8573         runtime.
8574         (-fzero-link): Explain that the GNU runtime always works in
8575         "zero-link" mode.
8576         * doc/objc.texi: All sections: simplified @node declarations
8577         removing specification of next, previous, up node.
8578         (Objective-C): Updated introduction.
8579         (Garbage Collection): Updated.  The bohem-gc library is now
8580         included in gcc itself.  Mention that this section only applies to
8581         the GNU Objective-C runtime.
8582         (compatibility_alias): Small tidy up.
8583         (Exceptions): New section mostly containing text previously in the
8584         description of the -fobjc-exception command-line option.
8585         (Synchronization): Same.
8586
8587 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
8588
8589         * config/i386/i386.md (ix86_code_end): Move the initialization of
8590         xops array near the consumer.  Use AX_REG and SP_REG instead of
8591         numerical constants.
8592
8593 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
8594
8595         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
8596         method [methodname]' for an Objective-C method instead of the less
8597         satisfactory 'too many arguments to function' (with no method name).
8598
8599 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
8600
8601         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
8602         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
8603         (execute_update_addresses_taken): Remove parameter.  Execute the
8604         optimization unconditionally.
8605         * passes.c (execute_function_todo): Call execute_update_addresses_taken
8606         unconditionally if TODO_rebuild_alias is set, else only when optimizing
8607         if TODO_update_address_taken is set.
8608
8609 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
8610
8611         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8612         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
8613         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8614         (arm_output_addr_const_extra): Make static.
8615
8616 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
8617
8618         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
8619         define as unspec_volatile.
8620         ("nops"): Define as unspec_volatile. Use fputs to write to
8621         asm_out_file directly.  Output NOPs on separate lines using while loop.
8622         * config/i386/i386.c (ix86_code_end): Use fputs to write to
8623         asm_out_file directly.  Output NOPs on separate lines using while loop.
8624
8625 2010-09-23  Richard Guenther  <rguenther@suse.de>
8626
8627         PR tree-optimization/45565
8628         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
8629         Make sure to adjust the fndecl before replacing the stmt.
8630
8631 2010-09-23  Richard Guenther  <rguenther@suse.de>
8632
8633         PR middle-end/45750
8634         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
8635         gimplifying MEM_REF.
8636
8637 2010-09-23  Alan Modra  <amodra@gmail.com>
8638
8639         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
8640         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
8641
8642 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
8643
8644         PR rtl-optimization/44374
8645         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
8646         * df-core.c (df_set_bb_dirty): Set it.
8647         * ifcvt.c (find_memory): Remove function.
8648         (dead_or_predicable): Use can_move_insns_across.
8649         * df.h (can_move_insns_across): Declare function.
8650         * cfgcleanup.c (block_was_dirty): New static variable.
8651         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
8652         than df_get_bb_dirty.
8653         (try_head_merge_bb): New static function.
8654         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
8655         is set.
8656         * df-problems.c: Include "target.h"
8657         (df_simulate_find_uses): New static function.
8658         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
8659         (find_memory, find_memory_store): New static functions.
8660         (can_move_insns_across): New function.
8661         * Makefile.in (df-problems.o): Update dependencies.
8662
8663 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
8664
8665         PR java/44095
8666         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
8667         is specified and the suffix of the file isn't ".c".
8668         * config/sparc/linux64.h (ASM_SPEC): Likewise.
8669
8670 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8671
8672         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
8673         * doc/cppopts.texi: Fix markup of index entry.
8674         * doc/extend.texi (Constructing Calls): Fix markup of
8675         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
8676         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
8677         (Vague Linkage, C++ Attributes): Fix markup of index entries and
8678         keywords.
8679         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
8680         avoid long lines.
8681         (C Dialect Options, C++ Dialect Options, Warning Options)
8682         (Debugging Options, Spec Files, Darwin Options)
8683         (i386 and x86-64 Options, MIPS Options)
8684         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
8685         index entries, avoid abbreviations, allow URLs to wrap, avoid
8686         long lines, avoid overlong pages from long @itemx lists.
8687         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
8688         * doc/standards.texi (Standards): Likewise.
8689         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
8690
8691 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
8692
8693         * opts-common.c (prune_options): Make static.  Work with decoded
8694         options.
8695         (decode_cmdline_options_to_array): Call prune_options.  Don't
8696         resize option array here.
8697         * opts.h (prune_options): Remove prototype.
8698         * gcc.c (process_command): Take decoded options; don't call
8699         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
8700         (main): Call decode_cmdline_options_to_array here instead of
8701         prune_options.  Update call to process_command.
8702         * config/darwin-driver.c: Include opts.h.
8703         (darwin_default_min_version): Work with decoded options.  Don't
8704         handle -b or -V here.
8705         * config/darwin.h (darwin_default_min_version): Update prototype.
8706         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
8707         darwin_default_min_version.
8708         * config/i386/cygwin.h (mingw_scan): Update prototype.
8709         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
8710         * config/i386/cygwin1.c: Include opts.h.
8711         (mingw_scan): Work with decoded options.
8712         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
8713         * config/t-darwin (darwin-driver.o): Update dependencies.
8714
8715 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
8716
8717         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
8718         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
8719         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
8720         -force-link, -force-link=, -language, -language=,
8721         -library-directory, -library-directory=, -no-canonical-prefixes,
8722         -no-standard-libraries, -no-warnings, -optimize, -output,
8723         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
8724         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
8725         -print-file-name=, -print-libgcc-file-name,
8726         -print-multi-directory, -print-multi-lib,
8727         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
8728         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
8729         -profile, -save-temps, -shared, -specs, -specs=, -static,
8730         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
8731         symbolic): New.
8732         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
8733         * gcc.c (A Short Introduction to Adding a Command-Line Option):
8734         Remove comment.
8735         (cc1_options): Correct specs for passing down --help,
8736         --target-help and --help=*.  Add spec for passing down --version.
8737         (struct option_map, option_map, target_option_translations,
8738         translate_options): Remove.
8739         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
8740         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
8741         OPT_fhelp_ and OPT_ftarget_help.
8742         (process_command): Don't call translate_options.  Call
8743         decode_cmdline_options_to_array before checking for
8744         -no-canonical-prefixes using decoded options.
8745         * opts-common.c (tm.h): Update comment on #include.
8746         (find_opt): Allow abbreviations of long options.
8747         (struct option_map, option_map): New.
8748         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
8749         and -mno handling.
8750         (target_option_translations): New.
8751         (decode_cmdline_options_to_array): Handle
8752         TARGET_OPTION_TRANSLATE_TABLE in driver.
8753         * opts.c (common_handle_option): Don't handle OPT_fhelp,
8754         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
8755
8756 2010-09-22  Richard Guenther  <rguenther@suse.de>
8757
8758         * tree-inline.c (optimize_inline_calls): Schedule cleanups
8759         only if we inlined something.  Block compaction and conditional
8760         folding are done by cfg cleanup.  Schedule update-address-taken.
8761         (tree_function_versioning): Remove redundant call to number_blocks.
8762         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
8763         folding is done by cfg cleanup.
8764         * passes.c (init_optimization_passes): Remove update-address-taken
8765         pass after IPA inlining.
8766
8767 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
8768
8769         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
8770         to update conditions. Fix reg_mode[] check.
8771
8772 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
8773
8774         * config/picochip/picochip.md (movhicc): Use expand to check whether
8775         movhicc is available and split it after reload.
8776
8777 2010-09-22  Richard Guenther  <rguenther@suse.de>
8778
8779         * tree-ssanames.c (release_dead_ssa_names): Do not remove
8780         callee edges here.
8781         * passes.c (init_optimization_passes): Remove early CFG cleanup.
8782         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
8783         (pass_cleanup_cfg): Likewise.
8784         (execute_fixup_cfg): Cleanup.
8785         * tree-pass.h (pass_cleanup_cfg): Remove.
8786
8787 2010-09-22  Martin Jambor  <mjambor@suse.cz>
8788
8789         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
8790         builtins if it is true.
8791         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
8792         parameter.
8793
8794 2010-09-22  Martin Jambor  <mjambor@suse.cz>
8795
8796         * tree-sra.c (struct access): New field grp_no_warning.
8797         (create_access_replacement): Set TREE_NO_WARNING according to
8798          grp_no_warning.
8799         (create_artificial_child_access): Use build_ref_for_model and set
8800         grp_no_warning if build_user_friendly_ref_for_offset fails.
8801         (propagate_subaccesses_across_link): Likewise.
8802
8803 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
8804
8805         PR target/35664
8806         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
8807         ('f'): Likewise.
8808
8809 2010-09-22  Tristan Gingold  <gingold@adacore.com>
8810
8811         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
8812
8813 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
8814
8815         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
8816         * config/i386/i386.c (decide_alg): Update for rename.
8817
8818 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
8819
8820         PR rtl-optimization/45739
8821         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
8822         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
8823
8824 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
8825
8826         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
8827         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
8828         Remove.
8829         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
8830         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8831
8832 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8833
8834         PR objc/23710
8835         * c-parser.c (c_parser_objc_method_definition): Check the return
8836         value of objc_start_method_definition and if false is returned,
8837         parse the method definition but emit no code.
8838
8839 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
8840
8841         PR objc/25965
8842         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
8843         call objc_get_interface_ivars ().
8844
8845 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
8846
8847         PR target/45694
8848         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
8849         static chain-register is used for 64-bit.
8850
8851 2010-09-21  Richard Guenther  <rguenther@suse.de>
8852
8853         * dwarf2out.c (is_cu_die): New function.
8854         (add_pubtype): Use it.
8855         (gen_subprogram_die): Likewise.
8856         (gen_struct_or_union_type_die): Likewise.
8857         (dwarf2out_finish): Likewise.
8858         (comp_unit_die): Rename to ...
8859         (single_comp_unit_die): ... this.
8860         (comp_unit_die): New function lazily constructing and
8861         returning single_comp_unit_die.
8862         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
8863         base_type_die, subrange_type_die, modified_type_die,
8864         lower_bound_default, add_bound_info, add_prototyped_attribute,
8865         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
8866         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
8867         force_decl_die, gen_namespace_die, dwarf2out_decl,
8868         dwarf2out_start_source_file, dwarf2out_end_source_file,
8869         prune_unused_types, dwarf2out_finish): Use it.
8870         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
8871         the global list of translation-unit decls.
8872         (dwarf2out_init): Do not create single_comp_unit_die here.
8873         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
8874
8875 2010-09-21  Richard Guenther  <rguenther@suse.de>
8876
8877         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
8878         for bool for C++.
8879
8880 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
8881
8882         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
8883         (qhs_extenddi_cstr): Likewise.
8884         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
8885         them for the source operand.
8886
8887 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
8888
8889         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
8890         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
8891         (ix86_split_ashr): Ditto.
8892         (ix86_split_lshr): Ditto.
8893
8894 2010-09-21  Richard Guenther  <rguenther@suse.de>
8895
8896         PR tree-optimization/45580
8897         * tree-ssa-propagate.c (substitute_and_fold): Always replace
8898         regular uses.
8899         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
8900         virtuals fold the call into a regular indirect one.
8901
8902 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8903
8904         PR rtl-optimization/42775
8905         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
8906         scheduling is enabled.
8907
8908 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8909
8910         PR rtl-optimization/45728
8911         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
8912         gen_lowpart_common first and if that fails, force_reg first
8913         before calling gen_lowpart.
8914
8915         PR middle-end/45678
8916         * cfgexpand.c (expand_one_stack_var_at): Use
8917         crtl->max_used_stack_slot_alignment as max_align, instead
8918         of maximum of that and PREFERRED_STACK_BOUNDARY.
8919         Don't call update_stack_alignment.
8920
8921 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8922
8923         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
8924         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
8925         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
8926         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
8927         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
8928         (build_nonstandard_integer_type): Likewise.
8929         (build_range_type_1): New function, built from...
8930         (build_range_type): ...this.  Call build_range_type_1.
8931         (build_nonshared_range_type): New function.
8932         (build_array_type_1): New function, built from...
8933         (build_array_type: ...this.  Call build_array_type_1.
8934         (build_nonshared_array_type): New function.
8935         * tree.h (build_nonshared_range_type): Declare.
8936         (build_nonshared_array_type): Likewise.
8937
8938 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
8939
8940         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
8941         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
8942         (arm_class_likely_spilled_p): New function.
8943
8944 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
8945
8946         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
8947         indirect functions.
8948         (ix86_split_ashl): Ditto.
8949         (ix86_split_ashr): Ditto.
8950         (ix86_split_lshr): Ditto.
8951         (ix86_adjust_counter): Ditto.
8952
8953 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
8954
8955         * c-family/c-common.h (constant_string_class): Documented with
8956         comment identical to the one already in c-common.c.
8957
8958 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
8959
8960         * dwarf2out.c (any_cfis_emitted): New static variable.
8961         (add_fde_cfi): Set it.
8962         (dwarf2out_frame_debug): Clear it before processing,
8963         if it is set afterwards, flush any queued reg saves.
8964
8965         PR debug/45124
8966         * dwarf2out.c (add_accessibility_attribute): Assume
8967         DW_ACCESS_private as the default for dwarf_version > 2
8968         and DW_TAG_class_type parent.
8969         (gen_inheritance_die): Assume DW_ACCESS_public as the default
8970         for dwarf_version > 2 and parent other than DW_TAG_class_type.
8971
8972 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
8973
8974         PR target/45726
8975         * arm.md (arm_movt): Only enable on machines with MOVT.
8976
8977 2010-09-20  Jie Zhang  <jie@codesourcery.com>
8978
8979         * config/arm/arm.c (arm_address_offset_is_imm): New.
8980         (arm_early_store_addr_dep): New.
8981         (arm_early_load_addr_dep): New.
8982         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
8983         (arm_early_load_addr_dep): Declare.
8984         (arm_address_offset_is_imm): Declare.
8985         * config/arm/cortex-m4.md: New file.
8986         * config/arm/cortex-m4-fpu.md: New file.
8987         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
8988         (attr generic_sched): Exclude cortexm4.
8989         (attr generic_vfp): Exclude cortexm4.
8990
8991 2010-09-20  Richard Guenther  <rguenther@suse.de>
8992
8993         PR middle-end/45704
8994         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
8995
8996 2010-09-20  Jan Hubicka  <jh@suse.cz>
8997
8998         PR tree-optimize/45605
8999         * cgraph.h (const_value_known_p): Declare.
9000         (varpool_decide_const_value_known): Remove.
9001         * tree-ssa-ccp.c (get_base_constructor): Use it.
9002         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
9003         * expr.c (string_constant): Likewise.
9004         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9005         * ipa.c (ipa_discover_readonly_nonaddressable_var,
9006         function_and_variable_visibility): Likewise.
9007         * gimplify.c (gimplify_call_expr): Likewise.
9008         * gimple-fold.c (get_symbol_constant_value): Likewise.
9009         * varpool.c (varpool_decide_const_value_known): Replace by...
9010         (const_value_known_p): ... this one; handle other kinds of DECLs
9011         too and work for automatic vars.
9012         (varpool_finalize_decl): Use const_value_known_p.
9013
9014 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
9015
9016         PR target/45726
9017         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
9018
9019 2010-09-20  Richard Guenther  <rguenther@suse.de>
9020
9021         PR tree-optimization/45705
9022         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
9023
9024 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
9025
9026         PR rtl-optimization/45695
9027         * combine.c (try_combine): When splitting a two set pattern,
9028         make sure the pattern which will be put into i2 doesn't use REGs
9029         or MEMs set by insns in between i2 and i3.
9030
9031 2010-09-19  Jan Hubicka  <jh@suse.cz>
9032
9033         PR lto/44246
9034         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
9035         processing same node twice.
9036
9037 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
9038
9039         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
9040         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
9041         (bfin_class_likely_spilled_p): New function
9042
9043 2010-09-19  Ira Rosen  <irar@il.ibm.com>
9044
9045         PR tree-optimization/45714
9046         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
9047         created in vectorizable_call instead of the original statement in
9048         def stmt updates.
9049
9050 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
9051
9052         * config/i386/i386-protos.h (split_double_mode): New prototype.
9053         (split_di, split_ti): Remove prototypes.
9054         * config/i386/i386.c (split_double_mode): New function.
9055         (split_di, split_ti): Remove.
9056         (ix86_expand_branch): Use split_double_mode.
9057         (ix86_split_to_parts): Ditto.
9058         (ix86_split_ashl): Ditto.
9059         (ix86_split_ashr): Ditto.
9060         (ix86_split_lshr): Ditto.
9061         (ix86_force_to_memory): Ditto.
9062         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
9063
9064 2010-09-18  Jan Hubicka  <jh@suse.cz>
9065
9066         PR tree-optimization/45453
9067         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
9068         virtual functions are reachable.
9069         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
9070         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
9071         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
9072         when modifying function.
9073
9074 2010-09-18  Jan Hubicka  <jh@suse.cz>
9075
9076         PR tree-optimization/45605
9077         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
9078         * gimple-fold.c (static_object_in_other_unit_p): New function.
9079         (canonicalize_constructor_val): Use it.
9080         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
9081         returning NULL.
9082         (gimple_fold_obj_type_ref_known_binfo): Use
9083         static_object_in_other_unit_p.
9084
9085 2010-09-18  Richard Guenther  <rguenther@suse.de>
9086
9087         PR tree-optimization/45709
9088         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
9089         insertions until after all PHI nodes of the block are processed.
9090
9091 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
9092
9093         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
9094
9095 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
9096
9097         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
9098
9099 2010-09-18  Richard Guenther  <rguenther@suse.de>
9100
9101         PR tree-optimization/45709
9102         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
9103
9104 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
9105
9106         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
9107         (dot_deps_stmt): Same.
9108         * graphite-poly.c (dot_lst): Same.
9109         * graphite-scop-detection.c (dot_all_scops): Same.
9110         (dot_scop): Same.
9111
9112 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
9113
9114         Revert:
9115         2009-12-16  Ben Elliston  <bje@au.ibm.com>
9116
9117         * tree-data-ref.c (dot_rdg_1): Added back.
9118         (dot_rdg): Same.  Added "#if 0" around system call.
9119
9120 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9121             Richard Henderson  <rth@redhat.com>
9122
9123         * config/i386/i386.c (initial_ix86_tune_features): Add
9124         X86_TUNE_PAD_SHORT_FUNCTION.
9125         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
9126         (ix86_count_insn): New.
9127         (ix86_pad_short_function): Likewise.
9128         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
9129
9130         * config/i386/i386.h (ix86_tune_indices): Add
9131         X86_TUNE_PAD_SHORT_FUNCTION.
9132         (TARGET_PAD_SHORT_FUNCTION): New.
9133
9134         * config/i386/i386.md (UNSPEC_NOPS): New.
9135         (nops): Likewise.
9136
9137 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9138
9139         PR middle-end/45234
9140         * calls.c (expand_call): Make sure that all variable sized
9141         adjustments are multiple of preferred stack boundary after
9142         stack alignment.
9143
9144 2010-09-17  DJ Delorie  <dj@redhat.com>
9145
9146         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
9147         passed an invalid value, print an error instead of ICEing.
9148         (valid_psw_flag): New.
9149         (rx_expand_builtin): Call it for setpsw/clrpsw.
9150         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
9151
9152         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
9153         (bitclr_in_memory): Likewise.
9154         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
9155
9156 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
9157
9158         PR middle-end/45678
9159         * cfgexpand.c (update_stack_alignment): New.
9160         (get_decl_align_unit): Use it.
9161         (expand_one_stack_var_at): Call update_stack_alignment.
9162
9163 2010-09-17  Richard Guenther  <rguenther@suse.de>
9164
9165         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
9166         Properly copy the read string.
9167
9168 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
9169
9170         * doc/options.texi (Variable): Document.
9171         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
9172         generate target_flags declarations explicitly.  Don't define
9173         VarExists variables for the driver.
9174         * common.opt (target_flags): New Variable record.
9175         (flag_dump_unnumbered, flag_dump_unnumbered_links,
9176         flag_var_tracking, flag_var_tracking_assignments,
9177         flag_var_tracking_assignments_toggle): Don't mark variables with
9178         VarExists.
9179         * config/i386/i386.c (ix86_isa_flags): Don't define here.
9180         * config/i386/i386.opt (ix86_isa_flags): Define here.
9181         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
9182         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
9183         VarExists.
9184         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
9185         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
9186         Only define for generator programs.
9187         * rtlanal.c (target_flags): Remove.
9188         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
9189         flag_var_tracking_assignments_toggle): Remove.
9190
9191 2010-09-17  Michael Matz  <matz@suse.de>
9192
9193         PR tree-optimization/43432
9194         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
9195         Accept backwards consecutive accesses.
9196         (vect_create_data_ref_ptr): If step is negative generate
9197         decreasing IVs.
9198         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
9199         (perm_mask_for_reverse, reverse_vec_elements): New functions.
9200         (vectorizable_load): Handle loads with negative steps when easily
9201         possible.
9202
9203 2010-09-03  Jan Hubicka  <jh@suse.cz>
9204
9205         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
9206
9207 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
9208
9209         * config/v850/v850.c (v850_function_value_regno_p): Make static.
9210         Adjust comments. Declare.
9211         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
9212         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
9213
9214 2010-09-17  Richard Guenther  <rguenther@suse.de>
9215
9216         * common.opt (combine): Remove.
9217         * gcc.c (default_compilers): Remove specs testing combine.
9218         The C compilers no longer can combine.
9219         (option_map): Remove -combine.
9220         (display_help): Remove -combine.
9221         (driver_handle_option): Remove OPT_combine handling.
9222         (compile_input_file_p): Remove.
9223         (do_spec): Remove code concerning combine.
9224         (main): Likewise.
9225         * doc/invoke.texi: Remove traces of -combine.
9226         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
9227
9228 2010-09-17  Richard Guenther  <rguenther@suse.de>
9229
9230         PR middle-end/45678
9231         * builtins.c (fold_builtin_memory_op): Always properly adjust
9232         alignment of memory accesses.
9233
9234 2010-09-16  Jan Hubicka  <jh@suse.cz>
9235
9236         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
9237         processing clone.
9238
9239 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
9240
9241         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
9242
9243         * config/i386/i386.c (predict_jump): Add prototype.
9244         (flag_opts): Add -m8bit-idiv.
9245         (ix86_split_idivmod): New.
9246
9247         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
9248         Add 2 splitters for SI/DI mode divide.
9249         (divmod<mode>4_1): New pattern.
9250         (udivmod<mode>4_1): Likewise.
9251         (testdi_ccno_1): Likewise.
9252
9253         * config/i386/i386.opt (m8bit-idiv): New.
9254
9255         * doc/invoke.texi: Document -m8bit-idiv.
9256
9257 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
9258
9259         PR bootstrap/45680
9260         * config/i386/i386.c (min_insn_size): Moved out of the
9261         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
9262
9263 2010-09-16  Jan Hubicka  <jh@suse.cz>
9264
9265         * lto-cgraph.c (lto_output_node): Fix handling of clones.
9266         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
9267         unreachable clones with reachable clones.
9268         * tree-inline.c (copy_bb): Fix sanity checking when producing
9269         unreachable clone.
9270
9271 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
9272
9273         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
9274         (TARGET_MEMORY_MOVE_COST): Define.
9275         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
9276
9277 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
9278
9279         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
9280         maybe_tidy_empty_bb.
9281
9282         Revert:
9283         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
9284         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
9285
9286 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
9287
9288         * target.def (target_option.optimization): New hook.
9289         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
9290         TARGET_OPTION_OPTIMIZATION hook.
9291         * doc/tm.texi: Regenerate.
9292         * hooks.c (hook_void_int_int): New.
9293         * hooks.h (hook_void_int_int): Declare.
9294         * opts.c: Don't include tm_p.h.
9295         (decode_options): Use targetm.target_option.optimization instead
9296         of OPTIMIZATION_OPTIONS.
9297         * system.h (OPTIMIZATION_OPTIONS): Poison.
9298         * config/arm/arm-protos.h (arm_optimization_options): Remove.
9299         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
9300         (arm_optimization_options): Rename to arm_option_optimization.
9301         Make static.
9302         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
9303         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
9304         (cris_option_optimization): New.
9305         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
9306         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
9307         (crx_option_optimization): New.
9308         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
9309         * config/frv/frv-protos.h (frv_optimization_options): Remove.
9310         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
9311         (frv_optimization_options): Rename to frv_option_optimization.
9312         Make static.
9313         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
9314         * config/h8300/h8300.c (h8300_option_optimization): New.
9315         (TARGET_OPTION_OPTIMIZATION): Define.
9316         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
9317         * config/i386/i386-protos.h (optimization_options): Remove.
9318         * config/i386/i386.c (optimization_options): Rename to
9319         ix86_option_optimization.  Make static.
9320         (TARGET_OPTION_OPTIMIZATION): Define.
9321         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
9322         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
9323         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
9324         (ia64_optimization_options): Rename to ia64_option_optimization.
9325         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
9326         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
9327         commented-out definition.
9328         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
9329         instead of OPTIMIZATION_OPTIONS.
9330         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
9331         (m32r_option_optimization): New.
9332         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
9333         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
9334         Remove.
9335         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
9336         (mcore_option_optimization): New.
9337         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
9338         * config/mep/mep-protos.h (mep_optimization_options): Remove.
9339         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
9340         (mep_optimization_options): Rename to mep_option_optimization.
9341         Make static.  Take unused level and size parameters.
9342         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
9343         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
9344         (mmix_option_optimization): New.
9345         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
9346         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
9347         (pdp11_option_optimization): New.
9348         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
9349         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
9350         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
9351         (optimization_options): Rename to rs6000_option_optimization.
9352         Make static.
9353         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
9354         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
9355         * config/rx/rx.c (rx_set_optimization_options): Rename to
9356         rx_option_optimization.  Make static.  Take unused level and size
9357         parameters.
9358         (TARGET_OPTION_OPTIMIZATION): Define.
9359         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
9360         * config/s390/s390-protos.h (optimization_options): Remove.
9361         * config/s390/s390.c (optimization_options): Rename to
9362         s390_option_optimization.  Make static.  Don't mark size parameter
9363         unused.
9364         (TARGET_OPTION_OPTIMIZATION): Define.
9365         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
9366         * config/sh/sh-protos.h (sh_optimization_options): Remove.
9367         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
9368         (sh_optimization_options): Rename to sh_option_optimization.  Make
9369         static.  Don't mark parameters unused.
9370         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
9371         * config/spu/spu-protos.h (spu_optimization_options): Remove.
9372         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
9373         (spu_optimization_options): Rename to spu_option_optimization.
9374         Make static.
9375         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
9376         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
9377         (v850_option_optimization): New.
9378         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
9379         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
9380         (xtensa_option_optimization): New.
9381         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
9382
9383 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
9384
9385         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
9386         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
9387         * doc/tm.texi: Regenerate.
9388         * system.h (OVERRIDE_OPTIONS): Poison.
9389         * target.def (override): Default to hook_void_void.
9390         * targhooks.c (default_target_option_override): Remove.
9391         * genmodes.c, machmode.def: Update comments mentioning
9392         OVERRIDE_OPTIONS.
9393         * config/alpha/alpha-modes.def: Update comment mentioning
9394         alpha_override_options.
9395         * config/alpha/alpha-protos.h (override_options): Remove.
9396         * config/alpha/alpha.c (override_options): Rename to
9397         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
9398         (TARGET_OPTION_OVERRIDE): Define.
9399         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
9400         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
9401         of OVERRIDE_OPTIONS.
9402         * config/arc/arc-protos.h (arc_init): Remove.
9403         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
9404         (arc_init): Rename to arc_option_override.  Make static.
9405         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
9406         (OVERRIDE_OPTIONS): Remove.
9407         * config/arm/arm-protos.h (arm_override_options): Remove.
9408         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
9409         (arm_override_options): Rename to arm_option_override.  Make
9410         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
9411         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
9412         * config/arm/arm.md: Update comment referring to arm_override_options.
9413         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
9414         instead of OVERRIDE_OPTIONS.
9415         * config/avr/avr-protos.h (avr_override_options): Remove.
9416         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
9417         (avr_override_options): Rename to avr_option_override.  Make static.
9418         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
9419         * config/bfin/bfin-protos.h (override_options): Remove (twice).
9420         * config/bfin/bfin.c (override_options): Rename to
9421         bfin_option_override.  Make static.
9422         (TARGET_OPTION_OVERRIDE): Define.
9423         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
9424         * config/cris/cris-protos.h (cris_override_options): Remove.
9425         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
9426         (cris_override_options): Rename to cris_option_override.  Make static.
9427         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
9428         * config/frv/frv-protos.h (frv_override_options): Remove.
9429         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
9430         (frv_override_options): Rename to frv_option_override.  Make static.
9431         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
9432         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
9433         * config/h8300/h8300.c (h8300_init_once): Rename to
9434         h8300_option_override.  Make static.
9435         (TARGET_OPTION_OVERRIDE): Define.
9436         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
9437         * config/i386/i386-protos.h (override_options): Remove.
9438         * config/i386/i386.c (override_options): Rename to
9439         ix86_option_override_internal.  Make static.  Comments referring
9440         to this function and callers changed.
9441         (ix86_option_override): New.
9442         (TARGET_OPTION_OVERRIDE): Define.
9443         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
9444         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
9445         * config/ia64/ia64.c (ia64_file_start): Update comment referring
9446         to ia64_override_options.
9447         * config/iq2000/iq2000-protos.h (override_options): Remove.
9448         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
9449         (override_options): Rename to iq2000_option_override.  Make static.
9450         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
9451         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
9452         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
9453         (lm32_override_options): Rename to lm32_option_override.  Make static.
9454         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
9455         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
9456         (m32r_option_override): New.
9457         (m32r_init): Update comment.
9458         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
9459         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
9460         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
9461         (m68hc11_override_options): Rename to m68hc11_option_override.
9462         Make static.  Return void.
9463         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
9464         * config/m68k/m68k-protos.h (override_options): Remove.
9465         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
9466         (override_options): Rename to m68k_option_override.  Make static.
9467         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
9468         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
9469         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
9470         (mcore_override_options): Rename to mcore_option_override.  Make
9471         static.
9472         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
9473         * config/mep/mep-protos.h (mep_override_options): Remove.
9474         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
9475         (mep_override_options): Rename to mep_option_override.  Make static.
9476         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
9477         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
9478         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
9479         (mmix_override_options): Rename to mmix_option_override.  Make static.
9480         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
9481         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
9482         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
9483         (mn10300_override_options): Rename to mn10300_option_override.
9484         Make static.
9485         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
9486         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
9487         * config/moxie/moxie.c (moxie_override_options): Rename to
9488         moxie_option_override.  Make static.
9489         (TARGET_OPTION_OVERRIDE): Define.
9490         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
9491         * config/picochip/picochip-protos.h (picochip_override_options):
9492         Remove.  Update comment referring to picochip_override_options.
9493         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
9494         (picochip_override_options): Rename to picochip_option_override.
9495         Make static.  Update comment and definition of
9496         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
9497         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
9498         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9499         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9500         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9501         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9502         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9503         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
9504         instead of OVERRIDE_OPTIONS.
9505         * config/rs6000/rs6000-modes.def: Update comment referring to
9506         rs6000_override_options.
9507         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
9508         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
9509         (rs6000_override_options): Rename to
9510         rs6000_option_override_internal.  Make static.  Commented
9511         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
9512         (rs6000_option_override): New.
9513         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
9514         instead of OVERRIDE_OPTIONS.
9515         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
9516         * config/s390/s390-protos.h (override_options): Remove.
9517         * config/s390/s390.c (override_options): Rename to
9518         s390_option_override.  Make static.
9519         (TARGET_OPTION_OVERRIDE): Define.
9520         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
9521         * config/score/score-protos.h (score_override_options): Remove.
9522         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
9523         (score_override_options): Rename to score_option_override.  Make
9524         static.
9525         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
9526         Update comment referring to override_options.
9527         * config/score/score3.c (score3_override_options): Rename to
9528         score3_option_override.
9529         * config/score/score3.h (score3_override_options): Rename to
9530         score3_option_override.
9531         * config/score/score7.c (score7_override_options): Rename to
9532         score7_option_override.
9533         * config/score/score7.h (score7_override_options): Rename to
9534         score7_option_override.
9535         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
9536         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
9537         (sparc_override_options): Rename to sparc_option_override.  Make
9538         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
9539         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
9540         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
9541         instead of OVERRIDE_OPTIONS.
9542         * config/spu/spu-protos.h (spu_override_options): Remove.
9543         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
9544         (spu_override_options): Rename to spu_option_override.  Make
9545         static.
9546         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
9547         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
9548         OVERRIDE_OPTIONS.
9549         * config/vax/vax-protos.h (override_options): Remove.
9550         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
9551         (override_options): Rename to vax_option_override.  Make static.
9552         Call SUBTARGET_OVERRIDE_OPTIONS.
9553         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
9554         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
9555         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
9556         * config/xtensa/xtensa-protos.h (override_options): Remove.
9557         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
9558         (override_options): Rename to xtensa_option_override.  Make static.
9559         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
9560
9561 2010-09-16  Richard Guenther  <rguenther@suse.de>
9562
9563         PR tree-optimization/45623
9564         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
9565         (get_constraint_for_component_ref): If computing a constraint
9566         for the rhs handle type punning through unions.
9567         (get_constraint_for_address_of): Adjust.
9568         (get_constraint_for_1): Likewise.
9569         (get_constraint_for): Likewise.
9570         (get_constraint_for_rhs): New function.
9571         (do_structure_copy): Adjust.
9572         (make_constraint_to): Likewise.
9573         (handle_const_call): Likewise.
9574         (find_func_aliases): Likewise.
9575         (process_ipa_clobber): Likewise.
9576         (create_variable_info_for): Likewise.
9577
9578 2010-09-16  Ira Rosen  <irar@il.ibm.com>
9579
9580         * tree-vectorizer.c: Fix documentation.
9581         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
9582         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
9583         is_pattern_stmt_p, is_loop_header_bb_p,
9584         stmt_vinfo_set_inside_of_loop_cost,
9585         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
9586         known_alignment_for_access_p): Likewise.
9587         * tree-vect-loop.c: Fix documentation.
9588         (vect_get_cost): Start function name from new line.
9589         * tree-vect-data-refs.c: Fix documentation.
9590         * tree-vect_stmts.c: Likewise.
9591         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
9592         (vectorizable_store): Free vec_oprnds if allocated.
9593         (vectorizable_condition): Initialize several variables to avoid
9594         warnings.
9595         * tree-vect-slp.c: Fix documentation.
9596
9597 2010-09-16  Richard Guenther  <rguenther@suse.de>
9598
9599         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
9600         is TS_TRANSLATION_UNIT_DECL.
9601         (initialize_tree_contains_struct): Adjust.
9602         (all_translation_units): New global vector.
9603         (build_translation_unit_decl): New function.
9604         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
9605         (struct tree_translation_unit_decl): New.
9606         (all_translation_units): Declare.
9607         (union tree_node): Add translation_unit_decl member.
9608         (build_translation_unit_decl): Declare.
9609         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
9610         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
9611         New function.
9612         (pack_value_fields): Call it.
9613         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
9614         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
9615         (lto_output_tree_pointers): Call it.
9616         * lto-streamer-in.c (lto_input_tree_ref): Handle references
9617         to TRANSLATION_UNIT_DECL.
9618         (unpack_ts_translation_unit_decl_value_fields): New function.
9619         (unpack_value_fields): Call it.
9620         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
9621         (lto_input_tree_pointers): Call it.
9622         * lto-streamer.c (check_handled_ts_structures): Adjust.
9623         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
9624         * c-decl.c (all_translation_units): Remove.
9625         (pop_scope): Use build_translation_unit_decl.
9626         (collect_all_refs): Adjust.
9627         (for_each_global_decl): Likewise.
9628         (c_write_global_declarations): Likewise.
9629
9630 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
9631
9632         PR bootstrap/45686
9633         * fold-const.c (fold_checksum_tree): Change slot from const void **
9634         to void **, use CONST_CAST_TREE to store into *slot.
9635
9636 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
9637
9638         * config/i386/i386.md: Remove unneeded empty conditions and
9639         preparation statements from expanders.
9640         * config/i386/mmx.md: Ditto.
9641         * config/i386/sse.md: Ditto.
9642
9643 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
9644
9645         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
9646
9647 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
9648
9649         PR rtl-optimization/45593
9650         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
9651         insns that were in delay slots as stand-alone insns.
9652
9653 2010-09-15  Ian Lance Taylor  <iant@google.com>
9654
9655         * incpath.c (remove_duplicates): If name is not a directory, issue
9656         a warning rather than an error.
9657
9658 2010-09-15  Martin Jambor  <mjambor@suse.cz>
9659
9660         PR middle-end/45644
9661         * tree-sra.c (create_access): Check for bit-fields directly.
9662
9663 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
9664
9665         PR tree-optimization/45633
9666         * tree-cfg.c (verify_gimple_assign_binary): Allow
9667         MINUS_EXPR with lhs and rhs1 pointer vector and
9668         rhs2 sizetype vector.
9669         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
9670         or vector pointer use TER to optimize pointer subtraction.
9671
9672 2010-09-15  Jie Zhang  <jie@codesourcery.com>
9673
9674         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
9675         fcmpd to fcmps.
9676
9677 2010-09-15  Ian Lance Taylor  <iant@google.com>
9678
9679         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
9680
9681 2010-09-15  Ian Lance Taylor  <iant@google.com>
9682
9683         * function.c (get_arg_pointer_save_area): Set
9684         arg_pointer_save_area_init to true.
9685
9686 2010-09-15  Martin Jambor  <mjambor@suse.cz>
9687
9688         * tree-sra.c (generate_subtree_copies): Updated comment.
9689         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
9690         obtained from the statement iterator instead.
9691         (load_assign_lhs_subreplacements): Removed parameters lhs and
9692         right_offset, which is obtained from top_racc instead.  Parameter lacc
9693         is now expected to be the root of the processed tree rather than root's
9694         first child.  Updated all callers.
9695
9696 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
9697
9698         * config/pdp11/pdp11.c (register_move_cost): Rename to
9699         pdp11_register_move_cost.
9700         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
9701         pdp11_register_move_cost.
9702         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
9703         pdp11_register_move_cost instead of register_move_cost.
9704
9705 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
9706
9707         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
9708         pattern for vmovn. Expansion in case of non
9709         -mvectorize-with-neon-quad.
9710         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
9711         non- -mvectorize-with-neon-quad case.
9712         (move_lo_quad_<mode>): New expansion to vmov into low part.
9713         (move_hi_quad_<mode>): New expansion to vmov into high part.
9714         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
9715         (move_lo_quad_v4sf): Likewise.
9716         (move_lo_quad_v8hi): Likewise.
9717         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
9718         low part.
9719         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
9720         high part.
9721         * config/arm/iterators.md (ANY128): New mode iterator.
9722         (V_narrow_pack): New mode attribute.
9723         (V_HALF): Add attribute.
9724         (V_DOUBLE): Add attribute.
9725         (V_mode_nunits): Add attribute.
9726
9727 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
9728
9729         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
9730         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
9731
9732 2010-09-15  Olivier Hainque  <hainque@adacore.com>
9733             Jose Ruiz  <ruiz@adacore.com>
9734
9735         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
9736         * config/alpha/osf5-unwind.h: New file.
9737
9738 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9739
9740         PR bootstrap/45672
9741         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
9742         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
9743         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
9744
9745 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
9746
9747         * c-lang.h (struct lang_type): Add variable_size GTY option.
9748
9749 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9750
9751         PR bootstrap/45672
9752         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
9753
9754 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9755
9756         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
9757         result isn't used in memory address.
9758
9759 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9760
9761         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
9762         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
9763         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
9764         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
9765         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
9766         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
9767
9768         * target.def: Add units_per_simd_word to vectorize.
9769
9770         * targhooks.c (default_units_per_simd_word): New.
9771         * targhooks.h (default_units_per_simd_word): Likewise.
9772         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
9773         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9774         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
9775         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9776         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
9777         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9778         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
9779         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
9780
9781         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
9782         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
9783
9784         * tree-vect-stmts.c: Don't include "tm_p.h".
9785         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
9786         with targetm.vectorize.units_per_simd_word.
9787
9788         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
9789
9790         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
9791
9792         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
9793         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
9794
9795         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
9796         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
9797
9798         * doc/tm.texi: Regenerated.
9799
9800 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
9801
9802         * tree-vect-stmts.c: Include "tm_p.h".
9803
9804         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
9805         out of RTX_CODE.
9806
9807 2010-09-14  Martin Jambor  <mjambor@suse.cz>
9808
9809         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
9810         location of generated statement.  Changed all callers.
9811         (build_ref_for_model): New parameter loc which used to set location of
9812         all generated expressions.  Changed all callers.
9813         (generate_subtree_copies): Likewise.
9814         (init_subtree_with_zero): Likewise.
9815         (sra_modify_expr): Set locations of all generated statements and
9816         expressions to the location the original statement.
9817         (handle_unscalarized_data_in_subtree): Likewise.
9818         (load_assign_lhs_subreplacements): Likewise.
9819         (sra_modify_constructor_assign): Likewise.
9820         (sra_modify_assign): Likewise.
9821
9822 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
9823
9824         PR target/45277
9825         PR target/45363
9826         PR target/45407
9827         * doc/install.texi (sparc*-*-*): New section.
9828         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
9829
9830 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
9831
9832         PR middle-end/45567
9833         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
9834         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
9835         (expand_builtin): Adjust caller.
9836         (expand_builtin_unop): Only use subtarget if it has the right mode.
9837
9838 2010-09-14  Tristan Gingold  <gingold@adacore.com>
9839
9840         * configure.ac (plugins): Fix typos.
9841         * configure: Regenerate.
9842
9843 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
9844
9845         PR debug/45660
9846         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
9847         gen_type_die for function/method return type.
9848
9849 2010-09-14  Ira Rosen  <irar@il.ibm.com>
9850
9851         PR tree-optimization/45470
9852         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9853         can throw an exception.
9854         * tree-vect-stmts.c (vectorizable_call): Likewise.
9855
9856 2010-09-14  DJ Delorie  <dj@redhat.com>
9857
9858         PR target/44749
9859         * config/mep/mep-protos.h (mep_save_register_info,
9860         mep_reinit_regs, mep_init_regs): Declare.
9861
9862         * config/mep/mep.c: Move all target definitions to the end of the
9863         file to avoid the need for duplicate declarations.
9864         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
9865         (mep_reorg_erepeat): Remove unused variables.
9866         (mep_expand_builtin): Likewise.
9867
9868         * config/mep/mep-pragma.c: Don't include rtl.h.
9869         (INVALID_REGNUM): New.
9870         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
9871         functions.
9872         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
9873         Avoid enum/integer math.
9874
9875 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
9876
9877         PR target/44749
9878         * config/mep/t-mep (GTM_H): Add insn-constants.h.
9879         * config/mep/mep.c (mep_conditional_register_usage): Take no
9880         parameters.
9881         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
9882         prototype.
9883         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
9884         call to mep_conditional_register_usage.
9885
9886 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
9887
9888         PR debug/43937
9889         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
9890         the DECL as well.
9891
9892 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
9893
9894         PR rtl-optimization/45617
9895         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
9896         even if low N bits of X aren't known to be zero.
9897
9898 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
9899
9900         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
9901
9902         * config/i386/i386.c (initial_ix86_tune_features): Add
9903         X86_TUNE_VECTORIZE_DOUBLE.
9904         (ix86_units_per_simd_word): New.
9905
9906         * config/i386/i386.h (ix86_tune_indices): Add
9907         X86_TUNE_VECTORIZE_DOUBLE.
9908         (TARGET_VECTORIZE_DOUBLE): New.
9909         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
9910
9911 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
9912
9913         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
9914         (new_temp_expr_table): Allocate call_cnt vector.
9915         (free_temp_expr_table): Free it.
9916         (process_replaceable): Add call_cnt parm and set in vector.
9917         (find_replaceable_in_bb): Skip replacement if def/use span a call.
9918         (debug_ter): Dump call_cnt value, remove stderr uses.
9919
9920 2010-09-13  Jan Hubicka  <jh@suse.cz>
9921
9922         * tree.c (build_zero_cst): New.
9923         * tree.h (build_zero_cst): Declare.
9924         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
9925         (get_base_constructor): Break out from ...
9926         (fold_const_aggregate_ref): Here; handle empty constructors.
9927
9928 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9929
9930         * config/arm/arm.md: (define_attr "conds"): Update comment.
9931         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
9932         conds attribute to clob.
9933         (arm_sync_compare_and_swapsi): Likewise.
9934         (arm_sync_compare_and_swap<mode>): Likewise.
9935         (arm_sync_lock_test_and_setsi): Likewise.
9936         (arm_sync_lock_test_and_set<mode>): Likewise.
9937         (arm_sync_new_<sync_optab>si): Likewise.
9938         (arm_sync_new_nandsi): Likewise.
9939         (arm_sync_new_<sync_optab><mode>): Likewise.
9940         (arm_sync_new_nand<mode>): Likewise.
9941         (arm_sync_old_<sync_optab>si): Likewise.
9942         (arm_sync_old_nandsi): Likewise.
9943         (arm_sync_old_<sync_optab><mode>): Likewise.
9944         (arm_sync_old_nand<mode>): Likewise.
9945
9946 2010-09-13  Olivier Hainque  <hainque@adacore.com>
9947
9948         * fwprop.c (forward_propagate_and_simplify): Only attach a
9949         REG_EQUAL note to an insn if the destination is a register.
9950         * gcse.c (try_replace_reg): Likewise.
9951
9952 2010-09-13  Richard Guenther  <rguenther@suse.de>
9953
9954         PR tree-optimization/45611
9955         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
9956         (copy_ref_info): Likewise.
9957
9958 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
9959
9960         PR debug/45604
9961         PR debug/45419
9962         PR debug/45408
9963         * tree-pretty-print.c (dump_generic_node): Disregard top-level
9964         types of MEM_REF pointer types to the same type.
9965
9966 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
9967
9968         PR rtl-optimization/41087
9969         * ifcvt.c (noce_get_condition): Don't allow conditions with
9970         side-effects.
9971
9972 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
9973
9974         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
9975         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
9976         * config/frv/frv.c (frv_register_move_cost): Make static. Change
9977         arguments type to reg_class_t. Add mode argument.
9978         (frv_memory_move_cost): New.
9979         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
9980
9981 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
9982
9983         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
9984         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
9985
9986 2010-09-10  Jan Hubicka  <jh@suse.cz>
9987
9988         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
9989
9990 2010-09-10  Richard Guenther  <rguenther@suse.de>
9991
9992         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
9993         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
9994         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
9995         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
9996         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
9997
9998 2010-09-10  Richard Guenther  <rguenther@suse.de>
9999
10000         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
10001         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
10002         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
10003         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
10004
10005 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
10006
10007         PR middle-end/45634
10008         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
10009         of string folding is of integral type.
10010
10011 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
10012
10013         * doc/invoke.texi (-x): Fix typo.
10014
10015 2010-09-10  Richard Guenther  <rguenther@suse.de>
10016
10017         PR debug/44115
10018         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
10019         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
10020         Output DECL_DEBUG_EXPR.
10021         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
10022         Input DECL_DEBUG_EXPR.
10023
10024 2010-09-10  Richard Guenther  <rguenther@suse.de>
10025
10026         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
10027         (build_index_type): Implement in terms of build_range_type.
10028         (build_range_type): Do not allow NULL_TREE type, improve
10029         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
10030         if we didn't hash.
10031         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
10032         create a distinct copy of the type.
10033
10034 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
10035
10036         * configure: Regenerated.
10037         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
10038
10039 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10040
10041         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
10042         * config/arm/cortex-a9-neon.md: New and partially generated.
10043         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
10044
10045 2010-09-10  Richard Guenther  <rguenther@suse.de>
10046
10047         * tree.h (build_index_2_type): Remove.
10048         * tree.c (build_index_2_type): Remove.
10049
10050 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
10051
10052         PR bootstrap/45630
10053         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
10054         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
10055         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
10056
10057 2010-09-10  Martin Jambor  <mjambor@suse.cz>
10058
10059         PR tree-optimization/44972
10060         * tree-sra.c: Include toplev.h.
10061         (build_ref_for_offset): Entirely reimplemented.
10062         (build_ref_for_model): New function.
10063         (build_user_friendly_ref_for_offset): New function.
10064         (analyze_access_subtree): Removed build_ref_for_offset check.
10065         (propagate_subaccesses_across_link): Likewise.
10066         (create_artificial_child_access): Use
10067         build_user_friendly_ref_for_offset.
10068         (propagate_subaccesses_across_link): Likewise.
10069         (ref_expr_for_all_replacements_p): Removed.
10070         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
10071         (sra_modify_expr): Use build_ref_for_model.
10072         (load_assign_lhs_subreplacements): Likewise.
10073         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
10074         checks for return values of build_ref_for_offset.
10075         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
10076         build_ref_for_offset.
10077         * ipa-prop.h: Include gimple.h
10078         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
10079         (ipa_analyze_indirect_call_uses): Update comment.
10080         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
10081         (IPA_PROP_H): Likewise.
10082
10083 2010-09-10  Martin Jambor  <mjambor@suse.cz>
10084
10085         PR tree-optimization/44972
10086         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
10087         calling build_ref_for_offset.
10088
10089 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10090
10091         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
10092         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
10093         * config/arm/arm-tune.md: Regenerate.
10094         * doc/invoke.texi (ARM Options): Document it.
10095
10096 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
10097
10098         * config/i386/i386.c: Include sched-int.h.
10099         (TARGET_SCHED_DISPATCH): Defined.
10100         (TARGET_SCHED_DISPATCH_DO): Defined.
10101         (DISPATCH_WINDOW_SIZE): Defined.
10102         (MAX_DISPATCH_WINDOWS): Defined.
10103         (MAX_INSN): Defined.
10104         (MAX_IMM): Defined.
10105         (MAX_IMM_SIZE): Defined.
10106         (MAX_IMM_32): Defined.
10107         (MAX_IMM_64): Defined.
10108         (MAX_LOAD): Defined.
10109         (MAX_STORE): Defined.
10110         (BIG): Defined.
10111         (dispatch_group): New.
10112         (num_allowable_groups): New.
10113         (group_name): New.
10114         (sched_insn_info_s): New.
10115         (dispatch_windows_s): New.
10116         (imm_info_s): New.
10117         (dispatch_window_list): New.
10118         (dispatch_window_list1): New.
10119         (get_mem_group): New.
10120         (is_cmp): New.
10121         (dispatch_violation): New.
10122         (is_branch): New.
10123         (is_prefetch): New.
10124         (init_window): New.
10125         (allocate_window): New.
10126         (init_dispatch_sched): New.
10127         (is_end_basic_block): New.
10128         (process_end_window): New.
10129         (allocate_next_window): New.
10130         (find_constant_1): New.
10131         (find_constant): New.
10132         (get_num_immediates): New.
10133         (has_immediate): New.
10134         (get_insn_path): New.
10135         (get_insn_group): New.
10136         (count_num_restricted): New.
10137         (fits_dispatch_window): New.
10138         (add_insn_window): New.
10139         (add_to_dispatch_window): New.
10140         (debug_dispatch_window_file): New.
10141         (debug_dispatch_window): New.
10142         (debug_insn_dispatch_info_file): New.
10143         (debug_ready_dispatch): New.
10144         (do_dispatch): New.
10145         (has_dispatch): New.
10146         * config/i386/i386.h (debug_ready_dispatch): Declared.
10147         (debug_dispatch_window): Declared.
10148         * config/i386/i386.opt (mdispatch-scheduler): New flag.
10149         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
10150         (TARGET_SCHED_DISPATCH_DO): New.
10151         * doc/tm.texi: Regererated.
10152         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
10153         ready_remove_first_dispatch
10154         (schedule_block): Call targetm.sched.dispatch and
10155         targetm.sched.dispatch_do.
10156         (sched_init): Call targetm.sched.dispatch and
10157         targetm.sched.dispatch_do.
10158         (ready_remove_first_dispatch): New.
10159         (number_in_ready): New.
10160         (get_ready_element): New.
10161         * hooks.c (hook_bool_rtx_int_false): New.
10162         (hook_void_rtx_int): New.
10163         * hooks.h (hook_bool_rtx_int_false): Declared.
10164         (hook_void_rtx_int): Declared.
10165         * sched-int.h (IS_DISPATCH_ON): Defined.
10166         (IS_CMP): Defined.
10167         (DISPATCH_VIOLATION): Defined.
10168         (FITS_DISPATCH_WINDOW): Defined.
10169         (DISPATCH_INIT): Defined.
10170         (ADD_TO_DISPATCH_WINDOW): Defined.
10171         (get_ready_element): Declared.
10172         (number_in_ready): Declared.
10173         * target.def (dispatch): Defined.
10174         (dispatch_do): Defined.
10175
10176 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10177
10178         PR middle-end/45312
10179         * reload1.c (merge_assigned_reloads): Remove.
10180         (reload_as_needed): Don't call it.
10181
10182 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
10183
10184         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
10185         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10186         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10187
10188 2010-09-09  Matthias Klose  <doko@ubuntu.com>
10189
10190         PR bootstrap/43847
10191         * configure.ac (--enable-plugin): Enhance for cross builds.
10192         * configure: Regenerate.
10193
10194 2010-09-09  Jan Hubicka  <jh@suse.cz>
10195
10196         PR tree-optimization/45598
10197         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
10198         string folding is of integral type.
10199
10200 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
10201
10202         * configure.ac (gnu_indirect_function): New test.
10203         * configure: Rebuilt.
10204         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
10205         * defaults.h (IFUNC_ASM_TYPE): Provide default.
10206
10207         * doc/extend.texi (Function Attributes): Document ifunc.
10208         * varasm.c (do_assemble_alias): Deal with ifuncs too.
10209
10210 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
10211
10212         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
10213         epilogue instruction move.
10214
10215 2010-09-09  Jan Hubicka  <jh@suse.cz>
10216
10217         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
10218         command line to allow more partitions than input files.
10219
10220 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10221
10222         PR middle-end/44554
10223         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
10224
10225 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
10226
10227         PR middle-end/40386
10228         * ira.c (pseudo_for_reload_consideration_p): Don't use
10229         flag_ira_share_spill_slots.
10230
10231 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10232
10233         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
10234         point zero operands that fit into a single GPR.
10235         (s390_preferred_reload_class): Ensure we only return general-purpose
10236         register classes.
10237         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
10238         floating-point zero operands into GPRs.
10239         ("*mov<mode>_64"): Likewise.
10240         ("mov<mode>"): Likewise using lhi.
10241
10242 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10243
10244         * config/s390/s390.c (s390_symref_operand_p): Return false for
10245         literal pool references.
10246         (s390_check_qrst_address): Update caller.
10247
10248 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
10249
10250         * config/i386/predicates.md (ext_register_operand): Check that
10251         SUBREG_REG is really a register before looking for REGNO.
10252         (reg_not_xmm0_operand): Handle SUBREGs correctly.
10253         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
10254
10255 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
10256
10257         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
10258         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
10259         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
10260         * print-rtl.c (print_rtx): Likewise.
10261         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
10262         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
10263         for ADDR_EXPR with non-addressable object.
10264         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
10265         (struct dw_val_struct): Add v.val_decl_ref.
10266         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
10267         Handle DW_OP_GNU_implicit_pointer.
10268         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
10269         (get_ref_die_offset_label): New function.
10270         (implicit_ptr_descriptor): New function.
10271         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
10272         (loc_descriptor): Likewise.
10273         (gen_variable_die): Put even definitions into decl_die_table.
10274         (resolve_addr_in_expr): Resolve still unresolved
10275         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
10276         return false.
10277         (dwarf2out_finish): Call output_location_lists after outputting
10278         .debug_info and .debug_abbrev instead of before.
10279
10280 2010-09-09  Roland McGrath  <roland@redhat.com>
10281
10282         * dwarf2out.c (DWARF_REF_SIZE): Define.
10283         (size_of_loc_descr): Use it for DW_OP_call_ref.
10284
10285 2010-09-09  Alan Modra  <amodra@gmail.com>
10286
10287         * doc/invoke.text: Reinstate mcmodel=medium.
10288         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10289         CMODEL_MEDIUM as default.
10290         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
10291         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
10292         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
10293         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
10294
10295 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10296
10297         PR target/45250
10298         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
10299         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
10300         (builtin_longjmp): Likewise.
10301         (allocate_stack): Use hard_frame_pointer_rtx instead of
10302         frame_pointer_rtx.
10303         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
10304         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
10305         (pa_can_eliminate): Likewise.
10306         (TARGET_INTERNAL_ARG_POINTER): Define.
10307         (TARGET_CAN_ELIMINATE): Define.
10308         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
10309         pointer.
10310         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
10311         (pa_internal_arg_pointer, pa_can_eliminate,
10312         pa_initial_elimination_offset): New.
10313         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
10314         (HARD_FRAME_POINTER_REGNUM): Set to register three.
10315         (INITIAL_FRAME_POINTER_OFFSET): Delete.
10316         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
10317         Define.
10318         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
10319         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
10320         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
10321         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
10322         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
10323         new soft frame pointer.
10324         * config/pa/pa64-regs.h: Likewise.
10325
10326 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
10327
10328         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
10329         numerical constant.
10330         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
10331
10332 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
10333
10334         PR debug/45531
10335         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
10336
10337 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
10338
10339         PR debug/45419
10340         PR debug/45408
10341         * tree-pretty-print.c (dump_generic_node): Disregard top-level
10342         qualifiers in otherwise equal MEM_REF pointer types.
10343         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
10344         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
10345
10346 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10347
10348         PR target/44392
10349         * config/arm/arm.md (bswapsi2): Handle condition correctly
10350         for armv6 and optimize_size.
10351
10352 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10353
10354         PR other/18555
10355         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
10356
10357 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
10358
10359         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
10360         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
10361         ix86_expand_strlen, legitimate_pic_address_disp_p,
10362         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
10363         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
10364         ix86_check_movabs, ix86_secondary_memory_needed): Change function
10365         prototype to bool.
10366         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
10367         return_in_memory_ms_64, ix86_check_movabs,
10368         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
10369         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
10370         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
10371         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
10372         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
10373         ix86_secondary_memory_needed): Change to bool.  Return
10374         "true" and "false" values.
10375         * config/i386/i386.md: Return "true" and "false" values.
10376
10377 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10378
10379         * doc/sourcebuild.texi (Effective-Target Keywords): Document
10380         run_expensive_tests.
10381
10382 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10383
10384         * toplev.c (output_stack_usage): Use lbasename instead of basename.
10385
10386 2010-09-08  Martin Jambor  <mjambor@suse.cz>
10387
10388         PR other/45443
10389         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
10390         at -O3.
10391
10392 2010-09-08  Richard Guenther  <rguenther@suse.de>
10393
10394         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
10395         (visit): Adjust.
10396         (iterative_hash_gimple_type): Likewise.
10397         (gimple_type_hash): Likewise.
10398         (gimple_register_type): Likewise.
10399         (print_gimple_types_stats): Likewise.
10400         (free_gimple_type_tables): Likewise.
10401
10402 2010-09-08  Michael Matz  <matz@suse.de>
10403
10404         PR tree-optimization/43430
10405         * tree-vect-stmts.c (vectorizable_condition): Support multiple
10406         copies for conditional statements if it's not part of a reduction.
10407
10408 2010-09-08  Michael Matz  <matz@suse.de>
10409
10410         PR tree-optimization/33244
10411         * tree-ssa-sink.c (statement_sink_location): Don't sink into
10412         empty loop latches.
10413
10414 2010-09-08  Richard Guenther  <rguenther@suse.de>
10415
10416         PR tree-optimization/45578
10417         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
10418         Be more careful when transfering alignment information to
10419         the new induction variable.
10420         (copy_ref_info): Likewise.
10421
10422 2010-09-08  Richard Guenther  <rguenther@suse.de>
10423
10424         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
10425         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
10426
10427 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
10428
10429         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
10430         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
10431
10432 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
10433
10434         PR doc/45587
10435         * doc/md.texi: Fixed modes on several standard pattern names.
10436
10437 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
10438
10439         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
10440         (ashl<mode>3): ...this.
10441         (loongson_psra<V_suffix>): Rename to...
10442         (ashr<mode>3): ...this.
10443         (loongson_psrl<V_suffix>): Rename to...
10444         (lshr<mode>3): ...this.
10445         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
10446         (CODE_FOR_loongson_psllw): Define.
10447         (CODE_FOR_loongson_psrlh): Define.
10448         (CODE_FOR_loongson_psrlw): Define.
10449         (CODE_FOR_loongson_psrah): Define.
10450         (CODE_FOR_loongson_psraw): Define.
10451
10452 2010-09-07  Richard Henderson  <rth@redhat.com>
10453
10454         * tree-vect-data-refs.c: Include tm_p.h.
10455         * Makefile.in (tree-vect-data-refs.o): Update deps.
10456         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
10457         Move delarations outside #ifdef RTX_CODE.
10458
10459 2010-09-07  Richard Henderson  <rth@redhat.com>
10460
10461         * final.c (rest_of_handle_final): Unconditionally do
10462         output_function_exception_table before assemble_end_function.
10463
10464 2010-09-07  Jan Hubicka  <jh@suse.cz>
10465
10466         * tree-inline.c (tree_inlinable_function_p): Do not test
10467         DECL_REPLACEABLE_P.
10468         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
10469         update_callee_keys, cgraph_decide_inlining): Test function availability.
10470         * cif-code.def (OVERWRITABLE): New code.
10471
10472 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
10473             Jack Howarth  <howarth@bromo.med.uc.edu>
10474
10475         PR target/36502
10476         PR target/42313
10477         PR target/44651
10478         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
10479         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
10480         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
10481         MAX macro.
10482
10483 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10484
10485         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
10486         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
10487
10488 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10489
10490         * config.gcc: Don't append t-android for Android targets.
10491
10492         * config/t-android: Removed.
10493
10494 2010-09-07  Richard Henderson  <rth@redhat.com>
10495
10496         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
10497         * doc/tm.texi.in: Add doc marker.
10498         * doc/tm.texi: Rebuild.
10499         * except.c (switch_to_exception_section): Always build.
10500         (output_one_function_exception_table): Move section switch,
10501         personality output, and label output ...
10502         (output_function_exception_table): ... here.  Use the new
10503         personality hook.
10504
10505         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
10506         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
10507         TARGET_ASM_INIT_SECTIONS): New.
10508         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
10509         make static.
10510         (TARGET_ASM_UNWIND_EMIT): Update to match.
10511         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
10512
10513         * config/arm/arm.c (arm_asm_emit_except_personality): New.
10514         (arm_asm_init_sections): New.
10515         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
10516
10517 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10518
10519         * config/arm/arm.md: Remove unused variable.
10520
10521 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
10522
10523         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
10524         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
10525         (m32r_memory_move_cost): New function.
10526
10527 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
10528
10529         * config.gcc: Append t-android for Android targets.
10530
10531         * config/t-android: New.
10532
10533 2010-09-07  Richard Henderson  <rth@redhat.com>
10534
10535         * target.def (unwind_emit_before_insn): New hook.
10536         * doc/tm.texi.in: Add @hook marker for it.
10537         * doc/tm.texi: Rebuild.
10538         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
10539
10540 2010-09-07  Martin Jambor  <mjambor@suse.cz>
10541
10542         PR fortran/43665
10543         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
10544         are any type attributes.
10545
10546 2010-09-07  Jan Hubicka  <jh@suse.cz>
10547
10548         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
10549         array_ref_low_bound in string access folding.
10550
10551 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
10552
10553         PR target/45206
10554         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
10555         eh_return fixup sequence.
10556
10557 2010-09-07  Jan Hubicka  <jh@suse.cz>
10558
10559         * gimple-fold.c (maybe_fold_reference): Verify that operand is
10560         gimple_min_invariant.
10561
10562 2010-09-07  Richard Guenther  <rguenther@suse.de>
10563
10564         PR middle-end/45569
10565         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
10566         nor CONSTRUCTOR can trap.
10567         * tree-complex.c (update_complex_assignment): Update EH info.
10568
10569 2010-09-07  Richard Guenther  <rguenther@suse.de>
10570
10571         PR middle-end/45569
10572         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
10573         * passes.c (execute_function_todo): Do not verify anything if
10574         we saw errors.
10575
10576 2010-09-07  Richard Guenther  <rguenther@suse.de>
10577
10578         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
10579
10580 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
10581
10582         PR target/43137
10583         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
10584         New define_mode_attrs.
10585         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
10586         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
10587         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
10588         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
10589         Remove pool_range attribute.
10590         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
10591         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
10592         pool_range and neg_pool_range attributes.
10593         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
10594         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
10595         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
10596
10597 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
10598
10599         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
10600         check glibc.
10601
10602 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
10603
10604         PR target/22152
10605         * config/i386/mmx.md (*mov<mode>_internal_rex64,
10606         *mov<mode>_internal_avx, *mov<mode>_internal,
10607         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
10608         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
10609
10610 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
10611
10612         * c-typeck.c (do_warn_double_promotion): Remove.
10613         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
10614         Objective-C++ too.
10615
10616 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
10617
10618         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
10619         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
10620         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
10621         argument type to reg_class_t. Change result type to bool.
10622         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
10623
10624 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
10625
10626         PR libobjc/19850
10627         * gthr-posix.h (__gthread_objc_thread_detach): Use
10628         _objc_thread_attribs when detaching a thread.
10629         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
10630
10631 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
10632
10633         PR target/45524
10634         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
10635         * configure: Regenerated.
10636
10637 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10638
10639         * combine.c (try_combine): Set subst_low_luid to i0.
10640
10641 2010-09-06  Richard Guenther  <rguenther@suse.de>
10642
10643         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
10644         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
10645         (build_aligned_type): Declare.
10646         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
10647         (check_aligned_type): New function.
10648         (build_aligned_type): Likewise.
10649         * expr.c (expand_assignment): Handle misaligned stores via
10650         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
10651         (expand_expr_real_1): Likewise.
10652         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
10653         * tree-vect-stmts.c (vectorizable_store): Do not build
10654         MISALIGNED_INDIRECT_REF but initialize alignment information.
10655         (vectorizable_load): Likewise.
10656         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
10657         handling.
10658         * cfgexpand.c (expand_debug_expr): Likewise.
10659         * dwarf2out.c (loc_list_from_tree): Likewise.
10660         * fold-const.c (maybe_lvalue_p): Likewise.
10661         (operand_equal_p): Likewise.
10662         (build_fold_addr_expr_with_type_loc): Likewise.
10663         * gimplify.c (gimplify_addr_expr): Likewise.
10664         (gimplify_expr): Likewise.
10665         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
10666         (verify_gimple_assign_single): Likewise.
10667         * tree-dump.c (dequeue_and_dump): Likewise.
10668         (tree_could_trap_p): Likewise.
10669         * tree-predcom.c (ref_at_iteration): Likewise.
10670         * tree-pretty-print.c (dump_generic_node): Likewise.
10671         (op_code_prio): Likewise.
10672         (op_symbol_code): Likewise.
10673         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
10674         * tree-ssa-loop-im.c (for_each_index): Likewise.
10675         (gen_lsm_tmp_name): Likewise.
10676         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
10677         (find_interesting_uses_address): Likewise.
10678         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
10679         * tree-ssa-operands.c (get_expr_operands): Likewise.
10680         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
10681         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10682         (ao_ref_init_from_vn_reference): Likewise.
10683         * tree.c (staticp): Likewise.
10684         (build1_stat): Likewise.
10685         (reference_alias_ptr_type): Likewise.
10686         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
10687         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
10688         MISALIGNED_INDIRECT_REF handling.
10689
10690 2010-09-06  Richard Guenther  <rguenther@suse.de>
10691
10692         PR tree-optimization/45534
10693         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
10694         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
10695         on the target.
10696         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
10697         valid on the target.
10698
10699 2010-09-06  Andreas Schwab  <schwab@redhat.com>
10700
10701         * configure.ac: Quote argument of AC_MSG_WARN.
10702         * configure: Regenerate.
10703
10704 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
10705
10706         * sel-sched.c (move_cond_jump): Correct arguments to
10707         maybe_tidy_empty_bb.
10708         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
10709
10710 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
10711
10712         PR rtl-optimization/44919
10713         * sel-sched.c (move_cond_jump): Remove assert, check that
10714         the several blocks case can only happen with mutually exclusive
10715         insns instead.  Rewrite the movement code to support moving through
10716         several basic blocks.
10717
10718 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
10719
10720         * config/i386/i386.md (iptrsize): New mode attribute.
10721         (tp_seg): Ditto.
10722         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
10723         mode iterator.
10724         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
10725         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
10726         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
10727         (stack_tls_protect_set_<mode>): Ditto from
10728         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
10729         of thread base pointer load.
10730         (stack_tls_protect_test_<mode>): Ditto from
10731         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
10732         of thread base pointer load.
10733         (stack_protect_set): Rewrite using indirect functions.
10734         (stack_protect_test): Ditto.
10735         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
10736         (ix86_print_operand): Handle '@'.
10737
10738 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
10739
10740         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
10741         MINUS_EXPR.
10742
10743 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
10744
10745         * doc/invoke.texi: Document -Wdouble-promotion.
10746         * c-typeck.c (convert_arguments): Check for implicit conversions
10747         from float to double.
10748         (do_warn_double_promotion): New function.
10749         (build_conditional_expr): Use it.
10750         (build_binary_op): Likewise.
10751
10752 2010-09-05  Richard Guenther  <rguenther@suse.de>
10753
10754         PR tree-optimization/45535
10755         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
10756         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
10757         dereferencing it.
10758         (indirect_refs_may_alias_p): Likewise.
10759
10760 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
10761
10762         * config/sh/sh.c (sh_option_override): Make static.
10763         Adjust comments.  Declare.
10764         (sh_function_value_regno_p): Likewise.
10765         (sh_register_move_cost): Modify the arguments, make static.
10766         Adjust comments.  Declare.
10767         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
10768         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10769         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
10770         REGISTER_MOVE_COST): Delete.
10771         * config/sh/sh-protos.h (sh_override_options): Delete.
10772         (sh_register_move_cost): Delete.
10773         (sh_function_value_regno_p): Delete.
10774
10775 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
10776
10777         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
10778         m32r_function_value_regno_p): New functions.
10779         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10780         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
10781         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
10782         FUNCTION_VALUE_REGNO_P): Remove.
10783
10784 2010-09-04  Jan Hubicka  <jh@suse.cz>
10785
10786         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
10787         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
10788         fold_read_from_constant_string.
10789
10790         * gimple.h (canonicalize_constructor_val): Declare.
10791         * gimple-fold.c (canonicalize_constructor_val): New function.
10792         (get_symbol_constant_value):Use it.
10793         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
10794
10795 2010-09-04  Jan Hubicka  <jh@suse.cz>
10796
10797         * tree-switch-conversion.c (build_one_array): Set constructor to be
10798         static.
10799         * varpool.c (varpool_finalize_decl): Compute const_value_known.
10800
10801 2010-09-04  Richard Guenther  <rguenther@suse.de>
10802
10803         PR bootstrap/45519
10804         * tree-flow.h (force_gimple_operand_1): Declare.
10805         (force_gimple_operand_gsi_1): Likewise.
10806         * gimplify.c (force_gimple_operand_1): New worker taking a
10807         gimple predicate for ...
10808         (force_gimple_operand): ... which now wraps it.
10809         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
10810         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
10811         last change.
10812         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
10813         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
10814         (create_mem_ref): Likewise.
10815
10816 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
10817
10818         * config/i386/predicates.md (sse_reg_operand): New predicate.
10819         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
10820         predicate for operand 1.
10821         (XFmode push splitter): Use fp_register_operand predicate
10822         for operand 1.
10823         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
10824         (SF-DF float_extend push splitter): Add reload_completed insn
10825         predicate.
10826         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
10827         MODEF mode macro.  Add reload_completed insn predicate.
10828
10829 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
10830
10831         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
10832         (struct df_extract_ref): Remove.
10833         (union df_ref_d): Remove extract_ref member.
10834         (df_ref_create): Remove last three arguments.
10835         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
10836         * df-scan.c (df_ref_record): Remove last three arguments, do not
10837         pass them to df_ref_create_structure.
10838         (df_uses_record): Remove first and last three arguments.  Replace
10839         first argument with DF_REF_REGULAR, adjust calls to remove the
10840         width, offset and mode.  Always call recursively on the second
10841         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
10842         (df_ref_create_structure): Remove first argument.
10843         (struct df_scan_problem_data): Remove ref_extract_pool.
10844         (df_scan_free_internal): Do not free it.
10845         (df_scan_alloc): Do not allocate it.
10846         (df_ref_create): Remove last three arguments, do not pass them to
10847         df_ref_create_structure.
10848         (df_free_ref): Remove DF_REF_EXTRACT case.
10849         (df_notes_rescan): Adjust call to df_uses_record.
10850         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
10851         Remove DF_REF_EXTRACT case.
10852         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
10853         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
10854         and SUBREG definitions.
10855         (df_get_conditional_uses): Remove references to width/offset/mode,
10856         adjust call to df_ref_create_structure.
10857         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
10858         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
10859         calls to df_uses_record and df_ref_record.
10860         * fwprop.c (update_df): Remove references to width/offset/mode,
10861         adjust call to df_ref_create.
10862
10863 2010-09-03  Jan Hubicka  <jh@suse.cz>
10864
10865         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
10866         (build_cdtor_fns): Update use of build_cdtor.
10867
10868 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
10869
10870         * doc/options.texi (SeparateAlias): Document.
10871         * opt-functions.awk (switch_flags): Handle SeparateAlias.
10872         * opth-gen.awk: Generate enumeration names for options marked
10873         SeparateAlias, but not for those marked Ignore.
10874         * opts-common.c (generate_canonical_option): Don't output separate
10875         argument for options marked CL_SEPARATE_ALIAS.
10876         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
10877         * opts.h (CL_SEPARATE_ALIAS): New.
10878         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
10879         CL_COMMON): Adjust definitions.
10880         * config/i386/darwin.opt, config/mips/sde.opt: New.
10881         * common.opt (fdump-final-insns): New.
10882         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
10883         i386/darwin.opt.
10884         (mips*-sde-elf*): Add mips/sde.opt.
10885         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
10886         -mno-data-in-code and -mcode-xonly here.
10887         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
10888         * gcc.c (option_map): Add "j" to --dump entry.
10889         (translate_options): Don't translate -d to -foutput-class-dir= here.
10890
10891 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
10892
10893         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
10894         DR_IS_WRITE.
10895         (compute_all_dependences): Same.
10896         (create_rdg_edge_for_ddr): Same.
10897         * tree-data-ref.h (DR_IS_WRITE): New.
10898         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
10899         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
10900         (write_memrefs_written_at_least_once): Same.
10901         * tree-predcom.c (suitable_component_p): Same.
10902         (determine_roots_comp): Same.
10903         (execute_load_motion): Same.
10904         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
10905         (vect_enhance_data_refs_alignment): Same.
10906         (vect_analyze_group_access): Same.
10907
10908 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
10909
10910         PR testsuite/42843
10911         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
10912         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
10913
10914 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
10915
10916         * dwarf2out.c (file scope): Remove #if0'd code.
10917         (gen_subprogram_die): Same.
10918
10919 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10920
10921         PR middle-end/45484
10922         * dwarf2out.c (flush_queued_reg_saves): Rename to...
10923         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
10924         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
10925         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
10926         * config/i386/i386.c (output_set_got): Call it.
10927
10928 2010-09-03  Michael Matz  <matz@suse.de>
10929
10930         PR middle-end/45415
10931         * tree-sra.c (sra_modify_assign): If we modify the statement,
10932         say so.
10933
10934         * tree-ssa.c (verify_ssa): Check number of operands and links
10935         per statement to agree.
10936
10937 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10938             Iain Sandoe  <iains@gcc.gnu.org>
10939
10940         PR target/45476
10941         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
10942         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
10943         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
10944
10945 2010-09-03  Richard Guenther  <rguenther@suse.de>
10946
10947         * lto-streamer-out.c (output_function): Output function
10948         start and end loci.
10949         * lto-streamer-in.c (input_function): Input function start
10950         and end loci.
10951
10952 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10953
10954         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
10955         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
10956         * configure: Regenerate.
10957         * aclocal.m4: Regenerate.
10958
10959 2010-09-03  Jan Hubicka  <jh@suse.cz>
10960
10961         PR lto/44812
10962         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
10963         on functions/variables in other partition.
10964
10965 2010-09-03  Jan Hubicka  <jh@suse.cz>
10966
10967         * cgraph.h (struct varpool_node): Add const_value_known.
10968         (varpool_decide_const_value_known): Declare.
10969         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
10970         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
10971         (input_varpool_node): Restore const_value_known.
10972         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
10973         initializer folding.
10974         * ipa.c (ipa_discover_readonly_nonaddressable_var,
10975         function_and_variable_visibility): Compute const_value_known.
10976         * gimple-fold.c (get_symbol_constant_value): Use varpool for
10977         initializer folding.
10978         * varpool.c (varpool_decide_const_value_known): New function.
10979
10980 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
10981
10982         * config/i386/i386.md: Remove empty preparation statements
10983         from splitters.
10984
10985 2010-09-03  Jan Hubicka  <jh@suse.cz>
10986
10987         * passes.c (rest_of_decl_compilation): Do not add local vars into
10988         varpool.
10989         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
10990         static or extern vars are in varpool.
10991         (varpool_finalize_decl): Sanity check that only static vars are
10992         finalized.
10993
10994 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
10995
10996         PR debug/45500
10997         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
10998         not just generic vectors with BLKmode.
10999
11000 2010-09-03  Richard Guenther  <rguenther@suse.de>
11001
11002         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
11003         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
11004         * tree.h (TMR_SYMBOL): Remove.
11005         (TMR_BASE, TMR_OFFSET): Adjust.
11006         (TMR_INDEX2): New.
11007         * alias.c (ao_ref_from_mem): Use TMR_BASE.
11008         * builtins.c (get_object_alignment): Merge TMR_BASE and
11009         TMR_SYMBOL handling.
11010         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
11011         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
11012         handling.  Also allow TARGET_MEM_REF as base address.
11013         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
11014         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
11015         base.  Gimplify TMR_INDEX2.
11016         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
11017         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11018         (get_addr_base_and_unit_offset): Likewise.
11019         * tree-eh.c (tree_could_trap_p): Likewise.
11020         * tree-pretty-print.c (dump_generic_node): Likewise.
11021         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
11022         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
11023         base to index2.
11024         (get_address_description): Reconstruct addres description
11025         from merged TMR_BASE and TMR_INDEX2.
11026         (maybe_fold_tmr): Fold propagated addresses.
11027         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
11028         MEM_REF and TARGET_MEM_REF paths.
11029         (indirect_refs_may_alias_p): Likewise.
11030         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
11031         instead of TMR_SYMBOL.
11032         * tree-ssa-operands.c (get_tmr_operands): Simplify.
11033         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
11034         according to changes ...
11035         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
11036         Split TARGET_MEM_REF into two fields plus the base.
11037         * tree.c (mem_ref_offset): Simplify.
11038         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
11039         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
11040         Strip NOPs when folding MEM_REF addresses.
11041         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
11042         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
11043         (fold_gimple_assign): ... not here.
11044
11045 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
11046
11047         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
11048         * config/mips/mips.c (mips_shift_truncation_mask): New function.
11049         (TARGET_SHIFT_TRUNCATION_MASK): Define.
11050
11051 2010-09-02  Richard Henderson  <rth@redhat.com>
11052
11053         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
11054         instead of readelf in the test.
11055         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
11056         in the .debug_frame section for coff targets.
11057         * configure: Rebuild.
11058
11059 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
11060
11061         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
11062         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
11063         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11064         (m32c_class_likely_spilled_p): Make static. Change argument type to
11065         reg_class_t. Change result type to bool.
11066
11067 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11068
11069         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
11070         to convert (double)(long) into a single FRIZ instruction or not
11071         when -ffast-math is used.
11072
11073         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
11074         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
11075         or FRIZ instruction if -ffast-math.
11076         * config/rs6000/rs6000.md (friz): Ditto.
11077
11078         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
11079
11080 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11081
11082         * opth-gen.awk (quote, comma): Remove unused variables.
11083
11084 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
11085
11086         * arm.c (arm_override_options): Correct fall-back code to use
11087         SUBTARGET_CPU_DEFAULT.
11088
11089 2010-09-02  Julian Brown  <julian@codesourcery.com>
11090
11091         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
11092         unspecs.
11093         (vcond<mode>, vcondu<mode>): New expanders.
11094         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
11095         comparisons with zero.
11096         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
11097         * config/arm/constraints.md (Dz): New constraint.
11098
11099 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
11100
11101         * target.def (class_likely_spilled_p): New hook.
11102         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
11103         * doc/tm.texi: Regenerate.
11104         * targhooks.c (default_class_likely_spilled_p): New function.
11105         * targhooks.h (default_class_likely_spilled_p): Declare.
11106         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
11107         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
11108         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
11109         Use fixed_reg_set instead of fixed_regs.
11110         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
11111         * calls.c (avoid_likely_spilled_reg): Ditto.
11112         * ira-conflicts.c (ira_build_conflicts): Ditto.
11113         * ira.c (update_equiv_regs): Ditto.
11114         * mode-switching.c (create_pre_exit): Ditto.
11115         * regmove.c (find_matches): Ditto.
11116         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
11117         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
11118         (small_register_class_p): New inline function.
11119         (push_secondary_reload, find_reusable_reload, find_reloads): Use
11120         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
11121
11122         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
11123         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
11124         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11125
11126 2010-09-02  Richard Guenther  <rguenther@suse.de>
11127
11128         PR tree-optimization/44937
11129         PR tree-optimization/45412
11130         * ipa-split.c (split_function): Properly remove PHI nodes.
11131
11132 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11133
11134         * opts.h (struct cl_option): Add warn_message field.
11135         (struct cl_decoded_option): Add warn_message field.
11136         * doc/options.texi (Ignore, Warn): Document.
11137         * opt-functions.awk (needs_state_p): Don't consider aliases or
11138         ignored options to need state saved.
11139         * optc-gen.awk: Handle Warn and Ignore.
11140         * opth-gen.awk: Output OPT_SPECIAL_ignore.
11141         * opts-common.c (decode_cmdline_option): Set warn_message field.
11142         Handle ignored options.
11143         (decode_cmdline_options_to_array, generate_option,
11144         generate_option_input_file): Set warn_message field.
11145         (read_cmdline_option): Generate warnings from warn_message field.
11146         Handle ignored options.
11147         * common.opt (Wunreachable-code, fargument-alias,
11148         fargument-noalias, fargument-noalias-global,
11149         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
11150         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
11151         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
11152         ftree-salias): Mark Ignore.
11153         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
11154         -mintel-syntax and -mno-intel-syntax here.
11155         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
11156         using Warn.
11157         * opts.c (common_handle_option): Don't handle options marked as
11158         ignored.
11159         (enable_warning_as_error): Handle ignored options.
11160
11161 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
11162
11163         PR driver/44076
11164         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
11165         alias_target fields.
11166         * opt-functions.awk (opt_sanitized_name): Don't handle
11167         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
11168         * optc-gen.awk: Generate alias fields.
11169         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
11170         Don't generate such constants for aliases.
11171         * opts-common.c (generate_canonical_option): New.
11172         (decode_cmdline_option): Handle aliases.  Use
11173         generate_canonical_option for known options instead of copying the
11174         input option text.
11175         * doc/options.texi (Alias): Document.
11176         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
11177         fstack-check, specs): Mark as aliases.
11178         * gcc.c (driver_handle_option): Canonicalize -L options to joined
11179         arguments.
11180         (driver_handle_option): Don't handle OPT_specs.
11181         * opts.c (common_handle_option): Don't handle options marked as
11182         aliases.
11183         (enable_warning_as_error): Handle aliases.
11184         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
11185         OPT_Wlarger_than_eq.
11186         * tree-optimize.c (tree_rest_of_compilation): Use
11187         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
11188
11189 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11190
11191         * config/i386/i386.md (nonmemory_operand): New mode attribute.
11192         (push memory peephole2): Macroize peepholes using SWI mode iterator.
11193         (move immediate to memory peephole2): Macroize peepholes using
11194         SWI124 mode iterator.
11195         (non-pairable NOT peephole2): Macroize peepholes using SWI124
11196         mode iterator.
11197         (simple lea add peephole2): Macroize peepholes using SWI48
11198         mode iterator.
11199         (simple lea mult peephole2): Ditto.
11200         (imul by 3,5,9 to lea peephole2): Ditto.
11201         (mov $-1, reg peephole2): Macroize peepholes using SWI248
11202         mode iterator.
11203         (imul $32bit_imm,mem,reg peephole2): Ditto.
11204         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
11205
11206 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
11207
11208         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
11209
11210 2010-09-02  Olivier Hainque  <hainque@adacore.com>
11211
11212         PR middle-end/44763
11213         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
11214         (allocno_priority_compare_func): Use it instead of a straight
11215         difference computation over priorities.
11216
11217 2010-09-02  Andi Kleen  <ak@linux.intel.com>
11218
11219         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
11220
11221 2010-09-02  Ira Rosen  <irar@il.ibm.com>
11222
11223         * tree-vectorizer.h (get_later_stmt): New function.
11224         (vect_analyze_data_ref_dependences): Add argument.
11225         * tree-vect-loop.c (vect_analyze_loop): Update call to
11226         vect_analyze_data_ref_dependences.
11227         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
11228         New function.
11229         (vect_analyze_data_ref_dependence): Add argument for basic block
11230         dependencies. Check dependencies in basic block vectorization.
11231         (vect_analyze_data_ref_dependences): Add argument and update call to
11232         vect_analyze_data_ref_dependences.
11233         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
11234         (vect_bb_vectorizable_with_dependencies): New.
11235         (vect_slp_analyze_bb): Check dependencies in basic block.
11236         (vect_schedule_slp_instance): Insert stores before the last store in
11237         SLP instance.
11238
11239 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
11240
11241         PR target/45476
11242         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
11243         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
11244
11245 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
11246
11247         PR middle-end/45458
11248         * bb-reorder.c (add_labels_and_missing_jumps): Treat
11249         bbs ending with throwing insns like blocks ending with a call.
11250         (fix_up_fall_thru_edges): Likewise.
11251
11252 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
11253
11254         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
11255         (m32c_function_arg_advance): Delete.
11256         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11257         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
11258         comments.  Take a const_tree and a bool.  Declare.
11259         (m32c_function_arg_advance): Likewise.
11260         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11261
11262 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11263
11264         PR target/45476
11265         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
11266         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
11267         * config/i386/mingw32.h: ... here.
11268
11269 2010-09-01  Andi Kleen  <ak@linux.intel.com>
11270
11271         PR lto/45475
11272         * lto-streamer-in.c (lto_input_ts_target_option): Add.
11273         (lto_input_tree_pointers): Call lto_input_ts_target_option.
11274         * lto-streamer-out (lto_output_ts_target_option): Add.
11275         (lto_output_tree_pointers): Call lto_output_ts_target_option.
11276
11277 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
11278
11279         PR/target 45452
11280         * config/i386/cygwin.h: Change order of specified import libraries.
11281         * config/i386/mingw32.h: Likewise.
11282         * config/i386/t-cygwin: Likewise.
11283         * config/i386/t-mingw32: Likewise.
11284         * config/i386/t-mingw-w32: Likewise.
11285         * config/i386/t-mingw-w64: Likewise.
11286
11287 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11288
11289         * config/arm/neon-schedgen.ml (core): New type.
11290         (allCores): List of supported cores.
11291         (availability_table): Add supported cores.
11292         (collate_bypasses): Accept core as a parameter.
11293         (worst_case_latencies_and_bypasses): Accept core as a parameter.
11294         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
11295         and coreStr to get tune attribute and prefix for functional units.
11296         (emit_bypasses): Accept core name and use it.
11297         (calculate_per_core_availability_table): New.
11298         (filter_core): New.
11299         (calculate_core_availability_table): New.
11300         (main): Use calculate_core_availablity_table.
11301         * config/arm/cortex-a8-neon.md: Update copyright year.
11302         Regenerated from ml file and merged in.
11303         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
11304         cortex_a8_neon_mrc.
11305
11306 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
11307
11308         * Makefile.in (tree-switch-conversion.o): Update dependencies.
11309
11310 2010-09-01  Richard Guenther  <rguenther@suse.de>
11311
11312         * alias.c (ao_ref_from_mem): Adjust.
11313         * builtins.c (get_object_alignment): Likewise.
11314         * cfgexpand.c (expand_debug_expr): Likewise.
11315         * gimple.c (get_base_address): Likewise.
11316         * tree-dfa.c (get_ref_base_and_extent): Likewise.
11317         (get_addr_base_and_unit_offset): Likewise.  Fix for
11318         both TMR_SYMBOL and TMR_BASE being set.
11319         * tree-eh.c (tree_could_trap_p): Likewise.
11320         * gimplify.c (gimplify_expr): Do not attempt to gimplify
11321         TMR_SYMBOL.  Always gimplify TMR_BASE.
11322         * tree-cfg.c (verify_types_in_gimple_reference): Verify
11323         TMR_BASE if there is a TMR_SYMBOL.
11324         * tree-pretty-print.c (dump_generic_node): Adjust.
11325         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
11326         (tree_mem_ref_addr): Likewise.
11327         (create_mem_ref_raw): Likewise.
11328         (move_fixed_address_to_symbol): Likewise.
11329         (create_mem_ref): Likewise.
11330         (dump_mem_address): Likewise.
11331         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
11332         Fix for both TMR_SYMBOL and TMR_BASE being set.
11333         (indirect_refs_may_alias_p): Likewise.
11334         * tree-ssa-operands.c (get_tmr_operands): Adjust.
11335         * tree.def (TARGET_MEM_REF): Adjust documentation.
11336
11337 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11338
11339         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
11340         Rename from X86_TUNE_ADD_ESP_4.
11341         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
11342         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
11343         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
11344         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
11345         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
11346         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
11347         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
11348         * config/i386/i386.c (initial_ix86_tune_features)
11349         <X86_TUNE_SINGLE_POP>: Invert members.
11350         <X86_TUNE_DOUBLE_POP>: Ditto.
11351         <X86_TUNE_SINGLE_PUSH>: Ditto.
11352         <X86_TUNE_DOUBLE_PUSH>: Ditto.
11353         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
11354         No longer exported.
11355         (push peephole2 patterns): Macroize peepholes using P mode iterator.
11356         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
11357         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
11358         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
11359
11360 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
11361
11362         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
11363         a volatile LHS if the constructor has only one element.
11364
11365 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
11366
11367         PR bootstrap/45321
11368         * tree.c (stdarg_p): Make fntype parameter const.
11369         * tree.h (stdarg_p): Likewise.
11370         (function_args_iterator): Remove unused fntype field.
11371         (function_args_iter_init): Do not initialize fntype
11372         field.  Make fntype parameter const.
11373
11374 2010-09-01  Richard Guenther  <rguenther@suse.de>
11375
11376         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
11377         estimate.
11378         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
11379         (execute_vrp): Compute number of iteration estimates.
11380         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
11381         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
11382         * tree-data-ref.c (estimated_loop_iterations): Adjust.
11383         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
11384         Infer loop bounds from undefined behavior based on a new parameter.
11385         (estimate_numbers_of_iterations): Likewise.
11386         (scev_probably_wraps_p): Adjust.
11387         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
11388
11389 2010-09-01  Nick Clifton  <nickc@redhat.com>
11390
11391         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
11392         where appropriate.
11393         (xstormy16_legitimate_address_p): Use true and false instead of 1
11394         and 0.
11395         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
11396         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
11397         magic constant 2.
11398         (xstormy16_expand_call): Fix comment at start of function.
11399
11400 2010-09-01  Nick Clifton  <nickc@redhat.com>
11401
11402         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
11403         when pushing accumulator register.
11404         (rx_get_stack_layout): Always save call clobbered registers inside
11405         interrupt handlers.
11406         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
11407
11408 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
11409
11410         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
11411         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
11412
11413         * libgcc-std.ver (GCC_4.6.0): Define version.
11414
11415 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
11416
11417         * tree-nested.c (convert_all_function_calls): Iterate until after the
11418         sum of static chains in the nest doesn't change.
11419
11420 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
11421
11422         * config/m32c/m32c.c (classes_intersect): Remove.
11423         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
11424         reg_classes_intersect_p instead of classes_intersect.
11425         (class_can_hold_mode): Change arguments type from enum reg_class to
11426         reg_class_t.  Use reg_class_contents instead of class_contents.
11427         (m32c_register_move_cost): Make static. Change arguments type from
11428         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
11429         classes_intersect. Use reg_class_contents instead of class_contents.
11430         (m32c_memory_move_cost): Make static. Change arguments type from
11431         enum reg_class to reg_class_t.
11432         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11433         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11434         * config/m32c/m32c-protos.h (m32c_register_move_cost,
11435         m32c_memory_move_cost): Remove.
11436
11437 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11438
11439         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
11440         (arm_function_arg): Delete.
11441         (arm_needs_doubleword_align): Take a const_tree.
11442         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11443         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
11444         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
11445         (arm_function_arg): Make static.  Take a const_tree and a bool.
11446         (arm_function_arg_advance): Likewise.
11447         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11448
11449 2010-08-31  Andi Kleen  <ak@linux.intel.com>
11450
11451         * common.opt (fwhopr=): Update for -fwhopr=jobserver
11452         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
11453         * lto-wrapper.c (run_gcc): Add jobserver mode.
11454         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
11455         argument.
11456
11457 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
11458
11459         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
11460         (popsi1): Ditto.
11461         (*popdi1_epilogue): Ditto.
11462         (*popsi1_epilogue): Ditto.
11463         (popsi, popdi peephole2 patterns): Update peepholes for changed
11464         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
11465
11466         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
11467         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
11468
11469         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
11470         (override_options): Do not initialize removed ix86_gen_pop1.
11471         (gen_pop): New static function.
11472         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
11473         (release_scratch_register_on_entry): Ditto.
11474         (ix86_restore_reg_using_pop): Ditto.
11475         (ix86_expand_epilogue): Ditto.
11476
11477 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
11478
11479         PR middle-end/45461
11480         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
11481
11482 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11483
11484         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
11485         semicolons.
11486
11487 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11488
11489         * doc/extend.texi: Fix documentation of the return value of
11490         __builtin_choose_expr.
11491
11492 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11493
11494         * config/v850/v850-protos.h (function_arg): Delete.
11495         * config/v850/v850.h (FUNCTION_ARG): Delete.
11496         (FUNCTION_ARG_ADVANCE): Move code to...
11497         * config/v850/v850.c (v850_function_arg_advance): ...here.
11498         (v850_function_arg): Make static.  Take a const_tree and a bool.
11499         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11500
11501 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11502
11503         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
11504         these...
11505         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
11506         ...and these...
11507         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
11508         ..to here..
11509         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
11510         ...and here.
11511         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11512
11513 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
11514
11515         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
11516         Delete.
11517         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11518         * config/rx/rx.c (rx_function_arg_size): Make static.
11519         (rx_function_arg): Likewise.
11520         (rx_function_arg_advance): New function.
11521         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11522
11523 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
11524
11525         * config/arm/arm.c (arm_override_options): Remove superfluous test.
11526         Fix indentation.
11527
11528 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
11529
11530         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
11531         (dwarf2out_decl) <CONST_DECL>: Likewise.
11532
11533 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
11534
11535         Stack usage support
11536         * common.opt (-fstack-usage): New option.
11537         * doc/invoke.texi (Debugging options): Document it.
11538         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
11539         allocate_dynamic_stack_space.
11540         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
11541         and propagate it to allocate_dynamic_stack_space.
11542         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
11543         * calls.c (initialize_argument_information): Pass TRUE as 4th
11544         argument to allocate_dynamic_stack_space.
11545         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
11546         to 1 when pushing a variable-sized argument onto the stack.  Pass
11547         TRUE as 4th argument to allocate_dynamic_stack_space.
11548         Update current_function_pushed_stack_size.
11549         (emit_library_call_value_1): Likewise.
11550         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
11551         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
11552         attempt to find an upper bound.  Remove redundant code for the
11553         SETJMP_VIA_SAVE_AREA case.
11554         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
11555         * function.h (struct stack_usage): New structure.
11556         (current_function_static_stack_size): New macro.
11557         (current_function_dynamic_stack_size): Likewise.
11558         (current_function_pushed_stack_size): Likewise.
11559         (current_function_dynamic_alloc_count): Likewise.
11560         (current_function_has_unbounded_dynamic_stack_size): Likewise.
11561         (current_function_allocates_dynamic_stack_space): Likewise.
11562         (struct function): Add new field 'su'.
11563         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
11564         add the value of the dynamic offset to the dynamic stack usage.
11565         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
11566         for variable-sized objects.
11567         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
11568         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
11569         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
11570         BUILT_IN_ALLOCA for variable-sized objects.
11571         * output.h (output_stack_usage): Declare.
11572         * toplev.c (stack_usage_file): New file pointer.
11573         (output_stack_usage): New function.
11574         (open_auxiliary_file): Likewise.
11575         (lang_dependent_init): Open file if flag_stack_usage is set.
11576         (finalize): Close file if stack_usage_file is not null.
11577         * tree.h (ALLOCA_FOR_VAR_P): New macro.
11578         * config/alpha/alpha.c (compute_frame_size): New function.
11579         (alpha_expand_prologue): Use it.
11580         (alpha_start_function): Likewise.
11581         (alpha_expand_epilogue): Likewise.  Set stack usage info.
11582         * config/i386/i386.c (ix86_expand_prologue): Likewise.
11583         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
11584         * config/mips/mips.c (mips_expand_prologue): Likewise.
11585         * config/pa/pa.c (hppa_expand_prologue): Likewise.
11586         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
11587         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
11588
11589 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
11590
11591         PR tree-optimization/45427
11592         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
11593         Handle the case that the exit is never taken correctly.
11594         (number_of_iterations_ne): Pass exit_must_be_taken to
11595         number_of_iterations_ne_max.
11596
11597 2010-08-30  Catherine Moore  <clm@codesourcery.com>
11598
11599         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
11600         Infer -mdspr2 for the the 74K.
11601
11602 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
11603
11604         PR debug/45419
11605         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
11606
11607         PR middle-end/45423
11608         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
11609         and TRUTH_{AND,OR,XOR}_EXPR.
11610         * c-parser.c (c_parser_omp_atomic): Handle boolean
11611         {PRE,POST}_{INC,DEC}REMENT.
11612
11613 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
11614
11615         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
11616         (function_arg): Delete.
11617         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11618         (FUNCTION_INCOMING_ARG): Delete.
11619         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
11620         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
11621         and a bool.
11622         (function_arg): Rename to...
11623         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
11624         a bool.
11625         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
11626         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11627         (TARGET_FUNCTION_INCOMING_ARG): Define.
11628
11629 2010-08-30  Richard Guenther  <rguenther@suse.de>
11630
11631         PR tree-optimization/21602
11632         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
11633         using points-to information.
11634
11635 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
11636
11637         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
11638
11639 2010-08-30  Richard Guenther  <rguenther@suse.de>
11640
11641         PR tree-optimization/45449
11642         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
11643         variables.
11644
11645 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
11646
11647         * opts.h (CL_ERR_NEGATIVE): Define.
11648         * opts.c (unknown_option_callback): Don't postpone warnings for
11649         options marked with CL_ERR_NEGATIVE.
11650         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
11651         for negative versions of CL_REJECT_NEGATIVE options.
11652
11653 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
11654
11655         * config/i386/i386.md (zero_extendsidi2_1): Rename from
11656         zero_extendsidi2_32.
11657         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
11658         using SWI12 mode iterator.
11659         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
11660         to define_insn_and_split pattern.
11661         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
11662         using SWI24 mode iterator.
11663         (*zero_extendqi<mode>2_and): Macroize insn from
11664         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
11665         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
11666         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
11667         SWI24 mode iterator.
11668         (*zero_extendqi<mode>2_movzbl): Ditto from
11669         *zero_extendqi{hi,si}2_movzbl.
11670         (extendsidi2_1): Rename from extendsidi2_32.
11671         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
11672         SWI12 mode iterator.
11673
11674 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
11675
11676         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
11677         general purpose registers.
11678         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
11679         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
11680         with general purpose registers and memory operands.  Add associated
11681         CCImode post-reload splitter.
11682         * config/ia64/div.md: Change BImode to CCImode throughout.
11683
11684 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
11685
11686         * config/ia64/ia64.md (cstorebi4): Fix thinko.
11687
11688 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
11689
11690         * config/picochip/picochip.c (reorder_var_tracking_notes): This
11691         function was dropping debug insns which caused PR45299.
11692
11693 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
11694
11695         * config/i386/sse.md (extsuffix): New code attribute.
11696         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
11697         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
11698         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
11699         and sse4_1_zero_extendv4qiv4si2.
11700         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
11701         and sse4_1_zero_extendv2qiv2di2.
11702         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
11703         and sse4_1_zero_extendv4hiv4si2.
11704         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
11705         and sse4_1_zero_extendv2hiv2di2.
11706         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
11707         and sse4_1_zero_extendv2siv2di2
11708
11709         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
11710         using any_extend code iterator.
11711         (*avx_<s>mulv8hi3_highpart): Macroize insn from
11712         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
11713         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
11714
11715         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
11716         gen_sse4_1_sign_extend* functions.
11717         (struct builtin_description bdesc_args): Ditto.
11718
11719 2010-08-27  Xinliang David Li  <davidxl@google.com>
11720
11721         PR/45422
11722         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
11723         (iv_ca_set_no_cp): Update used inv expr count.
11724         (iv_ca_set_cp): Ditto.
11725         (iv_ca_new): Initialize new member.
11726         (iv_ca_free): Free memory.
11727
11728 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11729
11730         * config/sh/sh-protos.h (sh_function_arg): Delete.
11731         (sh_function_arg_advance): Delete.
11732         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11733         (PASS_IN_REG_P): Eliminate cast.
11734         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
11735         const_tree and a bool.
11736         (sh_function_arg): Likewise.
11737         (sh_output_mi_thunk): Call sh_function_arg_advance) and
11738         sh_function_arg.
11739         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11740
11741 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
11742             Kaz Kojima  <kkojima@gcc.gnu.org>
11743
11744         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
11745         when possible.
11746         (sh_expand_epilogue): Likewise.
11747         * config/sh/sh.md (movml_push_banked): New insn.
11748         (movml_pop_banked): Likewise.
11749
11750 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
11751
11752         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
11753         gen_regexp_oneof, gen_regexp_sequence): Use the string found
11754         in vector element 0 rather than the original string when there's
11755         only one element.
11756         (gen_regexp): Remove extra semicolon.
11757
11758         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
11759         thumb2_movsf_vfp): Set attribute "insn".
11760         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
11761         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
11762         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
11763         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
11764         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
11765         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
11766         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
11767         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
11768         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
11769         if_not_arith, if_arith_not, cond_move_not): Likewise.
11770
11771 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
11772
11773         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
11774         New declaration.
11775         (rs6000_allocate_stack_temp): Ditto.
11776         (rs6000_expand_convert_si_to_sfdf): Ditto.
11777
11778         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
11779         line.  Update the options set if power6 or power7 server/embedded
11780         type options are used.  If we give a warning for no vsx under
11781         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
11782         (rs6000_allocate_stack_temp): New function to allocate a stack
11783         tempoary and adjust the address so it meets either REG+OFFSET or
11784         REG+REG addressing requirements.
11785         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
11786         that they can be used with the LFIWAX/LFIWZX instrucitons.
11787         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
11788         converting signed/unsigned SImode to either SFmode/DFmode.
11789
11790         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
11791         whether certain instructions can be generated.
11792         (TARGET_FCTIDZ): Ditto.
11793         (TARGET_STFIWX): Ditto.
11794         (TARGET_LFIWAX): Ditto.
11795         (TARGET_LFIWZX): Ditto.
11796         (TARGET_FCFIDS): Ditto.
11797         (TARGET_FCFIDU): Ditto.
11798         (TARGET_FCFIDUS): Ditto.
11799         (TARGET_FCTIDUZ): Ditto.
11800         (TARGET_FCTIWUZ): Ditto.
11801
11802         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
11803         (UNSPEC_FCTID): Ditto.
11804         (UNSPEC_LFIWAX): Ditto.
11805         (UNSPEC_LFIWZX): Ditto.
11806         (UNSPEC_FCTIWUZ): Ditto.
11807         (rreg): Use correct constraints.
11808         (SI_CONVERT_FP): New mode attribute for floating point conversion
11809         tests.
11810         (E500_CONVERT): Ditto.
11811         (lfiwax): New insns for converting from integer to floating point
11812         utilizing newer instructions.  Attempt to optimize conversions
11813         that come from memory so that we don't load the value into a GPR,
11814         spill it to the stack and reload it into a FPR.
11815         (floatsi<mode>2_lfiwax): Ditto.
11816         (floatsi<mode>2_lfiwax_mem): Ditto.
11817         (floatsi<mode>2_lfiwax_mem2): Ditto.
11818         (lfiwzx): Ditto.
11819         (floatunssi<mode>2_lfiwzx): Ditto.
11820         (floatunssi<mode>2_lfiwzx_mem): Ditto.
11821         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
11822         (floatdidf2_mem): Ditto.
11823         (floatunsdidf2_fcfidu): Ditto.
11824         (floatunsdidf2_mem): Ditto.
11825         (floatunsdisf2): Ditto.
11826         (floatunsdisf2_fcfidus): Ditto.
11827         (floatunsdisf2_mem): Ditto.
11828         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
11829         Use FCFID on 32-bit hosts that support it.
11830         (floatsidf2_internal): Ditto.
11831         (floatunssisf2): Ditto.
11832         (floatunssidf2): Ditto.
11833         (floatunssidf2_internal): Ditto.
11834         (floatsisf2): Ditto.
11835         (floatdidf2): Ditto.
11836         (floatdidf2_fpr): Ditto.
11837         (floatunsdidf2): Ditto.
11838         (floatdisf2): Ditto.
11839         (floatdisf2_fcfids): Ditto.
11840         (floatdisf2_internal1): Ditto.
11841         (fixuns_truncsfsi2): Delete, merge into common pattern for both
11842         SF/DF.  Add power7 support.
11843         (fix_truncsfsi2): Ditto.
11844         (fixuns_truncdfsi2): Ditto.
11845         (fixuns_truncdfdi2): Ditto.
11846         (fix_truncdfsi2): Ditto.
11847         (fix_truncdfsi2_internal): Ditto.
11848         (fix_truncdfsi2_internal_gfxopt): Ditto.
11849         (fix_truncdfsi2_mfpgpr): Ditto.
11850         (fctiwz): Ditto.
11851         (btruncdf2): Ditto.
11852         (btruncdf2_fpr): Ditto.
11853         (btructsf2): Ditto.
11854         (ceildf2): Ditto.
11855         (ceildf2_fpr): Ditto.
11856         (ceilsf2): Ditto.
11857         (floordf2): Ditto.
11858         (floordf2_fpr): Ditto.
11859         (floorsf2): Ditto.
11860         (rounddf2): Ditto.
11861         (rounddf2_fpr): Ditto.
11862         (roundsf2): Ditto.
11863         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
11864         (fix_trunc<mode>di2): Ditto.
11865         (fixuns_trunc<mode>si2): Ditto.
11866         (fixuns_trunc<mode>di2): Ditto.
11867         (fctiwz_<mode>): Ditto.
11868         (btrunc<mode>2): Ditto.
11869         (btrunc<mode>2_fpr): Ditto.
11870         (ceil<mode>2): Ditto.
11871         (ceil<mode>2_fpr): Ditto.
11872         (floor<mode>2): Ditto.
11873         (float<mode>2_fpr): Ditto.
11874         (round<mode>2): Ditto.
11875         (round<mode>2_fpr): Ditto.
11876         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
11877         (fixuns_trunc<mode>si2_stfiwx): Ditto.
11878         (fix_truncdfsi2_internal): Ditto.
11879         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
11880         converted value on stack, loaded into GPR, and then stored into
11881         the final destination.
11882         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
11883         FCTIDZ.
11884         (lrint<mode>di2): New insn, provide the lrint builtin functions.
11885         (ftruncdf2): Delete, unused.
11886         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
11887
11888         * config/rs6000/vsx.md (toplevel): Update copyright year.
11889         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
11890         (VSr3): Ditto.
11891
11892 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
11893             Jeremie Salvucci  <jeremie.salvucci@free.fr>
11894
11895         * gengtype.c (output_type_enum): Test the right union member.
11896
11897 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
11898
11899         PR target/41484
11900         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
11901         operands for operand 1.
11902         (sse4_1_extendv4qiv4si2): Ditto.
11903         (sse4_1_extendv2qiv2di2): Ditto.
11904         (sse4_1_extendv4hiv4si2): Ditto.
11905         (sse4_1_extendv2hiv2di2): Ditto.
11906         (sse4_1_extendv2siv2di2): Ditto.
11907         (sse4_1_zero_extendv8qiv8hi2): Ditto.
11908         (sse4_1_zero_extendv4qiv4si2): Ditto.
11909         (sse4_1_zero_extendv2qiv2di2): Ditto.
11910         (sse4_1_zero_extendv4hiv4si2): Ditto.
11911         (sse4_1_zero_extendv2hiv2di2): Ditto.
11912         (sse4_1_zero_extendv2siv2di2): Ditto.
11913         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
11914         (*sse4_1_extendv4qiv4si2): Ditto.
11915         (*sse4_1_extendv2qiv2di2): Ditto.
11916         (*sse4_1_extendv4hiv4si2): Ditto.
11917         (*sse4_1_extendv2hiv2di2): Ditto.
11918         (*sse4_1_extendv2siv2di2): Ditto.
11919         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
11920         (*sse4_1_zero_extendv4qiv4si2): Ditto.
11921         (*sse4_1_zero_extendv2qiv2di2): Ditto.
11922         (*sse4_1_zero_extendv4hiv4si2): Ditto.
11923         (*sse4_1_zero_extendv2hiv2di2): Ditto.
11924         (*sse4_1_zero_extendv2siv2di2): Ditto.
11925
11926 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11927
11928         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
11929         (mips_function_arg): Delete.
11930         (mips_function_arg_boundary): Take a const_tree.
11931         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
11932         (mips_arg_info): Likewise.
11933         (mips_setup_incoming_varargs): Call mips_function_arg_advance
11934         instead of FUNCTION_ARG_ADVANCE.
11935         (mips_function_arg_advance): Adjust prototype.  Make static.
11936         (mips_function_arg): Likewise.
11937         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11938         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
11939
11940 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
11941
11942         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
11943         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
11944         (function_arg): Delete.
11945         (function_arg_boundary): Take a const_tree.
11946         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
11947         (rs6000_spe_function_arg): Likewise.
11948         (rs6000_parm_start): Likewise.
11949         (rs6000_arg_size): Likewise.
11950         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
11951         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
11952         (rs6000_mixed_function_arg): Likewise.
11953         (function_arg): Rename to...
11954         (rs6000_function_arg): ...this.
11955         (function_arg_advance): Rename to...
11956         (rs6000_function_arg_advance_1): ...this
11957         (rs6000_function_arg_advance): New function.  Call it.
11958         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
11959         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
11960         (rs6000_function_value): Likewise.
11961         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
11962
11963 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11964
11965         * config/arm/arm.md (enabled): Test the value of arch_enabled
11966         rather than just using it.
11967
11968 2010-08-27  Olivier Hainque  <hainque@adacore.com>
11969             Eric Botcazou  <ebotcazou@adacore.com>
11970
11971         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
11972         cover all the possible offsets from this base.
11973         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
11974
11975 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
11976
11977         PR tree-optimization/44485
11978         * calls.c (flags_from_decl_or_type): For const or pure
11979         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
11980         together with ECF_CONST resp. ECF_PURE.
11981         * builtins.c (expand_builtin): Use flags_from_decl_or_type
11982         instead of querying flags directly.
11983         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
11984         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
11985
11986 2010-08-26  Richard Guenther  <rguenther@suse.de>
11987
11988         PR tree-optimization/45255
11989         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
11990         and externals are also invariant.
11991
11992 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
11993
11994         PR rtl-optimization/44858
11995         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
11996         newi2pat, make sure they don't affect newpat.
11997
11998         PR rtl-optimization/45400
11999         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
12000         SUBREG_REG if both modes are of MODE_INT class.
12001
12002 2010-08-25  Julian Brown  <julian@codesourcery.com>
12003
12004         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
12005         * config/arm/arm.md (generic_sched): No for Cortex-A5.
12006         (generic_vfp): Likewise.
12007         (cortex-a5.md): Include.
12008         * config/arm/cortex-a5.md: New.
12009
12010 2010-08-25  Richard Guenther  <rguenther@suse.de>
12011
12012         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
12013         * gimple.c (gimple_get_alias_set): Remove special handling
12014         for pointers.
12015
12016 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12017
12018         PR middle-end/45355
12019         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
12020         dead_or_set_p when computing i0_feeds_i2_n.
12021
12022         * combine.c (find_split_point): Undo canonicalization of multiply-add
12023         to (minus x (mult)) when it seems likely that this will increase the
12024         chances of a split.
12025
12026 2010-08-25  Richard Guenther  <rguenther@suse.de>
12027
12028         PR lto/44562
12029         * lto-streamer.c (lto_record_common_node): Do not mess with
12030         TYPE_CANONICAL when not in lto.
12031         * gimple.c (gimple_register_type): Likewise.
12032
12033 2010-08-25  Richard Guenther  <rguenther@suse.de>
12034
12035         PR tree-optimization/45316
12036         * tree-ssa-pre.c (eliminate): Properly clean EH info.
12037
12038 2010-08-25  Richard Guenther  <rguenther@suse.de>
12039
12040         PR tree-optimization/45393
12041         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
12042         and clean EH info.  Avoid SSA update.
12043         (execute_cse_sincos): Cleanup the CFG if it has changed.
12044
12045 2010-08-25  Richard Guenther  <rguenther@suse.de>
12046
12047         PR middle-end/45379
12048         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
12049         TARGET_MEM_REF in alignment computation.
12050
12051 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
12052
12053         PR tree-optimization/45059
12054         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
12055         type conversions from newop{1,2}.  Assert t is a comparison and
12056         newop{1,2} after the stripping are gimple vals.
12057
12058 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
12059
12060         * config/arm/iterators.md (VU, SE, V_widen_l): New.
12061         (V_unpack, US): New.
12062         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
12063         (vec_unpack<US>_lo_<mode>): Likewise.
12064         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
12065         (neon_vec_unpack<US>_lo_<mode>): Likewise.
12066         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
12067         (vec_widen_<US>mult_hi_<mode>): Likewise.
12068         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
12069         (neon_vec_<US>mult_hi_<mode>"): Likewise.
12070         (neon_unpack<US>_<mode>): Widening move intermediate step for
12071         vectorizing without -mvectorize-with-neon-quad.
12072         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
12073         for vectorizing without -mvectorize-with-neon-quad.
12074         * config/arm/predicates.md (vect_par_constant_high): Check for
12075         high-half lanes of a vector.
12076         (vect_par_constant_low): Check for low-half lanes of a vector.
12077
12078 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12079
12080         * tree-if-conv.c (struct ifc_dr): New.
12081         (IFC_DR): New.
12082         (DR_WRITTEN_AT_LEAST_ONCE): New.
12083         (DR_RW_UNCONDITIONALLY): New.
12084         (memref_read_or_written_unconditionally): Use the cached values
12085         when possible.
12086         (write_memref_written_at_least_once): Same.
12087         (if_convertible_loop_p): Initialize and free DR->aux fields.
12088
12089 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12090
12091         * gimple.c (gimple_could_trap_p_1): Not static anymore.
12092         Pass an extra bool parameter include_mem.
12093         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
12094         (gimple_assign_rhs_could_trap_p): Same.
12095         * gimple.h (gimple_could_trap_p_1): Declared.
12096         * tree-data-ref.h (same_data_refs_base_objects): New.
12097         (same_data_refs): New.
12098         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
12099         (write_memrefs_written_at_least_once): New.
12100         (ifcvt_memrefs_wont_trap): New.
12101         (operations_could_trap): New.
12102         (ifcvt_could_trap_p): New.
12103         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
12104         Gets a vector of data refs.
12105         (if_convertible_stmt_p): Same.
12106         (if_convertible_loop_p_1): New.
12107         (if_convertible_loop_p): Call if_convertible_loop_p_1.
12108
12109 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
12110
12111         * common.opt (ftree-loop-if-convert-stores): New flag.
12112         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
12113         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
12114         the created statement before GSI.
12115         (if_convertible_phi_p): Allow virtual phi nodes when
12116         flag_loop_if_convert_stores is set.
12117         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
12118         Do not handle types that do not match is_gimple_reg_type.
12119         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
12120         when flag_loop_if_convert_stores is set, as LHS can contain
12121         memory refs.
12122         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
12123         to if_convertible_gimple_assign_stmt_p.
12124         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
12125         (replace_phi_with_cond_gimple_assign_stmt): Renamed
12126         predicate_scalar_phi.  Do not handle virtual phi nodes.
12127         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
12128         Call predicate_scalar_phi.
12129         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
12130         just after the labels for flag_loop_if_convert_stores, otherwise
12131         insert the predicate in the end of the BB.
12132         (predicate_mem_writes): New.
12133         (combine_blocks): Call predicate_all_scalar_phis.  When
12134         flag_loop_if_convert_stores is set, call predicate_mem_writes.
12135         (tree_if_conversion): Call mark_sym_for_renaming when
12136         flag_loop_if_convert_stores is set.
12137         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
12138         flag_loop_if_convert_stores is set.
12139
12140 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
12141
12142         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
12143         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
12144         (pa_function_value): Make static.
12145         (override_options): Rename to...
12146         (pa_option_override): ...this. Make static.
12147         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
12148         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
12149         TARGET_OPTION_OVERRIDE): Define.
12150         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
12151         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
12152         Remove.
12153         * config/pa/pa-protos.h (override_options): Remove.
12154
12155 2010-08-24  Richard Guenther  <rguenther@suse.de>
12156
12157         PR middle-end/45379
12158         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
12159         if addr->index is NULL or zero.
12160         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
12161         TARGET_MEM_REF more properly.
12162         (indirect_ref_may_alias_decl_p): Likewise.
12163         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
12164         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
12165
12166 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
12167
12168         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
12169         (m32c_override_options): Rename to...
12170         (m32c_option_override): ...this. Make static.
12171         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
12172         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
12173         Remove.
12174         * config/m32c/m32c-protos.h (m32c_override_options,
12175         m32c_function_value_regno_p): Remove.
12176
12177 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12178
12179         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
12180         Fix a typo in a previous commit.
12181
12182 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
12183
12184         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
12185         Pre-initialize innerloop_iters to one.
12186
12187 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
12188
12189         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
12190         existing static function global.
12191
12192         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
12193         is changed to global.
12194
12195         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
12196         may_be_nonaddressable_p on base, and don't collect this reference
12197         if the address of the base could not be taken.
12198
12199 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12200
12201         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
12202         enable the compiler to autovectorize mathmetical functions for
12203         power7 using the Mathematical Acceleration Subsystem library.
12204
12205         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
12206         handle which vector math library we have.
12207         (rs6000_override_options): Add -mveclibabi=mass support.
12208         (rs6000_builtin_vectorized_libmass): New function to handle auto
12209         vectorizing math functions that are in the MASS library.
12210         (rs6000_builtin_vectorized_function): Call it.
12211
12212         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
12213         -mveclibabi=mass.
12214
12215 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12216
12217         PR boehm-gc/34544
12218         * gthr-posix.h (__gthread_active_init): Delete.
12219         (__gthread_active_p): Do activity check here.
12220         Don't include errno.h on hppa-hpux.  Update comment.
12221         * gthr-posix95.h (__gthread_active_init): Delete.
12222         (__gthread_active_p): Do activity check here.
12223         Don't include errno.h on hppa-hpux.  Update comment.
12224         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
12225         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
12226         add -lpthread when -mt or -pthread is specified.
12227         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
12228         (LINK_GCC_C_SEQUENCE_SPEC): Define.
12229         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
12230         (stublib.c, pthread_default_stacksize_np-stub.o,
12231         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
12232         $(T)libgcc_stub.a): Add methods.
12233         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
12234         (stublib.c, pthread_default_stacksize_np-stub.o,
12235         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
12236         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
12237         pthread_mutex_unlock): New stubs.
12238
12239 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
12240
12241         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
12242         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
12243         options.
12244         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
12245         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
12246         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
12247         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
12248         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
12249         "-l".
12250         * cppspec.c: Include opts.h.
12251         (lang_specific_driver): Use cl_decoded_option structures.
12252         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
12253         * doc/tm.texi: Regenerate.
12254         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
12255         (driver_handle_option): Allow driver options needing no special
12256         processing.
12257         (process_command): Decode options before call to
12258         lang_specific_driver.  Pass decoded options to
12259         lang_specific_driver.
12260         * gcc.h (lang_specific_driver): Update prototype.
12261         * gccspec.c: Include opts.h.
12262         (lang_specific_driver): Use cl_decoded_option structures.
12263         * opts-common.c (option_ok_for_language, generate_option,
12264         generate_option_input_file): New.
12265         (decode_cmdline_option): Use option_ok_for_language.
12266         (decode_cmdline_options_to_array): Use generate_option_input_file.
12267         (handle_generated_option): Use generate_option.
12268         * opts.h (generate_option, generate_option_input_file): Declare.
12269
12270 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
12271
12272         * config/mips/mips.c (mips_override_options): Rename to...
12273         (mips_option_override): ...this. Make static.
12274         (TARGET_OPTION_OVERRIDE): Define.
12275         (mips_in_small_data_p): Update comment.
12276         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
12277         (FIXED_REGISTERS): Update comment.
12278         * config/mips/mips-protos.h (mips_override_options): Remove.
12279
12280 2010-08-21  Olivier Hainque  <hainque@adacore.com>
12281
12282         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
12283
12284 2010-08-21  Olivier Hainque  <hainque@adacore.com>
12285
12286         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
12287         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
12288
12289 2010-08-20  Jan Hubicka  <jh@suse.cz>
12290
12291         * tree-pass.h (pass_ipa_cdtor_merge): New function.
12292         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
12293         heap allocated.
12294         (record_cdtor_fn): Move to ipa.c; do not test for
12295         have_ctors_dtors.
12296         (build_cdtor): Move to ipa.c; add code avoiding construction
12297         when target have ctors/dtors and there is only one ctor/dtor at given
12298         priority.
12299         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
12300         sort; reverse order of constructors.
12301         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
12302         (cgraph_finalize_function): Do not call record_cdtor_fn.
12303         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
12304         (cgraph_build_static_cdtor): Move to ipa.c.
12305         * ipa.c: Include target.h and tree-iterator.h.
12306         (cgraph_build_static_cdtor, static_ctors, static_dtors,
12307         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
12308         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
12309         pass_ipa_cdtor_merge): New.
12310         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
12311         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
12312         bounds access.
12313
12314 2010-08-20  Jan Hubicka  <jh@suse.cz>
12315
12316         PR c++/45307
12317         PR c++/17736
12318         * cgraph.h (cgraph_only_called_directly_p,
12319         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
12320         static cdtors.
12321         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
12322         are not needed.
12323         (cgraph_finalize_function): Static cdtors are reachable.
12324         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
12325
12326 2010-08-20  Jan Hubicka  <jh@suse.cz>
12327
12328         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
12329         flag_wpa.
12330         * lto-streamer-out.c (lto_output): Likewise.
12331         * passes.c (ipa_write_optimization_summaries): Initialize statement
12332         uids.
12333
12334 2010-08-20  Olivier Hainque  <hainque@adacore.com>
12335
12336         * tree.h (alias_diag_flags): New enum.
12337         (alias_pair): Add an 'emitted_diags' field.
12338         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
12339         (assemble_alias): Initialize emitted_diags of new pairs.
12340
12341 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
12342
12343         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
12344         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12345         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12346         (STACK_CHECK_PROTECT): Define.
12347         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
12348         (output_probe_stack_range): Likewise.
12349         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
12350         builtin stack checking is enabled.
12351         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
12352         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
12353         (probe_stack_range): New insn.
12354
12355 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
12356
12357         PR target/45336
12358         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
12359         short first.
12360
12361         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
12362         char first.
12363
12364 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12365
12366         PR target/45336
12367         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
12368         to cover zero extension into 64-bit register.
12369         (*sse2_pextrw): Likewise.
12370         (*sse4_1_pextrd_zext): New insn.
12371
12372 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
12373
12374         revert r163410, partially revert r163267.
12375         * config/rs6000/darwin.h (LIB_SPEC): Remove.
12376         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
12377         Darwin versions.
12378
12379 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12380
12381         PR middle-end/44974
12382         * builtins.c (expand_builtin): Don't optimize away
12383         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
12384
12385 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
12386
12387         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
12388         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
12389         alternative 1 of operand 2.
12390
12391 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12392             Paolo Bonzini  <bonzini@gnu.org>
12393
12394         * simplify-rtx.c (simplify_unary_operation_1): Optimize
12395         (sign_extend (zero_extend (...)) and
12396         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
12397
12398 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12399
12400         PR rtl-optimization/45353
12401         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
12402         after bb_note is a BARRIER.
12403
12404 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
12405
12406         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
12407         linking libgcc.a.
12408
12409 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
12410             Michael Matz  <matz@suse.de>
12411
12412         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
12413
12414 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
12415
12416         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
12417         (ggc_mark_roots): ...here.
12418
12419 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
12420
12421         * vec.h (FOR_EACH_VEC_ELT): Define.
12422         * c-decl.c: Use it.
12423         * cfgloop.c: Likewise.
12424         * cfgloopmanip.c: Likewise.
12425         * cgraph.c: Likewise.
12426         * cgraphunit.c: Likewise.
12427         * combine.c: Likewise.
12428         * config/bfin/bfin.c: Likewise.
12429         * config/mips/mips.c: Likewise.
12430         * config/rs6000/rs6000.c: Likewise.
12431         * dbxout.c: Likewise.
12432         * df-scan.c: Likewise.
12433         * dominance.c: Likewise.
12434         * dse.c: Likewise.
12435         * dwarf2out.c: Likewise.
12436         * except.c: Likewise.
12437         * expr.c: Likewise.
12438         * function.c: Likewise.
12439         * gcse.c: Likewise.
12440         * genattr.c: Likewise.
12441         * ggc-common.c: Likewise.
12442         * gimplify.c: Likewise.
12443         * graphite-blocking.c: Likewise.
12444         * graphite-clast-to-gimple.c: Likewise.
12445         * graphite-dependences.c: Likewise.
12446         * graphite-interchange.c: Likewise.
12447         * graphite-poly.c: Likewise.
12448         * graphite-scop-detection.c: Likewise.
12449         * graphite-sese-to-poly.c: Likewise.
12450         * graphite.c: Likewise.
12451         * haifa-sched.c: Likewise.
12452         * ifcvt.c: Likewise.
12453         * implicit-zee.c: Likewise.
12454         * ipa-prop.c: Likewise.
12455         * ipa-struct-reorg.c: Likewise.
12456         * ipa.c: Likewise.
12457         * ira-build.c: Likewise.
12458         * ira-color.c: Likewise.
12459         * ira-emit.c: Likewise.
12460         * lambda-code.c: Likewise.
12461         * loop-invariant.c: Likewise.
12462         * loop-unroll.c: Likewise.
12463         * lower-subreg.c: Likewise.
12464         * lto-cgraph.c: Likewise.
12465         * lto-opts.c: Likewise.
12466         * lto-streamer-in.c: Likewise.
12467         * lto-streamer-out.c: Likewise.
12468         * lto-streamer.c: Likewise.
12469         * lto-symtab.c: Likewise.
12470         * matrix-reorg.c: Likewise.
12471         * opts.c: Likewise.
12472         * predict.c: Likewise.
12473         * print-tree.c: Likewise.
12474         * sdbout.c: Likewise.
12475         * sel-sched-dump.c: Likewise.
12476         * sel-sched-ir.c: Likewise.
12477         * sel-sched.c: Likewise.
12478         * sese.c: Likewise.
12479         * stor-layout.c: Likewise.
12480         * tree-cfg.c: Likewise.
12481         * tree-cfgcleanup.c: Likewise.
12482         * tree-chrec.c: Likewise.
12483         * tree-data-ref.c: Likewise.
12484         * tree-emutls.c: Likewise.
12485         * tree-inline.c: Likewise.
12486         * tree-into-ssa.c: Likewise.
12487         * tree-loop-distribution.c: Likewise.
12488         * tree-loop-linear.c: Likewise.
12489         * tree-mudflap.c: Likewise.
12490         * tree-outof-ssa.c: Likewise.
12491         * tree-parloops.c: Likewise.
12492         * tree-predcom.c: Likewise.
12493         * tree-pretty-print.c: Likewise.
12494         * tree-scalar-evolution.c: Likewise.
12495         * tree-ssa-live.c: Likewise.
12496         * tree-ssa-loop-im.c: Likewise.
12497         * tree-ssa-loop-ivcanon.c: Likewise.
12498         * tree-ssa-loop-ivopts.c: Likewise.
12499         * tree-ssa-loop-manip.c: Likewise.
12500         * tree-ssa-loop-niter.c: Likewise.
12501         * tree-ssa-loop-prefetch.c: Likewise.
12502         * tree-ssa-phiprop.c: Likewise.
12503         * tree-ssa-pre.c: Likewise.
12504         * tree-ssa-reassoc.c: Likewise.
12505         * tree-ssa-sccvn.c: Likewise.
12506         * tree-ssa-structalias.c: Likewise.
12507         * tree-ssa.c: Likewise.
12508         * tree-vect-data-refs.c: Likewise.
12509         * tree-vect-loop-manip.c: Likewise.
12510         * tree-vect-loop.c: Likewise.
12511         * tree-vect-patterns.c: Likewise.
12512         * tree-vect-slp.c: Likewise.
12513         * tree-vect-stmts.c: Likewise.
12514         * tree-vrp.c: Likewise.
12515         * tree.c: Likewise.
12516         * value-prof.c: Likewise.
12517         * var-tracking.c: Likewise.
12518         * varasm.c: Likewise.
12519         * vmsdbgout.c: Likewise.
12520
12521 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
12522             Richard Guenther  <richard.guenther@gmail.com>
12523
12524         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
12525         copy the src value and return a copy.
12526         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
12527         (C++ Volatiles): Adjust to describe C++ semantics only.
12528
12529 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
12530
12531         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
12532         be zero or nonzero.
12533         * doc/tm.texi: Regenerate.
12534         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
12535         * df-scan.c (df_get_exit_block_use_set), reginfo.c
12536         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
12537         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
12538         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
12539         to 1.
12540
12541 2010-08-20  Olivier Hainque  <hainque@adacore.com>
12542
12543         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
12544         an extra nop past a sibling call at the very end.
12545
12546 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
12547
12548         PR bootstrap/45350
12549         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
12550         a comment.
12551
12552 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
12553
12554         * target.def (function_arg, function_incoming_arg): Remove const
12555         qualifier on CUMULATIVE_ARGS parameter.
12556         * targhooks.h (default_function_arg, default_function_incoming_arg):
12557         Likewise.
12558         * targhooks.c (default_function_arg, default_function_incoming_arg):
12559         Likewise.
12560         * config/i386/i386.c (ix86_function_arg): Likewise.
12561
12562 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
12563
12564         PR target/45336
12565         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
12566         SIGN_EXTENDs or ZERO_EXTENDs.
12567
12568 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
12569
12570         PR target/42172
12571         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
12572         Take its cost into account if nonnull.
12573         (insn_a_feeds_b): New static function.
12574         (combine_instructions): Look for four-insn combinations.
12575         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
12576         them into account when computing all_adjacent and looking for other
12577         uses.
12578         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
12579         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
12580         (try_combine): New arg I0.  Handle four-insn combinations.
12581         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
12582         like ELIM_I1.
12583
12584 2010-08-19  Jason Merrill  <jason@redhat.com>
12585
12586         PR c++/45307
12587         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
12588         if ctor is empty.
12589         (gimplify_modify_expr_rhs): Adjust.
12590
12591 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
12592
12593         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
12594         bitmap_bit_p.
12595         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
12596         * dominance.c (iterate_fix_dominators): Likewise.
12597         * dse.c (set_usage_bits): Likewise.
12598         (set_position_unneeded, record_store): Likewise.
12599         * gimple-fold.c (get_maxval_strlen): Likewise.
12600         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
12601         * ipa-inline.c (update_caller_keys): Likewise.
12602         * ipa-split.c (verify_non_ssa_vars): Likewise.
12603         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
12604         (close_type_exposed_parameter, close_type_full_escape): Likewise.
12605         (close_addressof_down): Likewise.
12606         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
12607         (setup_allocno_left_conflicts_size): Likewise.
12608         (ira_reassign_conflict_allocnos): Likewise.
12609         (ira_reassign_pseudos): Likewise.
12610         * ira-emit.c (change_loop): Likewise.
12611         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
12612         * lto-streamer-out.c (write_symbol): Likewise.
12613         * predict.c (expr_expected_value_1): Likewise.
12614         * regstat.c (regstat_bb_compute_ri): Likewise.
12615         * sel-sched.c (create_block_for_bookkeeping): Likewise.
12616         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
12617         * stmt.c (expand_case): Likewise.
12618         * tree-eh.c (emit_eh_dispatch): Likewise.
12619         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
12620         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
12621         Likewise.
12622         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
12623         (rdg_build_components): Likewise.
12624         * tree-object-size.c (collect_object_sizes_for): Likewise.
12625         * tree-sra.c (convert_callers): Likewise.
12626         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
12627         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
12628         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
12629
12630 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
12631
12632         * config/i386/i386.md (*lea_1): Use P mode iterator.
12633         (lea add splitter): Also handle DImode operands.
12634         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
12635         predicate.  Do not use ix86_lea_for_add_ok.
12636         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
12637         (lea ashift splitter): Also handle DImode operands.
12638         (DImode lea ashift splitter): Remove splitter.
12639
12640 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
12641
12642         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
12643         ix86_binary_operator_ok.
12644
12645 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
12646
12647         PR rtl-optimization/44691
12648         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
12649         is not a register.
12650
12651 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
12652
12653         PR target/45070
12654         * config/arm/arm.c (arm_output_epilogue): Ensure that return
12655          value of size 1-3 is handled correctly.
12656
12657 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
12658
12659         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
12660         type for the conditional has wide enough range.
12661
12662 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
12663
12664         PR target/45327
12665         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
12666         ix86_binary_operator_ok.
12667
12668 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
12669
12670         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
12671         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
12672         code to output insn mnemonic.  Fix comment.
12673         (*addsi_1_zext): Add r-r-0 alternative 1.
12674         <TYPE_LEA>: Split insn to lea.
12675         <default>: Handle alternative 1.
12676         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
12677         multi-level if_then_else RTX to set "type" attribute.
12678         <default>: Handle alternative 2.
12679         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
12680         Use cond RTX instead of multi-level if_then_else RTX to set
12681         "type" attribute.
12682         <default>: Handle alternatives 2 and 4.
12683         (lea splitters): Update calls to ix86_lea_for_add_ok.
12684
12685         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
12686         argument.
12687         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
12688
12689 2010-08-18  Richard Guenther  <rguenther@suse.de>
12690
12691         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
12692         use operand helpers.
12693
12694 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
12695
12696         PR middle-end/45292
12697         * optabs.c (expand_bool_compare_and_swap): Expand pending
12698         pops before trying the optab.
12699
12700 2010-08-18  Yao Qi  <yao@codesourcery.com>
12701
12702         PR target/45094
12703         * config/arm/arm.c (output_move_double): Fix typo generating
12704         instructions ('ldr'->'str').
12705
12706 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
12707
12708         PR rtl-optimization/42575
12709         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
12710         live ranges.
12711
12712 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
12713
12714         * config/arm/arm-protos.h (arm_expand_sync): New.
12715         (arm_output_memory_barrier, arm_output_sync_insn): New.
12716         (arm_sync_loop_insns): New.
12717         * config/arm/arm.c (FL_ARCH7): New.
12718         (FL_FOR_ARCH7): Include FL_ARCH7.
12719         (arm_arch7): New.
12720         (arm_print_operand): Support %C markup.
12721         (arm_legitimize_sync_memory): New.
12722         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
12723         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
12724         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
12725         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
12726         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
12727         (arm_process_output_sync_insn, arm_output_sync_insn): New.
12728         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
12729         * config/arm/arm.h (struct arm_sync_generator): New.
12730         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
12731         (TARGET_HAVE_MEMORY_BARRIER): New.
12732         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
12733         * config/arm/arm.md: Include sync.md.
12734         (UNSPEC_MEMORY_BARRIER): New.
12735         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
12736         (VUNSPEC_SYNC_OP):New.
12737         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
12738         (sync_result, sync_memory, sync_required_value): New attributes.
12739         (sync_new_value, sync_t1, sync_t2): Likewise.
12740         (sync_release_barrier, sync_op): Likewise.
12741         (length): Add logic to length attribute defintion to call
12742         arm_sync_loop_insns when appropriate.
12743         * config/arm/sync.md: New file.
12744
12745 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
12746
12747         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
12748         ENABLE_TREE_CHECKING.
12749         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
12750         and GCC >= 4.3.
12751
12752 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
12753
12754         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
12755         or optimizing for size, always avoid lea if possible.
12756
12757         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
12758
12759 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
12760
12761         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
12762         Dunmmy function with NULL return unless the target is
12763         OSX >= 10.6 (Darwin10).
12764
12765 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
12766
12767         * gcc.c (spec_function): Add remove-outfile.
12768         (remove_outfile_spec_function): New function.
12769         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
12770         * invoke.texi (replace-outfile): Document.
12771
12772 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
12773
12774         PR target/45296
12775         * reginfo.c (globalize_reg): Reject stack registers.
12776
12777 2010-08-17  Richard Guenther  <rguenther@suse.de>
12778
12779         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
12780         list of conditional equivalences.
12781         (free_all_edge_infos): Adjust.
12782         (record_equivalences_from_incoming_edge): Likewise.
12783         (record_cond): Likewise.
12784         (build_and_record_new_cond): Likewise.
12785         (record_conditions): Likewise.
12786         (dom_opt_leave_block): Likewise.
12787
12788 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
12789
12790         * doc/invoke.texi (ms-extension): Add documentation.
12791
12792 2010-08-17  Richard Guenther  <rguenther@suse.de>
12793
12794         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
12795
12796 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
12797
12798         PR c/40563
12799         * c-decl.c (diagnose_uninitialized_cst_member): New function.
12800         (finish_decl): Use it to issue a -Wc++-compat warning about
12801         uninitialized const field in struct or union.
12802
12803         (finish_struct): Use strip_array_types.
12804
12805 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
12806
12807         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
12808         functions.
12809         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
12810         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
12811         call block_nreverse here.
12812         (blocks_nreverse): Rename decl temporary to block.
12813
12814 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
12815
12816         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
12817         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
12818         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
12819         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
12820         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
12821         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
12822         thumb2_iorsi3): Delete.
12823         (orsi_notsi_si): No longer a named pattern.
12824         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
12825         * config/arm/predicates.md (shift_amount_operand): New.
12826         (mult_operator): New.
12827         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
12828         attr enabled): New.
12829         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
12830         arch matches t2.
12831         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
12832         (not_shiftsi_compare0): Likewise, renamed from
12833         arm_notsi_shiftsi_compare0.
12834         (not_shiftsi_compare0_scratch): Likweise, renamed from
12835         arm_notsi_shiftsi_compare0_scratch.
12836         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
12837         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
12838         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
12839         so that the register alternative is disabled when the shift_operator
12840         is MULT.  Use "M" as the constraint for constants.
12841         (arith_shiftsi splitter): Enable for TARGET_32BIT.
12842         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
12843         constraint for constants.
12844         (arith_shiftsi_compare0_scratch): Likewise.
12845         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
12846         Handle Thumb2 alternative.
12847
12848 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
12849
12850         * doc/options.texi (NoDriverArg): Document.
12851         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
12852         -MDX and -MMDX.
12853         * opt-functions.awk (switch_flags): Handle NoDriverArg.
12854         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
12855         marking for CL_NO_DRIVER_ARG options when in the driver.
12856         * opts.h (CL_NO_DRIVER_ARG): Define.
12857         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
12858         CL_COMMON): Update values.
12859
12860 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
12861
12862         * common.opt: Add driver options.
12863         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
12864         * doc/options.texi (Driver, RejectDriver): Document.
12865         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
12866         print_prog_name, print_multi_directory, print_sysroot,
12867         print_multi_os_directory, print_multi_lib,
12868         print_sysroot_headers_suffix, report_times, combine_flag,
12869         use_pipes, wrapper_string): Remove.
12870         (save_switch, driver_unknown_option_callback,
12871         driver_wrong_lang_callback, driver_post_handling_callback,
12872         driver_handle_option): New.
12873         (spec_lang, last_language_n_infiles): Make file-scope static
12874         instead of local to process_command.
12875         (process_command): Use decode_cmdline_options_to_array and
12876         read_cmdline_option for option processing.  Compute have_c in
12877         prescan of decoded options.
12878         * opt-functions.awk (switch_flags): Handle Driver and
12879         RejectDriver.
12880         (var_type, var_type_struct): Handle Separate options as generating
12881         const char * variables.
12882         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
12883         CL_TARGET to be passed by caller if required.
12884         (decode_cmdline_options_to_array): Update comment.
12885         * opts.c (complain_wrong_lang): Handle options only valid for the
12886         driver.
12887         (decode_options): Update call to decode_cmdline_options_to_array.
12888         (print_filtered_help): Ignore driver-only options.
12889         (print_specific_help): Ignore CL_DRIVER.
12890         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
12891         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
12892         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
12893         Update values.
12894
12895 2010-08-16  Richard Guenther  <rguenther@suse.de>
12896
12897         * tree-cfg.c (verify_types_in_gimple_reference): Verify
12898         TARGET_MEM_REF a bit.
12899         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
12900         (create_mem_ref_raw): Always create TMR_OFFSET, store the
12901         alias pointer type via it.
12902         (copy_mem_ref_info): Adjust.
12903         (maybe_fold_tmr): Likewise.
12904         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
12905         (reference_alias_ptr_type): Likewise.
12906         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
12907         adjust documentation of TMR_OFFSET operand.
12908         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
12909         use the alias pointer type.
12910         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
12911         initialize mem attrs but the TMR itself.
12912         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
12913         similar to MEM_REF.
12914         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
12915         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
12916         (unshare_and_remove_ssa_names): Likewise.
12917         (copy_ref_info): Adjust.
12918         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
12919         TARGET_MEM_REF case.
12920         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
12921         at TMR_ORIGINAL.
12922         * tree.h (TMR_ORIGINAL): Remove.
12923         * gimple.c (get_base_address): For TARGET_MEM_REF with a
12924         symbol return that.
12925         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
12926         with a symbol.
12927         (get_addr_base_and_unit_offset): Likewise.
12928         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
12929         TARGET_MEM_REFs.
12930         (indirect_ref_may_alias_decl_p): Likewise.
12931         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
12932
12933 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
12934
12935         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
12936         with GCC version 4.6, the default setting (when not optimizing
12937         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
12938         been changed to -fomit-frame-pointer.
12939
12940 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
12941
12942         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
12943         Darwin10.  Do not link libgcc.a for Darwin >= 9.
12944
12945 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
12946
12947         * doc/invoke.texi (Warning Options): Fix terminology and markup
12948         in the description of how unknown warning options are handled.
12949
12950 2010-08-15  Ira Rosen  <irar@il.ibm.com>
12951
12952         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
12953         in basic blocks.
12954         (vect_supportable_dr_alignment): Check alignment for basic blocks.
12955         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
12956         data references.
12957         (vect_bb_vectorization_profitable_p): New function.
12958         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
12959         check if it's worthwhile to vectorize the basic block.
12960
12961 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
12962
12963         * reload.h (register_move_cost, memory_move_secondary_cost,
12964         secondary_reload_class): Adjust prototype.
12965         * rtl.h (reg_class_subset_p): Adjust prototype.
12966         * reload.c (secondary_reload_class): Change arguments type from
12967         enum reg_class to reg_class_t. Change result type to reg_class_t.
12968         * reginfo.c (register_move_cost, reg_class_subset_p): Change
12969         arguments type from enum reg_class to reg_class_t.
12970         (memory_move_secondary_cost): Change arguments type from
12971         enum reg_class to reg_class_t. Change type of saved_flags to
12972         reg_class_t.
12973
12974         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12975         Remove macros.
12976         (mips_cost): Remove.
12977         (struct mips_rtx_cost_data): Moved to mips.c.
12978         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
12979         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
12980         (mips_cost): Make static.
12981         (mips_canonicalize_move_class): Change argument type to reg_class_t.
12982         Change result type to reg_class_t.
12983         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
12984         type from enum reg_class to reg_class_t.
12985         (mips_register_move_cost): Make static. Change arguments
12986         type from enum reg_class to reg_class_t.
12987         (mips_memory_move_cost): New function.
12988         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12989
12990 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
12991
12992         PR rtl-optimization/43358
12993         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
12994         of a single hard register, using simplify_subreg_regno to decide
12995         what that register should be.
12996
12997 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
12998
12999         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
13000         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
13001         (loongson_pmull<V_suffix>): Rename to...
13002         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
13003
13004 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
13005
13006         * configure.ac: Enable -fomit-frame-pointer on darwin
13007         which support dwarf2.
13008         * config/i386/i386.c (override_options): Same.
13009
13010 2010-08-13  Jie Zhang  <jie@codesourcery.com>
13011
13012         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
13013
13014 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
13015
13016         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
13017         -MMD.
13018
13019 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
13020
13021         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
13022         up dot_prod pattern searching if a stmt is outside the loop.
13023
13024 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
13025             Uros Bizjak  <ubizjak@gmail.com>
13026
13027         * config.gcc: Handle --enable-frame-pointer.
13028
13029         * configure.ac: Add --enable-frame-pointer.
13030         * configure: Regenerated.
13031
13032         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
13033         (override_options): If not configured with --enable-frame-pointer,
13034         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
13035         optimizing for size), -fasynchronous-unwind-tables and
13036         -maccumulate-outgoing-args by default.
13037
13038 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
13039
13040         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
13041
13042         PR middle-end/45262
13043         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
13044         -a overflows.  Normalize the range.
13045
13046 2010-08-12  Richard Guenther  <rguenther@suse.de>
13047
13048         PR tree-optimization/45232
13049         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
13050         for types with undefined overflow.
13051         (reassociate_bb): Allow re-associating of bit and min/max
13052         operations for types with undefined overflow.
13053         * tree-ssa-forwprop.c (associate_plusminus): New function.
13054         (tree_ssa_forward_propagate_single_use_vars): Call it.
13055
13056 2010-08-12  Richard Guenther  <rguenther@suse.de>
13057
13058         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
13059         * tree-ssa-alias.c (get_ptr_info): Move ...
13060         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
13061         align and misalign fields conservatively.
13062         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
13063         derive alignment information.
13064         (evaluate_stmt): Derive alignment information from memory
13065         allocation functions.
13066         * tree.h (get_pointer_alignment): Make unsigned.
13067         * builtins.c (get_object_alignment): Use alignment information we
13068         have computed for pointers.
13069         (get_pointer_alignment): Likewise.  Make conservative, return
13070         and unsigned value.
13071         (expand_builtin_strlen): Adjust.
13072         (expand_builtin_memcmp): Likewise.
13073         (expand_builtin_strcmp): Likewise.
13074         (expand_builtin_strncmp): Likewise.
13075         (get_builtin_sync_mem): Use at least mode alignment.
13076         (fold_builtin_memset): Adjust.
13077         (fold_builtin_memory_op): Likewise.
13078         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
13079         information also dump pointer alignment knowledge.
13080         (dump_gimple_stmt): Likewise.
13081
13082 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
13083
13084         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
13085         (EMPTY_FIELD_BOUNDARY): Remove.
13086         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
13087
13088 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
13089
13090         PR debug/45259
13091         * caller-save.c (save_call_clobbered_regs): Only swap notes with
13092         DEBUG_INSNs if n_regs_saved.
13093
13094 2010-08-12  Wei Guozhi  <carrot@google.com>
13095
13096         PR target/44999
13097         * config/arm/arm.md (andsi3): Change to zero extension if possible.
13098         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
13099
13100 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
13101
13102         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
13103
13104         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
13105
13106 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13107
13108         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
13109         the case removed in the previous patch, when the only phi argument
13110         is defined in the same loop as the phi node itself.  Handle it
13111         separately from the invariant case by both propagating it outside
13112         the region and replacing the phi node with an assign.
13113
13114 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13115
13116         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
13117         constant phi nodes with one argument are is_gimple_min_invariant
13118         and SSA_NAME_IS_DEFAULT_DEF.
13119
13120 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13121
13122         * graphite-cloog-util.c (oppose_constraint):
13123         Extend loop counter's value range (CLOOG_ORG).
13124         (cloog_matrix_to_ppl_constraint): Same.
13125         (new_Constraint_System_from_Cloog_matrix): Same.
13126         * graphite-cloog-compat.h (matrix_num_type): New.
13127
13128 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13129
13130         * graphite.c (graphite_initialize): Do not initialize
13131         CLooG and initialize the Parma Polyhedra Library
13132         manually when using CLOOG_ORG.
13133         (graphite_finalize): Do not finalize CLooG and finalize
13134         the Parma Polyhedra Library manually when using CLOOG_ORG.
13135         * graphite-cloog-compat.h (cloog_initialize): Hide function
13136         when using CLOOG_ORG.
13137         (cloog_finalize): Same.
13138
13139 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13140
13141         * graphite-clast-to-gimple.c (free_scattering): Change
13142         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
13143         (CLOOG_ORG).
13144         (build_cloog_prog): Same.
13145         * graphite-cloog-compat.h (cloog_domain): Removed.
13146         (cloog_scattering): New.
13147         (cloog_set_domain): Removed.
13148         (cloog_set_scattering): New.
13149         (cloog_next_domain): Removed.
13150         (cloog_next_scattering): New.
13151         (cloog_set_next_domain): Removed.
13152         (cloog_set_next_scattering): New.
13153         (CloogScatteringList): New.
13154         (CloogScattering): New.
13155         (cloog_scattering_free): New.
13156         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
13157         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
13158         New.
13159
13160 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13161
13162         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
13163         CloogState.
13164         (set_cloog_options): Same.
13165         (print_clast_stmt): Same.
13166         (scop_to_clast): Same.
13167         (print_generated_program): Same.
13168         (gloog): Same.
13169         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
13170         (scop_to_clast): Extend with CloogState.
13171         * graphite-cloog-util.c: Include graphite-cloog-compat.h
13172         (new_Cloog_Domain_from_ppl_Polyhedron):
13173         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
13174         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
13175         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13176         * graphite-cloog-util.h (build_cloog_prog): Same.
13177         * graphite-cloog-copat.h (build_cloog_prog): New.
13178         (CloogState): New.
13179         (cloog_state_malloc): New.
13180         (cloog_state_free): New.
13181         (cloog_loop_malloc): New.
13182         (cloog_options_malloc): New.
13183         (cloog_statement_alloc): New.
13184         (cloog_domain_from_cloog_matrix): New.
13185         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
13186         (new_Cloog_Domain_from_ppl_Polyhedron): New.
13187
13188 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13189
13190         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
13191         type of NAME now depends on used CLooG version.
13192         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
13193         (gcc_type_for_clast_expr): Same.
13194         (print_clast_stmt): Replace pprint with clast_pprint.
13195         * graphite-cloog-compat.h: Provide compatibility macros for
13196         CLooG Legacy.
13197         (clast_name_p): New.
13198         (clast_expr_term): New.
13199         (clast_expr_red): New.
13200         (clast_expr_bin): New.
13201         (clast_pprint): New.
13202
13203 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13204
13205         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
13206         compatible to newer CLooG releases (CLOOG_ORG).
13207         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
13208         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
13209         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
13210         (build_cloog_prog) : New.
13211         (cloog_program_extract_scalars): New.
13212         (cloog_program_scatter): New.
13213
13214 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13215
13216         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
13217         conditionally (CLOOG_ORG).
13218         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
13219         (cloog_statement_usr): New.
13220         (cloog_domain): Same.
13221         (cloog_set_domain): Same.
13222         (cloog_next_domain): Same.
13223         (cloog_set_next_domain): Same.
13224         (cloog_program_nb_scattdims): Same.
13225         (cloog_program_set_nb_scattdims): Same.
13226         (cloog_program_names): Same.
13227         (cloog_program_set_names): Same.
13228         (cloog_program_set_context): Same.
13229         (cloog_program_set_loop): Same.
13230         (cloog_program_blocklist): Same.
13231         (cloog_program_set_blocklist): Same.
13232         (cloog_program_scaldims): Same.
13233         (cloog_program_set_scaldims): Same.
13234         (cloog_names_nb_parameters): Same.
13235         (cloog_names_set_nb_parameters): Same.
13236         (cloog_names_parameters): Same.
13237         (cloog_names_set_parameters): Same.
13238         (cloog_names_set_nb_iterators): Same.
13239         (cloog_names_set_iterators): Same.
13240         (cloog_names_set_nb_scattering): Same.
13241         (cloog_names_set_scattering): Same.
13242         (cloog_statement_set_usr): Same.
13243         (cloog_loop_set_next): Same.
13244         (cloog_loop_set_domain): Same.
13245         (cloog_loop_set_block): Same.
13246         (cloog_block_list_next): Same.
13247         (cloog_block_list_set_next):
13248         (cloog_block_list_set_block): Same.
13249
13250 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13251
13252         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
13253         a bool.
13254         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
13255         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
13256         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
13257         when something has been changed.
13258         (rewrite_commutative_reductions_out_of_ssa): Same.
13259
13260 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13261
13262         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
13263         handle the case when def is in the sese region.
13264         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
13265         for invariant expressions.
13266         (rewrite_cross_bb_phi_deps): Removed.
13267         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
13268         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
13269         rewrite_cross_bb_phi_deps.
13270
13271 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13272
13273         * graphite-sese-to-poly.c
13274         (rewrite_commutative_reductions_out_of_ssa_loop): Call
13275         scev_analyzable_p only on is_gimple_reg
13276
13277 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13278
13279         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
13280         (rewrite_close_phi_out_of_ssa): Propagate constant values or
13281         parametric expressions outside the scop region.
13282         (rewrite_cross_bb_scalar_deps): Same.
13283         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
13284
13285 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13286
13287         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
13288         SSA_NAME_DEF_STMT only on SSA_NAMEs.
13289
13290 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13291
13292         * tree-scalar-evolution.c (instantiate_scev_name): Do not
13293         instantiate default definitions.
13294
13295 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
13296             Sebastian Pop  <sebastian.pop@amd.com>
13297
13298         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
13299         (loop_exits_from_bb_p): New.
13300         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
13301         (loop_exits_from_bb_p): Declared.
13302         * graphite-scop-detection.c (scopdet_basic_block_info): Call
13303         loop_exits_to_bb_p.
13304
13305 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13306
13307         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
13308         extra parameter for the region.  Call scev_analyzable_p.
13309         (rewrite_reductions_out_of_ssa): Update call to
13310         rewrite_close_phi_out_of_ssa.
13311         (rewrite_cross_bb_phi_deps): Same.
13312         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
13313         parameter for the region.  Call scev_analyzable_p.
13314         (rewrite_commutative_reductions_out_of_ssa): Update call to
13315         rewrite_commutative_reductions_out_of_ssa_loop.
13316
13317 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13318
13319         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
13320
13321 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13322
13323         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
13324         SSA scalar phi nodes that can be scev_analyzable_p.
13325
13326 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13327
13328         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
13329         handle SSA_NAME_IS_DEFAULT_DEF.
13330
13331 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13332
13333         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
13334
13335 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13336
13337         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
13338         case non close-phi nodes with one argument.
13339
13340 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13341
13342         * sese.h (scev_analyzable_p): Scevs could be expressions without
13343         chrecs and still be scev_analyzable_p.
13344
13345 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13346
13347         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
13348
13349 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13350
13351         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
13352         * cfgloop.h (struct loop): Remove single_iv field.
13353         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
13354         (scop_canonicalize_loops): Removed.
13355         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
13356         over all the loop phi nodes in loop->header.
13357         (build_poly_scop): Remove use of scop_canonicalize_loops.
13358
13359 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13360
13361         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
13362         handle GIMPLE_CALL.
13363
13364 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13365
13366         * tree-chrec.c (chrec_apply): Should only apply to the specified
13367         variable.  Also handle multivariate chains of recurrences that
13368         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
13369
13370 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13371
13372         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
13373         (debug_clast_name_indexes_1): Removed.
13374         (debug_clast_name_indexes): Removed.
13375         (pbb_to_depth_to_oldiv): Removed.
13376         (build_iv_mapping): Replace the use of rename_map with iv_map.
13377         (translate_clast_user): Remove uses of rename_map.  Allocate and
13378         free iv_map.
13379         (translate_clast_for_loop): Remove uses of rename_map.
13380         (translate_clast_for): Same.
13381         (translate_clast_guard): Same.
13382         (translate_clast): Same.
13383         (gloog): Same.
13384         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
13385         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
13386         * sese.c (set_rename): Now static.
13387         (rename_variables_in_stmt): Removed.
13388         (rename_uses): New.
13389         (is_parameter): Removed.
13390         (is_iv): Removed.
13391         (expand_scalar_variables_call): Removed.
13392         (expand_scalar_variables_ssa_name): Removed.
13393         (expand_scalar_variables_expr): Removed.
13394         (expand_scalar_variables_stmt): Removed.
13395         (expand_scalar_variables): Removed.
13396         (rename_variables): Removed.
13397         (remove_condition): Removed.
13398         (get_true_edge_from_guard_bb): Removed.
13399         (get_false_edge_from_guard_bb): Removed.
13400         (struct igp): Removed.
13401         (default_before_guard): Removed.
13402         (convert_for_phi_arg): Removed.
13403         (add_guard_exit_phis): Removed.
13404         (insert_guard_phis): Removed.
13405         (graphite_copy_stmts_from_block): Now also uses iv_map and a
13406         region.  Do not copy conditions.  Do not copy induction variables.
13407         Call rename_uses.
13408         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
13409         the translated statement.  Use the iv_map for the induction
13410         variable renaming.
13411         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
13412         (set_rename): Removed declaration.
13413         (scev_analyzable_p): ...here.
13414         * tree-chrec.c (chrec_apply_map): New.
13415         * tree-chrec.h (chrec_apply_map): Declared.
13416
13417 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13418
13419         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
13420         insert_loop_close_phis.
13421         * sese.c (name_defined_in_loop_p): Removed.
13422         (expr_defined_in_loop_p): Removed.
13423         (alive_after_loop): Removed.
13424         (close_phi_not_yet_inserted_p): Removed.
13425         (struct alep): Removed.
13426         (add_loop_exit_phis): Removed.
13427         (insert_loop_close_phis): Removed.
13428
13429 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13430
13431         * graphite-cloog-util.c
13432         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
13433         * graphite-poly.c
13434         (psct_scattering_dim_for_loop_depth): Same.
13435
13436 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13437
13438         * graphite-cloog-util.h: Added cloog.h.
13439         * graphite-blocking.c: Removed cloog.h.
13440         * graphite-dependences.c: Same.
13441         * graphite-interchange.c: Same.
13442         * graphite-poly.c: Same.
13443         * graphite-ppl.c: Same.
13444         * graphite-scop-detection.c: Same.
13445         * graphite-sese-to-poly.c:
13446         Removed cloog.h.
13447         Removed graphite-clast-to-gimple.h.
13448         (check_poly_representation): Removed (unused).
13449         * graphite-sese-to-poly.h
13450         (check_poly_representation): Removed (unused).
13451
13452 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13453
13454         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
13455         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
13456         (graphite-cloog-util.o): New.
13457         (graphite-ppl.o): Added graphite-cloog-util.h.
13458         * graphite-clast-to-gimple.c:
13459         Added graphite-cloog-util.h to include statements.
13460         * graphite-cloog-util.c: New.
13461         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
13462         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13463         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13464         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13465         (insert_constraint_into_matrix): Same.
13466         (ppl_Constrain_System_number_of_constraints): Same.
13467         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
13468         (oppose_constraint): Same.
13469         (cloog_matrix_to_ppl_constraint): Same.
13470         (new_Constraint_System_from_Cloog_Matrix): Same.
13471         * graphite-cloog-util.h: New.
13472         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
13473         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13474         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13475         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13476         (insert_constraint_into_matrix): Same.
13477         * graphite-ppl.c:
13478         Added graphite-cloog-util.h to include statements.
13479         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
13480         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13481         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13482         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13483         (insert_constraint_into_matrix): Same.
13484         (ppl_Constrain_System_number_of_constraints): Same.
13485         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
13486         (oppose_constraint): Same.
13487         (cloog_matrix_to_ppl_constraint): Same.
13488         (new_Constraint_System_from_Cloog_Matrix): Same.
13489         * graphite-ppl.h:
13490         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
13491         graphite-cloog-util.h.
13492         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
13493         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13494         (new_C_Polyhedron_from_Cloog_Matrix): Same.
13495         (insert_constraint_into_matrix): Same.
13496
13497 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13498
13499         * graphite-clast-to-gimple.c
13500         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
13501         (precision_for_interval): Same.
13502         (gcc_type_for_interval): Same.
13503         (compute_type_for_level): Same.
13504         * graphite-interchange.c
13505         (lst_interchange_profitable_p): Same.
13506         * graphite-poly.c
13507         (psct_scattering_dim_for_loop_depth): Same.
13508         * graphite-ppl.c
13509         (ppl_max_for_le_pointset): Same.
13510         (ppl_min_for_le_pointset): Same.
13511
13512 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13513
13514         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
13515         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
13516
13517 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13518
13519         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
13520         rewrite_close_phi_out_of_ssa.
13521
13522 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13523
13524         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
13525
13526 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13527
13528         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
13529         rename_map.
13530         * sese.c (debug_rename_map): Same.
13531         (get_rename): Same.
13532         (set_rename): Same.
13533         (rename_variables_in_stmt): Same.
13534         (expand_scalar_variables_call): Same.
13535         (expand_scalar_variables_ssa_name): Same.
13536         (expand_scalar_variables_expr): Same.
13537         (expand_scalar_variables_stmt): Same.
13538         (expand_scalar_variables): Same.
13539         (rename_variables): Same.
13540         (graphite_copy_stmts_from_block): Same.
13541         (copy_bb_and_scalar_dependences): Same.
13542
13543 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13544
13545         * graphite-clast-to-gimple.c (copy_renames): Removed.
13546         (translate_clast_for): Do not call copy_renames.
13547         (translate_clast_guard): Same.
13548
13549 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13550
13551         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
13552         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
13553         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
13554         before rewrite_cross_bb_scalar_deps.
13555
13556 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13557
13558         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
13559         Early return in when flag_associative_math is not set.
13560
13561 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13562
13563         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
13564         of SSA copies on edges except for loop->latch.
13565
13566 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13567
13568         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
13569         Split out of rewrite_reductions_out_of_ssa.
13570         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
13571         Declared.
13572         * graphite.c (graphite_transform_loops): Call it.
13573
13574 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13575
13576         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
13577
13578 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
13579
13580         * dbgcnt.def (graphite_scop): New counter.
13581         * graphite.c: Include dbgcnt.h.
13582         (graphite_transform_loops): Use new counter to limit transformations.
13583         * Makefile.in (graphite.o): Depend on DBGCNT_H.
13584
13585 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13586
13587         * passes.c (init_optimization_passes): Add pass_graphite.
13588         Schedule a pass_copy_prop before pass_graphite_transforms.
13589         * timevar.def (TV_GRAPHITE): Declared.
13590         * tree-pass.h (pass_graphite): Declared.
13591         * tree-ssa-loop.c (pass_graphite): New.
13592
13593 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13594
13595         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
13596         Remove calls to rename_nb_iterations and rename_sese_parameters.
13597         * graphite-clast-to-gimple.h (gloog): Update declaration.
13598         * graphite.c (graphite_transform_loops): Update call to gloog.
13599         * sese.c (rename_variables_in_expr): Removed.
13600         (rename_nb_iterations): Removed.
13601         (rename_sese_parameters): Removed.
13602         * sese.h (rename_nb_iterations): Removed.
13603         (rename_sese_parameters): Removed.
13604
13605 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13606
13607         * graphite-clast-to-gimple.c (gloog): Remove call to
13608         sese_adjust_liveout_phis.
13609         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
13610         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
13611         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
13612         rewrite_phi_out_of_ssa.
13613         * sese.c (get_vdef_before_sese): Removed.
13614         (sese_adjust_vphi): Removed.
13615         (sese_adjust_liveout_phis): Removed.
13616         * sese.h (sese_adjust_liveout_phis): Removed.
13617
13618 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13619
13620         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
13621         argument for the place after which to insert the out of SSA copy.
13622         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
13623         (rewrite_phi_out_of_ssa): Same.
13624         (rewrite_cross_bb_scalar_deps): Same.
13625         (insert_copyout): Removed.
13626         (insert_copyin): Removed.
13627         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
13628         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
13629         insert_copyin.
13630
13631 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13632
13633         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
13634         (rewrite_reductions_out_of_ssa): Same.
13635         (rewrite_commutative_reductions_out_of_ssa): Same.
13636         (build_poly_scop): Do not call these functions.
13637         * graphite-sese-to-poly.h (build_poly_scop): Declared.
13638         (rewrite_reductions_out_of_ssa): Declared.
13639         (rewrite_commutative_reductions_out_of_ssa): Declared.
13640         * graphite.c (graphite_transform_loops): Call on every scop
13641         rewrite_commutative_reductions_out_of_ssa before calling
13642         rewrite_reductions_out_of_ssa and build_scop_bbs.
13643
13644 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13645
13646         * graphite-dependences.c (dot_deps): Make system call to dotty run
13647         in background.
13648         (dot_deps_stmt): Same.
13649         * graphite-poly.c (dot_lst): Same.
13650
13651 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
13652
13653         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
13654         phi_arg_in_outermost_loop.
13655         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
13656         (remove_invariant_phi): Same.
13657
13658 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
13659
13660         * target.def (output_addr_const_extra): New hook.
13661         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
13662         * doc/tm.texi: Regenerate.
13663         * targhooks.c (default_asm_output_addr_const_extra): New function.
13664         * targhooks.h (default_asm_output_addr_const_extra): Declare.
13665         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
13666         target hook.
13667
13668         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13669         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
13670         * config/i386/i386.h (output_addr_const_extra): Rename to...
13671         (i386_asm_output_addr_const_extra): ...this. Make static.
13672         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13673
13674 2010-08-11  Richard Henderson  <rth@redhat.com>
13675
13676         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
13677
13678 2010-08-11  Nick Clifton  <nickc@redhat.com>
13679
13680         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
13681         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
13682         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
13683         stormy16-lib2-cmpsi.c.
13684
13685         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
13686         -O2.
13687
13688 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
13689
13690         * opts.h (struct cl_option_handler_func): Make handler take
13691         cl_decoded_option structure as parameter, not individual elements.
13692         (struct cl_option_handlers): Make callbacks take cl_decoded_option
13693         structure as parameter, not individual elements.
13694         (handle_option): Take cl_decoded_option structure as parameter,
13695         not individual elements.
13696         (handle_generated_option): Declare.
13697         * opts-common.c (handle_option): Take cl_decoded_option structure
13698         as parameter, not individual elements.  Update calls to callback
13699         and handler functions.
13700         (handle_generated_option): New.
13701         (read_cmdline_option): Update calls to callback functions and
13702         handle_option.
13703         * opts.c (common_handle_option, complain_wrong_lang,
13704         unknown_option_callback, post_handling_callback,
13705         lang_handle_option, target_handle_option): Take cl_decoded_option
13706         structure as parameter, not individual elements.
13707         (lang_handle_option, target_handle_option, common_handle_option):
13708         Assert option has at most one argument.
13709         (enable_warning_as_error): Call handle_generated_option instead of
13710         handle_option.  Do not pass -Werror argument as argument of
13711         generated option.
13712
13713 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13714
13715         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
13716         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
13717         (SUBWORD_BOOL_CAS): Likewise.
13718         (SUBWORD_SYNC_OP): Likewise.
13719         (SUBWORD_TEST_AND_SET): Likewise.
13720         (FETCH_AND_OP_WORD): Parenthesise INF_OP
13721         (SUBWORD_SYNC_OP): Likewise.
13722         (OP_AND_FETCH_WORD): Likewise.
13723
13724 2010-08-10  Xinliang David Li  <davidxl@google.com>
13725
13726         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
13727         compute max/min offset in address.
13728
13729 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
13730
13731         * ira-live.c: Include sbitmap.h.
13732         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
13733         Compress live ranges even more.
13734
13735 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13736
13737         * coverage.c (ctr_labels): Delete.
13738
13739 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
13740
13741         PR bootstrap/45177
13742         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
13743         test here from arm_gen_load_multiple_1.
13744         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
13745         multiple_operation_profitable_p.
13746
13747 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13748
13749         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
13750         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
13751
13752 2010-08-10  Richard Henderson  <rth@redhat.com>
13753
13754         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
13755         after saving registers.  Assert that SSE registers are only saved
13756         with a sufficiently aligned frame.
13757         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
13758         remove stack_realign_fp handling.
13759         (ix86_expand_prologue): Save int registers before stack_realign_fp,
13760         and do not mark the stack alignment as frame related.
13761         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
13762
13763         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
13764         saves when re-aligning the stack.
13765
13766 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13767
13768         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
13769         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
13770         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
13771
13772 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
13773
13774         * dwarf2out.c (struct die_struct): Move die_tag to the end.
13775
13776 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
13777
13778         * config/arm/iterators.md: New file.
13779         * config/arm/arm.md: Include iterators.md.
13780         (QHSI): Move to new file.
13781         (LTUGEU, cnb, optab, ior_xor): Likewise.
13782         * config/arm/iwmmxt.md (VMMX): Move to new file.
13783         (VSHFT, MMX_char): Likewise.
13784         * config/arm/neon.md (VD): Move to new file.
13785         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
13786         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
13787         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
13788         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
13789         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
13790         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
13791         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
13792         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
13793         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
13794         (Is_d_reg, V_mode_nunits): Likewise.
13795         * config/arm/vec-common.md (VALL): Move to new file.
13796         (VALLW, VINT, VINTW): Likewise.
13797
13798 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
13799
13800         PR middle-end/45182
13801         * combine.c (make_compound_operation): Don't try to convert
13802         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
13803
13804 2010-08-10  Richard Guenther  <rguenther@suse.de>
13805
13806         * tree.h (get_object_alignment): Adjust prototype.
13807         * builtins.c (get_object_alignment): Return unsigned int,
13808         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
13809         and TARGET_MEM_REF properly.
13810         (get_pointer_alignment): Adjust.
13811         * emit-rtl.c (get_mem_align_offset): Adjust comment.
13812         (set_mem_attributes_minus_bitpos): Adjust.
13813         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
13814
13815 2010-08-10  Richard Guenther  <rguenther@suse.de>
13816
13817         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
13818         (copy_prop_visit_assignment): Simplify.
13819         (copy_prop_visit_stmt): Also visit assignments from
13820         constants.
13821         (copy_prop_visit_phi_node): Use operand_equal_p.
13822
13823 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13824
13825         * ipa-split.c (find_split_points): Free stack.
13826
13827 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13828
13829         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
13830         * tree.c (tree_node_kind): Delete corresponding entries.
13831
13832 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
13833
13834         * alias.c (may_alias_p): Remove unused ret.
13835
13836 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
13837
13838         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
13839         alias_sets_conflict_p.
13840         (walk_mems_1): Moved from alias.c.
13841         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
13842         in alias.c.
13843         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
13844         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
13845         * alias.c (walk_mems_2): Moved to ddg.c.
13846         (walk_mems_1): Ditto.
13847         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
13848         to ddg.c.
13849         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
13850         disambiguation.
13851         *(may_alias_p): New function to check whether two memory expression
13852         may alias or not. Currently used in buidling inter-iteration memory
13853         dependence.
13854         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
13855         (insn_alias_sets_conflict_p): Removed
13856         *rtl.h (may_alias_p): New function prototype.
13857
13858 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13859
13860         * tree.c (nreverse): Assert that we don't have a BLOCK.
13861
13862 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
13863
13864         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
13865         * config/arm/arm.c (arm_get_pcs_model): Likewise.
13866         * config/avr/avr.c (init_cumulative_args): Likewise.
13867         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
13868         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
13869         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
13870         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
13871         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
13872         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13873         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
13874         * dwarf2out.c (gen_subprogram_die): Likewise.
13875         * function.c (allocate_struct_function): Likewise.
13876         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
13877         (deserves_ellipsis): Delete.
13878
13879 2010-08-09  Richard Guenther  <rguenther@suse.de>
13880
13881         * tree-ssa-copy.c (cached_last_copy_of): Remove.
13882         (valueize_val): New function.
13883         (get_last_copy_of): Remove.
13884         (set_copy_of_val): Simplify.
13885         (dump_copy_of): Likewise.
13886         (copy_prop_visit_cond_stmt): Use valueize_val.
13887         (copy_prop_visit_phi_node): Properly handle unvisited names.
13888         Drop code managing copy-of chains.
13889         (init_copy_prop): Adjust.
13890         (fini_copy_prop): Likewise.
13891         (execute_copy_prop): Remove obsolete comment.
13892
13893 2010-08-09  Richard Guenther  <rguenther@suse.de>
13894
13895         PR middle-end/44632
13896         * function.c (gimplify_parameters): Do not clear addressable
13897         bit of the original parameter.
13898
13899 2010-08-09  Richard Guenther  <rguenther@suse.de>
13900
13901         PR middle-end/45212
13902         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
13903         alignment from MEM_REF offset only if we took it from the
13904         base object.
13905
13906 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
13907
13908         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
13909
13910 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13911
13912         * c-tree.h (build_arg_info): Declare.
13913         * c-decl.c (build_arg_info): Define.
13914         (get_parm_info): Call it.  Delete initialization code.
13915         * c-parser.c (c_parser_parms_declarator): Likewise.
13916         (c_parser_parms_list_declaractor): Likewise.
13917
13918 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13919
13920         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
13921         (struct c_arg_info): Change type of tags field.
13922         * c-decl.c (grokdeclarator): Update for changed type of tags field.
13923         (get_parm_info): Likewise.
13924         (store_parm_decls_newstyle): Likewise.
13925
13926 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
13927
13928         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
13929         (branch_island_list): Delete.
13930         (branch_islands): Declare.
13931         (add_compiler_branch_island): Adjust for branch_islands instead of
13932         branch_island_list.
13933         (macho_branch_islands): Likewise.
13934         (no_previous_def): Likewise.
13935         (get_prev_label): Likewise.
13936
13937 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13938
13939         PR boehm-gc/34544
13940         * gthr-posix.h (__gthread_start): Delete.
13941         (__gthread_active_init): Use pthread_default_stacksize_np instead of
13942         pthread_create to determine if hpux pthreads are active.
13943         * gthr-posix95.h (__gthread_start): Delete.
13944         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
13945
13946 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
13947
13948         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
13949         _WIN64 not expanded.
13950
13951 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
13952             H.J. Lu  <hongjiu.lu@intel.com>
13953
13954         PR target/45213
13955         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
13956         to output 32bit SFmode immediate as 8 byte sign extended value.
13957
13958 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
13959
13960         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
13961         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
13962         (SUBWORD_BOOL_CAS): Likewise.
13963         (SUBWORD_SYNC_OP): Likewise.
13964         (SUBWORD_TEST_AND_SET): Likewise.
13965         (FETCH_AND_OP_WORD): Parenthesise INF_OP
13966         (SUBWORD_SYNC_OP): Likewise.
13967         (OP_AND_FETCH_WORD): Likewise.
13968
13969 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13970
13971         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
13972         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
13973         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
13974         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
13975         generic part.
13976         (cortex_a9_sched_adjust_cost): New function.
13977         (xscale_sched_adjust_cost): New function.
13978         * config/arm/arm-protos.h (struct tune_params): New field
13979         sched_adjust_cost.
13980         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
13981
13982 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
13983
13984         PR target/44942
13985         * config/sparc/sparc.c (function_arg_advance): Always take into account
13986         the padding, if any.
13987
13988 2010-08-06  Richard Guenther  <rguenther@suse.de>
13989
13990         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
13991         (dump_lattice_value): Dump it.
13992         (get_default_value): Adjust.
13993         (get_constant_value): Likewise.
13994         (set_value_varying): Likewise.
13995         (set_lattice_value): Make sure to not go up the lattice
13996         with bitwise constant values.
13997         (get_value_for_expr): Handle ADDR_EXPRs.
13998         (value_to_double_int): New function.
13999         (get_value_from_alignment): Likewise.
14000         (do_dbg_cnt): Adjust.
14001         (ccp_lattice_meet): Handle partially constant values.
14002         (bit_value_unop_1): New function.
14003         (bit_value_binop_1): Likewise.
14004         (bit_value_unop): Likewise.
14005         (bit_value_binop): Likewise.
14006         (evaluate_stmt): Track partially constant values if
14007         flag_tree_bit_ccp is set.
14008         (ccp_fold_stmt): Dump if we folded a predicate.
14009         (ccp_visit_stmt): Adjust.
14010         * common.opt (ftree-bit-ccp): New flag.
14011         * doc/invoke.texi (ftree-bit-ccp): Document.
14012         * opts.c (decode_options): Enable bit-CCP at -O1.
14013
14014 2010-08-06  Alan Modra  <amodra@gmail.com>
14015
14016         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
14017         and -mrelocatable-lib description.
14018
14019 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
14020
14021         From Martin Thuresson  <martint@google.com>
14022         * postreload.c (reload_cse_simplify_operands): Use
14023         SET_REGNO_RAW instead of SET_REGNO.
14024         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
14025         SET_REGNO.
14026         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
14027         instead of SET_REGNO.
14028         * rtl.h (SET_REGNO_RAW): New macro.
14029
14030 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
14031
14032         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
14033         computations.  Fix formatting issues.
14034         (num_sign_bit_copies1): Likewise.
14035         (canonicalize_condition): Likewise.
14036
14037 2010-08-05  Richard Henderson  <rth@redhat.com>
14038
14039         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
14040         (floor_log2): Use clz_hwi.
14041         (exact_log2): Use ctz_hwi.
14042         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
14043         * builtins.c (fold_builtin_bitop): Use them.
14044         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
14045         * combine.c (get_pos_from_mask): Use ctz_hwi.
14046         * double-int.c (double_int_ctz): Likewise.
14047         * explow.c (force_reg): Likewise.
14048         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
14049
14050 2010-08-05  Richard Henderson  <rth@redhat.com>
14051
14052         PR target/45189
14053         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
14054         the alignment constant is properly sign-extended.
14055
14056 2010-08-05  Richard Guenther  <rguenther@suse.de>
14057
14058         * expr.c (store_expr): Use emit_block_move only if both
14059         source and target are MEMs.  Use store_bit_field if only
14060         the target is a MEM.
14061
14062 2010-08-05  Richard Henderson  <rth@redhat.com>
14063
14064         PR debug/45188
14065         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
14066         (INCOMING_RETURN_ADDR_RTX): Likewise.
14067         (dwarf2out_do_frame): Remove conditional compilation.
14068         (dwarf2out_frame_init): Likewise.
14069
14070 2010-08-05  Nicolas Setton  <setton@adacore.com>
14071
14072         * gcov.c (flag_display_progress): New static variable.
14073         (main): Display progress info on standard output if requested.
14074         (options): Add -d/--display-progress.
14075         (print_usage): Print them.
14076         (process_args): Handle them.
14077         * doc/gcov.texi: Document them.
14078
14079 2010-08-05  Martin Jambor  <mjambor@suse.cz>
14080
14081         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
14082         (ipcp_insert_stage): Redirect only edges not flagged with
14083         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
14084         discovered constants.
14085
14086 2010-08-05  Martin Jambor  <mjambor@suse.cz>
14087
14088         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
14089         (struct ipa_param_descriptor): New fields types and
14090         cannot_devirtualize.
14091         (ipa_param_cannot_devirtualize_p): New function.
14092         (ipa_param_types_vec_empty): Likewise.
14093         (ipa_make_edge_direct_to_target): Declare.
14094         * ipa-cp.c: Fixed first stage driver name in initial comment,
14095         described devirtualization there too.
14096         (ipcp_analyze_node): Call ipa_analyze_params_uses.
14097         (ipcp_print_all_lattices): Print devirtualization info.
14098         (ipa_set_param_cannot_devirtualize): New function.
14099         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
14100         lattice to BOTTOM.
14101         (ipcp_init_stage): Merged into...
14102         (ipcp_generate_summary): ...its caller.
14103         (ipcp_change_tops_to_bottom): Also process type lists.
14104         (ipcp_add_param_type): New function.
14105         (ipcp_copy_types): Likewise.
14106         (ipcp_propagate_types): Likewise.
14107         (ipcp_propagate_stage): Also propagate types.
14108         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
14109         Also return true if propagated types require it.
14110         (ipcp_update_callgraph): Dump redirection info.
14111         (ipcp_process_devirtualization_opportunities): New function.
14112         (ipcp_const_param_count): Include known type information.
14113         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
14114         on new node.  Fixed formatting.
14115         * ipa-prop.c (make_edge_direct_to_target): Renamed to
14116         ipa_make_edge_direct_to_target and changed all callers.  Made
14117         externally visible.
14118         (ipa_node_duplication_hook): Duplicate types vector.
14119         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
14120         redirect outgoing calls for which we can't get a decl from the
14121         statement.  Check that we can get a decl from the call statement.
14122         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
14123         ipa_analyze_params_uses only when ipa-cp is disabled.
14124         * tree-inline.c (get_indirect_callee_fndecl): Removed.
14125         (expand_call_inline): Do not call get_indirect_callee_fndecl.
14126         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
14127         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
14128
14129 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
14130
14131         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
14132         temporary. Emit move from temporary to accum, so REG_EQUAL note will
14133         be attached to this insn in correct mode.
14134
14135 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
14136
14137         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
14138         using REGNO of base_reg directly.
14139
14140 2010-08-05  Jie Zhang  <jie@codesourcery.com>
14141
14142         PR tree-optimization/45144
14143         * tree-sra.c (type_consists_of_records_p): Return false
14144         if the record contains bit-field.
14145
14146 2010-08-04  Richard Henderson  <rth@redhat.com>
14147
14148         * config/i386/i386.c (struct ix86_frame): Remove padding and
14149         to_allocate members.
14150         (ix86_compute_frame_layout): Don't store them.
14151         (ix86_can_use_return_insn_p): Use a more direct and more obviously
14152         correct condition for the position of the stack pointer.
14153         (ix86_expand_prologue): Compute remaining stack allocation based
14154         on the ultimate stack pointer offset.
14155         (ix86_expand_epilogue): Use more obvious expressions testing for
14156         the stack pointer already pointing to the saved registers.
14157
14158         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
14159         duplication deconstructing the frame pointer.  Simplify
14160         deallocation of the local stack frame.
14161
14162         * reg-notes.def (CFA_EXPRESSION): New.
14163         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
14164         (dwarf2out_frame_debug_cfa_expression): New.
14165         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
14166
14167         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
14168         * config/i386/i386.c (ix86_expand_prologue): Set it.
14169         (ix86_expand_epilogue): Clear it.
14170         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
14171         context, add REG_CFA_EXPRESSION notes.
14172
14173         * config/i386/i386.h (struct machine_frame_state): Rename from
14174         machine_cfa_state.  Add members tracking SP and FP regardless
14175         of the current CFA register.
14176         (ix86_cfa_state): Remove.
14177         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
14178         and sse_reg_save_offset members.
14179         (ix86_compute_frame_layout): Set them.
14180         (gen_push): Increment sp_offset too.
14181         (choose_baseaddr_len, choose_baseaddr): New.
14182         (ix86_emit_save_reg_using_mov): New.
14183         (ix86_emit_save_regs_using_mov): Use it.
14184         (ix86_emit_save_sse_regs_using_mov): Likewise.
14185         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
14186         compare vs the saved red_zone_offset.
14187         (pro_epilogue_adjust_stack): Adjust sp_offset.
14188         (ix86_adjust_stack_and_probe): Likewise.
14189         (ix86_expand_prologue): Set up, use, and validate the new
14190         frame_state_info members.  Use gen_frame_mem.
14191         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
14192         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
14193         new frame_state_info members.
14194         (ix86_emit_leave): Likewise.
14195         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
14196         out-of-range stack pointer offsets here.
14197         (ix86_emit_restore_sse_regs_using_mov): Likewise.
14198         (ix86_expand_epilogue): Use and validate the new frame_state_info
14199         members.  Break up and simplify the logic selecting the
14200         restore_regs_via_mov code path.  Ensure that there will be no
14201         out-of-range stack pointer offsets.
14202
14203         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
14204
14205         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
14206         argument name to reflect the expected tree; fix indentation.
14207         (ix86_asm_output_function_label): Output the entire 32-bit
14208         ms_hook here as bytes ...
14209         (ix86_expand_prologue): ... not here as insns.  Attach the
14210         unwind info for the ms_hook to a blockage insn.
14211         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
14212         (ix86_ms_bitfield_layout_p): Fix indentation.
14213         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
14214
14215         * config/i386/i386.c (ix86_using_red_zone): New.
14216         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
14217         ix86_expand_prologue, ix86_force_to_memory): Use it.
14218
14219         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
14220         saving the int registers.
14221
14222         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
14223         and DWARF2_UNWIND_INFO conditional compilation.
14224
14225 2010-08-04  Richard Henderson  <rth@redhat.com>
14226
14227         PR debug/45171
14228         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
14229         an is_naming_typedef_decl.
14230
14231 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
14232
14233         PR rtl-optimization/45162
14234         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
14235         * dce.c (word_dce_process_block): Likewise.
14236
14237 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
14238
14239         PR target/44583
14240         * config/ia64/constraints.md (Z): New.
14241         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
14242         (xfreg_or_signed_fp01_operand): New.
14243         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
14244         with fr_reg_or_signed_fp01_operand and constraint G with Z.
14245         (subsf3): Ditto.
14246         (*maddsf4): Ditto.
14247         (*msubsf4): Ditto.
14248         (adddf3): Ditto.
14249         (adddf3_trunc): Ditto.
14250         (subdf3): Ditto.
14251         (*subdf3_trunc): Ditto.
14252         (*madddf4): Ditto.
14253         (*madddf4_trunc): Ditto.
14254         (*msubdf4): Ditto.
14255         (*msubdf4_trunc): Ditto.
14256         (addxf3): Replace xfreg_or_fp01_operand with
14257         xfreg_or_signed_fp01_operand and constraint G with Z.
14258         (*addxf3_truncsf): Ditto.
14259         (*addxf3_truncdf): Ditto.
14260         (subxf3): Ditto.
14261         (*subxf3_truncsf): Ditto.
14262         (*subxf3_truncdf): Ditto.
14263         (*maddxf4): Ditto.
14264         (*maddxf4_truncsf): Ditto.
14265         (*maddxf4_truncdf): Ditto.
14266         (*msubxf4): Ditto.
14267         (*msubxf4_truncsf): Ditto.
14268         (*msubxf4_truncdf): Ditto.
14269
14270 2010-08-04  Richard Guenther  <rguenther@suse.de>
14271
14272         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
14273         if either alias-set is zero.
14274
14275 2010-08-04  Richard Guenther  <rguenther@suse.de>
14276
14277         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
14278         * tree-ssa-ccp.c: ... here.
14279         * tree-ssa-copy.c: ... and here.
14280         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
14281         value_range_t): Move ...
14282         * tree-vrp.c: ... here.
14283         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
14284         (substitute_and_fold): Adjust prototype.
14285         * tree-ssa-propagate.c (replace_uses_in): Adjust.
14286         (replace_phi_args_in): Likewise.
14287         (substitute_and_fold): Take callback to query lattice instead
14288         of pointer to lattice.  Replace SSA name defs with lattice
14289         values first.
14290         * tree-ssa-ccp.c (ccp_finalize): Adjust.
14291         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
14292         (get_value): New function.
14293         (fini_copy_prop): Adjust.
14294         * tree-vrp.c (vrp_finalize): Adjust.
14295
14296 2010-08-04  Richard Guenther  <rguenther@suse.de>
14297
14298         PR middle-end/45176
14299         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
14300         points-to set for original MEM_REF.
14301
14302 2010-08-04  Richard Guenther  <rguenther@suse.de>
14303
14304         * tree-ssa-ccp.c (get_constant_value): New function.
14305         (get_rhs_assign_op_for_ccp): Remove.
14306         (valueize_op): New function.
14307         (ccp_fold): Use get_constant_value and valueize_op.
14308         (fold_const_aggregate_ref): Likewise.
14309         (ccp_fold_stmt): Likewise.
14310         (visit_assignment): Simplify.
14311
14312 2010-08-04  Richard Guenther  <rguenther@suse.de>
14313
14314         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
14315         * double-int.h (double_int_ctz): Declare.
14316         * double-int.c (double_int_ctz): New function.
14317
14318 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
14319
14320         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
14321         Define.
14322         picochip_expand_movmemhi : Expand movmem pattern.
14323         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
14324         Declare.
14325         * config/picochip/picochip.md (movmemhi) : New pattern.
14326
14327 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
14328
14329         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
14330
14331 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
14332
14333         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
14334         NEG as operand of a MULT by merging it with the other operand.
14335         * combine.c (make_compound_operation): Use trunc_int_for_mode when
14336         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
14337         MULT.
14338         * config/arm/constraints.md (M): Examine only 32 bits of a
14339         HOST_WIDE_INT.
14340         * config/arm/predicates.md (power_of_two_operand): Likewise.
14341
14342 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14343
14344         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
14345         non-NOTE insns.
14346
14347 2010-08-03  Jan Hubicka  <jh@suse.cz>
14348
14349         * ipa-split.c (struct split_point): Add split_part_set_retval.
14350         (find_retval): Forward declare.
14351         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
14352         (consider_split): Compute current->split_part_set_retval.
14353         (visit_bb): Do not look into return value.
14354         (split_function): Handle !split_part_set_retval
14355
14356 2010-08-03  Martin Jambor  <mjambor@suse.cz>
14357
14358         * tree-sra.c (completely_scalarize_record): New parameter REF, create
14359         its own access->expr intead of using build_ref_for_offset.
14360
14361 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
14362
14363         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
14364         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
14365         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
14366         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
14367         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
14368         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
14369         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
14370         DEFAULT_SWITCH_TAKES_ARG.
14371         * config/rx/rx.opt (-patch=): Remove option.
14372         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
14373         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
14374         * doc/invoke.texi (RX Options): Remove -patch=.
14375         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
14376         (option_map): Remove --profile-blocks, --quiet and --silent.
14377
14378 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
14379
14380         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
14381         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
14382         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
14383         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
14384         Update calls to ix86_expand_compare and ix86_expand_branch.
14385         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
14386         ix86_expand_compare.
14387         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
14388         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
14389         Make static.
14390         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
14391         and ix86_compare_op1.  Update calls to ix86_expand_compare.
14392         (ix86_expand_int_movcc): Ditto.
14393         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
14394         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
14395         (ix86_expand_setcc): Ditto.
14396         (ix86_expand_compare): Remove prototype.
14397         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
14398         ix86_compare_op0 and ix86_compare_op1.  Update calls
14399         to ix86_expand_branch to directly pass operands[1] and operands[2].
14400         (cbranchxf4): Ditto.
14401         (cbranch<MODEF:mode>4): Ditto.
14402         (cbranchcc4): Ditto.
14403         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
14404         Update calls to ix86_expand_setcc to directly pass operands[2] and
14405         operands[3].
14406         (cstorexf4): Ditto.
14407         (cstore<MODEF:mode>4): Ditto.
14408         (cstorecc4): Ditto.
14409
14410 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
14411
14412         PR target/45063
14413         * caller-save.c (save_call_clobbered_regs): Remove regs from
14414         hard_regs_saved when they are set.
14415
14416 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
14417
14418         PR target/41089
14419         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
14420         as volatile.
14421
14422 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
14423
14424         * common.opt (ftree-loop-distribute-patterns): New.
14425         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
14426         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
14427         at -O3.
14428         * tree-data-ref.c (stores_zero_from_loop): New.
14429         * tree-data-ref.h (stores_zero_from_loop): Declared.
14430         * tree-loop-distribution.c (tree_loop_distribution): Call
14431         stores_zero_from_loop.
14432         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
14433
14434 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
14435
14436         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
14437         into account.
14438
14439         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
14440         * config/arm/arm.c (thumb1_code): New variable.
14441         (arm_override_options): Set it.
14442         (thumb1_final_prescan_insn): Keep track of condition code status.
14443         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
14444         jumps that depend on them.
14445         * config/arm/arm.h (thumb1_code): Declare variable.
14446         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
14447         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
14448         thumb1_cc_mode.
14449         (CC_STATUS_INIT): New macro.
14450         * config/arm/constraints.md (Pd): New constraint.
14451         * config/arm/predicates.md (noov_comparison_operator): New predicate.
14452         * config/arm/arm.md (is_thumb1): New define_attr.
14453         (conds): Set default to "clob" when generating Thumb1 code.
14454         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
14455         code are set.  Use two-operand assembly syntax.
14456         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
14457         pattern.
14458         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
14459         codes are set.  Use two-operand assembly syntax.
14460         (zero_extendhisi splitter): Remove constraints.
14461         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
14462         thumb1_movsf_insn): Set conds attribute as appropriate.
14463         (cbranchsi4_insn): Use condition code status from struct
14464         machine_function to determine whether the comparison can be eliminated.
14465         Discourage the alternative using high registers.
14466         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
14467         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
14468         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
14469         subsi3_cbranch): Delete.
14470         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
14471         one subtract and one cbranch insn.
14472
14473         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
14474         thumb2_movdf_soft_insn): Delete patterns.
14475         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
14476         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
14477         (pool_range, neg_pool_range): Use them to define defaults.
14478         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
14479         and allow for TARGET_32BIT.
14480
14481         PR target/40457
14482         * config/arm/arm.h (arm_regs_in_sequence): Declare.
14483         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
14484         load_multiple_sequence, store_multiple_sequence): Delete
14485         declarations.
14486         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
14487         declarations.
14488         * config/arm/ldmstm.md: New file.
14489         * config/arm/arm.c (arm_regs_in_sequence): New array.
14490         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
14491         CHECK_REGS.  All callers changed.
14492         If SAVED_ORDER is nonnull, copy the computed order into it.
14493         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
14494         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
14495         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
14496         If SAVED_ORDER is nonnull, copy the computed order into it.
14497         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
14498         like REGS.  Handle Thumb mode.
14499         (arm_gen_load_multiple_1): New function, broken out of
14500         arm_gen_load_multiple.
14501         (arm_gen_store_multiple_1): New function, broken out of
14502         arm_gen_store_multiple.
14503         (arm_gen_multiple_op): New function, with code from
14504         arm_gen_load_multiple and arm_gen_store_multiple moved here.
14505         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
14506         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
14507         changed.
14508         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
14509         * config/arm/predicates.md (commutative_binary_operator): New.
14510         (load_multiple_operation, store_multiple_operation): Handle more
14511         variants of these patterns with different starting offsets.  Handle
14512         Thumb-1.
14513         * config/arm/arm.md: Include "ldmstm.md".
14514         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
14515         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
14516         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
14517         peepholes): Delete.
14518         * config/arm/ldmstm.md: New file.
14519         * config/arm/arm-ldmstm.ml: New file.
14520
14521         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
14522         if statement which adds extra costs to frame-related expressions.
14523
14524 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14525
14526         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
14527
14528 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
14529
14530         PR target/45142
14531         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
14532         alternative 2.
14533         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
14534         split V4SI operands.
14535
14536 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
14537
14538         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14539         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
14540         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
14541         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
14542
14543 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
14544
14545         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
14546         LOCAL_INCLUDE_DIR.
14547
14548 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
14549
14550         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
14551         used in the call to optab_for_tree_code.  Fix the second
14552         is_widening_mult_p call.  Check that both unwidened operands
14553         have the same sign.
14554
14555 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
14556
14557         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
14558
14559 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
14560
14561         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
14562
14563 2010-07-30  DJ Delorie  <dj@redhat.com>
14564
14565         * config/rx/predicates.md (rx_constshift_operand): New.
14566         * config/rx/rx.md (zs_cond): New.
14567         (cbranchsi4): Remove mode.
14568         (*cbranchsi4_<code>): Likewise.
14569         (*tstbranchsi4_<code>): New.
14570         (*tstbranchsi4r_<code>): New.
14571         (*tstbranchsi4m_eq): New.
14572         (*tstbranchsi4m_ne): New.
14573         (cbranchsf4): Remove mode.
14574         (*cbranchsf4_<code>): Likewise.
14575
14576 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
14577
14578         * rtlanal.c (simplify_subreg_regno): Don't treat
14579         HARD_FRAME_POINTER_REGNUM specially.
14580
14581 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
14582
14583         * common.opt (-G): Don't define option here.
14584         * config/g.opt: New.
14585         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
14586         rs6000/powerpc and score targets.
14587         * opts.c (common_handle_option): Don't handle -G here.
14588         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
14589         * config/frv/frv.c (frv_handle_option): Handle -G.
14590         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
14591         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
14592         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
14593         * config/mips/mips.c (mips_handle_option): Handle -G.
14594         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
14595         * config/score/score.c (score_handle_option): Handle -G.
14596
14597 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
14598
14599         * config/mmix/mmix.c: Include basic-block.h.
14600
14601 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
14602
14603         PR debug/45055
14604         PR rtl-optimization/45137
14605         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
14606         prototypes.
14607         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
14608         New functions.
14609         * combine.c (next_nonnote_nondebug_insn): Removed.
14610         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
14611         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
14612         * sched-deps.c (sched_analyze_insn): Likewise.
14613         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
14614         * rtlanal.c (canonicalize_condition): Likewise.
14615         * postreload.c (reload_combine_recognize_pattern): Likewise.
14616         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
14617
14618 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
14619
14620         * config/i386/i386.md (int_cond): Remove code iterator.
14621         (fp_cond): Ditto.
14622         (cbranch<mode>4): Use ordered_comparison_operator predicate
14623         for operator0.
14624         (cstore<mode>4): Ditto for operator1.
14625         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
14626         (add<mode>cc): ditto.
14627
14628 2010-07-30  Richard Guenther  <rguenther@suse.de>
14629
14630         PR middle-end/45141
14631         * expr.c (expand_expr_real_1): Check for not handled base address.
14632
14633 2010-07-30  Richard Guenther  <rguenther@suse.de>
14634
14635         * ipa-prop.c (ipa_modify_formal_parameters): Use
14636         build_distinct_type_copy.
14637
14638 2010-07-30  Anthony Green  <green@moxielogic.com>
14639
14640         * config/moxie/rtems.h: New file.
14641         * config.gcc: Add moxie-rtems support.
14642
14643 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
14644
14645         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
14646         df flags as in run_fast_df_dce.
14647
14648 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
14649
14650         Revert:
14651         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14652
14653         * rtl.def (NOTE): Swap operands 4 and 5.
14654         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
14655         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
14656         Adjust accordingly.
14657         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
14658
14659 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
14660
14661         PR debug/45110
14662         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
14663         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
14664         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
14665         formal parameters.
14666         (gen_decl_die): Change return type to dw_die_ref, return what
14667         gen_formal_parameter_die returned.
14668
14669 2010-07-29  Martin Jambor  <mjambor@suse.cz>
14670
14671         * dbgcnt.def (eipa_sra): New counter.
14672         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
14673
14674 2010-07-29  Xinliang David Li  <davidxl@google.com>
14675
14676         PR bootstrap/45119
14677         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
14678         in revision 162652.
14679
14680 2010-07-29  Richard Guenther  <rguenther@suse.de>
14681
14682         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
14683         (TV_TREE_STORE_CCP): Likewise.
14684         (TV_TREE_REDPHI): Likewise.
14685
14686 2010-07-29  Richard Guenther  <rguenther@suse.de>
14687
14688         * double-int.h (double_int_and_not): New function.
14689         * combine.c (try_combine): Use it.
14690         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
14691
14692 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
14693
14694         PR rtl-optimization/42575
14695         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
14696         Argument AU removed.  All callers changed.  Ignore artificial refs.
14697         Use return value of df_word_lr_simulate_defs to decide whether an insn
14698         is necessary.
14699         (fast_dce): Rename arg to WORD_LEVEL.
14700         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
14701         static.
14702         (pass_fast_rtl_byte_dce): Delete.
14703         * dce.h (run_word_dce): Declare.
14704         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
14705         All callers changed.  Simplify code to only deal with two-word regs.
14706         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
14707         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
14708         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
14709         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
14710         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
14711         (df_word_lr_mark_ref): Declare.
14712         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
14713         df_word_lr_simulate_uses): Declare or rename from byte variants.
14714         (df_byte_lr_simulate_artificial_refs_at_top,
14715         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
14716         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
14717         declarations.
14718         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
14719         (enum df_mm): Delete.
14720         * df-byte-scan.c: Delete file.
14721         * df-problems.c (df_word_lr_problem_data): Renamed from
14722         df_byte_lr_problem_data, all members deleted except for
14723         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
14724         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
14725         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
14726         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
14727         df_byte_lr_confluence_0): Delete functions.
14728         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
14729         callers changed.
14730         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
14731         Don't initialize members that were deleted, don't try to discover data
14732         about registers.  Ignore hard regs.
14733         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
14734         (df_word_lr_mark_ref): New function.
14735         (df_word_lr_bb_local_compute): Renamed from
14736         df_byte_bb_lr_local_compute; all callers changed.  Use
14737         df_word_lr_mark_ref.  Assert that artificial refs don't include
14738         pseudos.  Ignore hard registers.
14739         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
14740         Assert that exit block uses don't contain pseudos.
14741         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
14742         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
14743         callers changed.  Ignore hard regs.
14744         (df_word_lr_transfer_function): Renamed from
14745         df_byte_lr_transfer_function; all callers changed.
14746         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
14747         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
14748         changed.
14749         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
14750         callers changed.
14751         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
14752         confluence operator 0 set to NULL.
14753         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
14754         callers changed.
14755         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
14756         Return bool, true if bitmap changed or insn otherwise necessary.
14757         All callers changed.  Simplify using df_word_lr_mark_ref.
14758         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
14759         all callers changed.  Simplify using df_word_lr_mark_ref.
14760         * lower-subreg.c: Include "dce.h"
14761         (decompose_multiword_subregs): Call run_word_dce if df available.
14762         * Makefile.in (lower-subreg.o): Adjust dependencies.
14763         (df-byte-scan.o): Delete.
14764         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
14765
14766 2010-07-29  Richard Guenther  <rguenther@suse.de>
14767
14768         * tree.c (build_vector): Assert that the vector constant
14769         has enough elements.
14770         (build_vector_from_ctor): Pad with trailing zeros.
14771
14772 2010-07-29  Richard Guenther  <rguenther@suse.de>
14773
14774         PR tree-optimization/45120
14775         * tree-ssa-structalias.c (get_constraint_for_component_ref):
14776         Handle offset in DEREFs properly.
14777         (get_constraint_for_1): Handle MEM_REF offset properly.
14778
14779 2010-07-29  Richard Guenther  <rguenther@suse.de>
14780
14781         PR middle-end/45034
14782         * convert.c (convert_to_integer): Always use an unsigned
14783         type for narrowed negate and bitwise not.
14784
14785 2010-07-29  Ira Rosen  <irar@il.ibm.com>
14786
14787         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
14788         to outer loop when creating reduction epilogue for double reduction,
14789         and switch back to the inner loop when updating the phi nodes.
14790         Update uses of outer loop exit phi nodes in double reduction (instead
14791         of uses of reduction).
14792
14793 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
14794
14795         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
14796         popcount on power7 and parity on power6 systems.
14797         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
14798         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
14799         instructions.
14800
14801         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
14802         (UNSPEC_PARITY): Ditto.
14803         (SFDF): New iterator for SF/DF.
14804         (rreg2): New mode attribute for floating register constraint.
14805         (TARGET_FLOAT): New mode attribute for whether single/double float
14806         is supported.
14807         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
14808         pattern.
14809         (parity<mode>2_cmpb): New insn for parity on power6 and newer
14810         machines.
14811         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
14812         pattern.  Add support for fcpsgn instruction added in power6.
14813         (copysignsf3): Delete.
14814         (copysigndf3): Delete.
14815         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
14816         instead of if_then_else in RTL to avoid problems with -0.
14817
14818         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
14819         of if_then_else to mirror scalar code.
14820         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
14821         rs6000.md.
14822
14823         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
14824         instead of if_then_else.
14825
14826 2010-07-28  Xinliang David Li  <davidxl@google.com>
14827
14828         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
14829         (dump_cand): Dump var_before/after.
14830         (htab_inv_expr_eq): New function.
14831         (htab_inv_expr_hash): New function.
14832         (tree_ssa_iv_optimize_init): Support pseudo invariants.
14833         (add_candidate_1): consider base type precision.
14834         (set_use_iv_cost): New parameter.
14835         (adjust_setup_cost): Use profile information.
14836         (get_address_cost): Do not hard code width in computing address
14837         offset limits.
14838         (compare_aff_trees): New function.
14839         (get_loop_invariant_expr_id): New function.
14840         (get_computation_cost_at): New parameter and use profile information.
14841         (get_computation_cost): New parameter.
14842         (determine_use_iv_cost_generic): Pass new parameter.
14843         (determine_use_iv_cost_address): Ditto.
14844         (determine_use_iv_cost_condition): Ditto.
14845         (autoinc_possible_for_pair): Ditto.
14846         (determine_use_iv_costs): More dumps.
14847         (iv_ca_get_num_inv_exprs): New function.
14848         (iv_ca_recount_cost): Consider loop invariants in register pressure
14849         cost.
14850         (iv_ca_add_use): New parameter.
14851         (iv_ca_dump): Better dumping.
14852         (iv_ca_extend): New parameter.
14853         (try_add_cand_for): Attempt to get better partial solution.
14854         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
14855         (create_new-ivs): More dumps.
14856         (rewrite_use_compare): Ditto.
14857         (free_loop_data): More cleanup.
14858         (treee_ssa_iv_optimize_finalize): Ditto.
14859
14860 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
14861
14862         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
14863         * config/i386/i386.c (ix86_profile_before_prologue): New.
14864         (override_options): Add special handling for -mfentry.
14865         (ix86_function_regparm): Likewise.
14866         (ix86_function_sseregparm): Likewise.
14867         (ix86_frame_pointer_required): Likewise.
14868         (ix86_expand_prologue): Check for ms_hook_prologue.
14869         (x86_function_profiler): Adjust mcount output.
14870         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
14871         * config/i386/i386.opt (mfentry): New.
14872         * doc/invoke.texi (mfentry): Add documentation.
14873         * doc/tm.texi: Regenerated..
14874         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
14875         * final.c (final_start_function): Replace macro
14876         PROFILE_BEFORE_PROLOGUE by target hook.
14877         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14878         * target.def (profile_before_prologue): New hook.
14879         * targhooks.c (default_profile_before_prologue): New.
14880         * targhooks.h (default_profile_before_prologue): New.
14881
14882 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
14883
14884         PR debug/45105
14885         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
14886
14887         PR debug/45103
14888         * dwarf2out.c (dwarf2out_var_location): Always consider
14889         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
14890
14891 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14892
14893         PR rtl-optimization/45107
14894         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
14895
14896 2010-07-28  Richard Guenther  <rguenther@suse.de>
14897
14898         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
14899         (set_lattice_value): Do not query an old default value.
14900         (get_value_for_expr): New function.  Properly canonicalize
14901         float values.
14902         (ccp_visit_phi_node): Use it.
14903
14904 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
14905
14906         * config/arm/arm.c (arm_pcs_default): Remove static.
14907         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
14908         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
14909         (arm_pcs_default): Declare.
14910
14911 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
14912
14913         * config/rs6000/rs6000.c (rs6000_override_options):
14914         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
14915         ... to darwin_rs6000_override_options.
14916         (rs6000_return_in_memory): Update preceding comment for darwin
14917         64 bit ABI.  Use TARGET_MACHO inline.
14918         (rs6000_darwin64_struct_check_p): New.
14919         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
14920         (function_arg): Likewise.
14921         (rs6000_arg_partial_bytes): Likewise.
14922         (rs6000_function_value): Likewise.
14923
14924 2010-07-28  Andi Kleen  <ak@linux.intel.com>
14925
14926         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
14927
14928 2010-07-28  Richard Guenther  <rguenther@suse.de>
14929
14930         PR middle-end/44903
14931         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
14932         targets try harder to not generate unaligned accesses.
14933
14934 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
14935
14936         PR rtl-optimization/45101
14937         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
14938         for gcse-las.
14939
14940 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14941
14942         PR tree-optimization/44885
14943         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
14944         with non-aliased component.
14945
14946 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
14947
14948         * config/darwin-driver.c (SWITCH_TAKES_ARG,
14949         WORD_SWITCH_TAKES_ARG): Remove.
14950         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
14951         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
14952         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
14953         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
14954         definitions from gcc.c.
14955         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
14956         defaults.h.
14957         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
14958         Move to defaults.h.
14959         * opts-common.c: Include tm.h.
14960         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
14961         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
14962         Handle more than one argument.  Set canonical_option_num_elements.
14963         (decode_cmdline_options_to_array): Set
14964         canonical_option_num_elements and trailing elements of
14965         canonical_option.
14966         * opts.h (struct cl_decoded_option): Allow four elements in
14967         canonical_option.  Add field canonical_option_num_elements.
14968         * Makefile.in (opts-common.o): Update dependencies.
14969
14970 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
14971
14972         PR middle-end/44790
14973         PR middle-end/44993
14974         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
14975         sure the base has address_mode before adding the offset.
14976
14977 2010-07-27  Xinliang David Li  <davidxl@google.com>
14978
14979         * tree-flow.h (create_mem_ref): Add one new parameter.
14980         * tree-ssa-address.c (create_mem_ref): New parameter.
14981         (addr_to_parts): Ditto.
14982         (move_variant_to_index): New function.
14983         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
14984
14985 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
14986
14987         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
14988         4 and 5.
14989         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
14990         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
14991         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
14992         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
14993         CODE_LABELs and NOTEs.
14994         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
14995         * combine.c (try_combine): Likewise.
14996         * ira.c (setup_prohibited_mode_move_regs): Likewise.
14997         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
14998
14999 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15000
15001         * coretypes.h (struct cl_option_handlers): Declare.
15002         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
15003         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
15004         * langhooks-def.h (lhd_handle_option): Declare.
15005         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
15006         * langhooks.c (lhd_handle_option): New.
15007         * langhooks.h (struct lang_hooks): Update prototype and return
15008         value type of handle_option hook.
15009         * optc-gen.awk: Generate target_flags_explicit definition for the
15010         driver.
15011         * opts-common.c: Include diagnostic.h.
15012         (handle_option): Move from opts.c.  Update prototype and return
15013         value type.  Use handlers structure.
15014         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
15015         handlers structure.
15016         (set_option): Move from opts.c.
15017         * opts.c (common_handle_option): Update prototype and return value
15018         type.  Update calls to handle_option and enable_warning_as_error.
15019         (unknown_option_callback, post_handling_callback,
15020         lang_handle_option, target_handle_option): New.
15021         (handle_option, read_cmdline_option): Move to opts-common.c.
15022         (read_cmdline_options): Update prototype.  Update call to
15023         read_cmdline_option.
15024         (decode_options): Initialize and use handlers structure.
15025         (set_option): Move to opts-common.c.
15026         (enable_warning_as_error): Update prototype.  Update call to
15027         handle_option.
15028         * opts.h (struct cl_option_handler_func, struct
15029         cl_option_handlers): New.
15030         (handle_option, enable_warning_as_error): Update prototypes.
15031         (read_cmdline_option): Declare.
15032         * Makefile.in (opts-common.o): Update dependencies.
15033
15034 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15035
15036         * config/arm/arm.c (params.h): Include.
15037         (arm_override_options): Tune gcse-unrestricted-cost.
15038         * config/arm/t-arm (arm.o): Define dependencies.
15039
15040 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15041
15042         PR target/42495
15043         PR middle-end/42574
15044         * basic-block.h (get_dominated_to_depth): Declare.
15045         * dominance.c (get_dominated_to_depth): New function, use
15046         get_all_dominated_blocks as a base.
15047         (get_all_dominated_blocks): Use get_dominated_to_depth.
15048
15049         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
15050         (hoist_exprs): Remove.
15051         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
15052         (compute_code_hoist_vbeinout): Add debug print outs.
15053         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
15054
15055         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
15056         quadratic behavior.
15057         * params.h (MAX_HOIST_DEPTH): New macro.
15058         * doc/invoke.texi (max-hoist-depth): Document.
15059
15060 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15061
15062         PR rtl-optimization/40956
15063         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
15064         constants.
15065
15066 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15067
15068         PR target/42495
15069         PR middle-end/42574
15070         * config/arm/arm.c (legitimize_pic_address): Use
15071         gen_calculate_pic_address pattern to emit calculation of PIC address.
15072         (will_be_in_index_register): New function.
15073         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
15074         (thumb1_legitimate_address_p): Use it provided !strict_p.
15075         * config/arm/arm.md (calculate_pic_address): New expand and split.
15076
15077 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15078
15079         PR target/42495
15080         PR middle-end/42574
15081         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
15082         * config/arm/arm.md (define_split "J", define_split "K"): Make
15083         IRA/reload friendly.
15084
15085 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15086
15087         * gcse.c (insert_insn_end_basic_block): Update signature, remove
15088         unused checks.
15089         (pre_edge_insert, hoist_code): Update.
15090
15091 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15092
15093         PR target/42495
15094         PR middle-end/42574
15095         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
15096
15097 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15098
15099         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
15100
15101 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15102
15103         PR rtl-optimization/40956
15104         PR target/42495
15105         PR middle-end/42574
15106         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
15107         for hoisting.
15108         (hoist_code): Count occurences in current block too.
15109
15110 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15111
15112         * gcse.c (struct expr:max_distance): New field.
15113         (doing_code_hoisting_p): New static variable.
15114         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
15115         simple expressions, don't change behavior for PRE.  Set max_distance.
15116         (insert_expr_in_table): Set new max_distance field.
15117         (hash_scan_set): Update.
15118         (hoist_expr_reaches_here_p): Stop search after max_distance
15119         instructions.
15120         (find_occr_in_bb): New static function.  Use it in ...
15121         (hoist_code): Calculate sizes of basic block before any changes are
15122         done.  Pass max_distance to hoist_expr_reaches_here_p.
15123         (one_code_hoisting_pass): Set doing_code_hoisting_p.
15124
15125         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
15126         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
15127         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
15128         macros.
15129         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
15130         Document.
15131
15132 2010-07-27  Jeff Law  <law@redhat.com>
15133             Maxim Kuvyrkov  <maxim@codesourcery.com>
15134
15135         * gcse.c (compute_transpout, transpout): Remove, move logic
15136         to prune_expressions.
15137         (compute_pre_data): Move pruning of trapping expressions ...
15138         (prune_expressions): ... here.  New static function.
15139         (compute_code_hoist_data): Use it.
15140         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
15141
15142 2010-07-27  Xinliang David Li  <davidxl@google.com>
15143
15144         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
15145         (rewrite_use_address): Adjust iv update position when needed.
15146
15147 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15148
15149         * dbgcnt.def (hoist_insn): New debug counter.
15150         * gcse.c (hoist_code): Use it.
15151
15152 2010-07-27  Xinliang David Li  <davidxl@google.com>
15153
15154         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
15155         (niter_for_single_dom_exit): Passes additional parameter.
15156         (iv_period): Fix comments.
15157         (may_eliminate_iv): Handles multiple exit loops properly.
15158         (free_tree_niter_desc): New function.
15159         (free_loop_data): Frees up loop iteration descriptors.
15160
15161 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15162
15163         PR target/44542
15164         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
15165         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
15166         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
15167         (expand_one_var): Don't consider DECL_ALIGN for variables for
15168         which expand_one_stack_var_at has been already called.
15169
15170         PR testsuite/44701
15171         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
15172         constraints on IA-64.
15173
15174 2010-07-27  Jie Zhang  <jie@codesourcery.com>
15175
15176         PR target/44290
15177         Revert:
15178         2010-07-23  Jie Zhang  <jie@codesourcery.com>
15179
15180         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
15181         false if ! tree_versionable_function_p.
15182
15183 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15184
15185         * dwarf2out.c (add_data_member_location_attribute): Use
15186         add_AT_unsigned instead of add_AT_int if offset is non-negative.
15187
15188 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15189
15190         * postreload.c (try_replace_in_use): New static function.
15191         (reload_combine_recognize_const_pattern): Use it here.  Allow
15192         substituting into a final add insn, and substituting into a memory
15193         reference in an insn that sets the reg.
15194
15195 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15196
15197         * common.opt (o): Add MissingArgError.
15198         * doc/options.texi (MissingArgError): Document.
15199         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
15200         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
15201         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
15202         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
15203         * langhooks.h (struct lang_hooks): Remove missing_argument.
15204         * optc-gen.awk: Handle MissingArgError and output new structure
15205         field initializers.
15206         * opts.c (read_cmdline_option): Use missing_argument_error field
15207         instead of missing_argument langhook.
15208         * opts.h (struct cl_option): Add missing_argument_error field.
15209         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
15210
15211 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15212
15213         PR target/29090
15214         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
15215         Darwin64 ABI, for zero-sized objects.
15216
15217 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
15218
15219         PR target/35491
15220         PR target/29090
15221
15222         Merge from Apple local 4.2.1.
15223         2005-05-11  Stan Shebs  <shebs@apple.com>
15224         Fix 64-bit varargs for Darwin (Radar 4028089).
15225         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
15226         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
15227         Add argument, add case for 8-byte register half-filled with a float.
15228         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
15229         single-precision floats specially.
15230
15231 2010-07-27  Ira Rosen  <irar@il.ibm.com>
15232
15233         PR tree-optimization/44152
15234         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
15235         complex numbers for further check.
15236         (vect_supported_load_permutation_p): Check nodes with
15237         complex numbers.
15238
15239 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
15240
15241         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
15242         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
15243         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
15244         (LANG_HOOKS_INITIALIZER): Add new hooks.
15245         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
15246         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
15247         and complain_wrong_lang_p.  Update init_options prototype.
15248         * c-objc-common.c (c_initialize_diagnostics): First call
15249         c_common_initialize_diagnostics.
15250         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
15251         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
15252         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
15253         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
15254         (hook_uint_void_0): New.
15255         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
15256         (hook_uint_void_0): New.
15257         * opts-common.c (decode_cmdline_option,
15258         decode_cmdline_options_to_array): Also fill in canonical_option field.
15259         * opts.c (complain_wrong_lang): Use langhook to determine whether
15260         to complain instead of special-casing LTO.
15261         (decode_options): Separate lang_mask determination with
15262         option_lang_mask hook from call of init_options hook.
15263         * opts.h (struct cl_decoded_option): Add canonical_option.
15264
15265 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
15266
15267         PR tree-optimization/45083
15268         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
15269
15270 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
15271
15272         * postreload.c (reload_combine_recognize_const_pattern): Move test
15273         for limiting the insn movement to the right scope.
15274
15275         PR rtl-optimization/45051
15276         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
15277         than reg_mentioned_p.
15278
15279 2010-07-26  Richard Henderson  <rth@redhat.com>
15280
15281         PR target/44132
15282         * tree-emutls.c: New file.
15283         * Makefile.in (OBJS-common): Add it.
15284         * tree-pass.h (pass_ipa_lower_emutls): Declare.
15285         * passes.c (init_optimization_passes): Add it.
15286
15287         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
15288         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
15289         * expr.c (emutls_var_address): Delete.
15290         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
15291         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
15292         (emutls_finish): Delete.
15293         * toplev.c (compile_file): Don't call it.
15294         * tree.h (emutls_decl): Delete.
15295         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
15296         (emutls_finish, emutls_finalize_control_var): Delete.
15297         (emutls_object_type): Move to tree-emutls.c.
15298         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
15299         default_emutls_var_fields, get_emutls_object_type,
15300         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
15301         default_emutls_var_init): Likewise.
15302         (get_variable_section): Don't special case emutls.
15303         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
15304         default_elf_select_section, default_unique_section,
15305         default_encode_section_info): Likewise.
15306         * varpool.c (decide_is_variable_needed): Likewise.
15307         * gimple-iterator.c (update_call_edge_frequencies): New
15308         (gsi_insert_on_edge_immediate): Use it.
15309         (gsi_insert_seq_on_edge_immediate): Likewise.
15310         (gsi_commit_one_edge_insert): Likewise.
15311
15312         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
15313         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
15314         (x86_64_elf_unique_section): Likewise.
15315
15316 2010-07-26  Jan Hubicka  <jh@suse.cz>
15317
15318         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
15319         GTY((skip)).
15320
15321 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
15322
15323         * target.def (output_source_filename): New hook.
15324         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
15325         * doc/tm.texi: Regenerate.
15326         * toplev.c (output_file_directive) Remove function.
15327         * toplev.h (output_file_directive) Remove.
15328         * output.h (default_asm_output_source_filename,
15329         output_file_directive): Declare.
15330         * varasm.h (default_asm_output_source_filename,
15331         output_file_directive): New functions.
15332
15333         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
15334         * config/mips/mips-protos.h (mips_output_filename): Remove.
15335         * config/mips/mips.c (mips_output_filename): Make Static.
15336         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
15337
15338 2010-07-26  Richard Guenther  <rguenther@suse.de>
15339
15340         PR tree-optimization/43784
15341         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
15342         if the destination is used by the call.
15343
15344 2010-07-26  Richard Guenther  <rguenther@suse.de>
15345
15346         PR middle-end/45073
15347         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
15348         SSA updating on being in SSA form.
15349
15350 2010-07-26  Richard Guenther  <rguenther@suse.de>
15351
15352         PR middle-end/45056
15353         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
15354
15355 2010-07-26  Richard Guenther  <rguenther@suse.de>
15356
15357         PR tree-optimization/45071
15358         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
15359         adjust op->opcode.
15360
15361 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
15362
15363         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
15364         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
15365         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
15366         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
15367         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
15368         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
15369         save_r31, return_r31, save_interrupt, return_interrupt,
15370         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
15371         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
15372         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
15373         new ABI requirements.
15374         (save_r6_r9, L_callt_save_r6_r9): Remove.
15375         * config/v850/predicates.md (even_reg_operand, disp23_operand,
15376         const_float_1_operand const_float_0_operand): New Predicates.
15377         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
15378         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
15379         * config/v850/t-v850: Update multilibs for new target variants.
15380         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
15381         * config/v850/t-v850e: Likewise.
15382         * config/v850/v850.c (v850_issue_rate): New.
15383         (v850_strict_argument_naming): New.
15384         (function_arg): Modify to generate a different ABI.
15385         (print_operand): Update case 'z' to support float modes.
15386         (output_move_single): Modify to generate appropriate and better
15387         assembly.
15388         (v850_float_z_comparison_operator, v850_select_cc_mode,
15389         v850_float_nz_comparison_operator,  v850_gen_float_compare,
15390         v850_gen_compare): New functions to support comparison of float values.
15391         (ep_memory_offset): Add support for V850E2 targets.
15392         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
15393         (INTERRUPT_REGPARM_NUM): Remove.
15394         (compute_register_save_size): Add extra case to save/restore long call.
15395         (use_prolog_function): New function to support prologue.
15396         (expand_prologue): Add support for V850E2 targets and modified
15397         as per the current ABI requirements.
15398         (expand_epilogue): Likewise.
15399         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
15400         (construct_save_jarl): Likewise.
15401         (construct_dispose_instruction): Update as per the current ABI
15402         requirements.
15403         (construct_prepare_instruction): Likewise.
15404         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
15405         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
15406         (CPP_SPEC): Updated to support v850e2 targets.
15407         (STRICT_ALIGNMENT): Modified.
15408         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
15409         (FIXED_REGISTERS): Likewise.
15410         (CALL_USED_REGISTERS): Likewise.
15411         (CONDITIONAL_REGISTER_USAGE): Updated.
15412         (HARD_REGNO_MODE_OK): Updated.
15413         (reg_class): Updated to add even registers.
15414         (REG_CLASS_NAMES): Likewise.
15415         (REG_CLASS_CONTENTS): Likewise.
15416         (REGNO_REG_CLASS): Updated for CC registers.
15417         (REG_CLASS_FROM_LETTER): Added support for even registers.
15418         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
15419         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
15420         ARG_POINTER_REGNUM): Updated.
15421         (FUNCTION_ARG_ADVANCE): Define.
15422         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
15423         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
15424         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
15425         (GO_IF_LEGITIMATE_ADDRESS): Updated.
15426         (SELECT_CC_MODE): Define.
15427         (REGISTER_NAMES): Updated to add psw and fcc registers.
15428         (ADDITIONAL_REGISTER_NAMES): Updated.
15429         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
15430         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
15431         * config/v850/v850.md (define_constants): Define new constants.
15432         (type): Update store,bit1,macc,div,fpu and single attributes.
15433         (cpu): New attribute.
15434         (cc): Add set_z attribute.
15435         (unsign23byte_load, sign23byte_load, unsign23hword_load,
15436         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
15437         23word_store): New instructions for 23-bit displacement load and store.
15438         (movqi_internal, movhi_internal): Update the attributes.
15439         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
15440         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
15441         the attributes.
15442         (v850_tst1): Modified using CC_REGNUM.
15443         (tstsi): Remove.
15444         (cmpsi): Modified as define_expand from define_insn.
15445         (cmpsi_insn, cmpsf, cmpdf): New instructions.
15446         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
15447         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
15448         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
15449         one_cmplsi2): Clobber the CC_REGNUM register.
15450         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
15451         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
15452         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
15453         (setf_insn, set_z_insn, set_nz_insn): New instructions for
15454         v850e2v3 target.
15455         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
15456         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
15457         targets.
15458         (sasf_1, sasf_2): Remove.
15459         (sasf): New instruction.
15460         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
15461         targets. CC_REGNUM register is clobbered and attributes are
15462         updated.
15463         (branch_z_normal, branch_z_invert, branch_nz_normal,
15464         branch_nz_invert): New branch related instructions.
15465         (jump): Updated the attributes.
15466         (switch): Update to support new targets. CC_REGNUM register is
15467         clobbered and attributes are updated.
15468         (call_internal_short, call_internal_long, call_value_internal_short,
15469         call_value_internal_long): Updated the attributes.
15470         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
15471         clobbered and attributes are updated.
15472         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
15473         Update to support new targets. CC_REGNUM register is clobbered.
15474         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
15475         instructions.
15476         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
15477         are updated.
15478         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
15479         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
15480         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
15481         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
15482         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
15483         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
15484         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
15485         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
15486         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
15487         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
15488         point instructions defined for V850e2v3 target.
15489         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
15490         Add support for V850E2 targets and CC_REGNUM register is clobbered.
15491         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
15492         support for new targets.
15493         * config/v850/v850-modes.def: New file.
15494         * config/v850/v850.opt(mstrict-align): Remove.
15495         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
15496         mv850e2v3): New command line options for V850.
15497         * config.gcc: Update the newly added files.
15498         * doc/invoke.texi: Update the newly added command line options for
15499         V850 target.
15500
15501 2010-07-26  Richard Guenther  <rguenther@suse.de>
15502
15503         PR tree-optimization/45052
15504         * ipa-pure-const.c (check_stmt): Check volatileness.
15505
15506 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15507
15508         PR target/44707
15509         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
15510         * config/sparc/sparc.c: Include reload.h.
15511         (legitimize_tls_address): Rename into...
15512         (sparc_legitimize_tls_address): ...this.
15513         (legitimize_pic_address): Rename into...
15514         (sparc_legitimize_pic_address): ...this.
15515         (sparc_expand_move): Adjust to above renaming.
15516         (sparc_tls_referenced_p): Likewise.
15517         (sparc_legitimize_tls_address): Likewise.
15518         (sparc_legitimize_pic_address): Likewise.
15519         (sparc_legitimize_address): Likewise.
15520         (sparc_output_mi_thunk): Likewise.
15521         (sparc_legitimize_reload_address): New global function.  Recognize
15522         (lo_sum (high ...) ...) patterns generated by earlier passes.
15523         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
15524
15525 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
15526
15527         PR target/44484
15528         * config/sparc/predicates.md (memory_reg_operand): Delete.
15529         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
15530         (*sync_compare_and_swap): Encode the address form in the pattern.
15531         (*sync_compare_and_swapdi_v8plus): Likewise.
15532
15533 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
15534
15535         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
15536         Streamline paragraph on compatibility with the system compiler.
15537
15538 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
15539
15540         PR middle-end/45035
15541         * alias.c (true_dependence_1): Fix thinko in merge of old
15542         true_dependence and canon_true_dependence.
15543
15544 2010-07-23  Jan Hubicka  <jh@suse.cz>
15545
15546         * lto-streamer-out.c (write_symbol): Fix visibilities of external
15547         references.
15548
15549 2010-07-23  Le-Chun Wu  <lcwu@google.com>
15550
15551         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
15552         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
15553         and an unnecessary assignment.
15554         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
15555         self-assign warning.
15556         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
15557         unnecessary self-init.
15558
15559 2010-07-23  Richard Guenther  <rguenther@suse.de>
15560
15561         PR lto/43071
15562         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
15563         for -flto and -fwhopr.
15564
15565 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
15566
15567         PR target/41943
15568         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
15569         (stmp-int-hdrs): Prefix/postfix headers by include_next.
15570         * config.gcc (user_headers_inc_next_pre): New.
15571         (user_headers_inc_next_post): Likewise.
15572         (*-w64-mingw*): Use for float.h post-fixing, and for
15573         stddef.h/stdarg.h pre-fixing by include_next.
15574         * configure.ac (user_headers_inc_next_post): New.
15575         (user_headers_inc_next_pre): New.
15576         * configure: Regenerated.
15577
15578 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15579
15580         * configure.ac: Don't disable TLS on Solaris 8/9 by default
15581         Set tga_func for Solaris 2/x86 resp. SPARC.
15582         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
15583         (LIB_THREAD_LDFLAGS_SPEC): Define.
15584         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
15585         * configure: Regenerate.
15586         * config.in: Regenerate.
15587         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
15588         -pthread, -threads, LIB_TLS_SPEC with -pthread.
15589         * doc/install.texi (Specific, *-*-solaris2*): Document use of
15590         alternate thread libraries on Solaris 8.
15591         Document TLS patch requirements.
15592         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
15593         Document tls.
15594
15595         PR target/18788
15596         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
15597         -shared.
15598
15599 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
15600
15601         * tree.h (struct tree_base): Add nameless_flag bitfield.
15602         (TYPE_NAMELESS, DECL_NAMELESS): Define.
15603         * omp-low.c (create_omp_child_function, scan_omp_parallel,
15604         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
15605         DECL_ARTIFICIAL where needed.
15606         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
15607         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
15608         has DECL_NAMELESS set.
15609
15610 2010-07-23  Martin Jambor  <mjambor@suse.cz>
15611
15612         PR tree-optimization/44915
15613         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
15614         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
15615         (analyze_function): Likewise.
15616
15617 2010-07-23  Martin Jambor  <mjambor@suse.cz>
15618
15619         PR tree-optimization/44914
15620         * tree-sra.c (sra_modify_function_body): Return true if CFG was
15621         changed, add purging dead eh edges.
15622         (ipa_sra_modify_function_body): Return true if CFG was changed,
15623         simplify purging dead eh edges.
15624         (modify_function): Return true if CFG was changed.
15625         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
15626         was changed.
15627         (ipa_early_sra): Likewise.
15628
15629 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15630
15631         PR target/44290
15632         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
15633         if "naked".
15634         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
15635         false if ! tree_versionable_function_p.
15636
15637 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
15638
15639         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
15640         * ipa-pure-const.c (special_builtlin_state): Remove
15641         BUILT_IN_ARGS_INFO case.
15642         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
15643         * builtins.c (expand_builtin): Likewise.
15644         (expand_builtin_args_info): Remove.
15645         * doc/tm.texi (__builtin_args_info): Remove.
15646         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
15647         * doc/tm.text.in: Likewise.
15648
15649 2010-07-23  Richard Guenther  <rguenther@suse.de>
15650
15651         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
15652         (lto_symtab_merge_decls_2): Likewise.
15653         * tree-ssa.c (useless_type_conversion_p): Likewise.
15654         * lto-streamer-in.c (input_gimple_stmt): Likewise.
15655         * gimple.c (gtc_visited2, gtc_ob2): Remove.
15656         (struct type_pair_d): Make same_p an array indexed by mode.
15657         Update comment.
15658         (lookup_type_pair): Update initialization.
15659         (struct sccs): Adjust same_p type.
15660         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
15661         Adjust.
15662         (print_gimple_types_stats): Likewise.
15663         * gimple.h (enum gtc_mode): New.
15664         (gimple_types_compatible_p): Adjust prototype.
15665
15666 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
15667
15668         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
15669         again after processing insn.
15670
15671 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15672
15673         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
15674         proper words when !tree_versionable_function_p.
15675
15676 2010-07-23  Richard Guenther  <rguenther@suse.de>
15677
15678         PR tree-optimization/45037
15679         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
15680
15681 2010-07-23  Jie Zhang  <jie@codesourcery.com>
15682
15683         * doc/extend.texi: Remove IP2K from the description of naked attribute.
15684         Add MCORE instead.
15685
15686 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15687
15688         PR lto/44992
15689         * lto-opts.c (lto_write_options): Add NULL file_data argument to
15690         lto_get_section_name.
15691         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
15692         * lto-streamer-out.c (produce_asm): Likewise.
15693         (copy_function): Likewise.
15694         (produce_symtab): Likewise.
15695         (produce_asm_for_decls): Likewise.
15696         * lto-streamer.c (lto_get_section_name): Add file_data argument.
15697         Rewrite to add random postfix to LTO sections.
15698         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
15699         (lto_get_section_name): Add file_data argument to prototype.
15700
15701 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15702
15703         * lto-section-in.c (lto_section_name): Synchronize names
15704         with lto_get_section_name.
15705
15706 2010-07-10  Andi Kleen  <ak@linux.intel.com>
15707
15708         * lto-opts.c (lto_read_file_options): Check for missing section.
15709
15710 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15711
15712         * ira.c (check_allocation): Correctly handle the case where an allocno
15713         with two objects was allocated to a single reg.
15714
15715 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
15716
15717         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
15718         (is_widening_mult_p): Likewise.
15719         (convert_to_widen): Use them.
15720         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
15721         well as integer ones.
15722
15723 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
15724
15725         * alias.c (true_dependence_1): New function, merged version of
15726         true_dependence and canon_true_dependence.
15727         (true_dependence): Simplify.
15728         (canon_true_dependence): Simplify.
15729
15730 2010-07-22  Richard Henderson  <rth@redhat.com>
15731
15732         PR target/45027
15733         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
15734         of V4SFmode for the SSE saves; increase stack alignment if needed.
15735         (ix86_gimplify_va_arg): Don't increase stack alignment here.
15736
15737 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
15738
15739         PR bootstrap/45028
15740         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
15741         call cprop_find_used_regs again via note_uses.
15742
15743 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
15744
15745         * alias.c (get_alias_set): Fix formatting issues.
15746
15747 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
15748
15749         PR middle-end/44878
15750         * stmt.c (expand_value_return):  Call promote_function_mode with
15751         a for_return argument of 2 when returning by reference.
15752
15753 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
15754
15755         PR debug/45024
15756         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
15757         unit DIE if we can find the scope DIE.
15758
15759 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15760
15761         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
15762         changed.  Initialize OBJECT_SUBWORD.
15763         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
15764         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
15765         all callers changed.
15766         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
15767         (finish_allocno): Likewise.
15768         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
15769         (remove_low_level_allocnos): Likewise.
15770         (update_bad_spill_attribute): Likewise.
15771         (setup_min_max_allocno_live_range_point): Likewise.
15772         (sort_conflict_id_map): Likewise.
15773         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
15774         (ior_hard_reg_conflicts): New function.
15775         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
15776         (compress_conflict_vecs): Iterate over objects, not allocnos.
15777         (ira_add_live_range_to_object): New function.
15778         (object_range_compare_func): Renamed from allocno_range_compare_func.
15779         All callers changed.
15780         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
15781         subobjects, widen the min/max range of the lowest-order object to
15782         potentially include all other such low-order objects.
15783         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
15784         (check_allocation): Likewise.  Use more fine-grained tests for register
15785         conflicts.
15786         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
15787         allocno subobjects.
15788         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
15789         choices about which bits to set in each set.  Don't use
15790         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
15791         using the multiple sets we computed.
15792         (push_allocno_to_stack): Iterate over allocno subobjects.
15793         (all_conflicting_hard_regs_coalesced): New static function.
15794         (setup_allocno_available_regs_num): Use it.
15795         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
15796         subobjects.
15797         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
15798         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
15799         by ALLOCNO_NUM_OBJECTS.
15800         (calculate_spill_cost): Likewise.
15801         (color_pass): Express if statement in a more normal way.
15802         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
15803         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
15804         (setup_slot_coalesced_allocno_live_ranges): Likewise.
15805         (allocno_reload_assign): Likewise.
15806         (ira_reassign_pseudos): Likewise.
15807         (fast_allocation): Likewise.
15808         * ira-conflicts.c (build_conflict_bit_table): Likewise.
15809         (print_allocno_conflicts): Likewise.
15810         (ira_build_conflicts): Likewise.
15811         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
15812         callers changed.  Test subword 0 of each allocno for conflicts.
15813         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
15814         callers changed.  Iterate over allocno subobjects.
15815         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
15816         * ira-int.h (struct ira_allocno): New member: num_objects.
15817         Rename object to objects and change it into an array.
15818         (ALLOCNO_OBJECT): Add new argument N.
15819         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
15820         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
15821         (ior_hard_reg_conflicts): Declare.
15822         (ira_add_live_range_to_object): Declare.
15823         (ira_allocno_object_iterator): New.
15824         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
15825         (FOR_EACH_ALLOCNO_OBJECT): New macro.
15826         * ira-lives.c (objects_live): Renamed from allocnos_live; all
15827         uses changed.
15828         (allocnos_processed): New sparseset.
15829         (make_object_born): Renamed from make_allocno_born; take an
15830         ira_object_t argument.  All callers changed.
15831         (make_object_dead): Renamed from make_allocno_dead; take an
15832         ira_object_t argument.  All callers changed.
15833         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
15834         All callers changed.
15835         (mark_pseudo_regno_live): Iterate over allocno subobjects.
15836         (mark_pseudo_regno_dead): Likewise.
15837         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
15838         functions.
15839         (mark_ref_live): Detect subword accesses and call
15840         mark_pseudo_regno_subword_live as appropriate.
15841         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
15842         (process_bb_nodes_live): Deal with object-related updates first; set
15843         and test bits in allocnos_processed to avoid computing allocno
15844         statistics more than once.
15845         (create_start_finish_chains): Iterate over objects, not allocnos.
15846         (print_object_live_ranges): New function.
15847         (print_allocno_live_ranges): Use it.
15848         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
15849         and objects_live.
15850
15851 2010-07-22  Richard Guenther  <rguenther@suse.de>
15852
15853         PR lto/42451
15854         * gimple.c (gtc_next_dfs_num): New global.
15855         (struct sccs): Make value a union, add integer same_p member.
15856         (gtc_visit): New function.
15857         (gimple_types_compatible_p_1): New function, split out from ...
15858         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
15859         (iterative_hash_gimple_type): Adjust for sccs change.
15860
15861 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15862
15863         PR tree-optimization/44891
15864         * tree-sra.c: Include gimple-pretty-print.h.
15865         (replace_uses_with_default_def_ssa_name): Renamed to
15866         get_repl_default_def_ssa_name, return the new SSA name instead of
15867         replacing the old one.
15868         (sra_modify_assign): Dump a message when removing a load, if the LHS
15869         is an SSA_NAME, do not do any propagation, just set the RHS to a
15870         default definition SSA NAME, type convert if necessary.
15871         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
15872
15873 2010-07-22  Richard Guenther  <rguenther@suse.de>
15874
15875         PR tree-optimization/45017
15876         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
15877         TYPE_PRECISION of integral types in addition to size.
15878
15879 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
15880
15881         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
15882         when no C library is specified.
15883
15884 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15885
15886         * ipa-prop.h (struct ipa_node_params): Updated comment.
15887         (struct ipa_edge_args): Likewise.
15888         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
15889
15890 2010-07-22  Martin Jambor  <mjambor@suse.cz>
15891
15892         * cgraphunit.c (verify_edge_count_and_frequency): New function.
15893         (verify_cgraph_node): Verify frequencies of indirect edges.
15894         * tree-inline.c (tree_function_versioning): Update frequencies of
15895         indirect edges.
15896
15897 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15898
15899         PR target/43698
15900         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
15901         Set *arm_rev to be predicable.
15902
15903 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15904
15905         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
15906         (LINK_COMMAND_SPEC_A): New.
15907         (DSYMUTIL): New.
15908         (DSYMUTIL_SPEC): New.
15909         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
15910         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
15911
15912 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
15913
15914         * calls.c (load_register_parameters): Move check for zero
15915         sized items so that only the call to
15916         mem_overlaps_already_clobbered_arg_p () is protected.
15917
15918 2010-07-22  Jan Hubicka  <jh@suse.cz>
15919
15920         * ipa-pure-const.c (varying_state): Break out from ...
15921         (get_function_state): ... here; always return varying_state
15922         when state would be NULL otherwise.
15923         (remove_node_data): Do not free varying state.
15924
15925 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
15926
15927         PR bootstrap/44970
15928         PR middle-end/45009
15929         * postreload.c: Include "target.h".
15930         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
15931         into account.
15932         (fixup_debug_insns): Don't copy the rtx.
15933         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
15934         Don't copy when replacing.  Call fixup_debug_insns in the case where
15935         we merged one add with another.
15936         (reload_combine_recognize_pattern): Fail if there aren't any uses.
15937         Try harder to determine whether we're picking a valid index register.
15938         Don't set store_ruid for an insn we're going to scan in the
15939         next iteration.
15940         (reload_combine): Remove unused code.
15941         (reload_combine_note_use): When updating use information for
15942         an old insn, ignore a use that occurs after store_ruid.
15943         * Makefile.in (postreload.o): Update dependencies.
15944
15945         * function.c (record_hard_reg_sets): Restrict the previous change
15946         to cases where the incoming nominal mode is the same as the
15947         incoming promoted mode and everything happens in MODE_INT.
15948
15949 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
15950
15951         PR debug/45015
15952         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
15953         ASM_OPERANDS_OUTPUT_IDX.
15954         (adjust_insn): For inline asm with multiple sets ensure first
15955         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
15956         the insn.
15957
15958 2010-07-21  Richard Henderson  <rth@redhat.com>
15959
15960         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
15961         comparison for avoiding xmm register saves.  Emit the xmm register
15962         saves explicitly.
15963         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
15964         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
15965         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
15966         Remove patterns and the associated splitters.
15967
15968 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
15969
15970         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
15971         and imagine parts of a complex, so that they can have the same
15972         base and fall into the same group.
15973
15974 2010-07-21  Richard Guenther  <rguenther@suse.de>
15975
15976         PR lto/45018
15977         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
15978         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
15979         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
15980
15981 2010-07-21  Martin Jambor  <mjambor@suse.cz>
15982
15983         PR tree-optimization/44900
15984         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
15985         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
15986
15987 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
15988
15989         PR middle-end/44738
15990         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
15991
15992 2010-07-21  Richard Guenther  <rguenther@suse.de>
15993
15994         PR middle-end/45013
15995         * tree-ssa.c (useless_type_conversion_p): Dispatch to
15996         gimple_types_compatible_p only when in lto.
15997         * gimple.c (gimple_types_compatible_p): Use canonical types
15998         to speed up comparison.
15999
16000 2010-07-21  Richard Guenther  <rguenther@suse.de>
16001
16002         * tree-flow.h (referenced_var): Move define ...
16003         * tree-flow-inline.h (referenced_var): ... here as an inline
16004         function.  Assert here ...
16005         * tree-dfa.c (referenced_var_lookup): ... instead of here.
16006         * tree-ssa.c (maybe_optimize_var): Check if the variable
16007         is in referenced vars.
16008         (execute_update_addresses_taken): Remove old broken check.
16009         * gimple-pretty-print.c (pp_points_to_solution): Use
16010         referenced_var_lookup.
16011         * tree-into-ssa.c (dump_decl_set): Likewise.
16012
16013 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
16014
16015         PR debug/45003
16016         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
16017         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
16018         ZERO_EXTEND here.
16019
16020 2010-07-20  Richard Henderson  <rth@redhat.com>
16021
16022         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
16023
16024 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
16025
16026         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
16027         computing the sum of the stack pointer and a large constant.
16028         * config/arm/constraints.md (M): Remove superfluous parentheses.
16029         (Pc): New constraint.
16030
16031 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
16032
16033         PR debug/45006
16034         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
16035         operand's type if exp is tcc_unary class tree.
16036
16037 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
16038
16039         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
16040         Reverse sense of if_then_else condition.
16041
16042 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
16043
16044         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
16045         * config/rs6000/rs6000.c (rs6000_override_options): Set
16046         rs6000_block_move_inline_limit appropriately.
16047         (expand_block_move): Use rs6000_block_move_inline_limit.
16048         * doc/invoke.texi (mblock-move-inline-limit): Document.
16049
16050 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
16051
16052         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
16053         FROM and TO.  All callers changed.  Don't look for tracked uses,
16054         just scan the RTL for DEBUG_INSNs and substitute.
16055         (reload_combine_recognize_pattern): Call fixup_debug_insns.
16056         (reload_combine): Ignore DEBUG_INSNs.
16057
16058 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
16059
16060         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
16061         depth to 8 from 5.
16062
16063         PR debug/45003
16064         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
16065         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
16066         instead of the result's type.
16067
16068 2010-07-20  Richard Guenther  <rguenther@suse.de>
16069
16070         PR tree-optimization/44977
16071         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
16072         SSA form.
16073
16074 2010-07-20  Richard Guenther  <rguenther@suse.de>
16075
16076         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
16077         (lto_symtab_merge_decls_2): Likewise.
16078         * gimple.h (gimple_types_compatible_p): Declare.
16079         * gimple.c (gimple_queue_type_fixup): Remove.
16080         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
16081         (gimple_compatible_complete_and_incomplete_type_p): New function.
16082         (gimple_types_compatible_p): Adjust.
16083         (gimple_register_type): Remove type fixup code.
16084         (print_gimple_types_stats): Adjust.
16085         (free_gimple_type_tables): Likewise.
16086         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
16087         * tree-ssa.c (useless_type_conversion_p): Likewise.
16088
16089 2010-07-20  Richard Guenther  <rguenther@suse.de>
16090
16091         PR middle-end/44971
16092         PR middle-end/44988
16093         * tree-ssa.c (maybe_optimize_var): New function split out from ...
16094         (execute_update_addresses_taken): ... here.
16095         (non_rewritable_mem_ref_base): Likewise.
16096         (execute_update_addresses_taken): Do not iterate over all referenced
16097         vars but just all local decls and parms.
16098         Properly check call and asm arguments and rewrite call arguments.
16099
16100 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
16101
16102         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
16103         to top level.
16104         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
16105         definitions ...
16106         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
16107         New macro.
16108         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
16109
16110 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
16111
16112         * gengtype.c (start_root_entry): New function, split out from
16113         write_root.  Check whether V is null and raise an error if so.
16114         (write_field_root): Check for V being null.  Don't raise an error here;
16115         set V to null instead.
16116         (write_root): Update comment above function.  Use start_root_entry.
16117
16118 2010-07-19  Xinliang David Li  <davidxl@google.com>
16119
16120         PR testsuite/44932
16121         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
16122         def edges.
16123         (find_uninit_use): Add dump.
16124         (is_use_properly_guarded): Ditto.
16125         (warn_uninitialized_phi): Ditto.
16126         (execute_late_warn_uninitialized): Ditto.
16127
16128 2010-07-19  Richard Guenther  <rguenther@suse.de>
16129
16130         PR middle-end/44941
16131         * expr.c (emit_block_move_hints): Move zero size check first.
16132         Move asserts to more useful places.
16133         * calls.c (load_register_parameters): Check for zero size.
16134
16135 2010-07-19  Richard Henderson  <rth@redhat.com>
16136
16137         * tree-optimize.c (execute_all_early_local_passes): New.  Change
16138         cgraph_state here ...
16139         (execute_early_local_optimizations): ... not here.  Remove.
16140         (pass_early_local_passes, pass_all_early_optimizations): Update.
16141
16142 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
16143
16144         * postreload.c (reload_combine_closest_single_use): Ignore the
16145         number of uses for DEBUG_INSNs.
16146         (fixup_debug_insns): New static function.
16147         (reload_combine_recognize_const_pattern): Use it.  Don't let the
16148         main loop be affected by DEBUG_INSNs.
16149         Really disallow moving adds past a jump insn.
16150         (reload_combine_recognize_pattern): Don't update use_ruid here.
16151         (reload_combine_note_use): Do it here.
16152         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
16153
16154 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
16155
16156         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
16157         of a loop.
16158         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
16159
16160 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
16161
16162         * config/i386/darwin.h: Define darwin_emit_branch_islands.
16163         (TARGET_MACHO_BRANCH_ISLANDS): New.
16164         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
16165         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
16166         default value.
16167         * config/i386/i386.c (output_pic_addr_const): Do not emit
16168         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
16169         (x86_output_mi_thunk): Adjust symbol creation.
16170         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
16171         Remove out of date comment.
16172         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
16173         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16174         (DARWIN_GENERATE_ISLANDS): Ditto.
16175         (output_call):  Do not emit branch islands unless
16176         darwin_emit_branch_islands is set.
16177         * config/darwin.c: Declare darwin_emit_branch_islands.
16178         (machopic_indirect_data_reference): Do not emit unless
16179         darwin_emit_branch_islands is set.
16180         (darwin_override_options): Set darwin_emit_branch_islands
16181         where it is needed.
16182         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
16183
16184 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16185
16186         * doc/sourcebuild.texi (Effective-Target Keywords): Document
16187         sse_runtime, sse2_runtime.
16188
16189 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
16190
16191         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
16192         low half of a single-register SCmode return value before ORing
16193         it with the high half.
16194         * config/mips/mips16.S (MERGE_GPRf): Likewise.
16195
16196 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16197
16198         PR target/44805
16199         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
16200         on all targets.
16201
16202 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
16203
16204         PR target/42235
16205         * postreload.c (reload_cse_move2add): Return bool, true if anything.
16206         changed.  All callers changed.
16207         (move2add_use_add2_insn): Likewise.
16208         (move2add_use_add3_insn): Likewise.
16209         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
16210         reload_combine.
16211         (RELOAD_COMBINE_MAX_USES): Bump to 16.
16212         (last_jump_ruid): New static variable.
16213         (struct reg_use): New members CONTAINING_MEM and RUID.
16214         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
16215         (reload_combine_split_one_ruid, reload_combine_split_ruids,
16216         reload_combine_purge_insn_uses, reload_combine_closest_single_use
16217         reload_combine_purge_reg_uses_after_ruid,
16218         reload_combine_recognize_const_pattern): New static functions.
16219         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
16220         is true for our reg and that we have available index regs.
16221         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
16222         callers changed.  Use them to initialize fields in struct reg_use.
16223         (reload_combine): Initialize last_jump_ruid.  Be careful when to
16224         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
16225         Call reload_combine_recognize_const_pattern.
16226         (reload_combine_note_store): Update REAL_STORE_RUID field.
16227
16228 2010-07-16  Jason Merrill  <jason@redhat.com>
16229
16230         * Makefile.in (opts-common.o): Depend on options.h.
16231
16232 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16233
16234         * tree.c (build_common_builtin_nodes): Use build_function_type_list
16235         instead of build_function_type.
16236         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
16237         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
16238
16239 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
16240
16241         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
16242         do all the work.
16243         (rs6000_emit_int_cmove): Use function pointers for insn generation.
16244         Don't force values into registers unnecessarily.
16245         (output_isel): Assert that we're not given conditions we can't handle.
16246         Delete corresponding code.
16247         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
16248         scc_comparison_operator constraint.  Permit 0 for the consequent
16249         operand.  Permit any GPR for the alternative operand.
16250         (isel_unsigned_<mode>): Likewise.
16251
16252 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
16253
16254         PR target/44942
16255         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
16256         argument to const_tree.
16257         * config/i386/i386.c (function_arg_advance): If padding needs to be
16258         inserted before argument, increment cum->words by number of padding
16259         words as well.
16260         (contains_aligned_value_p): Change argument to const_tree.
16261         (ix86_function_arg_boundary): Change second argument to const_tree.
16262
16263 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
16264
16265         PR target/42235
16266         * function.c (record_hard_reg_sets): New static function.
16267         (assign_parm_setup_reg): If an optab for extending exists and the
16268         generated code clobbbers no hard regs, emit the insn directly and
16269         create a REG_EQUIV note.
16270
16271 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
16272
16273         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
16274         TREE_CHAIN.
16275         * c-typeck.c (push_init_level): Likewise.
16276         (process_init_element): Likewise.
16277
16278 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
16279
16280         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
16281         (integer_three_node): Add.
16282         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
16283         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
16284         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
16285         of call build_int_cst.
16286         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
16287         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
16288         (find_interesting_uses_address): Ditto.
16289         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
16290         * tree-eh.c (lower_eh_constructs_2): Ditto.
16291         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
16292         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
16293         * expmed.c (expand_divmod): Ditto.
16294         * tree-mudflap.c (mx_register_decls): Ditto.
16295         * varasm.c (array_size_for_constructor): Ditto.
16296         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
16297         * c-parser.c (c_parser_postfix_expression): Ditto.
16298
16299 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
16300
16301         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
16302         New static variables.
16303         (reload_combine_recognize_pattern): New static function, broken out
16304         of reload_combine.
16305         (reload_combine): Use it.  Only initialize first_index_reg and
16306         last_index_reg once.
16307
16308 2010-07-15  Richard Henderson  <rth@redhat.com>
16309
16310         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
16311         when done.
16312
16313 2010-07-15  Jan Hubicka  <jh@suse.cz>
16314
16315         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
16316         comdats for broken gold.
16317         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
16318
16319 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
16320
16321         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
16322
16323 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
16324
16325         * tree.h (DECL_CHAIN): Define.
16326         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
16327         * c-decl.c: Likewise.
16328         * c-parser.c: Likewise.
16329         * c-typeck.c: Likewise.
16330         * cfgexpand.c: Likewise.
16331         * cgraph.c: Likewise.
16332         * cgraphunit.c: Likewise.
16333         * combine.c: Likewise.
16334         * config/alpha/alpha.c: Likewise.
16335         * config/arm/arm.c: Likewise.
16336         * config/frv/frv.c: Likewise.
16337         * config/i386/i386.c: Likewise.
16338         * config/i386/winnt-cxx.c: Likewise.
16339         * config/ia64/ia64.c: Likewise.
16340         * config/iq2000/iq2000.c: Likewise.
16341         * config/mep/mep.c: Likewise.
16342         * config/mips/mips.c: Likewise.
16343         * config/pa/som.h: Likewise.
16344         * config/rs6000/rs6000.c: Likewise.
16345         * config/s390/s390.c: Likewise.
16346         * config/sh/sh.c: Likewise.
16347         * config/sh/symbian-cxx.c: Likewise.
16348         * config/sparc/sparc.c: Likewise.
16349         * config/spu/spu.c: Likewise.
16350         * config/stormy16/stormy16.c: Likewise.
16351         * config/vxworks.c: Likewise.
16352         * config/xtensa/xtensa.c: Likewise.
16353         * coverage.c: Likewise.
16354         * dbxout.c: Likewise.
16355         * dwarf2out.c: Likewise.
16356         * emit-rtl.c: Likewise.
16357         * expr.c: Likewise.
16358         * function.c: Likewise.
16359         * gimple-low.c: Likewise.
16360         * gimple-pretty-print.c: Likewise.
16361         * gimplify.c: Likewise.
16362         * integrate.c: Likewise.
16363         * ipa-inline.c: Likewise.
16364         * ipa-prop.c: Likewise.
16365         * ipa-split.c: Likewise.
16366         * ipa-struct-reorg.c: Likewise.
16367         * ipa-type-escape.c: Likewise.
16368         * langhooks.c: Likewise.
16369         * lto-cgraph.c: Likewise.
16370         * omp-low.c: Likewise.
16371         * stor-layout.c: Likewise.
16372         * tree-cfg.c: Likewise.
16373         * tree-complex.c: Likewise.
16374         * tree-dfa.c: Likewise.
16375         * tree-dump.c: Likewise.
16376         * tree-inline.c: Likewise.
16377         * tree-mudflap.c: Likewise.
16378         * tree-nested.c: Likewise.
16379         * tree-object-size.c: Likewise.
16380         * tree-pretty-print.c: Likewise.
16381         * tree-sra.c: Likewise.
16382         * tree-ssa-live.c: Likewise.
16383         * tree-ssa-loop-niter.c: Likewise.
16384         * tree-ssa-math-opts.c: Likewise.
16385         * tree-ssa-reassoc.c: Likewise.
16386         * tree-ssa-sccvn.c: Likewise.
16387         * tree-ssa-structalias.c: Likewise.
16388         * tree-tailcall.c: Likewise.
16389         * tree-vrp.c: Likewise.
16390         * tree.c: Likewise.
16391         * var-tracking.c: Likewise.
16392         * varasm.c: Likewise.
16393
16394 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16395
16396         PR target/44877
16397         * config/spu/spu.c (spu_expand_builtin_1): Allow references
16398         (as well as pointers) as argument to mask_for_load builtins.
16399
16400 2010-07-15  Richard Guenther  <rguenther@suse.de>
16401
16402         PR tree-optimization/44946
16403         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
16404         with accessing only padding properly.
16405
16406 2010-07-15  Jan Hubicka  <jh@suse.cz>
16407
16408         * ipa.c (function_and_variable_visibility): Variables marked as used
16409         should not be localized.
16410
16411 2010-07-15  Jan Hubicka  <jh@suse.cz>
16412
16413         * cgraph.c: Include lto-streamer.h
16414         (change_decl_assembler_name): Work when assembler name hash is at place.
16415         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
16416         be sure to rename it to avoid name clash.
16417         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
16418         Localize hidden symbols only when locally defined.
16419
16420 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
16421
16422         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
16423
16424 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
16425             Kevin F. Quinn  <kevquinn@gentoo.org>
16426
16427         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
16428         * common.opt: Add -Wtrampolines.
16429         * doc/invoke.texi: Add -Wtrampolines.
16430
16431 2010-07-15  Jie Zhang  <jie@codesourcery.com>
16432
16433         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
16434         cortex_a8_issue_ls.
16435
16436 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
16437
16438         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
16439         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
16440
16441 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16442
16443         * config/spu/spu.c (reg_names): Remove prototype.
16444         (call_used_regs): Likewise.
16445
16446 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
16447
16448         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
16449         "unused" with attribute "used".
16450         (__JCR_END__): Likewise.
16451         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
16452         "used" attribute.
16453         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
16454
16455 2010-07-14  Richard Guenther  <rguenther@suse.de>
16456
16457         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
16458         (maybe_fixup_decls): Likewise.
16459         (input_gimple_stmt): Do not fixup anything.
16460         * lto-streamer-out.c (output_gimple_stmt): Make sure all
16461         non-automatic variable uses are wrapped inside a MEM_REF.
16462
16463 2010-07-14  Richard Henderson  <rth@redhat.com>
16464
16465         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
16466         for functions.
16467         * varasm.c (assemble_variable): Remove early exit for functions;
16468         assert that we're given a variable.
16469
16470 2010-07-14  Jie Zhang  <jie@codesourcery.com>
16471
16472         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
16473         cortex_a8_default when neon_type is not none.
16474
16475 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16476
16477         * lower-subreg.c (subreg_context): New static bitmap.
16478         (decompose_multiword_subregs): Allocate and free it.
16479         (find_decomposable_subregs): Set a bit in it for a register that
16480         occurs in a subreg that changes mode but not size.
16481         (can_decompose_p): Test it instead of non_decomposable_context.
16482
16483 2010-07-14  Richard Guenther  <rguenther@suse.de>
16484
16485         PR tree-optimization/44824
16486         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
16487         is_gimple_mem_ref_addr.
16488         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
16489         non-decl_address_invariant_p addresses.
16490
16491 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16492
16493         * reload.c (find_reloads): Revert code to penalize small register
16494         classes that was brought in with the IRA merge.
16495
16496 2010-07-14  Richard Guenther  <rguenther@suse.de>
16497
16498         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
16499         as base of ARRAY_REFs.
16500
16501 2010-07-14  Richard Guenther  <rguenther@suse.de>
16502
16503         PR middle-end/44930
16504         * tree-pretty-print.c (do_niy): Do not print a newline.
16505
16506 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
16507
16508         * ira-int.h (struct ira_object): New.
16509         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
16510         (struct ira_allocno): Remove members min, max,
16511         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
16512         conflict_allocnos_num and conflict_vec_p.  Add new member object.
16513         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
16514         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
16515         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
16516         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
16517         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
16518         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
16519         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
16520         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
16521         an ira_object_t rather than ira_allocno_t.  All uses changed.
16522         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
16523         contains a vector of ira_object_t; all uses changed.
16524         (ira_objects_num): Declare variable.
16525         (ira_create_allocno_object): Declare function.
16526         (ira_conflict_vector_profitable_p): Adjust prototype.
16527         (ira_allocate_conflict_vec): Renamed from
16528         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
16529         (ira_allocate_object_conflicts): Renamed from
16530         ira_allocate_allocno_conflicts; first arg now ira_object_t.
16531         (struct ira_object_iterator): New.
16532         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
16533         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
16534         to conflict_vec_p.  All uses changed.
16535         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
16536         Changed to take into account that conflicts are now tracked for
16537         objects.
16538         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
16539         Args changed to accept ira_object_t.  All uses changed.
16540         (allocnos_conflict_p): New static function.
16541         (collected_conflict_objects): Renamed from collected_allocno_objects;
16542         now a vector of ira_object_t.  All uses changed.
16543         (build_conflict_bit_table): Changed to take into account that
16544         conflicts are now tracked for objects.
16545         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
16546         (print_allocno_conflicts, ira_build_conflicts): Likewise.
16547         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
16548         setup_allocno_left_conflicts_size, allocno_reload_assign,
16549         fast_allocation): Likewise.
16550         * ira-lives.c (make_hard_regno_born, make_allocno_born)
16551         process_single_reg_class_operands, process_bb_node_lives): Likewise.
16552         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
16553         Likewise.
16554         * ira-build.c (ira_objects_num): New variable.
16555         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
16556         contains a vector of ira_object_t; all uses changed.
16557         (ira_object_id_map_vec): Corresponding change.
16558         (object_pool): New static variable.
16559         (initiate_allocnos): Initialize it.
16560         (finish_allocnos): Free it.
16561         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
16562         New functions.
16563         (ira_create_allocno): Don't set members that were removed.
16564         (ira_set_allocno_cover_class): Don't change conflict hard regs.
16565         (merge_hard_reg_conflicts): Changed to take into account that
16566         conflicts are now tracked for objects.
16567         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
16568         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
16569         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
16570         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
16571         setup_min_max_conflict_allocno_ids, ):  Likewise.
16572         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
16573         to ira_object_t; all callers changed.
16574         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
16575         to ira_object_t, all callers changed.
16576         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
16577         to ira_object_t, all callers changed.
16578         (conflict_check, curr_conflict_check_tick): Renamed from
16579         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
16580         changed.
16581         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
16582         arg changed to ira_object_t, all callers changed.
16583         (create_cap_allocno): Call ira_create_allocno_object.
16584         (finish_allocno): Free the corresponding object.
16585         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
16586         callers changed.  Adjusted for dealing with objects.
16587         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
16588         dealing with objects.
16589         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
16590
16591         * ira-int.h (struct live_range): Rename allocno member to object
16592         and change type to ira_object_t.
16593         (struct ira_object): New member live_ranges.
16594         (struct ira_allocno): Remove member live_ranges.
16595         (ALLOCNO_LIVE_RANGES): Remove.
16596         (OBJECT_LIVE_RANGES): New macro.
16597         (ira_create_live_range, ira_copy_live_range_list,
16598         ira_merge_live_range_list, ira_live_ranges_intersect_p,
16599         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
16600         * ira-build.c (ira_create_object): Initialize live ranges here.
16601         (ira_create_allocno): Not here.
16602         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
16603         changed to ira_object_t, all callers changed.
16604         (copy_live_range): Rename from copy_allocno_live_range, all callers
16605         changed.
16606         (ira_copy_live_range_list): Rename from
16607         ira_copy_allocno_live_range_list, all callers changed.
16608         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
16609         all callers changed.
16610         (ira_live_ranges_intersect_p): Rename from
16611         ira_allocno_live_ranges_intersect_p, all callers changed.
16612         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
16613         callers changed.
16614         (ira_finish_live_range_list): Rename from
16615         ira_finish_allocno_live_range_list, all callers changed.
16616         (change_object_in_range_list): Rename from change_allocno_in_range_list,
16617         last arg changed to ira_object_t, all callers changed.
16618         (finish_allocno): Changed to expect live ranges in the allocno's object.
16619         (move_allocno_live_ranges, copy_allocno_live_ranges,
16620         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
16621         ira_flattening, ira_build): Likewise.
16622         * ira-color.c (allocnos_have_intersected_live_ranges_p,
16623         slot_coalesced_allocno_live_ranges_intersect,
16624         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
16625         * ira-conflicts.c (build_conflict_bit_table): Likewise.
16626         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
16627         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
16628         make_allocno_dead, create_start_finish_chains,
16629         remove_some_program_points_and_update_live_ranges,
16630         ira_debug_live_range_list): Likewise.
16631
16632         * ira-int.h (ira_object_conflict_iterator): Rename from
16633         ira_allocno_conflict_iterator.
16634         (ira_object_conflict_iter_init): Rename from
16635         ira_allocno_conflict_iter_init, second arg changed to
16636         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
16637         FOR_EACH_ALLOCNO_CONFLICT.
16638         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
16639         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
16640         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
16641         * ira-conflicts.c (print_allocno_conflicts): Likewise.
16642
16643 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
16644
16645         PR other/44874
16646         * tree-dump.c (dump_options): Add enumerate_locals entry.
16647         Add TDF_NOID exclusion to all entry.
16648         * tree-dump.h (dump_enumerated_decls): Declare.
16649         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
16650         Don't display type uid.
16651         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
16652         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
16653         * tree-ssa-live.c: Include gimple.h.
16654         (numbered_tree_d): New struct.
16655         (numbered_tree): New typedef.
16656         (DEF_VEC_O (numbered_tree): New.
16657         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
16658         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
16659         (dump_enumerated_decls): Likewise.
16660         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
16661         debug info and flag_dump_final_insns, call dump_enumerated_decls.
16662         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
16663         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
16664
16665 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
16666
16667         * expmed.h (MAX_BITS_PER_WORD): Move to...
16668         * defaults.h (MAX_BITS_PER_WORD): ...here.
16669
16670 2010-07-13  DJ Delorie  <dj@redhat.com>
16671
16672         * config/h8300/h8300.c (h8300_init_once): Default to
16673         -fstrict_volatile_bitfields.
16674
16675         * config/sh/sh.c (sh_override_options): Default to
16676         -fstrict_volatile_bitfields.
16677
16678         * config/rx/rx.c (rx_option_override): New.
16679
16680         * config/m32c/m32c.c (m32c_override_options): Default to
16681         -fstrict_volatile_bitfields.
16682
16683 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
16684
16685         * tree.h (build_function_call_expr): Delete.
16686         (build_call_expr_loc_array): New function.
16687         (build_call_expr_loc_vec): New function.
16688         * tree-flow.h (struct omp_region): Change type of ws_args field
16689         to a VEC.
16690         * builtins.c (build_function_call_expr): Delete.
16691         (build_call_expr_loc_array): New function.
16692         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
16693         (build_call_expr): Likewise.
16694         (build_call_expr_loc_vec): New function.
16695         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
16696         build_function_call_expr.
16697         * expr.c (emutls_var_address): Likewise.
16698         * varasm.c (emutls_common_1): Likewise.
16699         * omp-low.c (expand_omp_atomic_mutex): Likewise.
16700         (expand_omp_taskreg): Adjust for new type of region->ws_args.
16701         (get_ws_args_for): Return a VEC instead of a tree.
16702         (expand_parallel_call): Call build_call_expr_loc_vec instead of
16703         build_function_call_expr.
16704         * stor-layout.c (self_referential_size): Likewise.
16705
16706 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
16707
16708         PR testsuite/44701
16709         * recog.c (constrain_operands): Allow side-effects in memory
16710         operands if either < or > constraint is used, rather than if
16711         both < and > is used.
16712
16713 2010-07-13  Richard Guenther  <rguenther@suse.de>
16714
16715         PR middle-end/44911
16716         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
16717         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
16718         without name.
16719
16720 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
16721
16722         PR target/44761
16723         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
16724         to variable emited.
16725         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
16726         * config/sh/sh.md (symGOT_load): Likewise.
16727         (symDTPOFF2reg): Likewise.
16728         (symTPOFF2reg): Likewise.
16729
16730 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16731
16732         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
16733         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
16734
16735 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16736
16737         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
16738         explanation.
16739         Find ucontext_t * on Solaris 11.
16740         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
16741         Handle new Solaris 11 __sighndlr patterns.
16742
16743 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
16744
16745         PR debug/44901
16746         * vec.h (VEC_block_remove): Fix comment.
16747         * tree-ssa-live.c (remove_unused_locals): Don't use
16748         VEC_unordered_remove on local_decls, instead replace a single
16749         vector element in each iteration if at least one element had
16750         to be removed and VEC_truncate at the end.
16751         * omp-low.c (expand_omp_taskreg): Likewise.
16752
16753 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16754
16755         * c-decl.c (finish_function): Fix typo in comment.
16756
16757 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
16758
16759         PR bootstrap/44921
16760         * postreload.c (move2add_use_add3_insn): Silence gcc warning
16761         on min_regno.
16762
16763 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
16764
16765         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
16766         (simplify_stmt_using_ranges): Use it.
16767
16768 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16769
16770         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
16771         member.  Do not mark as GTY(()).
16772         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
16773         (spu_builtin_decls): New static variable.
16774         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
16775         (spu_init_builtins): Likewise.
16776         (spu_builtin_mul_widen_even): Likewise.
16777         (spu_builtin_mul_widen_odd): Likewise.
16778         (spu_builtin_mask_for_load): Likewise.
16779         (spu_builtin_vec_perm): Likewise.
16780         * config/spu/spu-c.c: Include "target.h".
16781         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
16782         of using spu_builtins[].fndecl.
16783
16784 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16785
16786         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
16787         imply -minterlink-mips16.
16788
16789 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16790
16791         * config/mips/mips.h (mips16_globals): Declare.
16792         (SWITCHABLE_TARGET): Define.
16793         * config/mips/mips.c: Include target-globals.h.
16794         (mips16_globals): New variable.
16795         (mips_set_mips16_mode): Use save_target_globals and
16796         restore_target_globals instead of target_reinit.
16797
16798 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16799
16800         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
16801         to say that the function can be called more than once.
16802         * target-globals.c (save_target_globals): Call init_reg_sets.
16803
16804 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16805
16806         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
16807         * bb-reorder.h: New file.
16808         * bb-reorder.c (default_target_bb_reorder): New variable.
16809         (this_target_bb_reorder): New conditional variable.
16810         (uncond_jump_length): Redefine as a macro.
16811         * target-globals.h (this_target_bb_reorder): Declare.
16812         (target_globals): Add a bb_reorder field.
16813         (restore_target_globals): Copy the bb_reorder field to
16814         this_target_bb-reorder.
16815         * target-globals.c: Include bb-reorder.h.
16816         (default_target_globals): Initialize the bb_reorder field.
16817         (save_target_globals): Likewise.
16818
16819 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16820
16821         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
16822         * gcse.h: New file.
16823         * gcse.c: Include gcse.h.
16824         (default_target_gcse): New variable.
16825         (this_target_gcse): New conditional variable.
16826         (can_copy): Redefine as a macro.
16827         (can_copy_init_p): New macro.
16828         (can_copy_p): Remove can_copy_init_p.
16829         * target-globals.h (this_target_gcse): Declare.
16830         (target_globals): Add a gcse field.
16831         (restore_target_globals): Copy the gcse field to this_target_gcse.
16832         * target-globals.c: Include gcse.h.
16833         (default_target_globals): Initialize the gcse field.
16834         (save_target_globals): Likewise.
16835
16836 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16837
16838         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
16839         and x_ira_prohibited_mode_move_regs_initialized_p.
16840         (ira_prohibited_mode_move_regs): Redefine as a macro.
16841         * ira.c (ira_prohibited_mode_move_regs): Delete.
16842         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
16843
16844 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16845
16846         * reload.h (target_reload): Add x_cached_reg_save_code and
16847         x_cached_reg_restore_code.
16848         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
16849         Redefine as macros.
16850
16851 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16852
16853         * Makefile.in (target-globals.o): Depend on builtins.h.
16854         * builtins.h: New file.
16855         * builtins.c: Include builtins.h.
16856         (default_target_builtins): New variable.
16857         (this_target_builtins): New conditional variable.
16858         (apply_args_mode, apply_result_mode): Redefine as macros.
16859         * target-globals.h (this_target_builtins): Declare.
16860         (target_globals): Add a builtins field.
16861         (restore_target_globals): Copy the builtins field to
16862         this_target_builtins.
16863         * target-globals.c: Include builtins.h.
16864         (default_target_globals): Initialize the builtins field.
16865         (save_target_globals): Likewise.
16866
16867 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16868
16869         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
16870         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
16871         from expmed.c.
16872         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
16873         (alg_hash, alg_hash_used_p): New macros.
16874         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
16875         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
16876         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
16877
16878 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16879
16880         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
16881         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
16882         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
16883         (this_op_costs, costs_classes): Redefine as macros.
16884         (record_reg_classes): Don't take op_costs as a parameter.
16885         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
16886         (scan_one_insn): Update call to record_operand_costs.
16887
16888 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16889
16890         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
16891         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
16892         (target_ira_int): New structure.
16893         (default_target_ira_int): Declare.
16894         (this_target_ira_int): Declare as a variable or define as a macro.
16895         (ira_reg_mode_hard_regset, ira_register_move_cost)
16896         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
16897         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
16898         (prohibited_class_mode_regs, ira_important_classes_num)
16899         (ira_important_classes, ira_reg_class_intersect)
16900         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
16901         (ira_reg_class_union): Redefine as macros.
16902         * ira.h (target_ira): New structure.
16903         (default_target_ira): Declare.
16904         (this_target_ira): Declare as a variable or define as a macro.
16905         (ira_available_class_regs, ira_hard_regno_cover_class)
16906         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
16907         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
16908         (ira_class_hard_regs_num): Redefine as macros.
16909         * ira.c (default_target_ira, default_target_ira_int): New variables.
16910         (this_target_ira, this_target_ira_int): New conditional variables.
16911         (ira_reg_mode_hard_regset, ira_memory_move_cost)
16912         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
16913         (ira_class_subset_p): Delete.
16914         (no_unit_alloc_regs): Redefine as a macro.
16915         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
16916         (ira_class_hard_regs_num, ira_class_hard_reg_index)
16917         (ira_available_class_regs): Delete.
16918         (alloc_reg_class_subclasses): Redefine as a macro.
16919         (ira_reg_class_cover_size, ira_reg_class_cover)
16920         (ira_important_classes_num, ira_important_classes)
16921         (ira_important_class_nums, ira_class_translate): Delete.
16922         (cover_class_order): Document the variable's lifetime.
16923         (reorder_important_classes): Don't set ira_important_class_nums.
16924         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
16925         (ira_reg_class_super_classes, ira_reg_class_union)
16926         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
16927         Delete.
16928         (setup_reg_class_nregs): Don't set ira_max_regs.
16929         (prohibited_class_mode_regs): Delete.
16930         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
16931         (target_globals): Add ira and ira_int fields.
16932         (restore_target_globals): Copy the ira field to this_target_ira
16933         and the ira_int field to this_target_ira_int.
16934         * target-globals.c: Include ira-int.h.
16935         (default_target_globals): Initialize the ira and ira_int fields.
16936         (save_target_globals): Likewise.
16937
16938 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16939
16940         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
16941         * cfgloop.h (target_cfgloop): New structure.
16942         (default_target_cfgloop): Declare.
16943         (this_target_cfgloop): Declare as a variable or define as a macro.
16944         (target_avail_regs, target_clobbered_regs, target_res_regs)
16945         (target_reg_cost, target_spill_cost): Redefine as macros.
16946         * cfgloopanal.c (default_target_cfgloop): New variable.
16947         (this_target_cfgloop): New conditional variable.
16948         (target_avail_regs, target_clobbered_regs, target_res_regs)
16949         (target_reg_cost, target_spill_cost): Delete.
16950         * target-globals.h (this_target_cfgloop): Declare.
16951         (target_globals): Add a cfgloop field.
16952         (restore_target_globals): Copy the cfgloop field to
16953         this_target_cfgloop.
16954         * target-globals.c: Include cfgloop.h.
16955         (default_target_globals): Initialize the cfgloop field.
16956         (save_target_globals): Likewise.
16957
16958 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16959
16960         * regs.h (target_regs): Add x_direct_load, x_direct_store and
16961         x_float_extend_from_mem.
16962         (direct_load, direct_store, float_extend_from_mem): New macros.
16963         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
16964
16965 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16966
16967         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
16968         (target-globals.o): Depend on $(LIBFUNCS_H).
16969         * libfuncs.h: Include hashtab.h.
16970         (libfunc_entry): Moved from optabs.c.
16971         (target_libfuncs): New structure.
16972         (default_target_libfuncs): Declare.
16973         (this_target_libfuncs): Declare as a variable or define as a macro.
16974         (libfunc_table): Redefine as a macro.
16975         * optabs.c (default_target_libfuncs): New variable.
16976         (this_target_libfuncs): New conditional variable.
16977         (libfunc_table): Delete.
16978         (libfunc_entry): Moved to optabs.h.
16979         (libfunc_hash): Redefine as a macro.
16980         (hash_libfunc, eq_libfunc): Fix comments.
16981         (init_optabs): Use libfunc_hash to detect cases where the function
16982         has already been called.  Clear the hash table instead of
16983         recreating it.
16984         * target-globals.h (this_target_libfuncs): Declare.
16985         (target_globals): Add a libfuncs field.
16986         (restore_target_globals): Copy the libfuncs field to
16987         this_target_libfuncs.
16988         * target-globals.c: Include libfuncs.h.
16989         (default_target_globals): Initialize the libfuncs field.
16990         (save_target_globals): Likewise.
16991
16992 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16993
16994         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
16995         in all dependency lists.
16996
16997 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
16998
16999         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
17000         * optabs.h (target_optabs): New structure.
17001         (default_target_optabs): Declare.
17002         (this_target_optabs): Declare as a variable or define as a macro.
17003         (optab_table, convert_optab_table, direct_optab_table): Redefine
17004         as macros.
17005         * optabs.c (default_target_optabs): New variable.
17006         (this_target_optabs): New conditional variable.
17007         (optab_table, convert_optab_table, direct_optab_table): Delete.
17008         * target-globals.h (this_target_optabs): Declare.
17009         (target_globals): Add a optabs field.
17010         (restore_target_globals): Copy the optabs field to
17011         this_target_optabs.
17012         * target-globals.c: Include expr.h and optabs.h.
17013         (default_target_globals): Initialize the optabs field.
17014         (save_target_globals): Likewise.
17015
17016 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17017
17018         * flags.h (target_flagstate): Add x_flag_excess_precision.
17019         (flag_excess_precision): Redefine as a macro.
17020         * toplev.c (flag_excess_precision): Delete.
17021
17022 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17023
17024         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
17025         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
17026         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
17027         (no_caller_save_reg_set): Redefine as a macro.
17028         * reload.h (target_reload): Add x_caller_save_initialized_p and
17029         x_regno_save_mode.
17030         (caller_save_initialized_p): Redefine as a macro.
17031         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
17032         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
17033         (regno_save_mode): Redefine as a macro.
17034
17035 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17036
17037         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
17038         * expmed.h: New file.
17039         * expmed.c (default_target_costs): New variable.
17040         (this_target_costs): New conditional variable.
17041         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
17042         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
17043         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
17044         * target-globals.h (this_target_expmed): Declare.
17045         (target_globals): Add a expmed field.
17046         (restore_target_globals): Copy the expmed field to
17047         this_target_expmed.
17048         * target-globals.c: Include expmed.h.
17049         (default_target_globals): Initialize the expmed field.
17050         (save_target_globals): Likewise.
17051
17052 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17053
17054         * Makefile.in (target-globals.o): Depend on reload.h.
17055         * reload.h (target_reload): New structure.
17056         (default_target_reload): Declare.
17057         (this_target_reload): Declare as a variable or define as a macro.
17058         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
17059         * reload1.c (default_target_reload): New variable
17060         (this_target_reload): New conditional variable.
17061         (indirect_symref_ok, double_reg_address_ok): Delete.
17062         (spill_indirect_levels): Redefine as a macro.
17063         * target-globals.h (this_target_reload): Declare.
17064         (target_globals): Add a reload field.
17065         (restore_target_globals): Copy the reload field to
17066         this_target_reload.
17067         * target-globals.c: Include hard-reg-set.h.
17068         (default_target_globals): Initialize the reload field.
17069         (save_target_globals): Likewise.
17070
17071 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17072
17073         * rtl.h (target_rtl): Add x_static_reg_base_value.
17074         * alias.c (static_reg_base_value): Redefine as a macro.
17075
17076 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17077
17078         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
17079         (GTFILES): Remove reginfo.c.
17080         * rtl.h (target_rtl): Add x_top_of_stack.
17081         (top_of_stack): New macro.
17082         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
17083         (top_of_stack): Delete.
17084
17085 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17086
17087         * regs.h (target_regs): Add x_hard_regs_of_mode,
17088         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
17089         x_may_move_out_cost and x_last_mode_for_init_move_cost.
17090         (have_regs_of_mode, contains_reg_of_mode, move_cost)
17091         (may_move_in_cost, may_move_out_cost): Redefine as macros.
17092         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
17093         (may_move_in_cost, may_move_out_cost): Delete.
17094         (last_mode_for_init_move_cost): Redefine as a macro.
17095
17096 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17097
17098         * hard-reg-set.h (target_hard_regs): New structure.
17099         (default_target_hard_regs): Declare.
17100         (this_target_hard_regs): Declare as a variable or define as a macro.
17101         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
17102         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
17103         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
17104         (reg_class_size, reg_class_subclasses, reg_class_subunion)
17105         (reg_class_superunion, reg_names): Redefine as macros.
17106         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
17107         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
17108         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
17109         (reg_class_contents, reg_class_size, reg_class_subclasses)
17110         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
17111         (default_target_hard_regs): New variable
17112         (this_target_hard_regs, initial_call_really_used_regs)
17113         (initial_reg_alloc_order): New conditional variables.
17114         (initial_reg_names): New variable.
17115         (init_reg_sets): Assert that initial_call_really_used_regs,
17116         initial_reg_alloc_order and initial_reg_names
17117         are all the same size as their variable counterparts.  Use them to
17118         initialize those counterparts.
17119         * target-globals.h (this_target_hard_regs): Declare.
17120         (target_globals): Add a hard_regs field.
17121         (restore_target_globals): Copy the hard_regs field to
17122         this_target_hard_regs.
17123         * target-globals.c: Include hard-reg-set.h.
17124         (default_target_globals): Initialize the hard_regs field.
17125         (save_target_globals): Likewise.
17126
17127 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17128
17129         * Makefile.in (target-globals.o): Depend on $(RTL_H).
17130         * rtl.h (target_rtl): New structure.
17131         (default_target_rtl): Declare.
17132         (this_target_rtl): Declare as a variable or define as a macro.
17133         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
17134         Redefine as macros.
17135         * emit-rtl.c (default_target_rtl): New variable.
17136         (this_target_rtl): New conditional variable.
17137         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
17138         (return_address_pointer_rtx): Delete.
17139         (initial_regno_reg_rtx): New macro.
17140         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
17141         (init_emit_regs): Likewise.
17142         * target-globals.h (this_target_rtl): Declare.
17143         (target_globals): Add a rtl field.
17144         (restore_target_globals): Copy the rtl field to this_target_rtl.
17145         * target-globals.c: Include rtl.h.
17146         (default_target_globals): Initialize the rtl field.
17147         (save_target_globals): Likewise.
17148
17149 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17150
17151         * Makefile.in (target-globals.o): Depend on $(REGS_H).
17152         * regs.h (target_reg_modes): New structure.
17153         (default_target_reg_modes): Declare.
17154         (this_target_reg_modes): Declare as a variable or define as a macro.
17155         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
17156         * reginfo.c (default_target_reg_modes): New variable.
17157         (this_target_reg_modes): New conditional variable.
17158         (hard_regno_nregs, reg_raw_mode): Delete.
17159         * target-globals.h (this_target_regs): Declare.
17160         (target_globals): Add a regs field.
17161         (restore_target_globals): Copy the regs field to this_target_regs.
17162         * target-globals.c: Include regs.h.
17163         (default_target_globals): Initialize the regs field.
17164         (save_target_globals): Likewise.
17165
17166 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
17167
17168         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
17169         * doc/tm.texi: Regenerate.
17170         * Makefile.in (OBJS-common): Add target-globals.o.
17171         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
17172         and target-globals.h.
17173         (target-globals.o): New rule.
17174         (GTFILES): Include $(srcdir)/target-globals.h.
17175         * defaults.h (SWITCHABLE_TARGET): Define.
17176         * gengtype.c (open_base_files): Add target-globals.h to the
17177         list of includes.
17178         * target-globals.h: New file.
17179         * target-globals.c: Likewise.
17180
17181         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
17182         * flags.h (target_flag_state): New structure.
17183         (default_target_flag_state): Declare.
17184         (this_target_flag_state): Declare as a variable or define as a macro.
17185         (align_loops_log): Redefine as a macro.
17186         (align_loops_max_skip, align_jumps_log): Likewise.
17187         (align_jumps_max_skip, align_labels_log): Likewise.
17188         (align_labels_max_skip, align_functions_log): Likewise.
17189         * toplev.c (default_target_flag_state): New variable.
17190         (this_target_flag_state): New conditional variable.
17191         (align_loops_log): Delete.
17192         (align_loops_max_skip, align_jumps_log): Likewise.
17193         (align_jumps_max_skip, align_labels_log): Likewise.
17194         (align_labels_max_skip, align_functions_log): Likewise.
17195         * target-globals.h (this_target_flag_state): Declare.
17196         (target_globals): Add a flag_state field.
17197         (restore_target_globals): Copy the flag_state field to
17198         this_target_flag_state.
17199         * target-globals.c: Include flags.h.
17200         (default_target_globals): Initialize the flag_state field.
17201         (save_target_globals): Likewise.
17202
17203 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17204
17205         * postreload.c (reg_symbol_ref[]): New.
17206         (move2add_use_add2_insn): New.
17207         (move2add_use_add3_insn): New.
17208         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
17209         (move2add_note_store): Likewise.
17210
17211 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
17212
17213         PR rtl-optimization/44752
17214         * genautomata.c (main): Don't emit an empty file even if there
17215         is no automaton.
17216
17217 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17218
17219         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
17220         ix86_solaris_return_in_memory.
17221         * config/i386-protos.h: Reflect this.
17222         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17223         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
17224         Move ...
17225         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
17226
17227 2010-07-12  Jie Zhang  <jie@codesourcery.com>
17228
17229         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
17230         align the stack when it's going to be saved.
17231
17232 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17233
17234         PR pch/14940
17235         * config/host-solaris.c (mmap_fixed): New function.
17236         (sol_gt_pch_get_address): Use it.
17237         (sol_gt_pch_use_address): Likewise.
17238
17239 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17240
17241         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
17242         pentiumpro on Solaris 8 and 9/x86.
17243         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
17244         Document SSE/SSE2 support.
17245         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
17246
17247 2010-07-12  Andi Kleen  <ak@linux.intel.com>
17248
17249         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
17250         instead of gcc_assert to print better error message for multiple
17251         prevailing defs.
17252
17253 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
17254
17255         * config/i386/i386.c (ix86_asm_output_function_label): Change format
17256         string placeholder from 0x%x to %#x.
17257         (ix86_code_end): Use putc to output '\n'.
17258         (ix86_print_operand) <case ';'>: Use putc to output ';'.
17259
17260 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
17261
17262         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
17263         in directive -export.
17264
17265 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
17266
17267         * reginfo.h (reg_classes_intersect_p): Change arguments type to
17268         reg_class_t.
17269         * rtl.h (reg_classes_intersect_p): Adjust prototype.
17270
17271         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17272         Remove macros.
17273         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
17274         rs6000_memory_move_cost): Remove
17275         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
17276         TARGET_MEMORY_MOVE_COST): Define.
17277         (rs6000_register_move_cost): Make static. Change arguments type from
17278         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
17279         (rs6000_memory_move_cost): Make static. Change arguments type from
17280         'enum reg_class' to reg_class_t.
17281
17282 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
17283
17284         PR middle-end/42505
17285         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
17286         lookup code into....
17287         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
17288         new functions.
17289         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
17290         * cfgloopanal.c (target_clobbered_regs): Define.
17291         (init_set_costs): Initialize target_clobbered_regs.
17292         (estimate_reg_pressure_cost): Add call_p argument.  When true,
17293         adjust the number of available registers to exclude the
17294         call-clobbered registers.
17295         * cfgloop.h (target_clobbered_regs): Declare.
17296         (estimate_reg_pressure_cost): Adjust declaration.
17297         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
17298         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
17299         (determine_set_costs): Dump target_clobbered_regs.
17300         (loop_body_includes_call): New function.
17301         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
17302         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
17303         call_p flag through.
17304         (best_gain_for_invariant): Likewise.
17305         (find_invariants_to_move): Likewise.
17306         (move_single_loop_invariants): Likewise, using already-computed
17307         has_call field.
17308
17309 2010-07-10  Richard Guenther  <rguenther@suse.de>
17310             Joern Rennecke  <joern.rennecke@embecosm.com>
17311
17312         PR debug/44832
17313         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
17314         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
17315         unless they have DECL_IGNORED_P set.
17316
17317 2010-07-10  Richard Guenther  <rguenther@suse.de>
17318
17319         PR lto/44889
17320         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
17321         helper function.
17322         (gimple_types_compatible_p): Similar to pointed-to
17323         types allow and merge a mix of complete and incomplete aggregate.
17324         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
17325         (iterative_hash_gimple_type): Adjust for that.
17326
17327 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
17328
17329         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
17330
17331 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
17332
17333         PR objc/44140
17334         * config/darwin.c (output_objc_section_asm_op): Save and restore
17335         section when outputting ObjC section list.
17336
17337 2010-07-09  Jan Hubicka  <jh@suse.cz>
17338
17339         * lto-streamer-out.c (produce_symtab): Do not write alias
17340         cgraph/varpool nodes.
17341
17342 2010-07-09  Jan Hubicka  <jh@suse.cz>
17343
17344         * tree-inline.c (declare_return_variable): Fix ICE while
17345         inlining DECL_BY_VALUE function not in SSA form
17346
17347 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
17348
17349         PR tree-optimization/44576
17350         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
17351         New.  Pull out from is_loop_prefetching_profitable to implement
17352         the trip count to ahead ratio heuristic.
17353         (mem_ref_count_reasonable_p): New.  Pull out from
17354         is_loop_prefetching_profitable to implement the instruction to
17355         memory reference ratio heuristic.  Also consider not reasonable if
17356         the memory reference count is above a threshold (to avoid
17357         explosive compilation time.
17358         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
17359         is_loop_prefetching_profitable to implement the instruction to
17360         prefetch ratio heuristic.
17361         (is_loop_prefetching_profitable): Removed.
17362         (loop_prefetch_arrays): Distribute the cost analysis across the
17363         function to allow early exit of the prefetch analysis.
17364         is_loop_prefetching_profitable is splitted into three functions,
17365         with each one called as early as possible.
17366         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
17367         number of memory references in a loop is considered too many.
17368
17369 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
17370
17371         * reload.c (find_reloads): Don't clear badop if we have a winreg
17372         alternative, but not win, and the class only has fixed regs.
17373         * hard-reg-set.h (class_only_fixed_regs): Declare.
17374         * reginfo.c (class_only_fixed_regs): New array.
17375         (init_reg_sets_1): Initialize it.
17376         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
17377         discourage alternatives using the stack pointer.
17378
17379         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
17380
17381         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
17382
17383         * config/arm/arm.md (cbranchqi4): Fix array size.
17384         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
17385         calculating length.
17386
17387 2010-07-09  Richard Guenther  <rguenther@suse.de>
17388
17389         * gimple.c (struct type_fixup_s): New struct and VEC type.
17390         (gimple_register_type_fixups): New static global.
17391         (gimple_queue_type_fixup): New function.
17392         (gimple_types_compatible_p): Queue type fixups instead of
17393         applying them here.
17394         (gimple_register_type): Apply queued fixups for the
17395         canonical type.  Empty the type fixup queue.
17396
17397 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17398
17399         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
17400         * configure: Regenerate.
17401         * config.in: Ditto.
17402
17403 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
17404             Denys Vlasenko  <dvlasenk@redhat.com>
17405             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
17406
17407         PR tree-optimization/28632
17408         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
17409         (extract_range_from_binary_expr): Further optimize
17410         BIT_AND_EXPR and BIT_IOR_EXPR.
17411
17412 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
17413
17414         * tree-if-conv.c (fold_or_predicates): New.
17415         (add_to_predicate_list): Call it.
17416
17417 2010-07-09  Richard Guenther  <rguenther@suse.de>
17418
17419         PR middle-end/44890
17420         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
17421         if base is a pointer.
17422         * tree-cfg.c (verify_expr): Update MEM_REF checking.
17423
17424 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
17425
17426         PR target/44877
17427         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
17428         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
17429         builtin mask for load/store builtins.
17430
17431 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17432
17433         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
17434         for "lock addl".
17435         * configure: Regenerate.
17436         * config/i386/i386.c (ix86_print_operand) <case ';'>:
17437         Remove TARGET_MACHO.
17438
17439 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
17440
17441         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
17442         default ISA flags.
17443         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
17444
17445 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
17446
17447         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
17448
17449 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17450
17451         * config/picochip/picochip.md (commsTestPort): Emit more
17452         efficient sequence for tstport instruction.
17453
17454 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
17455
17456         * config/i386/i386.c (ix86_veclib_handler): Make static.
17457
17458 2010-07-09  Richard Guenther  <rguenther@suse.de>
17459
17460         PR tree-optimization/44852
17461         * tree-ssa-alias.c: Include toplev.h for exact_log2.
17462         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
17463         in MEM_REF.
17464         (indirect_refs_may_alias_p): Likewise.
17465         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
17466
17467 2010-07-09  Richard Guenther  <rguenther@suse.de>
17468
17469         PR tree-optimization/44882
17470         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
17471         sets do conflict.
17472         (vectorizable_load): Likewise.
17473
17474 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
17475
17476         PR target/40657
17477         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
17478         All callers changed.
17479         Handle the case when we're called for the epilogue.
17480         (thumb_unexpanded_epilogue): Use it.
17481         (thumb1_expand_epilogue): Likewise.
17482
17483 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
17484
17485         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
17486         both ranges are range_int_cst_p with non-negative minimum,
17487         try harder to derive smaller range.
17488
17489 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17490
17491         * genrecog.c: Include diagnostic-core.h before toplev.h.
17492         * genoutput.c: Likewise.
17493         * genextract.c: Likewise.
17494         * genautomata.c: Likewise.
17495         * genemit.c: Likewise.
17496         * genpeep.c: Likewise.
17497         * genattrtab.c: Likewise.
17498         * genconditions.c: Likewise.
17499         * genpreds.c: Likewise.
17500
17501 2010-07-08  Andi Kleen  <ak@linux.intel.com>
17502
17503         * lto-section-in.c (lto_section_name): Add missing comma.
17504
17505 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
17506
17507         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
17508         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
17509         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
17510         (ia64_override_options): Rename to...
17511         (ia64_option_override): ... this one. Make static.
17512
17513 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17514
17515         PR middle-end/44843
17516         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
17517         pointed-to type of the offset in a MEM_REF to compute the alignment.
17518
17519 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
17520
17521         * final.c (final_scan_insn): Replace
17522         TARGET_UNWIND_INFO macro check by unwind_emit
17523         hook NULL check.
17524         * targhooks.c (default_unwind_emit): Removed.
17525         * targhooks.h (default_unwind_emit): Likewise.
17526         * target.def (unwind_emit): Set default value to NULL.
17527
17528         * config/i386/i386-protos.h (ix86_asm_output_function_label):
17529         New prototype.
17530         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
17531         for NULL fntype argument and allow 64-bit targets.
17532         (ix86_asm_output_function_label): New function.
17533         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
17534         (ix86_handle_fndecl_attribute): Likewise.
17535         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
17536         * doc/doc/tm.texi: Regenerated.
17537         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
17538         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
17539         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
17540         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
17541         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
17542         * config/elfos.h: Likewise.
17543         * config/i386/cygming.h: Likewise.
17544         * config/netbsd-aout.h: Likewise.
17545         * config/openbsd.h: Likewise.
17546         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
17547         by ix86_asm_output_function_label function call.
17548         * varasm.c (assemble_start_function): Use
17549         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
17550
17551 2010-07-08  Jan Hubicka  <jh@suse.cz>
17552
17553         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
17554         New function.
17555         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
17556         Declare.
17557         * ipa-cp.c (ipcp_estimate_growth): Use it.
17558         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
17559         Likewise.
17560
17561 2010-07-08  Jan Hubicka  <jh@suse.cz>
17562
17563         * tree-inline.c (declare_return_variable): Allocate annotation for new
17564         temporary.
17565
17566 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
17567
17568         PR tree-optimization/44710
17569         * tree-if-conv.c (parse_predicate): New.
17570         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
17571         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
17572
17573 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
17574
17575         * common.opt (ftree-loop-if-convert): New flag.
17576         * doc/invoke.texi (ftree-loop-if-convert): Documented.
17577         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
17578         when flag_tree_loop_if_convert is set.
17579
17580 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
17581
17582         * config/i386/i386.c: Use short syntax for function calls
17583         through function pointers.
17584         * config/i386/i386.md: Ditto.
17585
17586 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17587
17588         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
17589
17590 2010-07-08  Richard Guenther  <rguenther@suse.de>
17591
17592         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
17593         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
17594
17595 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
17596
17597         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
17598         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
17599         (loc_list_from_tree): Likewise.
17600         (output_loc_operands): Handle outputting DW_OP_const[48]u
17601         with loc->dtprel set.
17602         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
17603
17604 2010-07-08  Jan Hubicka  <jh@suse.cz>
17605
17606         * ipa.c: Include pointer-set.h
17607         (cgraph_externally_visible_p): New attribute ALIASED;
17608         when in LTO, hidden symbols are local unless they are aliased.
17609         (function_and_variable_visibility): Compute aliased nodes;
17610         handle LTO and hidden symbol on functions and vars.
17611         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
17612         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
17613
17614 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17615
17616         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
17617         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17618         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17619         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17620         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
17621         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
17622         (ix86_gen_probe_stack_range): Likewise.
17623         (override_options): Set them.
17624         (ix86_target_stack_probe): New function.
17625         (ix86_compute_frame_layout): Force use of push instructions to
17626         save registers if stack checking with probes is enabled.
17627         (get_scratch_register_on_entry): New function.
17628         (release_scratch_register_on_entry): Likewise.
17629         (ix86_adjust_stack_and_probe): Likewise.
17630         (output_adjust_stack_and_probe): Likewise.
17631         (ix86_emit_probe_stack_range): Likewise.
17632         (output_probe_stack_range): Likewise.
17633         (ix86_expand_prologue): Emit stack checking code if static built-in
17634         stack checking is enabled.
17635         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
17636         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
17637         (output_adjust_stack_and_probe): Likewise.
17638         (output_probe_stack_range): Likewise.
17639         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
17640         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
17641         TARGET_STACK_PROBE.
17642         (allocate_stack_worker_64): Likewise.
17643         (allocate_stack): Likewise.
17644         (adjust_stack_and_probe): New insn.
17645         (probe_stack_range): Likewise.
17646
17647 2010-07-08  Richard Guenther  <rguenther@suse.de>
17648
17649         PR tree-optimization/44831
17650         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
17651         a MEM_REF preserving TBAA info of the original dereference.
17652         Dereference the original pointer if the address is not invariant.
17653         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
17654         at least one invariant address that we are going to dereference.
17655
17656 2010-07-08  Richard Guenther  <rguenther@suse.de>
17657
17658         PR tree-optimization/44861
17659         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
17660         information when building MEM_REFs.
17661         (vectorizable_load): Likewise.
17662         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
17663
17664 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17665
17666         * config/sol2-c.c: Do not include diagnostic-core.h.
17667
17668 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17669
17670         PR bootstrap/44768
17671         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
17672         with respect to current_function_decl. Pass decl of the function.
17673         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
17674         * ipa-inline.c (compute_inline_parameters): Pass decl to
17675         estimated_stack_frame_size.
17676
17677 2010-07-08  Richard Guenther  <rguenther@suse.de>
17678
17679         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
17680         New function.
17681         (valueize_refs): Call it.
17682
17683 2010-07-08  Richard Guenther  <rguenther@suse.de>
17684
17685         PR rtl-optimization/44838
17686         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
17687         SSA form do not use pointer equivalence.
17688
17689 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
17690
17691         * dwarf2out.c (AT_linkage_name): Delete.
17692         (add_linkage_attr): New function.
17693         (add_linkage_name): Call it to emit the linkage attribute.
17694         (dwarf2out_finish): Likewise.
17695         (move_linkage_attr): Explicitly accept both attribute variants.
17696
17697 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17698
17699         * toplev.h: Do not include diagnostic-core.h.
17700         Include diagnostic-core.h in every file that includes toplev.h.
17701         * c-tree.h: Do not include toplev.h.
17702         * pretty-print.h: Update comment.
17703         * Makefile.in: Update dependencies.
17704         * alias.c: Include diagnostic-core.h in every file that includes
17705         toplev.h.
17706         * attribs.c: Likewise.
17707         * auto-inc-dec.c: Likewise.
17708         * bb-reorder.c: Likewise.
17709         * bt-load.c: Likewise.
17710         * caller-save.c: Likewise.
17711         * calls.c: Likewise.
17712         * cfg.c: Likewise.
17713         * cfganal.c: Likewise.
17714         * cfgbuild.c: Likewise.
17715         * cfgcleanup.c: Likewise.
17716         * cfghooks.c: Likewise.
17717         * cfgloop.c: Likewise.
17718         * combine.c: Likewise.
17719         * config/alpha/alpha.c: Likewise.
17720         * config/arc/arc.c: Likewise.
17721         * config/arm/arm.c: Likewise.
17722         * config/arm/pe.c: Likewise.
17723         * config/avr/avr.c: Likewise.
17724         * config/bfin/bfin.c: Likewise.
17725         * config/cris/cris.c: Likewise.
17726         * config/crx/crx.c: Likewise.
17727         * config/darwin-c.c: Likewise.
17728         * config/darwin.c: Likewise.
17729         * config/fr30/fr30.c: Likewise.
17730         * config/frv/frv.c: Likewise.
17731         * config/h8300/h8300.c: Likewise.
17732         * config/host-darwin.c: Likewise.
17733         * config/i386/i386.c: Likewise.
17734         * config/i386/netware.c: Likewise.
17735         * config/i386/nwld.c: Likewise.
17736         * config/i386/winnt-cxx.c: Likewise.
17737         * config/i386/winnt-stubs.c: Likewise.
17738         * config/i386/winnt.c: Likewise.
17739         * config/ia64/ia64-c.c: Likewise.
17740         * config/ia64/ia64.c: Likewise.
17741         * config/iq2000/iq2000.c: Likewise.
17742         * config/lm32/lm32.c: Likewise.
17743         * config/m32c/m32c-pragma.c: Likewise.
17744         * config/m32c/m32c.c: Likewise.
17745         * config/m32r/m32r.c: Likewise.
17746         * config/m68hc11/m68hc11.c: Likewise.
17747         * config/m68k/m68k.c: Likewise.
17748         * config/mcore/mcore.c: Likewise.
17749         * config/mep/mep-pragma.c: Likewise.
17750         * config/mep/mep.c: Likewise.
17751         * config/mmix/mmix.c: Likewise.
17752         * config/mn10300/mn10300.c: Likewise.
17753         * config/moxie/moxie.c: Likewise.
17754         * config/pa/pa.c: Likewise.
17755         * config/pdp11/pdp11.c: Likewise.
17756         * config/picochip/picochip.c: Likewise.
17757         * config/rs6000/rs6000-c.c: Likewise.
17758         * config/rs6000/rs6000.c: Likewise.
17759         * config/rx/rx.c: Likewise.
17760         * config/s390/s390.c: Likewise.
17761         * config/score/score.c: Likewise.
17762         * config/score/score3.c: Likewise.
17763         * config/score/score7.c: Likewise.
17764         * config/sh/sh.c: Likewise.
17765         * config/sh/symbian-base.c: Likewise.
17766         * config/sh/symbian-c.c: Likewise.
17767         * config/sh/symbian-cxx.c: Likewise.
17768         * config/sol2-c.c: Likewise.
17769         * config/sol2.c: Likewise.
17770         * config/sparc/sparc.c: Likewise.
17771         * config/spu/spu.c: Likewise.
17772         * config/stormy16/stormy16.c: Likewise.
17773         * config/v850/v850-c.c: Likewise.
17774         * config/v850/v850.c: Likewise.
17775         * config/vax/vax.c: Likewise.
17776         * config/vxworks.c: Likewise.
17777         * config/xtensa/xtensa.c: Likewise.
17778         * convert.c: Likewise.
17779         * cse.c: Likewise.
17780         * cselib.c: Likewise.
17781         * dbgcnt.c: Likewise.
17782         * dbxout.c: Likewise.
17783         * ddg.c: Likewise.
17784         * dominance.c: Likewise.
17785         * emit-rtl.c: Likewise.
17786         * explow.c: Likewise.
17787         * expmed.c: Likewise.
17788         * fixed-value.c: Likewise.
17789         * fold-const.c: Likewise.
17790         * fwprop.c: Likewise.
17791         * gcse.c: Likewise.
17792         * ggc-common.c: Likewise.
17793         * ggc-page.c: Likewise.
17794         * ggc-zone.c: Likewise.
17795         * gimple-low.c: Likewise.
17796         * gimplify.c: Likewise.
17797         * graph.c: Likewise.
17798         * haifa-sched.c: Likewise.
17799         * ifcvt.c: Likewise.
17800         * implicit-zee.c: Likewise.
17801         * integrate.c: Likewise.
17802         * ira-build.c: Likewise.
17803         * ira-color.c: Likewise.
17804         * ira-conflicts.c: Likewise.
17805         * ira-costs.c: Likewise.
17806         * ira-lives.c: Likewise.
17807         * ira.c: Likewise.
17808         * lists.c: Likewise.
17809         * loop-doloop.c: Likewise.
17810         * loop-iv.c: Likewise.
17811         * lto-opts.c: Likewise.
17812         * lto-symtab.c: Likewise.
17813         * main.c: Likewise.
17814         * modulo-sched.c: Likewise.
17815         * optabs.c: Likewise.
17816         * params.c: Likewise.
17817         * plugin.c: Likewise.
17818         * postreload-gcse.c: Likewise.
17819         * postreload.c: Likewise.
17820         * predict.c: Likewise.
17821         * profile.c: Likewise.
17822         * real.c: Likewise.
17823         * regcprop.c: Likewise.
17824         * reginfo.c: Likewise.
17825         * regmove.c: Likewise.
17826         * reorg.c: Likewise.
17827         * resource.c: Likewise.
17828         * rtl.c: Likewise.
17829         * rtlanal.c: Likewise.
17830         * sched-deps.c: Likewise.
17831         * sched-ebb.c: Likewise.
17832         * sched-rgn.c: Likewise.
17833         * sdbout.c: Likewise.
17834         * sel-sched-dump.c: Likewise.
17835         * sel-sched-ir.c: Likewise.
17836         * simplify-rtx.c: Likewise.
17837         * stmt.c: Likewise.
17838         * stor-layout.c: Likewise.
17839         * store-motion.c: Likewise.
17840         * targhooks.c: Likewise.
17841         * tree-cfg.c: Likewise.
17842         * tree-cfgcleanup.c: Likewise.
17843         * tree-dump.c: Likewise.
17844         * tree-eh.c: Likewise.
17845         * tree-inline.c: Likewise.
17846         * tree-nomudflap.c: Likewise.
17847         * tree-object-size.c: Likewise.
17848         * tree-optimize.c: Likewise.
17849         * tree-outof-ssa.c: Likewise.
17850         * tree-phinodes.c: Likewise.
17851         * tree-profile.c: Likewise.
17852         * tree-ssa-ccp.c: Likewise.
17853         * tree-ssa-coalesce.c: Likewise.
17854         * tree-ssa-live.c: Likewise.
17855         * tree-ssa-loop-niter.c: Likewise.
17856         * tree-ssa-loop-prefetch.c: Likewise.
17857         * tree-ssa-loop.c: Likewise.
17858         * tree-ssa-structalias.c: Likewise.
17859         * tree-ssa-uninit.c: Likewise.
17860         * tree-ssa.c: Likewise.
17861         * tree-vect-data-refs.c: Likewise.
17862         * tree-vect-loop-manip.c: Likewise.
17863         * tree-vect-loop.c: Likewise.
17864         * tree-vect-patterns.c: Likewise.
17865         * tree-vect-stmts.c: Likewise.
17866         * tree-vrp.c: Likewise.
17867         * varasm.c: Likewise.
17868         * vec.c: Likewise.
17869         * web.c: Likewise.
17870         * xcoffout.c: Likewise.
17871
17872 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
17873
17874         * gengtype.c (write_field_root): New function.
17875         (write_root): Use it.
17876
17877 2010-07-07  Wei Guozhi  <carrot@google.com>
17878
17879         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
17880         of lowest bits to lshift/compare): Add a missing line.
17881
17882 2010-07-07  Wei Guozhi  <carrot@google.com>
17883
17884         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
17885         of lowest bits to lshift/compare): New.
17886
17887 2010-07-07  Tom Tromey  <tromey@redhat.com>
17888
17889         * doc/tm.texi: Update.
17890         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
17891         Add @hook.
17892         * target.def (want_debug_pub_sections): New hook.
17893         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
17894         * dwarf2out.c (add_pubname_string): Check
17895         targetm.want_debug_pub_sections.
17896         (add_pubname): Likewise.
17897         (add_pubtype): Likewise.
17898
17899 2010-07-07  Jie Zhang  <jie@codesourcery.com>
17900
17901         * genautomata.c (output_automata_list_min_issue_delay_code):
17902         Correctly decompress min_issue_delay.
17903
17904 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17905
17906         PR rtl-optimization/44404
17907         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
17908         possible, use reg_overlap_mentioned_p instead.
17909
17910 2010-07-07  Duncan Sands  <baldrick@free.fr>
17911
17912         PR middle-end/41355
17913         * tree.c (build_function_type_skip_args): Copy the original type using
17914         build_distinct_type_copy rather than copy_node.
17915
17916 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17917
17918         PR target/44850
17919         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
17920         revision 161876.
17921         (ix86_expand_prologue): Likewise.
17922         (ix86_handle_fndecl_attribute): Likewise.
17923         (ix86_asm_declare_function_name): Likewise.
17924         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17925         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
17926         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
17927         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
17928         * doc/extend.texi: Likewise.
17929
17930 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
17931
17932         PR target/44844
17933         * config/i386/i386.md (rdrand<mode>): Changed to expand to
17934         retry if the carry flag isn't valid.
17935         (rdrand<mode>_1): New.
17936
17937 2010-07-07  Richard Guenther  <rguenther@suse.de>
17938
17939         PR middle-end/44790
17940         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
17941         for expanding the constant offset for MEM_REFs.
17942
17943 2010-07-07  Richard Guenther  <rguenther@suse.de>
17944
17945         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
17946         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
17947         * gimple.h (is_gimple_operand): Remove.
17948         * gimple.c (is_gimple_operand): Likewise.
17949         (walk_gimple_op): Fix wi->val_only setting for calls.
17950         * tree-cfg.c (verify_gimple_call): Fix argument validation.
17951         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
17952         invalid gimple calls.
17953
17954 2010-07-06  Jan Hubicka  <jh@suse.cz>
17955
17956         * lto-cgraph.c (output_cgraph): Add missing declaration.
17957
17958 2010-07-06  Jan Hubicka  <jh@suse.cz>
17959
17960         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
17961         partition.
17962
17963 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
17964
17965         * doc/gimple.texi (GIMPLE_DEBUG): Document.
17966         * doc/rtl.texi (Debug Information): New node.
17967         (NOTE_INSN_VAR_LOCATION): Document.
17968         (debug_insn): Likewise.
17969         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
17970
17971 2010-07-07  Jan Hubicka  <jh@suse.cz>
17972
17973         With parts by Richard Guenther.
17974
17975         PR middle-end/44813
17976         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
17977         for functions passed by reference.
17978         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
17979         in memory when passed by reference.
17980         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
17981         beggining.
17982         * ipa-split.c (split_function): Cleanup way return value is passed;
17983         handle SSA DECL_BY_REFERENCE retvals.
17984         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
17985         DECL_BY_REFERENCE is set.
17986         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
17987         find_what_p_points_to): Handle RESULT_DECL.
17988         * tree-inline.c (declare_return_variable): Get new entry_block argument;
17989         when passing by reference ensure that RESULT_DECL is gimple_val.
17990         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
17991         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
17992
17993 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
17994
17995         PR rtl-optimization/44787
17996         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
17997         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
17998
17999 2010-07-06  Jan Hubicka  <jh@suse.cz>
18000
18001         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
18002         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
18003         with body can prevail.
18004         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
18005         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
18006         * cgraph.c (cgraph_get_node_or_alias): New function.
18007         * cgraph.h (cgraph_get_node_or_alias): Declare.
18008
18009 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
18010
18011         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
18012         support.
18013         (ix86_expand_prologue): Likewise.
18014         (ix86_handle_fndecl_attribute): Likewise.
18015         (ix86_asm_declare_function_name): New function for
18016         ASM_DECLARE_FUNCTION_NAME.
18017         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
18018         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
18019         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
18020         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
18021         * doc/extend.texi: Adjust documentation about ms_hook_prologue
18022         attribute.
18023
18024 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18025
18026         * config/i386/i386.md (immediate_operand): New mode attribute.
18027
18028         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
18029         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
18030         using P mode iterator.
18031         (pro_epilogue_adjust_stack_di_2): Rename from
18032         pro_epilogue_adjust_stack_rex64_2.
18033
18034         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
18035
18036 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18037
18038         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
18039         through gen_mov_insv_1 function pointer.
18040         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
18041         gen_truncxf<mode>2 through gen_truncxf function pointer.
18042         (remainder<mode>3): Ditto.
18043         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
18044         (allocate_stack): Call gen_allocate_stack_worker_64 or
18045         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
18046         function pointer.
18047         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
18048         function pointer.
18049
18050 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
18051
18052         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
18053         operand constraint instead of <r><i>m.
18054
18055 2010-07-06  Richard Guenther  <rguenther@suse.de>
18056
18057         PR middle-end/44828
18058         * convert.c (convert_to_integer): Watch out for overflowing
18059         MULT_EXPR as well.
18060
18061 2010-07-05  Jan Hubicka  <jh@suse.cz>
18062
18063         * lto-streamer.c (write_symbol_vec): Rename to ...
18064         (write_symbol) ... this one; write only symbol given and when
18065         present in cache. Sanity check that what is defined is present
18066         in cgraph/varpool with body/finalized decl.
18067         (write_symbols_of_kind): Remove.
18068         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
18069         pairs to produce symtab.
18070         (produce_asm_for_decls): Update call of produce_symtab; don't do so
18071         when doing WPA streaming.
18072
18073 2010-07-05  Jan Hubicka  <jh@suse.cz>
18074
18075         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
18076         function is still available to fold into.
18077
18078 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
18079
18080         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
18081         * function.h (struct_function): Change type of local_decls field
18082         to a VEC.
18083         (add_local_decl): New function.
18084         (FOR_EACH_LOCAL_DECL): New macro.
18085         * cfgexpand.c (init_vars_expansion): Adjust for new type of
18086         cfun->local_decls.
18087         (estimated_stack_frame_size): Likewise.
18088         (expand_used_vars): Likewise.
18089         * cgraphbuild.c (build_cgraph_edges): Likewise.
18090         * function.c (instantiate_decls_1): Likewise.
18091         * ipa-struct-reorg.c (build_data_structure): Likewise.
18092         * ipa-type-escape.c (analyze_function): Likewise.
18093         * lto-streamer-in.c (input_function): Likewise.
18094         * lto-streamer-out.c (output_function): Likewise.
18095         * tree-ssa-live.c (remove_unused_locals): Likewise.
18096         * tree.c (free_lang_data_in_decl): Likewise.
18097         (find_decls_types_in_node): Likewise.
18098         * omp-low.c (remove_exit_barrier): Likewise.
18099         (expand_omp_taskreg): Likewise.
18100         (list2chain): Rename to...
18101         (vec2chain): ...this.  Adjust.
18102         * cgraphunit.c (assemble_thunk): Call add_local_decl.
18103         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
18104         * gimple-low.c (record_vars_into): Likewise.
18105         * tree-inline.c (remap_decls): Likewise.
18106         (declare_return_variable): Likewise.
18107         (declare_inline_vars): Likewise.
18108         (copy_forbidden): Adjust for new type of cfun->local_decls.
18109         (add_local_variables): New function.
18110         (expand_call_inline): Call it.
18111         (tree_function_versioning): Likewise.
18112
18113 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
18114
18115         AVX Programming Reference (June, 2010)
18116         * config/i386/cpuid.h (bit_F16C): New.
18117         (bit_RDRND): Likewise.
18118         (bit_FSGSBASE): Likewise.
18119
18120         * config/i386/i386-builtin-types.def: Add
18121         "DEF_FUNCTION_TYPE (UINT16)", function types for
18122         float16 <-> float conversions and
18123         "DEF_FUNCTION_TYPE (VOID, UINT64)".
18124
18125         * config/i386/i386-c.c (ix86_target_macros_internal): Support
18126         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
18127         OPTION_MASK_ISA_F16C.
18128
18129         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
18130         (OPTION_MASK_ISA_RDRND_SET): Likewise.
18131         (OPTION_MASK_ISA_F16C_SET): Likewise.
18132         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
18133         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
18134         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
18135         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
18136         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
18137         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
18138         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
18139         (override_options): Handle them.
18140         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
18141         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
18142         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
18143         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
18144         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
18145         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
18146         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
18147         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
18148         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
18149         (bdesc_args): Likewise.
18150         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
18151         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
18152         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
18153         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
18154         Handle non-memory store.
18155
18156         * config/i386/i386.h (TARGET_FSGSBASE): New.
18157         (TARGET_RDRND): Likewise.
18158         (TARGET_F12C): Likewise.
18159
18160         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
18161         (UNSPEC_VCVTPS2PH): Likewise.
18162         (UNSPECV_RDFSBASE): Likewise.
18163         (UNSPECV_RDGSBASE): Likewise.
18164         (UNSPECV_WRFSBASE): Likewise.
18165         (UNSPECV_WRGSBASE): Likewise.
18166         (UNSPECV_RDRAND): Likewise.
18167         (rdfsbase<mode>): Likewise.
18168         (rdgsbase<mode>): Likewise.
18169         (wrfsbase<mode>): Likewise.
18170         (wrgsbase<mode>): Likewise.
18171         (rdrand<mode>): Likewise.
18172
18173         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
18174
18175         * config/i386/immintrin.h (_rdrand_u16): New.
18176         (_rdrand_u32): Likewise.
18177         (_readfsbase_u32): Likewise.
18178         (_readfsbase_u64): Likewise.
18179         (_readgsbase_u32): Likewise.
18180         (_readgsbase_u64): Likewise.
18181         (_writefsbase_u32): Likewise.
18182         (_writefsbase_u64): Likewise.
18183         (_writegsbase_u32): Likewise.
18184         (_writegsbase_u64): Likewise.
18185         (_rdrand_u64): Likewise.
18186         (_cvtsh_ss): Likewise.
18187         (_mm_cvtph_ps): Likewise.
18188         (_mm256_cvtph_ps): Likewise.
18189         (_cvtss_sh): Likewise.
18190         (_mm_cvtps_ph): Likewise.
18191         (_mm256_cvtps_ph): Likewise.
18192
18193         * config/i386/sse.md (vcvtph2ps): New.
18194         (*vcvtph2ps_load): Likewise.
18195         (vcvtph2ps256): Likewise.
18196         (vcvtps2ph): Likewise.
18197         (*vcvtps2ph): Likewise.
18198         (*vcvtps2ph_store): Likewise.
18199         (vcvtps2ph256): Likewise.
18200
18201         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
18202
18203         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
18204
18205 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
18206
18207         PR bootstrap/44512
18208         * genenums.c (main): Output include of insn-constants.h
18209         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
18210
18211 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
18212
18213         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
18214         (override_options): Initialize it.
18215         (ix86_expand_prologue): Use it.
18216
18217 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
18218
18219         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
18220
18221 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18222
18223         * double-int.h (fit_double_type): Remove declaration.
18224         * double-int.c (fit_double_type): Remove function.
18225         * tree.h (int_fits_type_p): Adjust prototype.
18226         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
18227         instead of fit_double_type.
18228         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
18229         instead of fit_double_type and build_int_cst_wide.
18230         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
18231         instead of fit_double_type and build_int_cst_wide.
18232         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
18233         of fit_double_type.
18234
18235 2010-07-05  Jan Hubicka  <jh@suse.cz>
18236
18237         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
18238         in_other_partition.
18239         * lto-cgraph.c (referenced_from_other_partition_p,
18240         reachable_from_other_partition_p): Use in_other_partition flags.
18241         (output_node, output_varpool_node): COMDAT nodes always have private
18242         copies and thus are never used from other partition.
18243
18244 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
18245
18246         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
18247         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
18248         * config/ia64/ia64.c Include reload.h.
18249         (ia64_memory_move_cost): New function.
18250         (TARGET_MEMORY_MOVE_COST): Define.
18251         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
18252         memory_move_cost.
18253
18254 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
18255
18256         PR middle-end/42505
18257         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
18258         comments about cost model.
18259         (try_add_cand_for):  Add second strategy for choosing initial set
18260         based on original IVs, controlled by ORIGINALP argument.
18261         (get_initial_solution): Add ORIGINALP argument.
18262         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
18263         (find_optimal_iv_set): Try two different strategies for choosing
18264         the IV set, and return the one with lower cost.
18265
18266 2010-07-05  Richard Guenther  <rguenther@suse.de>
18267
18268         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
18269
18270 2010-07-05  Richard Guenther  <rguenther@suse.de>
18271
18272         * tree.c (reference_alias_ptr_type): New function.
18273         * tree.h (reference_alias_ptr_type): Declare.
18274         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
18275         allow non-TARGET_MEM_REF new refs.
18276         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
18277         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
18278         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
18279         (create_mem_ref): Get alias pointer type.  Adjust calls to
18280         create_mem_ref_raw.
18281         (maybe_fold_tmr): Likewise.
18282         * tree-flow.h (create_mem_ref): Adjust prototype.
18283
18284 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
18285
18286         PR c++/44808
18287         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
18288         *from_p is VAR_DECL.
18289
18290 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
18291
18292         * tree.h (build_call_list): Remove.
18293         * tree.c (build_call_list): Remove.
18294
18295 2010-07-05  Richard Guenther  <rguenther@suse.de>
18296
18297         * double-int.h (double_int_sub): Declare.
18298         * double-int.c (double_int_sub): New function.
18299         * dwarf2out.c (field_byte_offset): Use it.
18300         * fixed-value.c (do_fixed_add): Likewise.
18301         (do_fixed_multiply): Likewise.
18302         (do_fixed_divide): Likewise.
18303         * tree-predcom.c (add_ref_to_chain): Likewise.
18304         (determine_roots_comp): Likewise.
18305         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
18306
18307 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
18308
18309         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
18310         implementations.
18311
18312 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
18313
18314         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
18315         * arm-modes.def (CC_NOTB): Don't define.
18316         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
18317         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
18318         (LTUGEU): New code_iterator.
18319         (cnb, optab): New corresponding code_attrs.
18320         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
18321         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
18322         using LTUGEU.
18323         (addsi3_carryin_shift_<optab>): Likewise.
18324         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
18325         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
18326         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
18327         (subsi3_compare): Renamed from subsi3_compare0_c.
18328         Change CC_NOTB to CC.
18329         (arm_subsi3_insn): Allow constants for operand 0.
18330         (compare_scc peephole for eq case): New.
18331         (compare_scc splitters): Change CC_NOTB to CC.
18332
18333 2010-07-05  Richard Guenther  <rguenther@suse.de>
18334
18335         * tree-ssa-loop-im.c (for_each_index): Do not handle
18336         ALIGN_INDIRECT_REF.
18337         (gen_lsm_tmp_name): Likewise.
18338         * tree-dump.c (dequeue_and_dump): Likewise.
18339         * tree-pretty-print.c (dump_generic_node): Likewise.
18340         (op_code_prio): Likewise.
18341         (op_symbol_code): Likewise.
18342         * tree.c (staticp): Likewise.
18343         (build1_stat): Likewise.
18344         * tree.h (INDIRECT_REF_P): Likewise.
18345         * fold-const.c (maybe_lvalue_p): Likewise.
18346         (operand_equal_p): Likewise.
18347         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
18348         (ao_ref_init_from_vn_reference): Likewise.
18349         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
18350         (find_interesting_uses_address): Likewise.
18351         * dwarf2out.c (loc_list_from_tree): Likewise.
18352         * gimplify.c (gimplify_expr): Likewise.
18353         * tree-eh.c (tree_could_trap_p): Likewise.
18354         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18355         * cfgexpand.c (expand_debug_expr): Likewise.
18356         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
18357         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
18358         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
18359         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
18360         * tree-ssa-operands.c (get_expr_operands): Likewise.
18361         * expr.c (safe_from_p): Likewise.
18362         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
18363         * tree-vect-data-refs.c (vect_setup_realignment): Build
18364         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
18365         * tree-vect-stmts.c (vectorizable_load): Likewise.
18366         * tree.def (ALIGN_INDIRECT_REF): Remove.
18367
18368 2010-07-05  Richard Guenther  <rguenther@suse.de>
18369
18370         PR tree-optimization/44784
18371         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
18372         for inserted stmts.
18373         (find_or_generate_expression): Fix SCCVN insertion check.
18374
18375 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
18376
18377         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
18378         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
18379         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
18380         directives.
18381
18382 2010-07-05  Ira Rosen  <irar@il.ibm.com>
18383
18384         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
18385         statements that are not vectorized.
18386         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
18387         in INSIDE_COST.
18388
18389 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
18390
18391         PR bootstrap/44820
18392         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
18393
18394 2010-07-05  Richard Guenther  <rguenther@suse.de>
18395
18396         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
18397         RESULT_DECLs properly.
18398
18399 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
18400
18401         PR rtl-optimization/44695
18402         * config/i386/i386.md (extract_code): Removed.
18403         (<u>divmodqi4): Likewise.
18404         (divmodqi4): New.
18405         (udivmodqi4): Likewise.
18406         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
18407         (udivmodhiqi3): Likewise.
18408
18409 2010-07-04  Jan Hubicka  <jh@suse.cz>
18410
18411         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
18412
18413 2010-07-04  Jan Hubicka  <jh@suse.cz>
18414
18415         * cgraphunit.c (init_cgraph): Only initialize dump file if it
18416         is not already initialized.
18417
18418 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18419
18420         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
18421         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
18422         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
18423         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
18424         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
18425         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
18426         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
18427         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
18428         (sync_new_nand_optab): Redefine as macros.
18429         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
18430         Delete.
18431         (direct_optab_index): New enum.
18432         (direct_optab_d): New structure.
18433         (direct_optab): New typedef.
18434         (direct_optab_table): Declare.
18435         (direct_optab_handler, set_direct_optab_handler): New functions.
18436         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
18437         (sync_lock_release_optab): New macros.
18438         * optabs.c (direct_optab_table): New variable.
18439         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
18440         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
18441         cmpstr_optab and cmpstrn_optab.
18442         (emit_conditional_move): Likewise for movcc_optab.
18443         (can_conditionally_move_p): Likewise for movcc_gen_code.
18444         (init_insn_codes): Clear direct_optab_table.
18445         (init_optabs): Don't initialize the new "direct optabs" here.
18446         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
18447         vcond_gen_code.
18448         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
18449         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
18450         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
18451         (expand_sync_operation): Likewise other sync_*_optabs.
18452         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
18453         to sync_compare_and_swap_optab.
18454         (expand_sync_lock_test_and_set): Use direct_optab_handler for
18455         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
18456         to the names of both.
18457         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
18458         cmpstr_optab and cmpstrn_optab.
18459         (expand_builtin_lock_release): Likewise sync_lock_release.
18460         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
18461         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
18462         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
18463         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
18464         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
18465         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
18466         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
18467         (sync_lock_test_and_set, sync_lock_release): Delete.
18468         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
18469         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
18470         * genopinit.c (optabs): Use set_direct_optab_handler for the new
18471         macro optabs.
18472         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
18473         the "optab" local variable.  Use direct_optab_handler for optab and
18474         sync_compare_and_swap_optab.
18475         * reload1.c (reload_in_optab, reload_out_optab): Delete.
18476         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
18477         reload_in_optab and reload_out_optab.
18478         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
18479         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
18480         * config/pa/pa.c (pa_secondary_reload): Likewise.
18481         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
18482         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
18483         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
18484         (VMSupportsCS8_builtin): Likewise.
18485
18486 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18487
18488         * optabs.h (optab_handlers): Change type of insn_code to int.
18489         (optab_handler, set_optab_handler, convert_optab_handler)
18490         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
18491         CODE_FOR_nothing".
18492         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
18493         (init_insn_codes): Zero both the above arrays.
18494         (init_optabs): Never call init_insn_codes first time around.
18495
18496 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
18497
18498         * optabs.h (optab_handler, convert_optab_handler): Turn into
18499         inline functions that return an insn code.
18500         (set_optab_handler, set_convert_optab_handler): New functions.
18501         * builtins.c: Replace optab_handler(X)->insn_code with
18502         optab_handler or set_optab_handler thoughout.  Likewise
18503         convert_optab_handler(X)->insn_code with convert_optab_handler
18504         and set_convert_optab_handler.
18505         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
18506         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
18507         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
18508         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
18509         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
18510         config/spu/spu.c: Likewise.
18511
18512 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
18513
18514         PR target/44531
18515         * config.gcc (sh*-*-*): Use regular expressions instead of
18516         the 'i' modifier for sed substitutions.
18517
18518 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
18519
18520         * gimple.c (gimple_body): Comments added.
18521
18522 2010-07-04  Richard Guenther  <rguenther@suse.de>
18523
18524         PR middle-end/44809
18525         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
18526         of an INDIRECT_REF.
18527
18528 2010-07-04  Richard Guenther  <rguenther@suse.de>
18529
18530         PR tree-optimization/44479
18531         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
18532         extra SSA name copy statements which preserves points-to
18533         information.
18534         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18535         Copy points-to information for all pointers.  Properly handle
18536         MEM_REFs.
18537         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
18538         copy statements.
18539         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
18540         dependency.
18541
18542 2010-07-04  Richard Guenther  <rguenther@suse.de>
18543
18544         PR middle-end/44785
18545         * tree-inline.c (initialize_inlined_parameters): Do not
18546         re-use pointer-map slot over remap_type call.
18547
18548 2010-07-04  Richard Guenther  <rguenther@suse.de>
18549
18550         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
18551
18552 2010-07-04  Richard Guenther  <rguenther@suse.de>
18553
18554         PR tree-optimization/44656
18555         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
18556         again after value-replacing in the defintions lhs.
18557
18558 2010-07-04  Ira Rosen  <irar@il.ibm.com>
18559             Revital Eres  <eres@il.ibm.com>
18560
18561         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
18562         Document new arguments.
18563         * doc/tm.texi: Regenerate.
18564         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
18565         Handle unaligned store.
18566         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
18567         * target.def (builtin_vectorization_cost): Add new arguments.
18568         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
18569         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
18570         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
18571         (vect_vfa_segment_size): Fix indentation.
18572         * tree-vectorizer.h (struct _vect_peel_info): New.
18573         (struct _vect_peel_extended_info): New.
18574         (struct _loop_vec_info): Add new field for peeling hash table and a
18575         macro for its access.
18576         (VECT_MAX_COST): Define.
18577         (vect_get_load_cost): Declare.
18578         (vect_get_store_cost, vect_get_known_peeling_cost,
18579         vect_get_single_scalar_iteraion_cost): Likewise.
18580         (vect_supportable_dr_alignment): Add new argument.
18581         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
18582         field.
18583         (destroy_loop_vec_info): Free peeling hash table.
18584         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
18585         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
18586         vect_analyze_slp. Fix indentation.
18587         (vect_get_single_scalar_iteraion_cost): New function.
18588         (vect_get_known_peeling_cost): Likewise.
18589         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
18590         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
18591         statement. Move outside cost calculation inside unknown peeling case.
18592         Call vect_get_known_peeling_cost for known amount of peeling.
18593         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
18594         reference to the print message of forced alignment.
18595         (vect_verify_datarefs_alignment): Update call to
18596         vect_supportable_dr_alignment.
18597         (vect_get_data_access_cost): New function.
18598         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
18599         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
18600         vect_peeling_hash_choose_best_peeling): Likewise.
18601         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
18602         to store all the accesses in the loop and find best possible access to
18603         align using peeling for known alignment case. For unknown alignment
18604         check if stores are preferred or if peeling is worthy.
18605         (vect_find_same_alignment_drs): Analyze pairs of loads too.
18606         (vect_supportable_dr_alignment): Add new argument and check aligned
18607         accesses according to it.
18608         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
18609         (cost_for_stmt): Call vect_get_stmt_cost.
18610         (vect_model_simple_cost): Likewise.
18611         (vect_model_store_cost): Call vect_get_stmt_cost. Call
18612         vect_get_store_cost to calculate the cost of the statement.
18613         (vect_get_store_cost): New function.
18614         (vect_model_load_cost): Call vect_get_stmt_cost. Call
18615         vect_get_load_cost to calculate the cost of the statement.
18616         (vect_get_load_cost): New function.
18617         (vectorizable_store): Update call to vect_supportable_dr_alignment.
18618         (vectorizable_load): Likewise.
18619         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
18620         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
18621         arguments. Handle unaligned store.
18622         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
18623         (rs6000_builtin_support_vector_misalignment): Return true for word and
18624         double word alignments for VSX.
18625         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
18626         vect_supportable_dr_alignment and builtin_vectorization_cost.
18627
18628 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18629
18630         PR target/44597
18631         * config/pa/predicates.md (prefetch_cc_operand): Remove.
18632         (prefetch_nocc_operand): Likewise.
18633         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
18634         (prefetch_20): New insn.
18635         (prefetch_cc): Remove.
18636         (prefetch_nocc): Likewise.
18637
18638 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18639
18640         * expr.c (vector_mode_valid_p): Move to c-common.c.
18641         * expr.h (vector_mode_valid_p): Do not declare here.
18642         * system.h: Poison GCC_EXPR_H in front-ends.
18643         * Makefile.in: Update dependencies.
18644
18645 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18646
18647         PR target/44705
18648         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
18649
18650 2010-07-03  Jan Hubicka  <jh@suse.cz>
18651
18652         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
18653         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
18654         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
18655         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
18656         Likewise.
18657
18658         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
18659         Update timevars.V
18660         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
18661         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
18662         TV_IPA_LTO_DECL_OUT): New.
18663         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
18664
18665 2010-07-03  Jan Hubicka  <jh@suse.cz>
18666
18667         * ipa-inline.c (update_edge_key): Break out from ...
18668         update_callers_keys): ... here;
18669         (update_callee_keys): Update only the edges from caller to callee.
18670         (update_all_calle_keys): Do what update_calle_keys did.
18671         (decide_inlining_of_small_functions): Avoid recomputing of all
18672         callees when badness increase.
18673
18674 2010-07-03  Jie Zhang  <jie@codesourcery.com>
18675
18676         * config/arm/arm.c (arm_attr_length_move_neon): New.
18677         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
18678         * config/arm/neon.md (define_mode_attr V_slen): Remove.
18679         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
18680         to compute length attribute.
18681
18682 2010-07-03  Jie Zhang  <jie@codesourcery.com>
18683
18684         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
18685         as predicate for operand 1 and remove its constraint.
18686         * config/arm/predicates.md (vfp_register_operand): New.
18687         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
18688         (*push_fp_multi): Likewise.
18689
18690 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
18691
18692         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
18693
18694 2010-07-03  Jan Hubicka  <jh@suse.cz>
18695
18696         * config/i386/i386.c (override_options): Revert accidental commit.
18697
18698 2010-07-02  Le-Chun Wu  <lcwu@google.com>
18699
18700         PR c++/44128
18701         * doc/invoke.texi: Update documentation of -Wshadow.
18702
18703 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
18704             Julian Brown  <julian@codesourcery.com>
18705             Sandra Loosemore  <sandra@codesourcery.com>
18706
18707         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
18708         comparisons.  Adjust to take both operands.
18709         (arm_select_cc_mode): Handle DImode comparisons.
18710         (arm_gen_compare_reg): Generate a scratch register for DImode
18711         comparisons which require one.  Use xor for Thumb equality checks.
18712         (arm_const_double_by_immediates): New.
18713         (arm_print_operand): Allow 'Q' and 'R' for constants.
18714         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
18715         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
18716         arm_canonicalize_comparison.
18717         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
18718         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
18719         prototype.
18720         (arm_const_double_by_immediates): Declare.
18721         * config/arm/constraints.md (Di): New constraint.
18722         * config/arm/predicates.md (arm_immediate_di_operand)
18723         (arm_di_operand, cmpdi_operand): New.
18724         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
18725         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
18726         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
18727         (cstoredi4): Handle non-Cirrus also.
18728
18729 2010-07-02  Julian Brown  <julian@codesourcery.com>
18730             Sandra Loosemore  <sandra@codesourcery.com>
18731
18732         PR target/43703
18733         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
18734         (smax<mode>3): Disable for NEON float modes when
18735         flag_unsafe_math_optimizations is false.
18736         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
18737         (*mul<mode>3_neon)
18738         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
18739         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
18740         for NEON float modes when flag_unsafe_math_optimizations is false.
18741         (quad_halves_<code>v4sf): Only enable if
18742         flag_unsafe_math_optimizations is true.
18743         * doc/invoke.texi (ARM Options): Add note about floating point
18744         vectorization requiring -funsafe-math-optimizations.
18745
18746 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18747             Julian Brown  <julian@codesourcery.com>
18748
18749         * config/arm/neon.md (UNSPEC_VABA): Delete.
18750         (UNSPEC_VABAL): Delete.
18751         (UNSPEC_VABS): Delete.
18752         (UNSPEC_VMUL_N): Delete.
18753         (adddi3_neon): New.
18754         (subdi3_neon): New.
18755         (mul<mode>3add<mode>_neon): Make the pattern named.
18756         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
18757         (neon_vadd<mode>): Replace with define_expand, and move the remaining
18758         unspec parts...
18759         (neon_vadd<mode>_unspec): ...to this.
18760         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
18761         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
18762         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
18763         (neon_vaba<mode>): Rewrite in terms of vabd.
18764         (neon_vabal<mode>): Rewrite in terms of vabdl.
18765         (neon_vabs<mode>): Rewrite without unspec.
18766         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
18767         (*arm_subdi3): Likewise.
18768         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
18769         No_op attribute to disable assembly output checks.
18770         * config/arm/arm_neon.h: Regenerated.
18771         * doc/arm-neon-intrinsics.texi: Regenerated.
18772
18773 2010-07-02  Jan Hubicka  <jh@suse.cz>
18774
18775         * ipa-split.c (split_function): For aggregate values, set the return
18776         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
18777         *<retval> = fncall.part ().
18778         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
18779
18780 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18781
18782         * config/arm/neon.md (UNSPEC_VAND): Delete.
18783         (UNSPEC_VBIC): Delete.
18784         (UNSPEC_VCLZ): Delete.
18785         (UNSPEC_VCNT): Delete.
18786         (UNSPEC_VEOR): Delete.
18787         (UNSPEC_VORN): Delete.
18788         (UNSPEC_VORR): Delete.
18789         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
18790         core registers too.
18791         (anddi3_neon): Likewise.
18792         (orndi3_neon): Likewise.
18793         (bicdi3_neon): Likewise.
18794         (xordi3_neon): Likewise.
18795         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
18796         rid of unspec and handle unused operand.
18797         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
18798         * config/arm/predicates.md (imm_for_neon_logic_operand):
18799         Require TARGET_NEON.
18800         (imm_for_neon_inv_logic_operand): Likewise.
18801         * config/arm/arm.md (define_split for logical_binary_operator):
18802         Disable for NEON registers.
18803         (anddi3): Add new define_expand, and rename the insn.  Disable
18804         this insn for NEON, where anddi3_neon now applies.
18805         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
18806         (iordi3): As for anddi3.
18807         (xordi3): Likewise.
18808         * config/arm/neon.ml (Vand): Split DImode variants and mark them
18809         as No_op to disable testing for exact instruction match.
18810         (Vorr): Likewise.
18811         (Veor): Likewise.
18812         (Vbic): Likewise.
18813         (Vorn): Likewise.
18814         * config/arm/arm_neon.h: Regenerated.
18815         * doc/arm-neon-intrinsics.texi: Regenerated.
18816
18817 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
18818
18819         * expr.h (emit_stack_probe): Declare.
18820         * explow.c (emit_stack_probe): Make global.
18821         (anti_adjust_stack_and_probe): Fix comments.
18822         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
18823         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18824         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18825         * config/sparc/sparc.c: Include except.h.
18826         (sparc_emit_probe_stack_range): New function.
18827         (output_probe_stack_range): Likewise.
18828         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
18829         built-in stack checking is enabled.
18830         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
18831         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
18832         (probe_stack_range): New insn.
18833
18834 2010-07-02  Richard Guenther  <rguenther@suse.de>
18835
18836         PR target/43958
18837         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
18838         for argument alignment.
18839
18840 2010-07-02  Jan Hubicka  <jh@suse.cz>
18841
18842         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
18843         walk backwards from entry_bb to check only those basic block of header
18844         that might lead to execution of split part.
18845         (consider_split) ... here.
18846         (find_return_bb): Allow assignment in return BB.
18847         (find_retval): New.
18848         (split_function): Fix name of cloned function; take care of updating
18849         return value in return_bb containing move.
18850
18851 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
18852
18853         PR target/44771
18854         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
18855         used variable insn.
18856
18857 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
18858
18859         * implicit-zee.c (combine_reaching_defs): Fix long lines.
18860         (is_set_with_extension_DI): Delete.
18861         (struct zero_extend_info): New structure.
18862         (add_removable_zero_extend): New function.
18863         (find_removable_zero_extends): Use note_stores to find SETs.
18864         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
18865
18866 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
18867
18868         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
18869         is_miss_rate_acceptable. Pull total_positions computation
18870         out of the loops.  Early return if miss_positions exceeds
18871         the acceptable threshold.
18872         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
18873         is_miss_rate_acceptable after renaming of compute_miss_rate.
18874
18875 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
18876
18877         PR middle-end/44576
18878         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
18879         of 1000) for miss rate if the address diference is greater than or
18880         equal to the cache line size (the two reference will never hit the
18881         same cache line).
18882
18883 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
18884
18885         PR target/42835
18886         * config/arm/arm-modes.def (CC_NOTB): New mode.
18887         * config/arm/arm.c (get_arm_condition_code): Handle it.
18888         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
18889         * config/arm/arm.md (subsi3_compare0_c): New pattern.
18890         (compare_scc): Now a define_and_split.  Add a number of extra
18891         splitters before it.
18892
18893         PR target/42172
18894         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
18895         and ZERO_EXTEND.
18896         (arm_rtx_costs_1): Likewise.
18897         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
18898         * config/arm/arm.md (is_arch6): New attribute.
18899         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
18900         extendqisi2): Tighten the code somewhat, avoiding invalid
18901         RTL to occur in the expander patterns.
18902         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
18903         (thumb1_zero_extendhisi2_v6): Delete.
18904         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
18905         (thumb1_extendhisi2_v6): Delete.
18906         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
18907         (thumb1_extendqisi2_v6): Delete.
18908         (zero_extendhisi2 for register input splitter): New.
18909         (zero_extendqisi2 for register input splitter): New.
18910         (thumb1_extendhisi2 for register input splitter): New.
18911         (extendhisi2 for register input splitter): New.
18912         (extendqisi2 for register input splitter): New.
18913         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
18914         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
18915         and add support for a register alternative requiring a split.
18916         (thumb1_zero_extendqisi2): Likewise.
18917         (arm_zero_extendqisi2): Likewise.
18918         (arm_extendhisi2): Likewise.
18919         (arm_extendqisi2): Likewise.
18920
18921 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18922
18923         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
18924         instead of an unspec.
18925         (neon_expand_vector_init): Likewise.
18926         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
18927         (UNSPEC_VDUP_LANE): Delete.
18928         (UNSPEC VDUP_N): Delete.
18929         (UNSPEC_VGET_HIGH): Delete.
18930         (UNSPEC_VGET_LANE): Delete.
18931         (UNSPEC_VGET_LOW): Delete.
18932         (UNSPEC_VMVN): Delete.
18933         (UNSPEC_VSET_LANE): Delete.
18934         (V_double_vector_mode): New.
18935         (vec_set<mode>_internal): Make code emitted match that for the
18936         corresponding intrinsics.
18937         (vec_setv2di_internal): Likewise.
18938         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
18939         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
18940         (neon_vset_lane<mode>): Combine double and quad patterns and
18941         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
18942         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
18943         (neon_vdup_n<mode>): Rewrite RTL without unspec.
18944         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
18945         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
18946         with neon_vdup_lanev2di, adjusting the pattern from the latter
18947         to be predicable for consistency.
18948         (neon_vdup_lane<mode>_internal): New.
18949         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
18950         to avoid using an unspec.
18951         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
18952         (neon_vdup_lanev2di): Turn into a define_expand.
18953         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
18954         (neon_vget_high<mode>): Replace with....
18955         (neon_vget_highv16qi): New pattern using canonical RTL.
18956         (neon_vget_highv8hi): Likewise.
18957         (neon_vget_highv4si): Likewise.
18958         (neon_vget_highv4sf): Likewise.
18959         (neon_vget_highv2di): Likewise.
18960         (neon_vget_low<mode>): Replace with....
18961         (neon_vget_lowv16qi): New pattern using canonical RTL.
18962         (neon_vget_lowv8hi): Likewise.
18963         (neon_vget_lowv4si): Likewise.
18964         (neon_vget_lowv4sf): Likewise.
18965         (neon_vget_lowv2di): Likewise.
18966
18967         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
18968         test for this emitting vmov.
18969         (Vset_lane): Likewise.
18970         (Vdup_n): Likewise.
18971         (Vmov_n): Likewise.
18972
18973         * doc/arm-neon-intrinsics.texi: Regenerated.
18974
18975 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
18976
18977         * config/arm/neon.md (vec_extractv2di): Correct error in register
18978         numbering to reconcile with neon_vget_lanev2di.
18979
18980 2010-07-02  Richard Guenther  <rguenther@suse.de>
18981
18982         * tree-ssa-structalias.c (pt_solution_set_var): New function.
18983         * tree-ssa-alias.h (pt_solution_set_var): Declare.
18984         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
18985         points-to information.
18986
18987 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
18988
18989         * config/s390/s390.c (override_options): Adopt prefetching
18990         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
18991
18992 2010-07-02  Jan Hubicka  <jh@suse.cz>
18993
18994         * df-problems.c (df_kill_notes): Do not collect dead  notes.
18995         (df_set_note): Just call add_reg_note.
18996         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
18997         df_create_unused_note): Do not deal with lists of old notes.
18998         (df_note_bb_compute): Likewise.
18999
19000 2010-07-02  Richard Guenther  <rguenther@suse.de>
19001
19002         * tree-ssa-structalias.c (find_func_aliases): Handle
19003         pointer alignment via BIT_AND_EXPR.
19004         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
19005
19006 2010-07-02  Richard Guenther  <rguenther@suse.de>
19007
19008         * tree-data-ref.c (initialize_data_dependence_relation): Handle
19009         mismatching number of dimensions properly.
19010
19011 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19012
19013         PR target/44707
19014         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
19015         (lo_sum (high ...) ...) patterns generated by earlier passes.
19016
19017 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19018
19019         * doc/install.texi (Prerequisites): Document Perl requirement on
19020         Solaris 2.
19021         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
19022
19023 2010-07-02  Richard Guenther  <rguenther@suse.de>
19024
19025         PR middle-end/44777
19026         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
19027
19028 2010-07-02  Jan Hubicka  <jh@suse.cz>
19029
19030         PR middle-end/44706
19031         * predict.c (predict_paths_for_bb): Handle case when control dependence
19032         BB has only abnormal edges.
19033
19034 2010-07-02  Richard Guenther  <rguenther@suse.de>
19035
19036         PR tree-optimization/44748
19037         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
19038         the embedded conversion in MEM_REFs.
19039
19040 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
19041
19042         * reload.c: Include toplev.h.
19043         * recog.c:  Likewise.
19044         * Makefile.in: Adjust dependencies.
19045
19046 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
19047
19048         PR debug/44694
19049         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
19050         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
19051
19052 2010-07-01  Richard Guenther  <rguenther@suse.de>
19053
19054         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
19055         types for offsets.
19056
19057 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
19058
19059         PR target/44732
19060         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
19061         Fix argument types.
19062
19063 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
19064
19065         PR target/44727
19066         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19067         Make sure operand 0 dies.
19068
19069 2010-07-01  Richard Guenther  <rguenther@suse.de>
19070
19071         PR middle-end/42834
19072         PR middle-end/44468
19073         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
19074         * doc/generic.texi (References to storage): Document MEM_REF.
19075         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
19076         (print_call_name): Likewise.
19077         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
19078         (build_simple_mem_ref_loc): New function.
19079         (mem_ref_offset): Likewise.
19080         * tree.h (build_simple_mem_ref_loc): Declare.
19081         (build_simple_mem_ref): Define.
19082         (mem_ref_offset): Declare.
19083         * fold-const.c: Include tree-flow.h.
19084         (operand_equal_p): Handle MEM_REF.
19085         (build_fold_addr_expr_with_type_loc): Likewise.
19086         (fold_comparison): Likewise.
19087         (fold_unary_loc): Fold
19088         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
19089         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
19090         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
19091         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
19092         (ptr_deref_may_alias_ref_p_1): Likewise.
19093         (ao_ref_base_alias_set): Properly differentiate base object for
19094         offset and TBAA.
19095         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
19096         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
19097         (indirect_refs_may_alias_p): Likewise.
19098         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
19099         chasing code.
19100         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
19101         (call_may_clobber_ref_p_1): Likewise.
19102         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
19103         * expr.c (expand_assignment): Handle MEM_REF.
19104         (store_expr): Handle MEM_REFs from STRING_CSTs.
19105         (store_field): If expanding a MEM_REF of a non-addressable
19106         decl use bitfield operations.
19107         (get_inner_reference): Handle MEM_REF.
19108         (expand_expr_addr_expr_1): Likewise.
19109         (expand_expr_real_1): Likewise.
19110         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
19111         * alias.c (ao_ref_from_mem): Handle MEM_REF.
19112         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
19113         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
19114         (dr_analyze_indices): Likewise.
19115         (dr_analyze_alias): Likewise.
19116         (object_address_invariant_in_loop_p): Likewise.
19117         * gimplify.c (mark_addressable): Handle MEM_REF.
19118         (gimplify_cond_expr): Build MEM_REFs.
19119         (gimplify_modify_expr_to_memcpy): Likewise.
19120         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
19121         (gimple_fold_indirect_ref): Adjust.
19122         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
19123         * tree.def (MEM_REF): New tree code.
19124         * tree-dfa.c: Include toplev.h.
19125         (get_ref_base_and_extent): Handle MEM_REF.
19126         (get_addr_base_and_unit_offset): New function.
19127         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
19128         * gimple-fold.c (may_propagate_address_into_dereference): Handle
19129         MEM_REF.
19130         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
19131         accesses if the array has just one dimension.  Remove always true
19132         parameter.  Do not require type compatibility here.
19133         (maybe_fold_offset_to_component_ref): Remove.
19134         (maybe_fold_stmt_indirect): Remove.
19135         (maybe_fold_reference): Remove INDIRECT_REF handling.
19136         Fold back to non-MEM_REF.
19137         (maybe_fold_offset_to_address): Simplify.  Deal with type
19138         mismatches here.
19139         (maybe_fold_reference): Likewise.
19140         (maybe_fold_stmt_addition): Likewise.  Also handle
19141         &ARRAY + I in addition to &ARRAY[0] + I.
19142         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
19143         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
19144         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
19145         * tree-ssa.c (useless_type_conversion_p): Make most pointer
19146         conversions useless.
19147         (warn_uninitialized_var): Handle MEM_REF.
19148         (maybe_rewrite_mem_ref_base): New function.
19149         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
19150         to SSA form.
19151         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
19152         INDIRECT_REF handling.
19153         (copy_tree_body_r): Handle MEM_REF.
19154         * gimple.c (is_gimple_addressable): Adjust.
19155         (is_gimple_address): Likewise.
19156         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
19157         invariant base are invariant.
19158         (is_gimple_min_lval): Adjust.
19159         (is_gimple_mem_ref_addr): New function.
19160         (get_base_address): Handle MEM_REF.
19161         (count_ptr_derefs): Likewise.
19162         (get_base_loadstore): Likewise.
19163         * gimple.h (is_gimple_mem_ref_addr): Declare.
19164         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
19165         * tree-cfg.c (verify_address): New function, split out from ...
19166         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
19167         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
19168         INDIRECT_REFs.
19169         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
19170         INDIRECT_REF.  Allow conversions.
19171         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
19172         a register does not change its size.
19173         (verify_types_in_gimple_reference): Verify MEM_REF.
19174         (verify_gimple_assign_single): Disallow INDIRECT_REF.
19175         Handle MEM_REF.
19176         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
19177         New.
19178         (mark_address_taken): Handle MEM_REF.
19179         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
19180         (get_asm_expr_operands): Pass opf_not_non_addressable.
19181         (get_expr_operands): Handle opf_[not_]non_addressable.
19182         Handle MEM_REF.  Remove INDIRECT_REF handling.
19183         * tree-vrp.c (check_array_ref): Handle MEM_REF.
19184         (search_for_addr_array): Likewise.
19185         (check_array_bounds): Likewise.
19186         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
19187         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
19188         (ref_always_accessed_p): Likewise.
19189         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
19190         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
19191         Handle MEM_REF.
19192         * cgraphbuild.c (mark_load): Properly check for NULL result
19193         from get_base_address.
19194         (mark_store): Likewise.
19195         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
19196         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
19197         handling for MEM_REF.
19198         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
19199         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
19200         * builtins.c (stabilize_va_list_loc): Use the function ABI
19201         valist type if we couldn't canonicalize the argument type.
19202         Always dereference with the canonical va-list type.
19203         (maybe_emit_free_warning): Handle MEM_REF.
19204         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
19205         memmove to memcpy.
19206         * builtins.c (fold_builtin_memory_op): Use ref-all types
19207         for all memcpy foldings.
19208         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
19209         (build_outer_var_ref): Likewise.
19210         (scan_omp_1_op): Likewise.
19211         (lower_rec_input_clauses): Likewise.
19212         (lower_lastprivate_clauses): Likewise.
19213         (lower_reduction_clauses): Likewise.
19214         (lower_copyprivate_clauses): Likewise.
19215         (expand_omp_atomic_pipeline): Likewise.
19216         (expand_omp_atomic_mutex): Likewise.
19217         (create_task_copyfn): Likewise.
19218         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
19219         Remove old union trick.  Initialize constant offsets.
19220         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
19221         INDIRECT_REF.  Init base_alias_set properly.
19222         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
19223         (vn_reference_fold_indirect): Adjust for MEM_REFs.
19224         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
19225         for ARRAY_REFs.
19226         (may_insert): Remove.
19227         (visit_reference_op_load): Do not test may_insert.
19228         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
19229         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
19230         a field to store the constant offset this op applies.
19231         (run_scc_vn): Adjust prototype.
19232         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
19233         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
19234         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
19235         bother about volatile qualifiers on pointers.
19236         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
19237         * tree-ssa-loop-ivopts.c
19238         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
19239         (strip_offset_1): Likewise.
19240         (find_interesting_uses_address): Replace INDIRECT_REF handling with
19241         MEM_REF handling.
19242         (get_computation_cost_at): Likewise.
19243         * ipa-pure-const.c (check_op): Handle MEM_REF.
19244         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
19245         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
19246         and constants.
19247         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
19248         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
19249         (eliminate_local_variables_1): Likewise.
19250         (create_call_for_reduction_1): Likewise.
19251         (create_loads_for_reductions): Likewise.
19252         (create_loads_and_stores_for_name): Likewise.
19253         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
19254         (ssa_accessed_in_tree): Handle MEM_REF.
19255         (ssa_accessed_in_assign_rhs): Likewise.
19256         (update_type_size): Likewise.
19257         (analyze_accesses_for_call_stmt): Likewise.
19258         (analyze_accesses_for_assign_stmt): Likewise.
19259         (transform_access_sites): Likewise.
19260         (transform_allocation_sites): Likewise.
19261         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
19262         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
19263         not handle INDIRECT_REF.
19264         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
19265         (cond_store_replacement): Likewise.
19266         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
19267         MEM_REF, no not handle INDIRECT_REFs.
19268         (insert_into_preds_of_block): Properly initialize avail.
19269         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
19270         for ARRAY_REFs.  Properly handle reference lookups that
19271         require a bit re-interpretation.
19272         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
19273         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
19274         (build_ref_for_offset_1): Remove.
19275         (build_ref_for_offset): Build MEM_REFs.
19276         (gate_intra_sra): Disable for now.
19277         (sra_ipa_modify_expr): Handle MEM_REF.
19278         (ipa_early_sra_gate): Disable for now.
19279         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
19280         MEM_REF handling.
19281         (disqualify_base_of_expr): Likewise.
19282         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
19283         MEM_REF handling.
19284         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
19285         Use mem_ref_offset.  Remove bogus folding.
19286         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
19287         (make_fancy_name_1): Add support for MEM_REF.
19288         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
19289         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
19290         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
19291         (compute_complex_ancestor_jump_func): Likewise.
19292         (ipa_analyze_virtual_call_uses): Likewise.
19293         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
19294         INDIRECT_REF folding with more generalized MEM_REF folding.
19295         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
19296         (forward_propagate_addr_into_variable_array_index): Also handle
19297         &ARRAY + I in addition to &ARRAY[0] + I.
19298         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
19299         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
19300         creates assignments with overlap.
19301         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
19302         (get_frame_field): Likewise.
19303         (get_nonlocal_debug_decl): Likewise.
19304         (convert_nonlocal_reference_op): Likewise.
19305         (struct nesting_info): Add mem_refs pointer-set.
19306         (create_nesting_tree): Allocate it.
19307         (convert_local_reference_op): Insert to be folded mem-refs.
19308         (fold_mem_refs): New function.
19309         (finalize_nesting_tree_1): Perform defered folding of mem-refs
19310         (free_nesting_tree): Free the pointer-set.
19311         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
19312         (vectorizable_load): Likewise.
19313         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
19314         (propagate_with_phi): Likewise.
19315         * tree-object-size.c (addr_object_size): Handle MEM_REFs
19316         instead of INDIRECT_REFs.
19317         (compute_object_offset): Handle MEM_REF.
19318         (plus_stmt_object_size): Handle MEM_REF.
19319         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
19320         for &MEM_REF.
19321         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
19322         (symbol_marked_for_renaming): Likewise.
19323         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
19324         (fold-const.o): Add $(TREE_FLOW_H).
19325         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
19326         (find_func_clobbers): Likewise.
19327         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
19328         (decompose_access): Likewise.
19329         (replace_field_acc): Likewise.
19330         (replace_field_access_stmt): Likewise.
19331         (insert_new_var_in_stmt): Likewise.
19332         (get_stmt_accesses): Likewise.
19333         (reorg_structs_drive): Disable.
19334         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
19335         (ix86_canonical_va_list_type): Likewise.
19336
19337 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
19338
19339         PR other/44566
19340         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
19341         * target.def (struct gcc_target): Replace enum reg_class with
19342         reg_class_t in hook argument / return types.
19343         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
19344         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
19345         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
19346         * targhooks.h (default_branch_target_register_class): Likewise.
19347         (default_ira_cover_classes, default_secondary_reload): Likewise.
19348         (default_memory_move_cost, default_register_move_cost): Likewise.
19349         * targhooks.c (default_branch_target_register_class): Likewise.
19350         (default_ira_cover_classes, default_secondary_reload): Likewise.
19351         (default_memory_move_cost, default_register_move_cost): Likewise.
19352         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
19353         * bt-load.c (branch_target_load_optimize): Likewise.
19354         * ira.c (setup_cover_and_important_classes): Likewise.
19355         * ira-costs.c (copy_cost): Likewise.
19356         * reload1.c (emit_input_reload_insns): Likewise.
19357         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
19358         * config/frv/frv.c (frv_secondary_reload): Likewise.
19359         * config/s390/s390.c (s390_secondary_reload): Likewise.
19360         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
19361         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
19362         (ix86_register_move_cost): Likewise.
19363         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
19364         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
19365         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
19366         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
19367         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
19368         (rs6000_ira_cover_classes): Likewise.
19369         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
19370         * config/picochip/picochip-protos.h (picochip_secondary_reload):
19371         Likewise.
19372         * config/pa/pa.c (pa_secondary_reload): Likewise.
19373         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
19374         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
19375         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
19376         * doc/tm.texi: Regenerate.
19377
19378 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
19379
19380         PR bootstrrap/44726
19381         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
19382         use.
19383         (build_alias_set_optimal_p): Likewise.
19384         (build_base_obj_set_for_drs): Likewise.
19385
19386 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
19387
19388         * target.def: Remove comment about licensing problems of function
19389         declarations.
19390
19391         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
19392         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
19393         * doc/tm.texi: Regenerate.
19394
19395         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
19396         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
19397
19398         * target.def (enum_va_list_p): Use DEFHOOK.
19399         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
19400         Rename ptype to ptree.
19401         * doc/tm.texi: Regenerate.
19402
19403         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
19404         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
19405         * doc/tm.texi: Regenerate.
19406
19407         * target.def (memory_move_cost): Use DEFHOOK.
19408         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
19409         Rename regclass AKA class to rclass.
19410         * doc/tm.texi: Regenerate.
19411
19412         * target.def (pragma_parse): Use DEFHOOK.
19413         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
19414         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
19415         * doc/tm.texi: Regenerate.
19416
19417         * target.def (pass_by_reference): Use DEFHOOK.
19418         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
19419         * doc/tm.texi: Regenerate.
19420
19421         * target.def (resolve_overloaded_builtin): Rename params to arglist.
19422         Use DEFHOOK.
19423         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
19424         * doc/tm.texi: Regenerate.
19425
19426         * target.def (return_pops_args): Use DEFHOOK.
19427         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
19428         Rename stack-size to size.
19429         * doc/tm.texi: Regenerate.
19430
19431         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
19432         last-sched_cycle to last_clock, cur_cycle to clock.
19433         * doc/tm.texi.in: Use @hook.
19434         * doc/tm.texi: Regenerate.
19435
19436         * target.def (print_operand, print_operand_address): Update comment.
19437         (print_operand_punct_valid_p): Likewise.
19438
19439 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19440
19441         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
19442         to rtl.h.
19443         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
19444         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
19445         * rtl-error.h: New.
19446         * regrename.c: Do not include toplev.h. Include rtl-error.h.
19447         * rtl-error.c: Likewise.
19448         * reload.c: Likewise.
19449         * recog.c:  Likewise.
19450         * sel-sched.c: Likewise.
19451         * function.c: Likewise.
19452         * reg-stack.c: Likewise.
19453         * cfgrtl.c: Likewise.
19454         * reload1.c: Likewise.
19455         * final.c: Include rtl-error.
19456         * Makefile.in: Adjust dependencies.
19457
19458 2010-06-30  Jan Hubicka  <jh@suse.cz>
19459
19460         PR middle-end/PR44706
19461         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
19462         to return the value.
19463
19464 2010-06-30  Michael Matz  <matz@suse.de>
19465
19466         PR bootstrap/44699
19467         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
19468         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
19469         a gimple reg, attach the original VDEF to the last store in the
19470         sequence.
19471
19472 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
19473
19474         PR other/44034
19475         * config/darwin.c (darwin_override_options): Use renamed
19476         targetm.asm_out.emit_unwind_label.
19477
19478 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
19479
19480         PR tree-optimization/39799
19481         * tree-inline.c (remap_ssa_name): Initialize variable only if
19482         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
19483
19484 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
19485
19486         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
19487
19488 2010-06-30  Richard Guenther  <rguenther@suse.de>
19489
19490         PR target/44722
19491         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
19492         against oscillation with reverse peephole2.
19493
19494 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
19495
19496         PR target/44721
19497         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19498         Fix last commit.
19499
19500 2010-06-30  Nick Clifton  <nickc@redhat.com>
19501
19502         * config/rx/rx-modes.def: New file.
19503         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
19504         (CC_REGNUM): Define.
19505         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
19506         register.
19507         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
19508         (SELECT_CC_MODE): Define.
19509         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
19510         (reg:CC CC_REG) instead of (cc0).
19511         (attr "cc"): Delete.
19512         (cbranchsi4): Do not split compare and branch here. Instead move
19513         it to...
19514         (cbranchsi4_<code>): ... here.  New patterns.
19515         (cmpsi): Call rx-compare_redundant to find out if it is necessary
19516         to emit the compare instruction.
19517         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
19518         cc_status flags.
19519         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
19520         FIRST_PSEUDO_REGNUM.
19521         (rx_expand_prologue, rx_expand_epilogue): Likewise.
19522         (rx_notice_update_cc): Delete.
19523         (rx_cc_modes_compatible): New function.
19524         (flags_needed_for_conditional): New function.
19525         (flags_from_mode): New function.
19526         (rx_compare_redundant): New function - scans backwards through
19527         insn list to find out if condition flags are already set correctly.
19528         (TARGET_CC_MODES_COMPATIBLE): Define.
19529         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
19530
19531         * config/rx/rx.h (BRANCH_COST): Define.
19532         (REGISTER_MOVE_COST): Define.
19533         * config/rx/predicates (rx_source_operand): Allow all constant types.
19534         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
19535         (tstsi4): New pattern.
19536         * config/rx/rx.c (rx_memory_move_cost): Define.
19537         (TARGET_MEMORY_MOVE_COST): Define.
19538
19539 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19540
19541         * tree.h (block_may_fallthru): Declare here.
19542         * tree-flow.h (block_may_fallthru): Do not declare here.
19543         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
19544         bitmap.h
19545         * Makefile.in (c-typeck.o): Update dependencies.
19546
19547 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
19548
19549         PR debug/44694
19550         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
19551         * cselib.c (cfa_base_preserved_regno): New static variable.
19552         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
19553         of REGNO (cfa_base_preserved_val->locs->loc).
19554         (cselib_preserve_cfa_base_value): Add regno argument, set
19555         cfa_base_preserved_regno to it.
19556         (cselib_invalidate_regno): Allow removal of registers other than
19557         cfa_base_preserved_regno from cfa_base_preserved_val.
19558         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
19559         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
19560         of MEM addresses, if not on LHS.
19561         (reverse_op): Don't add reverse ops for cfa_base_rtx.
19562         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
19563
19564 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
19565
19566         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
19567         static variables.
19568         (peep2_buf_position): New static function.
19569         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
19570         peephole2_optimize): Use it.
19571         (peep2_attempt, peep2_update_life): New static functions, broken out
19572         of peephole2_optimize.
19573         (peep2_fill_buffer): New static function.
19574         (peephole2_optimize): Change the main loop to try to fill the buffer
19575         with the maximum number of insns before matching them against
19576         peepholes.  Use a forward scan.  Remove special case for targets with
19577         conditional execution.
19578         * genrecog.c (change_state): Delete dead code.
19579         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
19580         Rewrite so as not to expect the second insn to have had a peephole
19581         applied yet.
19582
19583 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19584
19585         * genhooks.c (emit_findices): Cast field precision to int.
19586         (emit_documentation): Likewise.
19587
19588 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
19589
19590         PR tree-optimization/43801
19591         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
19592         if old_decl was DECL_ONE_ONLY.
19593
19594         PR debug/44668
19595         * dwarf2out.c (add_accessibility_attribute): New function.
19596         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
19597         instead of adding DW_AT_accessibility manually.
19598         (gen_enumeration_type_die, gen_struct_or_union_type_die,
19599         gen_typedef_die): Use it.
19600
19601 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19602
19603         * vmsdbgout.c (full_name): Just output the file name if not native.
19604
19605 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19606
19607         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
19608         (funcnam_table): New static table.
19609         (funcnum_table): New static table.
19610         (write_rtnbeg): Write value saved in funcnum_table.
19611         (write_rtnend): Write value saved in funcnum_table.
19612         (vmsdbgout_begin_function): Save current function info in
19613         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
19614         (vmsdbgout_finish): Iterate over funcnum_table.
19615
19616 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19617
19618         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
19619         (vmsdbgout_type_decl): Declare
19620         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
19621         (FUNC_EPILOGUE_LABEL): New macro
19622         (vmsdbgout_begin_epilogue): New function.
19623         (vmsdbgout_type_decl): New function.
19624
19625 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19626
19627         * vmsdbg.h: Update copyright.
19628
19629 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
19630
19631         * vmsdbg.h (DST_K_TBG): New DST constant.
19632         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
19633         (write_modbeg): Cast module_language to avoid warning.
19634         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
19635
19636 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
19637
19638         PR other/44034
19639         * target.def, doc/tm.texi.in, genhooks.c: New files.
19640         * target.h: Instead of defining individual hook members,
19641         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
19642         include target.def.
19643         * target-def.h: Instead of defining individual hook initializers,
19644         include target-hooks-def.h.
19645         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
19646         targetm.live_on_entry -> targetm.extra_live_on_entry
19647         targetm.sched.md_finish ->targetm.sched.finish
19648         targetm.sched.md_init -> targetm.sched.init
19649         targetm.sched.md_init_global -> targetm.sched.init_global
19650         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
19651         targetm.asm_out.except_table_label ->
19652           targetm.asm_out.emit_except_table_label
19653         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
19654         targetm.target_help -> targetm.help
19655         targetm.vectorize.builtin_support_vector_misalignment ->
19656           targetm.vectorize.support_vector_misalignment
19657         targetm.file_start_app_off -> targetm.asm_file_start_app_off
19658         targetm.file_start_file_directive ->
19659          targetm.asm_file_start_file_directive
19660         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
19661         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
19662         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
19663         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
19664           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
19665         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
19666           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
19667         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
19668         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
19669         * Makefile.in (TARGET_H): Depend on target.def.
19670         (TARGET_DEF_H): Depend on target-hooks-def.h.
19671         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
19672         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
19673         * doc/tm.texi: Regenerate.
19674
19675         * Makefile.in (s-tm-texi): Remove stray tab / rule.
19676
19677         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
19678         (targetm.sched.init): Likewise.
19679
19680 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19681
19682         PR bootstrap/44713
19683         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
19684         (function_arg_advance_32): Const-ify TYPE parameter.
19685         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
19686         (ix86_function_arg_advance): Change type of NAMED to bool.
19687         (function_arg_32): Const-ify CUM and TYPE parameters.
19688         (function_arg_64): Likewise.  Change type of NAMED to bool.
19689         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
19690         to bool.
19691         (ix86_function_arg): Change type of NAMED to bool.
19692         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
19693         last argument as a bool.
19694
19695 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
19696
19697         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
19698         (OVERRIDE_OPTIONS): Add note of obsolescence.
19699         Replace references with references to TARGET_OPTION_OVERRIDE.
19700         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
19701          the macro).
19702         * targhooks.c (default_target_option_override): New function.
19703         * targhooks.h (default_target_option_override): Declare.
19704         * target.h (struct gcc_target): Add override member to
19705         target_option member.
19706         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
19707         targetm.target_option.override call.
19708         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
19709         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
19710
19711 2010-06-29  Jan Hubicka  <jh@suse.cz>
19712
19713         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
19714
19715 2010-06-29  Jan Hubicka  <jh@suse.cz>
19716
19717         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
19718         unreachable.
19719         (rebuild_frequencies): New function.
19720         * predict.h (rebuild_frequencies): Declare.
19721         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
19722         entry block and edge reaching new_entry.
19723         (tree_function_versioning): When doing partial cloning, rebuild
19724         frequencies when done.
19725         * passes.c (execute_function_todo): Use rebild_frequencies.
19726
19727 2010-06-29  Richard Guenther  <rguenther@suse.de>
19728
19729         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
19730         * tree-flow.h (enum noalias_state): Remove.
19731         (struct var_ann_d): Remove noalias_state member.
19732
19733 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
19734
19735         PR target/43902
19736         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
19737         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
19738         (maddhidi4): Likewise.
19739
19740         Revert parts of the change for PR25130.
19741         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
19742         MEM_ALIAS_SET.
19743
19744 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19745
19746         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
19747         targetm.calls.function_incoming_arg, and
19748         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
19749         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
19750         * target.h (struct gcc_target): Add function_arg_advance,
19751         function_arg, and function_incoming_arg fields.
19752         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
19753         (TARGET_FUNCTION_INCOMING_ARG): Define.
19754         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
19755         and TARGET_FUNCTION_INCOMING_ARG.
19756         * targhooks.h (default_function_arg_advance): Declare.
19757         (default_function_arg, default_function_incoming_arg): Declare.
19758         * targhooks.c (default_function_arg_advance): New function.
19759         (default_function_arg, default_function_incoming_arg): New function.
19760         * config/i386/i386.c (function_arg_advance): Rename to...
19761         (ix86_function_arg_advance): ...this.  Make static.
19762         (function_arg): Rename to...
19763         (ix86_function_arg): ...this.  Make static.
19764         (TARGET_FUNCTION_ARG_ADVANCE): Define.
19765         (TARGET_FUNCTION_ARG): Define.
19766         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
19767         (FUNCTION_ARG): Delete.
19768         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
19769         (function_arg): Delete prototype.
19770
19771 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
19772
19773         * reginfo.c (init_reg_sets_1): Adjust comments.
19774         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
19775         * calls.c (prepare_call_address): Likewise.
19776         (emit_call_1): Use targetm.calls.return_pops_args.
19777         (expand_call): Likewise.
19778         * function.c (assign_parms): Likewise.
19779         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
19780         * target.h (struct gcc_target) [struct calls]: Add
19781         return_pops_args field.
19782         * targhooks.h (default_return_pops_args): Declare.
19783         * targhooks.c (default_return_pops_args): Define.
19784         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
19785         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
19786         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
19787         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
19788         documentation.
19789         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
19790         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
19791         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
19792         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
19793         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
19794         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
19795         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
19796         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
19797         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
19798         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
19799         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
19800         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
19801         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
19802         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
19803         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
19804         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
19805         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
19806         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
19807         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
19808         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
19809         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
19810         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
19811         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
19812         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
19813         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
19814         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
19815         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
19816         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
19817         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
19818         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
19819         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
19820         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
19821         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
19822         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
19823         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
19824         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
19825         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
19826         * config/i386/i386.c (ix86_return_pops_args): Make static.
19827         Constify arguments.
19828         (TARGET_RETURN_POPS_ARGS): Define.
19829         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
19830         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
19831         (TARGET_RETURN_POPS_ARGS): Define.
19832         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
19833         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
19834         (TARGET_RETURN_POPS_ARGS): Define.
19835
19836 2010-06-29  Richard Guenther  <rguenther@suse.de>
19837
19838         PR middle-end/44667
19839         * tree-inline.c (initialize_inlined_parameters): Make sure
19840         to remap the inlined parameter variable substitutions types.
19841
19842 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
19843
19844         PR rtl-optimization/44659
19845         * combine.c (make_compound_operation) <SUBREG>: Do not return the
19846         result of force_to_mode if it partially re-expanded the compound.
19847
19848 2010-06-28  Jan Hubicka  <jh@suse.cz>
19849
19850         PR middle-end/44671
19851         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
19852         RESULT_DECL.
19853
19854 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
19855
19856         * double-int.h (force_fit_type_double): Remove declaration.
19857         * double-int.c (force_fit_type_double): Move to tree.c.
19858         * tree.h (force_fit_type_double): Declare.
19859         * tree.h (force_fit_type_double): Moved from double-int.c. Use
19860         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
19861         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
19862         * convert.c (convert_to_pointer): Adjust call to
19863         force_fit_type_double.
19864         * tree-vrp.c (extract_range_from_assert,
19865         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
19866         * fold-const.c: Update comment.
19867         (int_const_binop, fold_convert_const_int_from_int,
19868         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
19869         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
19870         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
19871         round_up_loc): Adjust call to force_fit_type_double.
19872
19873 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19874
19875         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
19876
19877 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19878
19879         * tree-sra.c (convert_callers): New parameter, change fndecls of
19880         recursive calls.
19881         (modify_function): Pass the old decl to convert_callers.
19882
19883 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19884
19885         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
19886         ipa_check_create_node_params and ipa_initialize_node_params with
19887         checking asserts they are not necessary.
19888
19889 2010-06-28  Jan Hubicka  <jh@suse.cz>
19890
19891         PR tree-optimization/44687
19892         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
19893
19894 2010-06-28  Martin Jambor  <mjambor@suse.cz>
19895
19896         PR c++/44535
19897         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
19898         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
19899         instead of BINFO_BASE_BINFO.
19900
19901 2010-06-28  Michael Matz  <matz@suse.de>
19902
19903         PR middle-end/44592
19904         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
19905         proper VDEF chain for intermediate stores in the sequence.
19906
19907 2010-06-28  Jan Hubicka  <jh@suse.cz>
19908
19909         PR tree-optimization/44357
19910         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
19911         uninlinable functions.
19912
19913 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19914
19915         * config.gcc (powerpc*-*-*): Handle titan.
19916         * config/rs6000/rs6000.c (titan_cost): New costs.
19917         (rs6000_override_options): Add "titan" to processor_target_table.
19918         Add Titan to branch alignment logic.
19919         Correctly set rs6000_cost for titan.
19920         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
19921         * config/rs6000/titan.md: New file.
19922         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
19923
19924 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19925
19926         * tree-browser.c (TB_history_stack): Convert to a VEC.
19927         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
19928         (TB_history_prev): Likewise.
19929
19930 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
19931
19932         * vec.h (vec_heap_free): Add parentheses around free.
19933
19934 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
19935
19936         * system.h: Poison GCC_EXCEPT_H for front-end files.
19937
19938         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
19939         langhook.
19940         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
19941         Define to NULL by default.
19942         * except.h: Define GCC_EXCEPT_H.
19943         (doing_eh): Remove prototype.
19944         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
19945         (lang_protect_cleanup_actions): Remove.
19946         * except.c (lang_protect_cleanup_actions): Remove.
19947         (doing_eh): Remove.
19948         (gen_eh_region): Don't check doing_eh here.
19949         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
19950         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
19951         instead of lang_protect_cleanup_actions.
19952         * omp-low.c (maybe_catch_exception): Likewise.
19953         * Makefile.in: Update dependencies.
19954
19955 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
19956
19957         * cgraph.h (struct varpool_node): new used_from_object_file flag.
19958         (struct cgraph_local_info): new used_from_object_file flag.
19959         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
19960         (cgraph_clone_node): initialize used_from_object_file.
19961         (cgraph_create_virtual_clone): initialize used_from_object_file.
19962         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
19963         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
19964         when compiling with -fwhole-program.
19965         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
19966         internal resolver.
19967         * ipa.c (function_and_variable_visibility): Set externally_visible
19968         flag of varpool_node if used_from_object_file flag is set.
19969         (cgraph_externally_visible_p): check used_from_object_file flag.
19970         * doc/invoke.texi (-fwhole-program option): Change description of
19971         externally_visible attribute accordingly.
19972         * doc/extend.texi (externally_visible): Ditto.
19973
19974 2010-06-27  Jan Hubicka  <jh@suse.cz>
19975
19976         * params.def (max-inline-insns-auto): Default to 40.
19977         * doc/invoke.texi (max-inline-insns-auto): Document the change.
19978
19979 2010-06-27  Jan Hubicka  <jh@suse.cz>
19980
19981         PR middle-end/44671
19982         PR middle-end/44686
19983         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
19984         signature change.
19985         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
19986         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
19987
19988 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
19989
19990         * target.h (struct gcc_target): Add register_move_cost field.
19991         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
19992         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
19993         * targhooks.c (default_register_move_cost): New function.
19994         * targhooks.h (default_register_move_cost): Declare function.
19995         * defaults.h (REGISTER_MOVE_COST): Delete.
19996         * ira-int.h (ira_register_move_cost): Update comment.
19997         * ira.c (ira_register_move_cost): Update comment.
19998         * reload.h (register_move_cost): Declare.
19999         * reginfo.c (register_move_cost): New function.
20000         (move_cost): Update comment.
20001         (init_move_cost, memory_move_secondary_cost): Replace
20002         REGISTER_MOVE_COST with register_move_cost.
20003         * postreload.c (reload_cse_simplify_set): (Ditto.).
20004         * reload.c (find_valid_class, find_reloads): (Ditto.).
20005         * reload1.c (choose_reload_regs): (Ditto.).
20006         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
20007         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
20008         * doc/md.texi (can_create_pseudo_p): Update documentation.
20009
20010         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
20011         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
20012         * config/i386/i386.h (ix86_memory_move_cost): Make static.
20013         (TARGET_MEMORY_MOVE_COST): Define.
20014
20015         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
20016         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
20017         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
20018         (TARGET_MEMORY_MOVE_COST): Define.
20019
20020 2010-06-27  Richard Guenther  <rguenther@suse.de>
20021
20022         PR tree-optimization/44683
20023         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
20024         false edge from the inverted condition.
20025
20026 2010-06-27  Richard Guenther  <rguenther@suse.de>
20027
20028         PR middle-end/44684
20029         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
20030         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
20031         for register LHS.  Or non-store assignments.
20032
20033 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
20034
20035         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
20036         (sparc_emit_set_const64): Likewise.  Remove disabled code.
20037         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
20038         (sparc_emit_set_const64): Likewise.
20039
20040 2010-06-26  Catherine Moore  <clm@codesourcery.com>
20041
20042         * config/mips/mips.md (alu_type): New attribute.
20043         (type): Infer type from alu_type.
20044         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
20045         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
20046         *subsi3_extended, negsi2, negdi2, *low<mode>,
20047         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
20048         xor<mode>3, *nor<mode>3,
20049         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
20050         *zero_extendhi_truncqi):  Set alu_type instead of type.
20051
20052 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
20053
20054         * config/alpha/alpha.c (alpha_need_linkage): Adjust
20055         splay_tree_new_ggc call.
20056         (alpha_use_linkage): Likewise.
20057
20058 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
20059
20060         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
20061         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
20062         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
20063         (static_specs): Remove switches_need_spaces.
20064         (process_command, do_self_spec): Hardcode handling "-o" instead of
20065         checking switches_need_spaces.
20066         * system.h (SWITCHES_NEED_SPACES): Poison.
20067
20068 2010-06-26  Richard Guenther  <rguenther@suse.de>
20069
20070         PR tree-optimization/44393
20071         * tree-loop-distribution.c (generate_loops_for_partition): Fix
20072         stmt removal and VOP renaming.
20073         (generate_memset_zero): Remove redundant stmt updating.
20074         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
20075         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
20076
20077 2010-06-26  Jan Hubicka  <jh@suse.cz>
20078
20079         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
20080         edges comming from header are equivalent.
20081         (visit_bb): Handle PHIs correctly.
20082         * tree-inline.c (copy_phis_for_bb): Be able to copy
20083         PHI from entry edge.
20084         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
20085
20086 2010-06-26  Richard Guenther  <rguenther@suse.de>
20087
20088         PR middle-end/44674
20089         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
20090         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
20091
20092 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
20093
20094         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
20095         add_infile, alloc_switch): New.
20096         (process_command): Remove variable lang_n_infiles.  Process
20097         options in a single pass.  Use new functions for allocating
20098         infiles and switches arrays.  Properly skip operands of
20099         -Xpreprocessor and -Xassembler.
20100
20101 2010-06-26  Jan Hubicka  <jh@suse.cz>
20102
20103         PR middle-end/44671
20104         * cgraphunit.c (cgraph_function_versioning): Remove wrong
20105         cgraph_make_decl_local call; fix typo copying RTL data.
20106
20107 2010-06-25  DJ Delorie  <dj@redhat.com>
20108
20109         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
20110         (m32c_output_aligned_common): Likewise.
20111         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20112         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20113         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
20114         (m32c_register_pragmas): Register it.
20115         * config/m32c/m32c.c (m32c_get_pragma_address): New.
20116         (m32c_insert_attributes): Set #pragma address decls volatile.
20117         (pragma_entry_eq): New.
20118         (pragma_entry_hash): New.
20119         (m32c_note_pragma_address): New.
20120         (m32c_get_pragma_address): New.
20121         (m32c_output_aligned_common): New.
20122         * doc/extend.texi: Document the new pragma.
20123
20124         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
20125         also.
20126         * config/m32c/predicates.md (m32c_any_operand): Check the code
20127         instead of memory_operand so as to allow matching volatile MEMs.
20128         (m32c_nonimmediate_operand): Likewise.
20129         (mra_operand): Allow volatiles.
20130
20131 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
20132
20133         PR debug/44610
20134         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
20135         address if the offset is unknown.
20136
20137 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
20138
20139         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
20140         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
20141         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
20142         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
20143         to ia64_start_function. Invoke it.
20144         * config/ia64/ia64.c (ia64_start_function): Call new function
20145         dwarf2out_vms_debug_main_pointer.
20146
20147 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20148
20149         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
20150         statements computing the true predicate.
20151
20152 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20153
20154         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
20155         to boolean_true_node.
20156         (reset_bb_predicate): New.
20157         (predicate_bbs): Call reset_bb_predicate.
20158
20159 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20160
20161         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
20162         (tree_if_conversion): Returns true when something has been changed.
20163         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
20164         changed something.
20165
20166 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
20167
20168         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
20169         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
20170         * tree-if-conv.c: Include dbgcnt.h.
20171         (tree_if_conversion): Use if_conversion_tree to count the number of
20172         if-convertible loops.
20173
20174 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
20175
20176         * common.opt (fprefetch-loop-arrays): Re-define
20177         -fprefetch-loop-arrays as a tri-state option with the initial
20178         value of -1.
20179         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
20180         pass only when flag_prefetch_loop_arrays > 0.
20181         * toplev.c (process_options): Note that, with tri-states,
20182         flag_prefetch_loop_arrays>0 means prefetching is enabled.
20183         * config/i386/i386.c (override_options): Enable prefetching at -O3
20184         for a set of CPUs that sw prefetching is helpful.
20185         (software_prefetching_beneficial_p): New.  Return TRUE if software
20186         prefetching is beneficial for the given CPU.
20187
20188 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
20189
20190         PR rtl-optimization/44326
20191         * implicit-zee.c (find_removable_zero_extends): Replace
20192         INSN_P with NONDEBUG_INSN_P.
20193
20194 2010-06-25  Martin Jambor  <mjambor@suse.cz>
20195
20196         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
20197         (struct ipa_node_params): Removed the modification_analysis_done flag.
20198         (ipa_is_param_modified): Removed.
20199         (ipa_analyze_node): Declare.
20200         (ipa_compute_jump_functions): Remove declaration.
20201         (ipa_count_arguments): Likewise.
20202         (ipa_detect_param_modifications): Likewise.
20203         (ipa_analyze_params_uses): Likewise.
20204         * ipa-prop.c (struct param_analysis_info): New type.
20205         (visit_store_addr_for_mod_analysis): Removed.
20206         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
20207         moved down in the file.
20208         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
20209         (ipa_count_arguments): Made static.
20210         (mark_modified): New function.
20211         (is_parm_modified_before_call): New function.
20212         (compute_pass_through_member_ptrs): New parameter parms_info, call
20213         is_parm_modified_before_call instead of ipa_is_param_modified.
20214         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
20215         it to compute_pass_through_member_ptrs.
20216         (ipa_compute_jump_functions): New parameter parms_info, pass it to
20217         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
20218         on the callee if it is analyzed.  Made static.
20219         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
20220         is_parm_modified_before_call instead of ipa_is_param_modified.
20221         (ipa_analyze_call_uses): New parameter parms_info, pass it to
20222         ipa_analyze_indirect_call_uses.
20223         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
20224         ipa_analyze_call_uses.
20225         (ipa_analyze_params_uses): New parameter parms_info, pass it to
20226         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
20227         (ipa_analyze_node): New function.
20228         (ipa_print_node_params): Do not dump the modified flag.
20229         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
20230         it.  Do not stream the modified parameter flag.
20231         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
20232         it.  Do not stream the modified parameter flag.
20233         * ipa-cp.c (ipcp_analyze_node): Removed.
20234         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
20235         with only a call to ipa_analyze_node.
20236         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
20237         node with only a call to ipa_analyze_node.
20238
20239 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20240
20241         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
20242
20243 2010-06-25  Jan Hubicka  <jh@suse.cz>
20244
20245         * tree-pass.h (pass_split_functions): Declare.
20246         * opts.c (decode_options): Enable function splitting at -O2
20247         * timevar.def (TV_IPA_FNSPLIT): New macro.
20248         * ipa-split.c: New file.
20249         * common.opt (-fpartial-inlining): New flag.
20250         * Makefile.in (ipa-split.o): New object file.
20251         * passes.c (init_optimization_passes): Add ipa-split.
20252         * params.def (partial-inlining-entry-probability): New parameters.
20253         * doc/invoke.texi (-fpartial-inlining): New.
20254
20255 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20256
20257         PR 44665
20258         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
20259         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
20260         (gimplify_expr): Likewise.
20261
20262 2010-06-25  Martin Jambor  <mjambor@suse.cz>
20263
20264         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
20265         statements instead of bailing out on them.
20266         (ipa_analyze_indirect_call_uses): Do not require that loads from the
20267         parameter are in the same BB as the condition.  Update comments.
20268
20269 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
20270
20271         PR middle-end/43866
20272         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
20273         true or always false, return NULL_TREE.
20274         (tree_unswitch_single_loop): Optimize conditions even when reaching
20275         max-unswitch-level parameter.  If num > 0, optimize first all conditions
20276         using entry checks, then do still reachable block discovery and consider
20277         only conditions in still reachable basic blocks in the loop.
20278
20279         PR tree-optimization/44539
20280         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
20281         the call doesn't have LHS, but has VDEF.
20282
20283 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
20284
20285         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
20286         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
20287         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
20288         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
20289         * system.h (MODIFY_TARGET_NAME): Poison.
20290
20291 2010-06-25  Alan Modra  <amodra@gmail.com>
20292
20293         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
20294         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
20295         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
20296         CMODEL_LARGE as default.
20297         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
20298         (offsettable_ok_by_alignment): Delete.
20299         (rs6000_emit_move): Remove mcmodel=medium optimization.
20300
20301 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
20302
20303         With large parts from Jim Wilson:
20304         PR target/43902
20305         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
20306         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
20307         * optabs.c (optab_for_tree_code): Likewise.
20308         (expand_widen_pattern_expr): Likewise.
20309         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
20310         out of execute_optimize_widening_mul.
20311         (convert_plusminus_to_widen): New function.
20312         (execute_optimize_widening_mul): Use the two new functions.
20313         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
20314         Remove code to generate widening multiply-accumulate.  Add support
20315         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
20316         * gimple-pretty-print.c (dump_ternary_rhs): New function.
20317         (dump_gimple_assign): Call it when appropriate.
20318         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
20319         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
20320         (expand_gimple_stmt_1): Likewise.
20321         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
20322         WIDEN_MULT_MINUS_EXPR.
20323         * tree-ssa-operands.c (get_expr_operands): Likewise.
20324         * tree-inline.c (estimate_operator_cost): Likewise.
20325         * gimple.c (extract_ops_from_tree_1): Renamed from
20326         extract_ops_from_tree.  Add new arg for a third operand; fill it.
20327         (gimple_build_assign_stat): Support operations with three operands.
20328         (gimple_build_assign_with_ops_stat): Likewise.
20329         (gimple_assign_set_rhs_from_tree): Likewise.
20330         (gimple_assign_set_rhs_with_ops_1): Renamed from
20331         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
20332         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
20333         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
20334         WIDEN_MULT_MINUS_EXPR.
20335         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
20336         (extract_ops_from_tree_1): Adjust declaration.
20337         (gimple_assign_set_rhs_with_ops_1): Likewise.
20338         (gimple_build_assign_with_ops): Pass NULL for last operand.
20339         (gimple_build_assign_with_ops3): New macro.
20340         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
20341         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
20342         functions.
20343         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
20344         (verify_gimple_assign): Call it.
20345         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
20346         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
20347         functions for dealing with three-operand statements.
20348         * tree.c (commutative_ternary_tree_code): New function.
20349         * tree.h (commutative_ternary_tree_code): Declare it.
20350         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
20351         ternary statements.
20352         (gimple_assign_nonzero_warnv_p): Likewise.
20353         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
20354         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
20355         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
20356         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
20357         (struct hashtable_expr): New member ternary in the union.
20358         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
20359         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
20360         (iterative_hash_hashable_expr): Likewise.
20361         (print_expr_hash_elt): Handle EXPR_TERNARY.
20362         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
20363         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
20364         statements.  Handle GIMPLE_TERNARY_RHS.
20365
20366 2010-06-25  Jan Hubicka  <jh@suse.cz>
20367
20368         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
20369
20370 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
20371
20372         PR c/44517
20373         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
20374         parameters are not good.
20375         (c_parser_parameter_declaration): Error unknown type name if the type
20376         name can't start declaration specifiers.
20377
20378 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
20379
20380         * gcc.c (translate_options): Don't mention +e in comment.
20381         (process_command): Don't handle +e specially.
20382
20383 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
20384
20385         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
20386
20387         * ira-build.c (merge_hard_reg_conflicts): New function.
20388         (create_cap_allocno, copy_info_to_removed_store_destinations,
20389         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
20390         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
20391         (remove_unnecessary_allocnos, remove_low_level_allocnos)
20392         copy_nifo_to_removed_store_destination): Use them.
20393         * ira-lives.c (make_hard_regno_born): New function, split out of
20394         make_regno_born.
20395         (make_allocno_born): Likewise.
20396         (make_hard_regno_dead): New function, split out of make_regno_dead.
20397         (make_allocno_dead): Likewise.
20398         (inc_register_pressure): New function, split out of set_allocno_live.
20399         (dec_register_pressure): New function, split out of clear_allocno_live.
20400         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
20401         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
20402         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
20403         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
20404         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
20405         mark_pseudo_regno_live.
20406         (process_bb_node_lives): Use mark_pseudo_regno_live,
20407         make_hard_regno_born and make_allocno_dead.
20408         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
20409         set_allocno_live, clear_allocno_live): Delete functions.
20410
20411         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
20412         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
20413         functions.
20414         (ira_flattening): Use ira_parent_allocno.
20415         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
20416         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
20417
20418         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
20419         statement.
20420
20421         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
20422         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
20423         minmax_set_iter_cond, minmax_set_iter_next,
20424         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
20425         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
20426         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
20427         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
20428         uses changed.
20429
20430         * ira-int.h (struct live_range, live_range_t): Renamed from struct
20431         ira_allocno_live_range and allocno_live_range_t; all uses changed.
20432         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
20433         All uses changed.
20434
20435 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
20436
20437         * thumb2.md (thumb2_tlobits_cbranch): Delete.
20438         (peephole2 to convert zero_extract/compare of single bit to
20439          lshift/compare): New.
20440
20441 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
20442
20443         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
20444         recursive call and call to 'int_const_binop'.
20445         (build_range_check, fold_cond_expr_with_comparison, unextend,
20446         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
20447         multiple_of_p): Adjust call to const_binop.
20448
20449 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
20450
20451         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
20452         determine size of XFmode operand.
20453         (XFmode extended DFmode push splitter): Ditto.
20454         (XFmode extended SFmode push splitter): Ditto.
20455
20456 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
20457
20458         PR target/44588
20459         * config/i386/i386.md (extract_code): New.
20460         (<u>divmodqi4): Likewise.
20461         (divmodhiqi3): Likewise.
20462         (udivmodhiqi3): Likewise.
20463         (<u>divqi3): Remvoved.
20464
20465 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
20466
20467         PR middle-end/44492
20468         * recog.h (struct recog_data): Add is_asm field.
20469         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
20470         present in constraints of inline-asm operand and memory operand
20471         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
20472         (extract_insn): Initialize recog_data.is_asm.
20473         * doc/md.texi (Constraints): Document operand side-effect rules.
20474
20475 2010-06-24  Andi Kleen  <ak@linux.intel.com>
20476
20477         * c-parser.c (c_parser_conditional_expression): Call
20478         warn_for_omitted_condop.
20479         * doc/invoke.texi: Document omitted condop warning.
20480
20481 2010-06-24  Nick Clifton<nickc@redhat.com>
20482
20483         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
20484         insn in the sequence is a jump insn before setting its label.
20485
20486 2010-06-24  Alan Modra  <amodra@gmail.com>
20487
20488         * collect2.c (main): Match exactly --version and --help.
20489
20490 2010-06-24  DJ Delorie  <dj@redhat.com>
20491
20492         * config/m32c/m32c-pragma.c: Don't include rtl.h.
20493
20494 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
20495
20496         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
20497         using X87MODEF mode iterator.
20498         (pushsf splitter): Macroize splitter using P mode iterator.
20499         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
20500         mode iterator.
20501
20502         (*movxf_internal): Rename from *movxf_integer.
20503         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
20504         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
20505         (*movdf_internal): Rename from *movdf_integer.
20506         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
20507         (*movsf_internal): Rename from *movdf_1.
20508
20509 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
20510
20511         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
20512         (const_gimple_seq_node): Removed typedefs.
20513
20514         * gimple.h (gimple_seq_node_d, gimple_seq_node)
20515         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
20516
20517 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20518
20519         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
20520         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
20521         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
20522         and CODE_FOR_vec_extract_lo_v4df.
20523
20524         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
20525         Changed to define_insn_and_split.
20526         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
20527         (vec_extract_lo_v16hi): Likewise.
20528         (vec_extract_lo_v32qi): Likewise.
20529         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
20530         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
20531
20532 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
20533
20534         PR target/44640
20535         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
20536         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
20537         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
20538         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
20539         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
20540
20541         PR target/44640
20542         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
20543
20544         PR other/44644
20545         * df-core.c (struct df): Rename to df_d.
20546         * df.h (struct df): Likewise.
20547         * dse.h (struct df): Remove forward declaration.
20548         * recog.h (struct insn_data): Rename to:
20549         (struct_insn_data_d).  Adjusted all users.
20550
20551 2010-06-23  Arnaud Charlet  <charlet@adacore.com
20552
20553         PR ada/22220
20554         * doc/install.texi: Update requirements to build GNAT.
20555
20556 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
20557
20558         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
20559         enum type.
20560         (m68k_sched_attr_opx_type): Remove unreachable return.
20561         (m68k_sched_attr_opy_type): Likewise.
20562         (m68k_sched_attr_size): Likewise.
20563         (sched_get_opxy_mem_type): Likewise.
20564         (m68k_sched_attr_op_mem): Likewise.
20565
20566 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
20567
20568         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
20569         new statement and adjust VDEF only if necessary.  Remove superfluous
20570         call to maybe_clean_or_replace_eh_stmt.
20571         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
20572         copy the flags.
20573         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
20574         * tree-inline.c (copy_bb): ...and not there.
20575
20576 2010-06-22  Cary Coutant  <ccoutant@google.com>
20577
20578         * dwarf2out.c (is_nested_in_subprogram): New function.
20579         (should_move_die_to_comdat): Use it.
20580         (copy_ancestor_tree): Don't mark DIEs here.
20581         (copy_decls_walk): Start walk from root of newly-added tree;
20582         mark DIEs here instead.
20583
20584 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
20585
20586         * config/i386/i386.md (unit): Also check sseishft1.
20587
20588 2010-06-22  Jan Hubicka  <jh@suse.cz>
20589
20590         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
20591         enabled.
20592
20593 2010-06-22  Jan Hubicka  <jh@suse.cz>
20594
20595         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
20596         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
20597         Return true if something changed.
20598         * df.h (df_confluence_function_n): Return bool.
20599         * df-core.c (df_worklist_propagate_forward,
20600         df_worklist_propagate_backward): Track changes and ages.
20601         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
20602         track ages.
20603         * dse.c (dse_confluence_n): Return always true.
20604
20605 2010-06-22  Jan Hubicka  <jh@suse.cz>
20606
20607         * bitmap.c (bitmap_clear_bit): Micro optimize.
20608
20609 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
20610
20611         * config/i386/i386.md (SWI1248x): New mode iterator.
20612         (SWI48x): Ditto.
20613         (SWI12): Ditto.
20614         (SWI24): Ditto.
20615
20616         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
20617         SWI1248x mode iterator.
20618         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
20619         using SWI124 mode iterator.
20620         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
20621         mode iterator.
20622         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
20623         *pushdi2_prologue_rex64 using P mode iterator.
20624         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
20625         using SWI48 mode iterator.
20626         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
20627         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
20628         using SWI1248x mode iterator.
20629         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
20630         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
20631         SWI48 mode iterator.
20632         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
20633         iterator.
20634         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
20635         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
20636         SWI12 mode iterator.
20637         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
20638         SWI12 mode iterator.
20639         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
20640         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
20641         SWI24 mode iterator.
20642         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
20643         SWI48 mode iterator.
20644         (mov<mode>_insn_1): New expander.
20645         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
20646         using SWI48x mode iterator.
20647
20648         (*movoi_internal_avx): Rename from *movoi_internal.
20649         (*movti_internal_rex64): Rename from *movti_rex64.
20650         (*movti_internal_sse): Rename from *movti_sse.
20651         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
20652         (*movdi_internal): Rename from *movdi_2.
20653         (*movsi_internal): Rename from *movsi_1.
20654         (*movhi_internal): Rename from *movhi_1.
20655         (*movqi_internal): Rename from *movqi_1.
20656
20657         (insv): Update the call to gen_movsi_insv_1 for rename.
20658         * config/i386/i386.c (promote_duplicated_reg): Ditto.
20659
20660 2010-06-22  Jan Hubicka  <jh@suse.cz>
20661
20662         * passes.c (execute_function_todo): Move call of statistics_fini_pass
20663         to ...
20664         (execute_todo) ... this one.
20665
20666 2010-06-22  Alan Modra  <amodra@gmail.com>
20667
20668         PR target/44364
20669         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
20670         * caller-save.c (insert_restore, insert_save): Use non-validate
20671         form of adjust_address.
20672
20673 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20674
20675         PR target/39690
20676         * config/pa/pa.c (override_options): Disable
20677         -freorder-blocks-and-partition.
20678
20679 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
20680
20681         PR target/44615
20682         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
20683
20684         * config/i386/i386.md (type): Add sseishft1
20685
20686         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
20687         (ppro_insn_load): Likewise.
20688         (ppro_insn_store): Likewise.
20689         (ppro_insn_both): Likewise.
20690
20691         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
20692         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
20693         for type.
20694         (*vec_extractv2di_1_avx): Likewise.
20695         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
20696         type.  Remove atom_unit.
20697         (*vec_extractv2di_1_sse2): Likewise.
20698
20699 2010-06-21  DJ Delorie  <dj@redhat.com>
20700
20701         * diagnostic.h (diagnostic_classification_change_t): New.
20702         (diagnostic_context): Add history and push/pop list.
20703         (diagnostic_push_diagnostics): Declare.
20704         (diagnostic_pop_diagnostics): Declare.
20705         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
20706         from pragmas in a history chain instead of the global table.
20707         (diagnostic_push_diagnostics): New.
20708         (diagnostic_pop_diagnostics): New.
20709         (diagnostic_report_diagnostic): Scan history chain to find state
20710         of diagnostics as of the diagnostic location.
20711         * opts.c (set_option): Pass UNKNOWN_LOCATION to
20712         diagnostic_classify_diagnostic.
20713         (enable_warning_as_error): Likewise.
20714         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
20715         use in the history chain.
20716         * doc/extend.texi: Document pragma GCC diagnostic changes.
20717
20718 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
20719
20720         * dwarf2out.c (add_linkage_name): New function.  Don't add
20721         anything to DW_TAG_member DIEs.
20722         (add_name_and_src_coords_attributes): Use it.
20723         (gen_variable_die): Call it for C++ static data members if
20724         specification is DW_TAG_member.
20725
20726         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
20727         C++ char16_t and char32_t.
20728
20729         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
20730         * genattrtab.c: Include vecprim.h.
20731         (cached_attrs, cached_attr_count, attrs_seen_once,
20732         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
20733         attrs_cached_after): New variables.
20734         (find_attrs_to_cache): New function.
20735         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
20736         (write_test_expr): Add attrs_cached argument, return it too,
20737         attempt to cache non-const attributes used more than once in
20738         a single case handling.
20739         (write_attr_get): Use find_attrs_to_cache, for caching candidates
20740         emit cached_* variables.  Adjust write_attr_set callers.
20741         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
20742         to find attributes that should be cached in this block.  Adjust
20743         write_test_expr callers.
20744         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
20745         callers.
20746         (make_automaton_attrs): Adjust write_test_expr caller.
20747
20748         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
20749         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
20750         (make_automaton_attrs): If find_tune_attr returns non-NULL,
20751         write separate internal_dfa_insn_code_* and insn_default_latency_*
20752         functions for each attribute's value and emit init_sched_attrs
20753         function and function pointers.
20754         * genattr.c (const_attrs, reservations): New variables.
20755         (gen_attr): Add const attributes to const_attrs vector.
20756         (check_tune_attr, find_tune_attr): New functions.
20757         (main): Add reservations to reservations vector.  If find_tune_attr
20758         returns true, add prototype for init_sched_attrs and make
20759         internal_dfa_insn_code and insn_default_latency function pointers,
20760         otherwise define init_sched_attrs as dummy macro.
20761         * cfgexpand.c: Include insn-attr.h.
20762         (gimple_expand_cfg): Call init_sched_attrs.
20763
20764         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
20765
20766         PR target/44575
20767         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
20768         va_arg from a set of register save slots into a temporary,
20769         if the container is bigger than type size, do the copying
20770         using smaller mode or using memcpy.
20771
20772         PR bootstrap/44426
20773         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
20774         prototype.
20775         (sel_print_to_dot): Remove macro.
20776         (sel_print): Likewise.  New prototype.
20777         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
20778         (sel_print): New function.
20779
20780 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20781
20782         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
20783         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
20784
20785 2010-06-21  Nick Clifton  <nickc@redhat.com>
20786
20787         * config/rx/rx.h (PTRDIFF_TYPE): Define.
20788         (SMALL_REGISTER_CLASS): Define (to zero).
20789         (PRINT_OPERAND): Delete.
20790         (PRINT_OPERAND_ADDRESS): Delete.
20791         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
20792         (rx_print_operand_address): Delete prototype.
20793         * config/rx/rx.c (rx_print_operand): Make static.
20794         Allow %H and %L to handle CONST_DOUBLEs.
20795         (rx_print_operand_address): Make static.
20796         (rx_gen_move_template): Rename local variable 'template' to
20797         out_template.
20798         (rx_function_arg): Do not pass unknown sized objects in registers.
20799         (TARGET_PRINT_OPERAND): Define.
20800         (TARGET_PRINT_OPERAND_ADDRESS): Define.
20801
20802 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
20803
20804         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
20805
20806 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
20807
20808         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
20809         stack-alignment for simple leaf-functions.
20810
20811 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
20812
20813         * doc/install.texi: Document bootstrap-lto.
20814
20815 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
20816
20817         PR debug/44248
20818         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
20819         (input_function): Drop them here, if VTA is disabled.
20820
20821 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
20822
20823         PR target/44546
20824         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
20825         New predicate.
20826         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
20827         ix86_swapped_fp_comparsion_operator instead of
20828         ix86_fp_comparison_operator.
20829
20830         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
20831         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
20832         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
20833         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
20834         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
20835         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
20836
20837 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
20838
20839         PR other/32998
20840         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
20841         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
20842         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
20843         (decode_cmdline_option): Update for this return value.  Set
20844         orig_option_with_args_text field.  Set arg field for unknown
20845         options.  Make static.
20846         (decode_cmdline_options_to_array): New.
20847         (prune_options): Update handling of find_opt return value.
20848         * opts.c (read_cmdline_option): Take decoded option.  Return void.
20849         (read_cmdline_options): Take decoded options.
20850         (decode_options): Add parameters for decoded options.  Use
20851         decode_cmdline_options_to_array.  Use decoded options for -O
20852         scan.  Use integral_argument for -O parameters.  Update call to
20853         read_cmdline_options.
20854         (enable_warning_as_error): Update handling of find_opt return value.
20855         * opts.h: Update comment on unknown options.
20856         (struct cl_decoded_option): Update comments on opt_index and arg.
20857         Add orig_option_with_args_text.
20858         (decode_cmdline_option): Remove.
20859         (decode_cmdline_options_to_array): Declare.
20860         (decode_options): Update prototype.
20861         * toplev.c (save_argv): Remove.
20862         (save_decoded_options, save_decoded_options_count): New.
20863         (read_integral_parameter): Remove.
20864         (print_switch_values): Use decoded options.
20865         (toplev_main): Don't set save_argv.  Update call to decode_options.
20866         * toplev.h (read_integral_parameter): Remove.
20867         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
20868
20869 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
20870
20871         PR target/44072
20872         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
20873         immediate.
20874         * constraints.md (Pw, Px): New constraints.
20875         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
20876
20877 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
20878
20879         * config/i386/sse.md (fma4modesuffixf4): Removed.
20880         (ssemodesuffixf2s): Likewise.
20881         (ssemodesuffixf4): Likewise.
20882         (ssemodesuffixf2c): Likewise.
20883         (ssescalarmodesuffix2s): Likewise.
20884         (avxmodesuffixf2c): Likewise.
20885         (ssemodesuffix): New.
20886         (ssescalarmodesuffix): Likewise.
20887         Update patterns with ssemodesuffix and ssescalarmodesuffix.
20888
20889 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
20890
20891         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
20892
20893 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
20894
20895         * stor-layout.c (debug_rli): Remove unused local variables.
20896
20897 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
20898
20899         PR rtl-optimization/40900
20900         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
20901         original expression for later reuse.
20902         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
20903         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
20904
20905 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
20906
20907         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
20908         double_int_fits_in_uhwi_p): Implement as static inline.
20909         (double_int_xor): New inline function.
20910         (double_int_lrotate, double_int_rrotate, double_int_max,
20911         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20912         double_int_smin): Declare.
20913         (lrotate_double, rrotate_double): Remove declaration.
20914         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
20915         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
20916         (double_int_lrotate, double_int_rrotate, double_int_max,
20917         double_int_umax, double_int_smax, double_int_min, double_int_umin,
20918         double_int_smin): New function.
20919         * fold-const.c (int_const_binop): Clean up, use double_int_*
20920         functions.
20921         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
20922         double_int_* and immed_double_int_const functions.
20923
20924 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20925
20926         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
20927         * function.c (types_used_by_cur_var_decl): Likewise.
20928         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
20929
20930 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
20931
20932         * tree.h (record_layout_info): Change type of pending_statics field
20933         to a VEC.
20934         * stor-layout.c (start_record_layout): Store NULL into
20935         pending_statics.
20936         (debug_rli): Call debug_vec_tree instead of debug_tree.
20937         (place_field): Likewise.
20938         (finish_record_layout): Likewise.
20939
20940 2010-06-18  Alan Modra  <amodra@gmail.com>
20941
20942         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
20943
20944 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20945
20946         PR target/43740
20947         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
20948         for SET source operand from SET destination operand.
20949
20950 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
20951
20952         PR rtl-optimization/39871
20953         * reload1.c (init_eliminable_invariants): For flag_pic, disable
20954         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
20955         (function_invariant_p): Rule out a plus of frame or arg pointer with
20956         a SYMBOL_REF.
20957         * ira.c (find_reg_equiv_invariant_const): Likewise.
20958
20959 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
20960
20961         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
20962         print_operand_address and puts to output the operand for CONST.
20963
20964 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
20965
20966         PR debug/44572
20967         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
20968         hook.
20969
20970 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20971
20972         * v850-protos.h (print_operand): Delete.
20973         (print_operand_address): Delete.
20974         * v850.h (PRINT_OPERAND): Delete.
20975         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20976         (PRINT_OPERAND_ADDRESS): Delete.
20977         * v850.c (print_operand_address): Rename to...
20978         (v850_print_operand_address): ...this.  Make static. Call
20979         v850_print_operand.
20980         (print_operand): Rename to...
20981         (v850_print_operand): ...this.  Make static.  Call
20982         v850_print_operand_address.
20983         (v850_print_operand_punct_valid_p): New function.
20984         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20985         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
20986
20987 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
20988
20989         * config/sh/sh-protos.h (print_operand): Delete.
20990         (print_operand_address): Delete.
20991         * config/sh/sh.h (PRINT_OPERAND): Delete.
20992         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
20993         (PRINT_OPERAND_ADDRESS): Delete.
20994         * config/sh/sh.c (sh_print_operand_address): Make static.
20995         (sh_print_operand): Make static.  Call sh_print_operand_address
20996         and sh_print_operand.
20997         (sh_print_operand_punct_valid_p): New function.
20998         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20999         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21000
21001 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21002
21003         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
21004         (mcore_print_operand_address): Delete.
21005         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
21006         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21007         (PRINT_OPERAND_ADDRESS): Delete.
21008         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
21009         (mcore_print_operand): Make static.
21010         (mcore_print_operand_punct_valid_p): New function.
21011         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
21012         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
21013
21014 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21015
21016         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
21017         (print_operand_address): Delete.
21018         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
21019         (PRINT_OPERAND_ADDRESS): Delete.
21020         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
21021         static.
21022         (m68hc11_print_operand): Make static.
21023         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21024
21025 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21026
21027         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
21028         (m32r_print_operand_address): Delete.
21029         * config/m32r/m32r.h (m32r_punct_chars): Delete.
21030         (PRINT_OPERAND): Delete.
21031         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21032         (PRINT_OPERAND_ADDRESS): Delete.
21033         * config/m32r/m32r.c (m32r_punct_chars): Make static.
21034         (m32r_print_operand_address): Make static.
21035         (m32r_print_operand): Make static.
21036         (m32r_print_operand_punct_valid_p): New function.
21037         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21038         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21039
21040 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21041
21042         * config/iq2000/iq2000-protos.h (print_operand): Delete.
21043         (print_operand_address): Delete.
21044         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
21045         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21046         (PRINT_OPERAND_ADDRESS): Delete.
21047         (iq2000_print_operand_punct): Delete.
21048         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
21049         (iq2000_print_operand_address): Make static.
21050         (iq2000_print_operand): Make static.
21051         (iq2000_print_operand_punct_valid_p): New function.
21052         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21053         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21054
21055 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21056
21057         * config/frv/frv-protos.h (frv_print_operand): Delete.
21058         (frv_print_operand_address): Delete.
21059         * config/frv/frv.h (PRINT_OPERAND): Delete.
21060         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21061         (PRINT_OPERAND_ADDRESS): Delete.
21062         * config/frv/frv.c (frv_print_operand_address): Make static.
21063         (frv_print_operand): Make static.
21064         (frv_print_operand_punct_valid_p): New function.
21065         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21066         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21067
21068 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
21069
21070         * tree.h (vec_member): Declare.
21071         * tree.c (vec_member): Define.
21072
21073 2010-06-17  Richard Guenther  <rguenther@suse.de>
21074
21075         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
21076         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
21077
21078 2010-06-17  Richard Guenther  <rguenther@suse.de>
21079
21080         * tree-inline.c (declare_return_variable): Remove bogus code.
21081
21082 2010-06-17  Richard Guenther  <rguenther@suse.de>
21083
21084         * gimplify.c (gimplify_bind_expr): Always promote complex
21085         and vector variables to registers if possible.
21086
21087 2010-06-17  Richard Guenther  <rguenther@suse.de>
21088
21089         * expr.c (get_inner_reference): Use double_int for bit_offset
21090         calculation.
21091
21092 2010-06-16  DJ Delorie  <dj@redhat.com>
21093
21094         * common.opt (-fstrict-volatile-bitfields): new.
21095         * doc/invoke.texi: Document it.
21096         * fold-const.c (optimize_bit_field_compare): For volatile
21097         bitfields, use the field's type to determine the mode, not the
21098         field's size.
21099         * expr.c (expand_assignment): Likewise.
21100         (get_inner_reference): Likewise.
21101         (expand_expr_real_1): Likewise.
21102         * expmed.c (store_fixed_bit_field): Likewise.
21103         (extract_bit_field_1): Likewise.
21104         (extract_fixed_bit_field): Likewise.
21105
21106 2010-06-16  Richard Guenther  <rguenther@suse.de>
21107
21108         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
21109
21110 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
21111
21112         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
21113         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
21114         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
21115         * debug.c: Likewise.
21116         * sdbout.c: Likewise.
21117         * vmsdbgout.c: Likewise.
21118         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
21119         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
21120         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
21121         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
21122         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
21123         * dwarf2out.c (dw_fde_struct): New fields
21124         dw_fde_vms_{end,begin}_prologue.
21125         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
21126         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
21127         (dwarf2out_vms_end_prologue): New function.
21128         (dwarf2out_vms_begin_epilogue): New function.
21129         (dw_val_struct): New value dw_val_class_vms_delta.
21130         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
21131         begin_epilogue for VMS.
21132         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
21133         new static functions.
21134         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
21135         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
21136         static functions.
21137         (print_die): New case dw_val_class_vms_delta.
21138         (attr_checksum): Likewise.
21139         (same_dw_val_p: Likewise.
21140         (size_of_die): Likewise.
21141         (value_format): Likewise.
21142         (output_die): Likewise.
21143         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
21144         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
21145         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
21146         dwarf2out_cfi_begin_epilogue
21147         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
21148
21149 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
21150
21151         * config/cris/cris-protos.h (cris_print_operand): Delete.
21152         (cris_print_operand_address): Delete.
21153         * config/cris/cris.h (PRINT_OPERAND): Delete.
21154         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21155         (PRINT_OPERAND_ADDRESS): Delete.
21156         * config/cris/cris.c (cris_print_operand_address): Make static.
21157         (cris_print_operand): Make static.
21158         (cris_print_operand_punct_valid_p): New function.
21159         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21160         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21161
21162 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
21163
21164         * config/arm/arm-protos.h (arm_print_operand): Delete.
21165         (arm_print_operand_address): Delete.
21166         * config/arm/arm.h (PRINT_OPERAND): Delete.
21167         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
21168         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
21169         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
21170         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
21171         (arm_print_operand): Make static.
21172         (arm_print_operand_punct_valid_p): New function.
21173         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
21174         (TARGET_PRINT_OPERAND_ADDRESS): Define.
21175
21176 2010-06-16  Nick Clifton  <nickc@redhat.com>
21177
21178         * config/rx/constraints.md (NEGint4): New constraint.
21179         * config/rx/rx.md (attr cc): Add set_zsc.
21180         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
21181         initialised.
21182         (cmpsf): Likewise.
21183         (call_internal): Clobber the cc0 register.
21184         (call_value_internal): Likewise.
21185         (cstoresi4): Likewise.
21186         (movsieq): Likewise.
21187         (movsine): Likewise.
21188         (addsi3): Add alternative to handle small negative constants.
21189         (sunsi3): Likewise.
21190         (addsi3): Do not set the O bit in the cc0 register.
21191         (adddi3): Likewise.
21192         (subsi3): Likewise.
21193         (subdi3): Likewise.
21194         (andsi3): Reorder alternatives to prefer shorter forms.
21195         (mulsi3): Likewise.
21196         (iorsi3): Likewise.
21197         (negsi2): Note that the cc0 flags are set.
21198         (rotlsi3): Note that only the Z and S bits are set in cc0.
21199         (lshrsi3): Likewise.
21200         (ashlsi3): Likewise.
21201         (subsf3): Use %Q for the MEM operand.
21202         (fix_truncsfsi2): Likewise.
21203         (floatsisf2): Likewise.
21204         (bitset): Remove early clobber from destination.
21205         (bitset_in_memory): Likewise.
21206         (lrintsf2): Clobber the cc0 register.
21207         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
21208         (rx_print_operand): Handle %N.
21209
21210 2010-06-16  Jan Hubicka  <jh@suse.cz>
21211
21212         * df-core.c (df_compact_blocks): Free problem_temps vector.
21213
21214 2010-06-16  Martin Jambor  <mjambor@suse.cz>
21215
21216         PR tree-optimization/43905
21217         * tree-sra.c: Include tree-inline.h.
21218         (create_abstract_origin): Removed.
21219         (modify_function): Version the call graph node instead of creating
21220         abstract origins and dealing with same_body aliases.
21221         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
21222         function is versionable.
21223         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
21224
21225 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
21226
21227         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
21228         (CHOOSE_DYNAMIC_LINKER): Update.
21229
21230 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
21231
21232         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
21233         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
21234         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
21235         *prefetch_3dnow_rex.
21236
21237 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
21238
21239         * target.h (struct asm_out):Add declare_constant_name field.
21240         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
21241         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
21242         * output.h (default_asm_declare_constant_name): Declare.
21243         (assemble_label): Update prototype.
21244         * varasm.c (assemble_constant_contents): Use
21245         targetm.asm_out.declare_constant_name target hook.
21246         (assemble_label): Add 'file' argument.
21247         (default_asm_declare_constant_name): New function.
21248         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
21249         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
21250         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
21251
21252         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
21253         * config/darwin.c (darwin_asm_declare_constant_name): New function.
21254         (machopic_output_indirection): Update assemble_label argument list.
21255         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
21256         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
21257
21258 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
21259
21260         PR middle-end/44391
21261         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
21262         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
21263
21264 2010-06-15  Richard Guenther  <rguenther@suse.de>
21265
21266         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
21267
21268 2010-06-15  Paul Brook  <paul@codesourcery.com>
21269
21270         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
21271         hard-float ABI.
21272
21273 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
21274
21275         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
21276         don't get a vector type for output.
21277
21278 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
21279
21280         PR fortran/44536
21281         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
21282         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
21283         (LANG_HOOKS_DECLS): Add it.
21284         * gimplify.c (omp_notice_variable): Call
21285         lang_hooks.decls.omp_report_decl.
21286
21287 2010-06-15  Martin Jambor  <mjambor@suse.cz>
21288
21289         PR lto/44464
21290         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
21291         on the newly dead SSA name.
21292
21293 2010-06-15  Alan Modra  <amodra@gmail.com>
21294
21295         * doc/invoke.texi: Add mcmodel to powerpc options.
21296         * configure.ac: Add HAVE_LD_LARGE_TOC test.
21297         * configure: Regenerate.
21298         * config.in: Regenerate.
21299         * config/rs6000/linux64.opt (mcmodel): New.
21300         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
21301         (TARGET_CMODEL, SET_CMODEL): Define.
21302         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
21303         select CMODEL_MEDIUM default.
21304         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
21305         (TARGET_CMODEL): Define default.
21306         * config/rs6000/rs6000.c (cmodel): New variable.
21307         (rs6000_explicit_options): Add cmodel field.
21308         (rs6000_handle_option): Handle -mcmodel.
21309         (create_TOC_reference): Add largetoc_reg param.  Generate high,
21310         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
21311         (rs6000_delegitimize_address): Recognise new toc reference rtl
21312         and minimal-toc rtl.
21313         (rs6000_legitimize_reload_address): Handle new toc references.
21314         (print_operand_address): Handle legitimate_constant_pool_address_p
21315         match before lo_sum.
21316         (rs6000_eliminate_indexed_memrefs): Tidy.
21317         (rs6000_emit_move): Tweak threshold for inlining constants.
21318         Keep rs6000_emit_allocate_stack large stack frame offsets
21319         loaded into r0 inline.
21320         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
21321         (tocrel_base, tocrel_offset): New variables.
21322         (toc_relative_expr_p): Set them here.
21323         (print_operand_address): Skip over any offset on constant pool address.
21324         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
21325         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
21326         (offsettable_ok_by_alignment): New function.
21327         (rs6000_emit_move): Address suitably aligned local symbol_refs
21328         relative to the toc pointer for -mcmodel=medium.
21329         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
21330         strict param.  Allow lo_sum version of addressing.  Verify reg
21331         used for -mminimal-toc and -mcmodel != small.  Update all callers.
21332         * config/rs6000/constraints.md: Update for above change.
21333         * config/rs6000/predicates.md: Likewise.
21334         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
21335         code.
21336         (tls_gd): Split for -mcmodel=medium/large.
21337         (tls_gd_high, tls_gd_low): New.
21338         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
21339         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
21340         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
21341         (largetoc_high, largetoc_low): New.
21342         (cmptf_internal2): Add clobber.
21343         * config/rs6000/rs6000-protos.h: Update.
21344
21345 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
21346
21347         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
21348         true if no prefetch is going to be generated for a given group.
21349         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
21350         estimate the prefetch_count.
21351         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
21352         prefetch count by considering the unroll_factor and prefetch_mod
21353         for is_loop_prefetching_profitable.
21354
21355 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
21356
21357         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
21358         anything if the argument is not a MEM.
21359
21360 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
21361
21362         PR debug/43650
21363         PR debug/44181
21364         PR debug/44247
21365         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
21366         debug stmts.
21367         (canonicalize_loop_ivs): Likewise.
21368
21369 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
21370
21371         PR debug/43656
21372         * haifa-sched.c (setup_insn_reg_pressure_info,
21373         update_register_pressure): Reject debug insns.
21374         (ready_sort): Don't setup reg pressure for debug insns.
21375         (schedule_insn): Don't update reg pressure for debug insns.
21376
21377 2010-06-14  Richard Guenther  <rguenther@suse.de>
21378
21379         * lto-streamer.c (cached_bp): Remove.
21380         (bitpack_delete): Likewise.
21381         (bitpack_create): Likewise.
21382         (bp_get_next_word): Likewise.
21383         (bp_pack_value, bp_unpack_value): Move ...
21384         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
21385         Re-implement.
21386         (struct bitpack_d): Likewise.
21387         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
21388         New inline functions.
21389         * lto-streamer-out.c (lto_output_bitpack): Remove.
21390         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
21391         (pack_value_fields): Adjust.
21392         (lto_write_tree): Likewise.
21393         (output_gimple_stmt): Likewise.
21394         (output_function): Likewise.
21395         * lto-streamer-in.c (input_gimple_stmt): Adjust.
21396         (input_function): Likewise.
21397         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
21398         (lto_input_bitpack): Remove.
21399         (lto_materialize_tree): Adjust.
21400         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
21401         * lto-cgraph.c (lto_output_edge): Adjust.
21402         (lto_output_node): Likewise.
21403         (lto_output_varpool_node): Likewise.
21404         (lto_output_ref): Likewise.
21405         (input_node): Likewise.
21406         (input_varpool_node): Likewise.
21407         (input_ref): Likewise.
21408         (input_edge): Likewise.
21409         (output_node_opt_summary): Likewise.
21410         (input_node_opt_summary): Likewise.
21411         * ipa-pure-const.c (pure_const_write_summary): Likewise.
21412         (pure_const_read_summary): Likewise.
21413         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
21414         (ipa_read_indirect_edge_info): Likewise.
21415         (ipa_write_node_info): Likewise.
21416         (ipa_read_node_info): Likewise.
21417
21418 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
21419
21420         PR target/44534
21421         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
21422         (vec_extract_lo_v16hi): Likewise.
21423         (vec_extract_lo_v32qi): Likewise.
21424
21425 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
21426
21427         PR bootstrap/44426
21428         * tree.h (build_call_expr): Don't define as vararg macro, instead
21429         add a prototype.
21430         * builtins.c (build_call_nofold): Remove.
21431         (expand_builtin_int_roundingfn, expand_builtin_pow,
21432         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
21433         expand_builtin_memset_args, expand_builtin_strcmp,
21434         expand_builtin_strncmp, expand_builtin_memory_chk): Use
21435         build_call_nofold_loc instead of build_call_nofold.
21436         (build_call_expr): New function.
21437
21438         PR tree-optimization/44508
21439         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
21440         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
21441         don't eliminate trivially dead stmts.
21442         * tree-vrp.c (vrp_finalize): Pass false as last argument
21443         to substitute_and_fold.
21444         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
21445         to substitute_and_fold.
21446         * tree-ssa-ccp.c (ccp_finalize): Likewise.
21447
21448         PR bootstrap/44509
21449         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
21450
21451 2010-06-14  Ira Rosen  <irar@il.ibm.com>
21452
21453         PR tree-optimization/44507
21454         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
21455         to build initial vector for BIT_AND_EXPR.
21456         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
21457
21458 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
21459
21460         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
21461         adjust z10prop set_attr.
21462
21463 2010-06-13  Jan Hubicka  <jh@suse.cz>
21464
21465         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
21466         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
21467         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
21468         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
21469         datastructure checks into checking asserts.
21470         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
21471         * tree-ssa-sccvn.c (VN_INFO): Likewise.
21472         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
21473         df_ref_create_structure): Likewise.
21474         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
21475         pool_free): Use gcc_checking_assert.
21476         * alias.c (get_alias_set): Likewise.
21477         * var-tracking.c (variable_htab_free, shared_hash_copy,
21478         canonicalize_values_mark, variable_merge_over_cur): Likewise.
21479         * lto-streamer.c (bp_unpack_value): Likewise.
21480
21481 2010-06-13  Richard Guenther  <rguenther@suse.de>
21482
21483         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
21484         Do not stream but initialize TYPE_CANONICAL to NULL.
21485         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
21486         * gimple.c (gimple_types_compatible_p): Disregard
21487         TYPE_STRUCTURAL_EQUALITY_P.
21488         (gimple_register_type): Use TYPE_CANONICAL as cache.
21489         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
21490         before registering common types.
21491         * config/i386/i386.c (ix86_function_arg_boundary): Do not
21492         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
21493         * tree.h (TYPE_CANONICAL): Clarify documentation.
21494
21495 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
21496
21497         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
21498         LIBCALL_VALUE): Remove macros.
21499         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
21500         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21501         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21502         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
21503         (ia64_function_value): Make static. Handle receiving the function
21504         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
21505
21506 2010-06-12  Jan Hubicka  <jh@suse.cz>
21507
21508         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
21509         at correct place.
21510
21511 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
21512
21513         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
21514
21515 2010-06-12  Jan Hubicka  <jh@suse.cz>
21516
21517         * df-core.c (df_clear_bb_info): New function.
21518         (df_set_blocks): bb_info is always allocated.
21519         (df_get_bb_info): Use block_info_elt_size.
21520         (df_set_bb_info): Likewise.
21521         (df_compact_blocks): Update for new block_info.
21522         (grow_bb_info): New function.
21523         * df-problems.c (df_grow_bb_info): Move to df-core.c
21524         (df_rd_set_bb_info): Remove.
21525         (df_rd_free_bb_info): Do not free block pool.
21526         (df_rd_alloc): Do not create pool, use check for
21527         obstack presence instead of NULL pointer for new blocks.
21528         (df_rd_free): DO not free alloc pool; clear block_info.
21529         (problem_RD): Add size of block info structure.
21530         (df_lr_set_bb_info): Remove.
21531         (df_lr_free_bb_info): Do not free block pool.
21532         (df_lr_alloc): Do not create pool, use check for
21533         obstack presence instead of NULL pointer for new blocks.
21534         (df_lr_free): DO not free alloc pool; clear block_info.
21535         (problem_LR): Add size of block info structure.
21536         (df_live_set_bb_info): Remove.
21537         (df_live_free_bb_info): Do not free block pool.
21538         (df_live_alloc): Do not create pool, use check for
21539         obstack presence instead of NULL pointer for new blocks.
21540         (df_live_free): DO not free alloc pool; clear block_info.
21541         (problem_LIVE): Add size of block info structure.
21542         (problem_CHAIN): Add size of block info structure.
21543         (df_byte_lr_set_bb_info): Remove.
21544         (df_byte_lr_free_bb_info): Do not free block pool.
21545         (df_byte_lr_alloc): Do not create pool, use check for
21546         obstack presence instead of NULL pointer for new blocks.
21547         (df_byte_lr_free): DO not free alloc pool; clear block_info.
21548         (problem_BYTE_LR): Add size of block info structure.
21549         (problem_NOTE): Add size of block info structure.
21550         (df_byte_MD_set_bb_info): Remove.
21551         (df_byte_MD_free_bb_info): Do not free block pool.
21552         (df_byte_MD_alloc): Do not create pool, use check for
21553         obstack presence instead of NULL pointer for new blocks.
21554         (df_byte_MD_free): DO not free alloc pool; clear block_info.
21555         (problem_BD): Add size of block info structure.
21556         * df-scan.c (df_scan_free_internal): Free block pool.
21557         (df_scan_set_bb_info): Remove.
21558         (df_scan_free_bb_info): Check for artificial_defs instead
21559         of bb_info being non-NULL.
21560         (df_scan_alloc): DO not create df_scan_block pool.
21561         (problem_SCAN): Set size of block info.
21562         (df_bb_refs_record): Do not allocate bb_info.
21563         * df.h (df_problem): Add block_info_elt_size.
21564         (struct dataflow): Change block_info to void *.
21565         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
21566         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
21567         in-line structures.
21568
21569 2010-06-12  Jan Hubicka  <jh@suse.cz>
21570
21571         PR tree-optimize/44485
21572         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
21573         containing use of return value of noreturn function.
21574
21575 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
21576
21577         * targhooks.c (default_function_value): Don't use
21578         FUNCTION_OUTGOING_VALUE.
21579         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
21580         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
21581
21582 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
21583
21584         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
21585         Add crtfastmath.o to extra_parts.
21586         * config/mips/crtfastmath.c: New.
21587         * config/mips/linux.h (ENDFILE_SPEC): New.
21588
21589 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
21590
21591         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
21592         old_type in parameter.
21593         (gcc_type_for_value): Update call to gcc_type_for_interval.
21594         (compute_type_for_level_1): Renamed compute_type_for_level.
21595         Update call to gcc_type_for_interval.
21596
21597 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
21598
21599         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
21600         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
21601
21602 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
21603
21604         * opts-common.c: Include options.h.
21605         (integral_argument): Move from opts.c.
21606         (decode_cmdline_option): New.  Based on read_cmdline_option.
21607         * opts.c (integral_argument): Move to opts-common.c.
21608         (read_cmdline_option): Move most contents to
21609         decode_cmdline_option.  Use %qs in diagnostics.
21610         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
21611         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
21612         decode_cmdline_option): New.
21613
21614 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21615
21616         PR target/44481
21617         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
21618         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
21619         (partiysi2_cmp): Ditto.
21620         (*partiyhi2_cmp): Ditto.
21621         (*parityqi2_cmp): Remove.
21622
21623 2010-06-11  Jan Hubicka  <jh@suse.cz>
21624
21625         * bitmap.h (bmp_iter_next_bit): New.
21626         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
21627
21628 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
21629             Eric Botcazou  <ebotcazou@adacore.com>
21630
21631         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
21632         computed cost.
21633
21634 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21635
21636         * config/i386/i386.md (unspec): New define_c_enum.
21637         (unspecv): Ditto.
21638
21639 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
21640
21641         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
21642
21643 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
21644
21645         PR middle-end/44483
21646         * tree-if-conv.c (bb_predicate_s): New struct.
21647         (bb_predicate_p): New.
21648         (bb_has_predicate): New.
21649         (bb_predicate): New.
21650         (set_bb_predicate): New.
21651         (bb_predicate_gimplified_stmts): New.
21652         (set_bb_predicate_gimplified_stmts): New.
21653         (add_bb_predicate_gimplified_stmts): New.
21654         (init_bb_predicate): New.
21655         (free_bb_predicate): New.
21656         (is_predicated): Use bb_predicate.
21657         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
21658         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
21659         before processing their successors.
21660         (clean_predicate_lists): Removed.
21661         (find_phi_replacement_condition): Use bb_predicate.
21662         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
21663         computations.
21664         (insert_gimplified_predicates): New.
21665         (combine_blocks): Call insert_gimplified_predicates.
21666         (tree_if_conversion): Call free_bb_predicate instead of
21667         clean_predicate_lists.
21668
21669 2010-10-11  Paul Brook  <paul@codesourcery.com>
21670
21671         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
21672         * config/arm/arm.c (all_architectures): Change v7e-m default to
21673         cortexm4.
21674         * config/arm/arm-cores.def: Add cortex-m4.
21675         * config/arm/arm-tune.md: Regenerate.
21676
21677 2010-06-11  Jan Hubicka  <jh@suse.cz>
21678
21679         * ipa-pure-const.c (special_builtlin_state): New function.
21680         (check_call): Use it instead of special casign BUILT_IN_RETURN.
21681         (propagate_pure_const): Use it.
21682
21683 2010-06-11  Jan Hubicka  <jh@suse.cz>
21684
21685         * df-problems.c (df_live_scratch): Convert to bitmap_head.
21686         (df_live_alloc): Initialize df_live_scratch when initializing
21687         problem_data.
21688         (df_live_transfer_function): Update uses of df_live_scratch.
21689         (df_live_free): Free problem_data; clear df_live_scratch before
21690         releasing the obstack.
21691         (df_md_free): Free problem data.
21692
21693 2010-06-11  Jan Hubicka  <jh@suse.cz>
21694
21695         * doc/invoke.texi (Wsuggest-attribute): Document.
21696         (Wmissing-noreturn): Remove.
21697         * ipa-pure-const.c (warn_function_noreturn): New function.
21698         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
21699         warn_missing_noreturn.
21700         * common.opt (Wsuggest-attribute=noreturn): New.
21701         * tree-flow.h (warn_function_noreturn): Declare.
21702         * tree-cfg.c (execute_warn_function_noreturn): Use
21703         warn_function_noreturn.
21704         (gate_warn_function_noreturn): New.
21705         (pass_warn_function_noreturn): Update.
21706
21707 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21708
21709         * c-typeck.c (handle_warn_cast_qual): Add loc
21710         parameter. Improve warning message.
21711         (build_c_cast): Pass location to handle_warn_cast_qual.
21712
21713 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
21714
21715         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
21716         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
21717         insn mnemonic.
21718         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
21719
21720 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
21721
21722         Fix bootstap on mips
21723         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
21724         be naming typedefs.
21725
21726 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
21727
21728         * system.h (helper_const_non_const_cast): New inline for
21729         gcc version <= 4.0.
21730         (CONST_CAST2): For gcc version <= 4.0 use
21731         new helper to do const/non-const casting.
21732
21733 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21734
21735         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
21736         * Makefile.in (OBJS-common): Include insn-enums.o.
21737         (insn-enums.o): New rule.
21738         (simple_generated_c): Add insn-enums.c.
21739         (build/genenums.o): New rule.
21740         (genprogmd): Add "enums".
21741         * genconstants.c (print_enum_type): Declare a C string array
21742         for each enum.
21743         * genenums.c: New file.
21744         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
21745         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
21746         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
21747
21748 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21749
21750         * doc/md.texi (define_enum_attr): Document.
21751         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
21752         * read-md.h (lookup_enum_type): Declare.
21753         * read-md.c (lookup_enum_type): New function.
21754         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
21755         * genattrtab.c (attr_desc): Add an enum_name field.
21756         (evaluate_eq_attr): Take the associated attribute as argument.
21757         Get the enum prefix from the enum_name field, if defined.
21758         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
21759         (simplify_test_exp): Pass attr to evaluate_eq_attr.
21760         (add_attr_value): New function, split out from...
21761         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
21762         (write_test_expr): Pass attr to evaluate_eq_attr.
21763         (write_attr_get): Use the enum_name as the enum tag, if defined.
21764         (write_attr_valueq): Use the enum_name as a prefix, if defined.
21765         (find_attr): Initialize enum_name.
21766         (main): Handle DEFINE_ENUM_ATTR.
21767         * gensupport.c (process_rtx): Likewise.
21768         * config/mips/mips.h (mips_tune_attr): Delete.
21769         * config/mips/mips.md (cpu): Use define_attr_enum.
21770
21771 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21772
21773         * doc/md.texi (define_c_enum, define_enum): Document.
21774         * read-md.h (md_constant): Add a parent_enum field.
21775         (enum_value, enum_type): New structures.
21776         (upcase_string, traverse_enum_types): Declare.
21777         * read-md.c (enum_types): New variable.
21778         (upcase_string, add_constant): New functions.
21779         (handle_constants): Don't create the hash table here.
21780         Use add_constant.
21781         (traverse_md_constants): Don't check for a null md_constants.
21782         (decimal_string, handle_enum, traverse_enum_types): New functions.
21783         (read_md_files): Initialize md_constants and md_enums.
21784         * genconstants.c (print_md_constant): Ignore info argument.
21785         Only print constants that belong to no enum.
21786         (print_enum_type): New function.
21787         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
21788         for each defined enum type.
21789         * config/mips/mips.md (processor): New define_enum.
21790         (unspec): New define_c_enum.
21791         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
21792         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
21793         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
21794         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
21795         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
21796         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
21797         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
21798         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
21799         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
21800         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
21801         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
21802         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
21803         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
21804         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
21805         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
21806         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
21807         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
21808         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
21809         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
21810         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
21811         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
21812         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
21813         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
21814         (UNSPEC_RDDSP): Move to mips-dsp.md.
21815         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
21816         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
21817         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
21818         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
21819         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
21820         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
21821         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
21822         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
21823         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
21824         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
21825         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
21826         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
21827         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
21828         Moved to mips-dspr2.md.
21829         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
21830         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
21831         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
21832         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
21833         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
21834         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
21835         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
21836         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
21837         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
21838         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
21839         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
21840         UNSPEC_LOONGSON_PSADBH)
21841         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
21842         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
21843         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
21844         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
21845         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
21846         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
21847         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
21848         (cpu): Update comment.
21849         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
21850         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
21851         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
21852         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
21853         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
21854         UNSPEC_LOONGSON_PCMPEQ)
21855         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
21856         UNSPEC_LOONGSON_PINSR_0)
21857         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
21858         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
21859         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
21860         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
21861         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
21862         UNSPEC_LOONGSON_PSADBH)
21863         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
21864         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
21865         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
21866         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
21867         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
21868         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
21869         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
21870         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
21871         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
21872         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
21873         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
21874         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
21875         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
21876         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
21877         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
21878         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
21879         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
21880         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
21881         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
21882         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
21883         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
21884         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
21885         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
21886         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
21887         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
21888         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
21889         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
21890         (UNSPEC_RDDSP): Moved from mips.md.
21891         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
21892         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
21893         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
21894         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
21895         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
21896         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
21897         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
21898         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
21899         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
21900         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
21901         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
21902         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
21903         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
21904         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
21905         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
21906         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
21907         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
21908         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
21909         (UNSPEC_SCC): Moved from mips.md.
21910         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
21911         "processor_type" to "processor".
21912         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
21913         * config/mips/mips.h (processor_type): Delete.
21914         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
21915         "processor_type" to "processor".
21916
21917 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21918
21919         * configure.ac (tm_include_list): Add insn-constants.h.
21920         * configure: Regenerate.
21921         * Makefile.in (GTM_H): Move insn-constants.h here from...
21922         (TM_H): ...here.
21923         * mkconfig.sh: Remove special handling for insn-constants.h.
21924
21925 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21926
21927         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
21928         (BUILD_MD): ...this new variable.
21929         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
21930         that include the old contents of simple_generated_h and
21931         simple_generated_c.
21932         (simple_generated_h, simple_generated_c): Include them.  Add
21933         insn-constants.h.
21934         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
21935         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
21936         Remove these dependencies from the main rule and include
21937         insn-conditions.md in the command line only if it appears
21938         in the dependency list.
21939         (insn-constants.h, s-constants): Delete.
21940         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
21941         or gensupport.h.
21942         (build/genmddeps.o): Likewise.
21943         (genprogrtl): New variable that contains everything from genprogmd
21944         except mddeps and constants.
21945         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
21946         depend on $(BUILD_MD)
21947         (genprog): New variable.  Make these programs depend on
21948         $(BUILD_ERRORS).
21949         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
21950         (main): Use read_md_files instead of init_rtx_reader_args.
21951         * genconstants.c: As for genmddeps.c.
21952         * read-md.h (read_skip_construct): Declare.
21953         * read-md.c (read_skip_construct): New function.
21954         (handle_file): Allow a null handle_directive, skipping the
21955         construct if so.
21956         (parse_include): Update the comment accordingly.
21957
21958 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
21959
21960         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
21961         * genmddeps.c: Include read-md.h.
21962         (main): Call init_rtx_reader_args instead of init_md_reader_args.
21963         * genattr.c (main): Likewise.
21964         * genattrtab.c (main): Likewise.
21965         * genautomata.c (main): Likewise.
21966         * gencodes.c (main): Likewise.
21967         * genconditions.c (main): Likewise.
21968         * genconfig.c (main): Likewise.
21969         * genconstants.c (main): Likewise.
21970         * genemit.c (main): Likewise.
21971         * genextract.c (main): Likewise.
21972         * genflags.c (main): Likewise.
21973         * genopinit.c (main): Likewise.
21974         * genoutput.c (main): Likewise.
21975         * genpeep.c (main): Likewise.
21976         * genrecog.c (main): Likewise.
21977         * genpreds.c (main): Likewise.
21978         * gensupport.h (in_fname): Move to read-md.h.
21979         (init_md_reader_args_cb): Rename to...
21980         (init_rtx_reader_args_cb): ...this and return a bool.
21981         (init_md_reader_args): Rename to...
21982         (init_rtx_reader_args): ...this and return a bool.
21983         (include_callback): Move to read-md.h.
21984         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
21985         (file_name_list, first_dir_md_include): Move to read-md.c
21986         (first_bracket_include): Delete unused variable.
21987         (last_dir_md_include): Move to read-md.c.
21988         (process_include): Delete, moving code to read-md.c:handle_include.
21989         (process_rtx): Don't handle INCLUDE.
21990         (save_string): Delete.
21991         (rtx_handle_directive): New function.
21992         (init_md_reader_args_cb): Rename to...
21993         (init_rtx_reader_args_cb): ...this and return a boolean success value.
21994         Use read_md_args.
21995         (init_md_reader_args): Rename to...
21996         (init_rtx_reader_args): ...this and return a boolean success value.
21997         * rtl.def (INCLUDE): Delete.
21998         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
21999         argument.
22000         * read-rtl.c (read_conditions): Don't gobble ')' here.
22001         (read_mapping): Likewise.
22002         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
22003         Handle top-level non-rtx constructs here rather than in read_rtx_1.
22004         Store the whole queue in *X.  Remove call to init_md_reader.
22005         (read_rtx_1): Rename to...
22006         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
22007         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
22008         here.
22009         (read_nested_rtx): New function.  Handle (nil) here rather than
22010         in read_rtx_code.
22011         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
22012         gobble ')' here.
22013         * read-md.h (directive_handler_t): New type.
22014         (in_fname, include_callback): Moved from read-md.h.
22015         (read_constants, init_md_reader): Delete.
22016         (read_md_files): Declare.
22017         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
22018         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
22019         from gensupport.c.
22020         (read_constants): Rename to...
22021         (handle_constants): ...this.  Don't gobble ')' here.
22022         (handle_include, handle_file, handle_toplevel_file)
22023         (parse_include): New functions, mostly taken from gensupport.c.
22024         (init_md_reader): Subsume into...
22025         (read_md_files): ...this new function.
22026
22027 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22028
22029         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
22030         (unread_char): Decrement read_md_lineno after putting back '\n'.
22031         * read-md.c (fatal_with_file_and_line): Push back any characters
22032         that we decide not to add to the context.
22033         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
22034         fatal_expected_char in cases where '/' ends a line (for example).
22035         (read_name): Don't increment read_md_lineno here.
22036         (read_escape): Likewise.
22037         (read_quoted_string): Likewise.
22038         (read_braced_string): Likewise.
22039
22040 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22041
22042         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
22043         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
22044         * genconstants.c: Include read-md.h.
22045         * read-rtl.c (md_constants): Move to read-md.c.
22046         (md_name): Move to read-md.h.
22047         (initialize_iterators): Use leading_string_hash instead of def_hash
22048         and leading_string_eq_p instead of def_name_eq_p.
22049         (read_name): Move to read-md.c.
22050         (def_hash, def_name_eq_p): Delete.
22051         (read_constants, traverse_md_constants): Move to read-md.c.
22052         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
22053         * read-md.h: Include hashtab.h.
22054         (md_name): Moved from read-rtl.c.
22055         (md_constant): Moved from read-md.h.
22056         (leading_string_hash, leading_string_eq_p, read_name)
22057         (read_constants, traverse_md_constants): Declare.
22058         * read-md.c (md_constants): Moved from read-rtl.c.
22059         (leading_string_hash, leading_string_eq_p): New functions.
22060         (read_name, read_constants, traverse_md_constants): Moved from
22061         read-rtl.c.
22062
22063 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22064
22065         * read-rtl.c (md_name): New structure.
22066         (read_name): Take an md_name instead of a buffer pointer.
22067         Use the "string" field instead of strcpy when expanding constants.
22068         (read_constants): Remove the tmp_char argument.  Update the calls
22069         to read_name, using two local name buffers instead of the tmp_char
22070         argument.  Merge the constant-creation code.
22071         (read_conditions): Remove the tmp_char argument.  Update the calls
22072         to read_name, using a local name buffer instead of the tmp_char
22073         argument.
22074         (read_mapping): Replace tmp_char variable with a local name buffer.
22075         Update the calls to read_name.
22076         (read_rtx_1): Likewise.  Update the calls to read_constants and
22077         read_conditions.
22078
22079 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22080
22081         * Makefile.in (build/read-md.o): Depend on errors.h.
22082         * read-md.h (error_with_line): Declare.
22083         * read-md.c: Include errors.h.
22084         (message_with_line_1): New function, extracted from...
22085         (message_with_line): ...here.
22086         (error_with_line): New function.
22087         * genattrtab.c: If a call to message_with_line is followed by
22088         "have_error = 1;", replace both statements with a call to
22089         error_with_line.
22090         * genoutput.c: Likewise.
22091         * genpreds.c: Likewise.
22092         * genrecog.c: If a call to message_with_line is followed by
22093         "error_count++;", replace both statements with a call to
22094         error_with_line.
22095         (errorcount): Delete.
22096         (main): Don't check it.
22097         * gensupport.c: If a call to message_with_line is followed by
22098         "errors = 1;", replace both statements with a call to error_with_line.
22099         (errors): Delete.
22100         (process_define_cond_exec): Check have_error instead of errors.
22101         (init_md_reader_args_cb): Likewise.  Don't set errors.
22102
22103 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22104
22105         * read-md.h (read_md_file): Declare.
22106         (read_char, unread_char): New functions.
22107         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
22108         (read_quoted_string, read_string): Remove FILE * argument.
22109         * read-md.c (read_md_file): New variable.
22110         (read_md_filename, read_md_lineno): Update comments and remove
22111         unnecessary initialization.
22112         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
22113         (read_escape, read_quoted_string, read_braced_string, read_string):
22114         Remove FILE * argument.  Update calls accordingly, using read_char
22115         and unread_char instead of getc and ungetc.
22116         * rtl.h (read_rtx): Remove FILE * argument.
22117         * read-rtl.c (iterator_group): Remove FILE * argument from
22118         "find_builtin".
22119         (iterator_traverse_data): Remove "infile" field.
22120         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
22121         (add_mapping, read_name, read_constants, read_conditions)
22122         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
22123         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
22124         Remove file arguments from all calls, using read_char and unread_char
22125         instead of getc and ungetc.
22126         * gensupport.c (process_include): Preserve read_md_file around
22127         the include.  Set read_md_file to the handle of the included file.
22128         Update call to read_rtx.
22129         (init_md_reader_args_cb): Set read_md_file to the handle of the file
22130         and remove local FILE *.  Update calls to read_rtx.
22131
22132 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22133
22134         * read-md.h (read_rtx_lineno): Rename to...
22135         (read_md_lineno): ...this.
22136         (read_rtx_filename): Rename to...
22137         (read_md_filename): ...this.
22138         (copy_rtx_ptr_loc): Rename to...
22139         (copy_md_ptr_loc): ...this.
22140         (print_rtx_ptr_loc): Rename to...
22141         (print_md_ptr_loc): ...this.
22142         * read-md.c: Likewise.  Update references after renaming.
22143         (string_obstack): Replace RTL with MD in comment.
22144         (set_rtx_ptr_loc): Rename to...
22145         (set_md_ptr_loc): ...this.
22146         (get_rtx_ptr_loc): Rename to...
22147         (get_md_ptr_loc): ...this.
22148         * genconditions.c: Update references after renaming.
22149         * genemit.c: Likewise.
22150         * genoutput.c: Likewise.
22151         * genpreds.c: Likewise.
22152         * gensupport.c: Likewise.
22153         * read-rtl.c: Likewise.
22154
22155 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
22156
22157         * Makefile.in (READ_MD_H): New variable.
22158         (BUILD_RTL): Add build/read-md.o.
22159         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
22160         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
22161         (build/genattrtab.o, build/genconditions.o build/genemit.o)
22162         (build/genextract.o, build/genflags.o, build/genoutput.o)
22163         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
22164         (build/read-md.o): New rule.
22165         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
22166         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
22167         * coretypes.h: ...here.
22168         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
22169         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
22170         * genattr.c: Include read-md.h.
22171         * genattrtab.c: Likewise.
22172         * genconditions.c: Likewise.
22173         * genemit.c: Likewise.
22174         * genextract.c: Likewise.
22175         * genflags.c: Likewise.
22176         * genoutput.c: Likewise.
22177         * genpreds.c: Likewise.
22178         * genrecog.c: Likewise.
22179         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
22180         (join_c_conditions, print_c_condition, read_rtx_filename)
22181         (read_rtx_lineno): Move to read-md.h.
22182         * read-rtl.c: Include read-md.h.
22183         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
22184         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
22185         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
22186         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
22187         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
22188         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
22189         (read_braced_string, read_string): Move to read-md.c.
22190         (read_rtx): Move some initialization to init_md_reader and call
22191         init_md_reader here.
22192         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
22193         Move to read-md.h.
22194         * gensupport.c: Include read-md.h.
22195         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
22196         * read-md.h, read-md.c: New files.
22197
22198 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
22199
22200         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22201         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22202         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
22203         * config/moxie/moxie.c (moxie_function_value): Make static.
22204         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
22205         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
22206
22207 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22208
22209         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
22210         * dbgcnt.def (tree_sra): New counter.
22211         * tree-sra.c: Include dbgcnt.h.
22212         (gate_intra_sra): Check tree_sra debug counter.
22213
22214 2010-06-10  Martin Jambor  <mjambor@suse.cz>
22215
22216         PR tree-optimization/44258
22217         * tree-sra.c (build_access_subtree): Return false iff there is a
22218         partial overlap.
22219         (build_access_trees): Likewise.
22220         (analyze_all_variable_accesses): Disqualify candidates if
22221         build_access_trees returns true for them.
22222
22223 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
22224
22225         PR debug/41371
22226         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
22227         tail-recurse into canonical node.  Fast-forward over
22228         non-canonical VALUEs.
22229
22230 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
22231
22232         PR boostrap/44470
22233         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
22234         (*addsi_1_zext) <TYPE_LEA>: Likewise.
22235         (add lea splitter): Likewise.
22236         (add_zext lea splitter): Likewise.
22237
22238 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
22239
22240         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
22241
22242 2010-06-10  Jan Hubicka  <jh@suse.cz>
22243
22244         * df-problems.c (df_live_problem_data): Add live_bitmaps.
22245         (df_live_alloc): Initialize problem data and live_osbtacks.
22246         (df_live_finalize): Remove obstack, problem data; do not
22247         clear all bitmaps.
22248         (df_live_top_dump, df_live_bottom_dump): Do not dump old
22249         data when not allocated.
22250         (df_live_verify_solution_start): Do not allocate problem data.
22251         (df_live_verify_solution_end): Check if out is allocated.
22252         (struct df_md_problem_data): New structure.
22253         (df_md_alloc): Allocate problem data.
22254         (df_md_free): Free problem data; do not clear bitmaps.
22255
22256 2010-06-10  Jan Beulich  <jbeulich@novell.com>
22257
22258         PR bootstrap/37304
22259         * configure.ac: Replace $() with ${} when intending to expand
22260         variables rather than invoking commands.
22261         * configure: Re-generate.
22262
22263 2010-06-10  Jan Hubicka  <jh@suse.cz>
22264
22265         PR rtl-optimization/44460
22266         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
22267         TYPE_NEEDS_CONSTRUCTING sanity check.
22268
22269 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
22270
22271         * doc/include/fdl.texi: Move to GFDL version 1.3.
22272
22273         * doc/cpp.texi: Move to GFDL version 1.3.
22274         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
22275         * doc/gccint.texi: Move to GFDL version 1.3.
22276         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
22277         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
22278         * doc/invoke.texi: Move to GFDL version 1.3.
22279
22280 2010-06-09  Jan Hubicka  <jh@suse.cz>
22281
22282         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
22283         Break out from ...
22284         (propagate) ... here; swap the order.
22285
22286 2010-06-09  Jan Hubicka  <jh@suse.cz>
22287
22288         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
22289         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
22290         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
22291         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
22292
22293 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
22294
22295         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
22296         Do not the gather memory reference in the outer loop if the step
22297         is not a constant.
22298
22299 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
22300
22301         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
22302         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
22303         8 to 4.  Minor change of the related comments.
22304
22305 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
22306
22307         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
22308         the scev analysis when the variable is not used outside the loop
22309         in a close phi node: call compute_overall_effect_of_inner_loop.
22310
22311 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
22312
22313         * graphite-sese-to-poly.c (single_pred_cond): Renamed
22314         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
22315         (build_sese_conditions_before): Renamed call to single_pred_cond.
22316         (build_sese_conditions_after): Same.
22317
22318 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
22319
22320         * graphite-poly.h: Fix comments and indentation.
22321         * graphite-sese-to-poly.c: Same.
22322         (build_sese_conditions_before): Compute stmt and gbb only when needed.
22323         * tree-chrec.c: Fix comments and indentation.
22324         (tree-ssa-loop-niter.c): Same.
22325
22326 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
22327
22328         PR rtl-optimization/42461
22329         * dce.c (deletable_insn_p): Return true for const or pure calls again.
22330         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
22331
22332 2010-06-09  Jan Hubicka  <jh@suse.cz>
22333
22334         * bitmap.c (bitmap_and): Walk array forward.
22335         (bitmap_and_compl_into): Likewise.
22336         (bitmap_xor): Likewise.
22337         (bitmap_xor_into):  Likewise.
22338         (bitmap_equal_p): Likewise.
22339         (bitmap_intersect_p): Likewise.
22340         (bitmap_intersect_compl_p): Likewise.
22341         (bitmap_ior_and_into): Likewise.
22342         (bitmap_elt_copy): Likewise.
22343         (bitmap_and_compl): Likewise.
22344         (bitmap_elt_ior): Likewise.
22345
22346 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
22347
22348         * opts-common.c (prune_options): Ensure replacement argv array
22349         is correctly terminated by a NULL entry.
22350
22351 2010-06-09  Jan Hubicka  <jh@suse.cz>
22352
22353         * cgraph.h (varpool_first_static_initializer,
22354         varpool_next_static_initializer): Make checking only when
22355         checking enabled.
22356         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
22357         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
22358         gcc_assert to gcc_checking_assert.
22359         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
22360         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
22361         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
22362         op_iter_init_phiuse, op_iter_init_phidef,
22363         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
22364         gcc_checking_assert.
22365         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
22366         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
22367         partition_is_global, live_on_entry, live_on_exit,
22368         live_merge_and_clear): Likewise.
22369         * system.h (gcc_checking_assert): New macro.
22370         * gimple.h (set_bb_seq): Use gcc_checking_assert.
22371
22372 2010-06-09  Jason Merrill  <jason@redhat.com>
22373
22374         * Makefile.in (TAGS): Collect tags info from c-family.
22375
22376 2010-06-09  Jan Hubicka  <jh@suse.cz>
22377
22378         * gimple.h (gcc_gimple_checking_assert): New macro.
22379         (gimple_set_def_ops, gimple_set_use_ops,
22380         gimple_set_vuse, gimple_set_vdef,
22381         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
22382         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
22383         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
22384         gimple_asm_output_op, gimple_asm_output_op_ptr,
22385         gimple_asm_set_output_op, gimple_asm_clobber_op,
22386         gimple_asm_set_clobber_op, gimple_asm_label_op,
22387         gimple_asm_set_label_op, gimple_try_set_kind,
22388         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
22389         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
22390         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
22391         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
22392         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
22393         gimple_omp_for_set_initial, gimple_omp_for_final,
22394         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
22395         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
22396         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
22397         conditional with ENABLE_GIMPLE_CHECKING.
22398         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
22399
22400 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
22401
22402         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
22403         (get_computation_cost_at): Use it.
22404         (determine_use_iv_cost_condition): Likewise.
22405         (determine_iv_cost): Likewise.
22406
22407 2010-06-09  Richard Guenther  <rguenther@suse.de>
22408
22409         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
22410         replace constants.
22411
22412 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
22413
22414         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
22415
22416 2010-06-09  Martin Jambor  <mjambor@suse.cz>
22417
22418         PR tree-optimization/44423
22419         * tree-sra.c (dump_access): Dump also grp_assignment_read.
22420         (analyze_access_subtree): Pass negative allow_replacements to children
22421         if the current type is scalar.
22422
22423 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
22424
22425         PR testsuite/42843
22426         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
22427         * doc/plugins.texi (Plugin license check): Update information
22428         on type of plugin_is_GPL_compatible.
22429         * Makefile.in (PLUGINCC): Define as $(COMPILER).
22430         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
22431
22432 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
22433
22434         * config/arm/arm.c (thumb2_reorg): New function.
22435         (arm_reorg): Call it.
22436         * config/arm/thumb2.md (define_peephole2 for flag clobbering
22437         arithmetic operations): Delete.
22438
22439 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
22440
22441         PR target/44067
22442         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
22443         e500v2 target.
22444
22445 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
22446
22447         PR plugins/44459
22448         * gcc-plugin.h: Encapsulate all declarations in extern "C".
22449
22450 2010-06-08  Jan Hubicka  <jh@suse.cz>
22451
22452         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
22453         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
22454
22455 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
22456
22457         PR tree-optimization/39874
22458         PR middle-end/28685
22459         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
22460         Declare.
22461         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
22462         same_bool_result_p): New.
22463         (and_var_with_comparison, and_var_with_comparison_1,
22464         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
22465         (or_var_with_comparison, or_var_with_comparison_1,
22466         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
22467         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
22468         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
22469         of combine_comparisons.
22470         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
22471
22472 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
22473
22474         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
22475         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
22476         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
22477         pdp11_function_value_regno_p): New functions.
22478         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
22479         TARGET_FUNCTION_VALUE_REGNO_P): Define.
22480
22481 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
22482
22483         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
22484         Thumb-2 in the MINUS case.
22485
22486 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22487
22488         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
22489
22490         * doc/gty.texi (GTY Options): Document typed GC allocation and
22491         variable_size GTY option.
22492
22493         * ggc-internal.h: New.
22494
22495         * ggc.h: Update copyright year.
22496         (digit_string): Move to stringpool.c.
22497         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
22498         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
22499         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
22500         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
22501         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
22502         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
22503         (ggc_force_collect, ggc_get_size, ggc_statistics)
22504         (ggc_print_common_statistics): Move to ggc-internal.h.
22505         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
22506         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
22507         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
22508         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
22509         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
22510         (ggc_alloc_zone_pass_stat): Remove.
22511         (ggc_internal_alloc_stat, ggc_internal_alloc)
22512         (ggc_internal_cleared_alloc_stat): New.
22513         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
22514         (ggc_internal_vec_alloc_stat)
22515         (ggc_internal_cleared_vec_alloc_stat)
22516         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
22517         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
22518         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
22519         (ggc_cleared_alloc_ptr_array_two_args): New.
22520         (htab_create_ggc, splay_tree_new_ggc): Redefine.
22521         (ggc_splay_alloc): Change the type of the first argument to
22522         enum gt_types_enum.
22523         (ggc_alloc_string): Make macro.
22524         (ggc_alloc_string_stat): New.
22525         (ggc_strdup): Redefine.
22526         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
22527         (ggc_alloc_rtvec_sized): New.
22528         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
22529         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
22530         (ggc_internal_cleared_alloc_zone_stat)
22531         (ggc_internal_zone_alloc_stat)
22532         (ggc_internal_zone_cleared_alloc_stat)
22533         (ggc_internal_zone_vec_alloc_stat)
22534         (ggc_alloc_zone_rtx_def_stat)
22535         (ggc_alloc_zone_tree_node_stat)
22536         (ggc_alloc_zone_cleared_tree_node_stat)
22537         (ggc_alloc_cleared_gimple_statement_d_stat): New.
22538
22539         * ggc-common.c: Include ggc-internal.h.
22540         (ggc_internal_cleared_alloc_stat): Rename from
22541         ggc_alloc_cleared_stat.
22542         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
22543         (ggc_calloc): Remove.
22544         (ggc_cleared_alloc_htab_ignore_args): New.
22545         (ggc_cleared_alloc_ptr_array_two_args): New.
22546         (ggc_splay_alloc): Add obj_type parameter.
22547         (init_ggc_heuristics): Formatting fixes.
22548
22549         * ggc-none.c: Update copyright year.
22550         (ggc_alloc_stat): Rename to ggc_alloc_stat.
22551         (ggc_alloc_cleared_stat): Rename to
22552         ggc_internal_cleared_alloc_stat.
22553         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
22554
22555         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
22556         Remove references to ggc_alloc in comments.
22557         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
22558         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
22559         (new_ggc_zone, destroy_ggc_zone): Remove.
22560         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
22561
22562         * ggc-zone.c: Include ggc-internal.h.  Remove references to
22563         ggc_alloc in comments.
22564         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
22565         (ggc_internal_alloc_zone_pass_stat): New.
22566         (ggc_internal_cleared_alloc_zone_stat): New.
22567         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
22568         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
22569         (new_ggc_zone, destroy_ggc_zone): Remove.
22570
22571         * stringpool.c: Update copyright year.  Include ggc-internal.h
22572         (digit_vector): Make static.
22573         (digit_string): Moved from ggc.h.
22574         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
22575         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
22576
22577         * Makefile.in (GGC_INTERNAL_H): New.
22578         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
22579         $(GGC_INTERNAL_H) to dependencies.
22580
22581         * gentype.c: Update copyright year.
22582         (walk_type): Accept variable_size GTY option.
22583         (USED_BY_TYPED_GC_P): New macro.
22584         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
22585         whitespace at the end of strings.
22586         (get_type_specifier, variable_size_p): New functions.
22587         (alloc_quantity, alloc_zone): New enums.
22588         (write_typed_alloc_def): New function.
22589         (write_typed_struct_alloc_def): Likewise.
22590         (write_typed_typed_typedef_alloc_def): Likewise.
22591         (write_typed_alloc_defns): Likewise.
22592         (output_typename, write_splay_tree_allocator_def): Likewise.
22593         (write_splay_tree_allocators): Likewise.
22594         (main): Call write_typed_alloc_defns and
22595         write_splay_tree_allocators.
22596
22597         * lto-streamer.h (lto_file_decl_data_ptr): New.
22598
22599         * passes.c (order): Define using cgraph_node_ptr.
22600
22601         * strinpool.c (struct string_pool_data): Declare nested_ptr using
22602         ht_identifier_ptr.
22603
22604         * gimple.h (union gimple_statement_d): Likewise.
22605
22606         * rtl.h (struct rtx_def): Likewise.
22607         (struct rtvec_def): Likewise.
22608
22609         * tree.h (union tree_node): Likewise.
22610
22611         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
22612
22613         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
22614
22615         * tree-scalar-evolution.c (scev_initialize): Likewise.
22616
22617         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
22618
22619         * dwarf2asm.c (dw2_force_const_mem): Likewise.
22620
22621         * omp-low.c (lower_omp_critical): Likewise.
22622
22623         * bitmap.h (struct bitmap_head_def): Update comment to not
22624         reference ggc_alloc.
22625
22626         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
22627
22628         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
22629
22630         * ipa-prop.c (duplicate_ggc_array): Rename to
22631         duplicate_ipa_jump_func_array.  Use typed GC allocation.
22632         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
22633
22634         * gimple.c (gimple_alloc_stat): Use
22635         ggc_alloc_cleared_gimple_statement_d_stat.
22636
22637         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
22638
22639         * tree.c (make_node_stat): Use
22640         ggc_alloc_zone_cleared_tree_node_stat.
22641         (make_tree_vec_stat): Likewise.
22642         (build_vl_exp_stat): Likewise.
22643         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
22644         (make_tree_binfo_stat): Likewise.
22645         (tree_cons_stat): Likewise.
22646
22647         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
22648         (shallow_copy_rtx_stat): Likewise.
22649         (make_node_stat): Likewise.
22650
22651         * lto-symtab.c: Fix comment.
22652
22653         * tree-cfg.c (create_bb): Update comment to not reference
22654         ggc_alloc_cleared.
22655         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
22656
22657         * varpool.c (varpool_node): Use typed GC allocation.
22658         (varpool_extra_name_alias): Likewise.
22659
22660         * varasm.c (emutls_decl): Likewise.
22661         (get_unnamed_section): Likewise.
22662         (get_noswitch_section): Likewise.
22663         (get_section): Likewise.
22664         (get_block_for_section): Likewise.
22665         (build_constant_desc): Likewise.
22666         (create_constant_pool): Likewise.
22667         (force_const_mem): Likewise.
22668
22669         * tree.c (build_vl_exp_stat): Likewise.
22670         (build_real): Likewise.
22671         (build_string): Likewise.
22672         (decl_debug_expr_insert): Likewise.
22673         (decl_value_expr_insert): Likewise.
22674         (type_hash_add): Likewise.
22675         (build_omp_clause): Likewise.
22676
22677         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
22678
22679         * tree-ssa.c (init_tree_ssa): Likewise.
22680
22681         * tree-ssa-structalias.c (heapvar_insert): Likewise.
22682
22683         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
22684
22685         * tree-ssa-loop-niter.c (record_estimate): Likewise.
22686
22687         * tree-ssa-alias.c (get_ptr_info): Likewise.
22688
22689         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
22690
22691         * tree-phinodes.c (allocate_phi_node): Likewise.
22692
22693         * tree-iterator.c (tsi_link_before): Likewise.
22694         (tsi_link_after): Likewise.
22695
22696         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
22697
22698         * tree-dfa.c (create_var_ann): Likewise.
22699
22700         * tree-cfg.c (create_bb): Likewise.
22701
22702         * toplev.c (alloc_for_identifier_to_locale): Likewise.
22703         (general_init): Likewise.
22704
22705         * stringpool.c (stringpool_ggc_alloc): Likewise.
22706         (gt_pch_save_stringpool): Likewise.
22707
22708         * sese.c (if_region_set_false_region): Likewise.
22709
22710         * passes.c (do_per_function_toporder): Likewise.
22711
22712         * optabs.c (set_optab_libfunc): Likewise.
22713         (set_conv_libfunc): Likewise.
22714
22715         * lto-symtab.c (lto_symtab_register_decl): Likewise.
22716
22717         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
22718         (input_eh_region): Likewise.
22719         (input_eh_lp): Likewise.
22720         (make_new_block): Likewise.
22721         (unpack_ts_real_cst_value_fields): Likewise.
22722
22723         * lto-section-in.c (lto_new_in_decl_state): Likewise.
22724
22725         * lto-cgraph.c (input_node_opt_summary): Likewise.
22726
22727         * loop-init.c (loop_optimizer_init): Likewise.
22728
22729         * lambda.h (lambda_vector_new): Likewise.
22730
22731         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
22732
22733         * ira.c (update_equiv_regs): Likewise.
22734
22735         * ipa.c (cgraph_node_set_new): Likewise.
22736         (cgraph_node_set_add): Likewise.
22737         (varpool_node_set_new): Likewise.
22738         (varpool_node_set_add): Likewise.
22739
22740         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
22741         (duplicate_ipa_jump_func_array): Likewise.
22742         (ipa_read_node_info): Likewise.
22743
22744         * ipa-cp.c (ipcp_create_replace_map): Likewise.
22745
22746         * integrate.c (get_hard_reg_initial_val): Likewise.
22747
22748         * gimple.c (gimple_alloc_stat): Likewise.
22749         (gimple_build_omp_for): Likewise.
22750         (gimple_seq_alloc): Likewise.
22751         (gimple_copy): Likewise.
22752
22753         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
22754         (gsi_insert_after_without_update): Likewise.
22755
22756         * function.c (add_frame_space): Likewise.
22757         (insert_temp_slot_address): Likewise.
22758         (assign_stack_temp_for_type): Likewise.
22759         (allocate_struct_function): Likewise.
22760         (types_used_by_var_decl_insert): Likewise.
22761
22762         * except.c (init_eh_for_function): Likewise.
22763         (gen_eh_region): Likewise.
22764         (gen_eh_region_catch): Likewise.
22765         (gen_eh_landing_pad): Likewise.
22766         (add_call_site): Likewise.
22767
22768         * emit-rtl.c (get_mem_attrs): Likewise.
22769         (get_reg_attrs): Likewise.
22770         (start_sequence): Likewise.
22771         (init_emit): Likewise.
22772
22773         * dwarf2out.c (new_cfi): Likewise.
22774         (queue_reg_save): Likewise.
22775         (dwarf2out_frame_init): Likewise.
22776         (new_loc_descr): Likewise.
22777         (find_AT_string): Likewise.
22778         (new_die): Likewise.
22779         (add_var_loc_to_decl): Likewise.
22780         (clone_die): Likewise.
22781         (clone_as_declaration): Likewise.
22782         (break_out_comdat_types): Likewise.
22783         (new_loc_list): Likewise.
22784         (loc_descriptor): Likewise.
22785         (add_loc_descr_to_each): Likewise.
22786         (add_const_value_attribute): Likewise.
22787         (tree_add_const_value_attribute): Likewise.
22788         (add_comp_dir_attribute): Likewise.
22789         (add_name_and_src_coords_attributes): Likewise.
22790         (lookup_filename): Likewise.
22791         (store_vcall_insn): Likewise.
22792         (dwarf2out_init): Likewise.
22793
22794         * dbxout.c (dbxout_init): Likewise.
22795
22796         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
22797
22798         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
22799
22800         * config/score/score7.c (score7_output_external): Likewise.
22801
22802         * config/score/score3.c (score3_output_external): Likewise.
22803
22804         * config/s390/s390.c (s390_init_machine_status): Likewise.
22805
22806         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
22807         (rs6000_init_machine_status): Likewise.
22808         (output_toc): Likewise.
22809
22810         * config/pa/pa.c (pa_init_machine_status): Likewise.
22811         (get_deferred_plabel): Likewise.
22812
22813         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
22814
22815         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
22816
22817         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
22818
22819         * config/mep/mep.c (mep_init_machine_status): Likewise.
22820         (mep_note_pragma_flag): Likewise.
22821
22822         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
22823
22824         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
22825
22826         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
22827
22828         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
22829         (i386_pe_maybe_record_exported_symbol): Likewise.
22830
22831         * config/i386/i386.c (get_dllimport_decl): Likewise.
22832         (ix86_init_machine_status): Likewise.
22833         (assign_386_stack_local): Likewise.
22834
22835         * config/frv/frv.c (frv_init_machine_status): Likewise.
22836
22837         * config/darwin.c (machopic_indirection_name): Likewise.
22838
22839         * config/cris/cris.c (cris_init_machine_status): Likewise.
22840
22841         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
22842
22843         * config/avr/avr.c (avr_init_machine_status): Likewise.
22844
22845         * config/arm/arm.c (arm_init_machine_status): Likewise.
22846
22847         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
22848         (alpha_need_linkage): Likewise.
22849         (alpha_use_linkage): Likewise.
22850
22851         * cgraph.c (cgraph_allocate_node): Likewise.
22852         (cgraph_create_edge_1): Likewise.
22853         (cgraph_create_indirect_edge): Likewise.
22854         (cgraph_add_asm_node): Likewise.
22855
22856         * cfgrtl.c (init_rtl_bb_info): Likewise.
22857
22858         * cfgloop.c (alloc_loop): Likewise.
22859         (rescan_loop_exit): Likewise.
22860
22861         * cfg.c (init_flow): Likewise.
22862         (alloc_block): Likewise.
22863         (unchecked_make_edge): Likewise.
22864
22865         * c-parser.c (c_parse_init): Likewise.
22866         (c_parse_file): Likewise.
22867
22868         * c-decl.c (bind): Likewise.
22869         (record_inline_static): Likewise.
22870         (push_scope): Likewise.
22871         (make_label): Likewise.
22872         (lookup_label_for_goto): Likewise.
22873         (finish_struct): Likewise.
22874         (finish_enum): Likewise.
22875         (c_push_function_context): Likewise.
22876
22877         * bitmap.c (bitmap_element_allocate): Likewise.
22878         (bitmap_gc_alloc_stat): Likewise.
22879
22880         * alias.c (record_alias_subset): Likewise.
22881         (init_alias_analysis): Likewise.
22882
22883 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
22884
22885         * fold-const.c (fold_comparison): Remove redundant parenthesis.
22886         * tree-inline.c (expand_call_inline): Pass translated return value of
22887         cgraph_inline_failed_string to diagnostic function.
22888
22889 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
22890             Shujing Zhao  <pearly.zhao@oracle.com>
22891
22892         PR c/37724
22893         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
22894         implicit bad conversions is initialization.
22895         (error_init): Use gmsgid instead of msgid for argument name and change
22896         the call for error.
22897         (pedwarn_init): Use gmsgid instead of msgid for argument name and
22898         change the call for pedwarn.
22899         (warning_init): Use gmsgid instead of msgid for argument name and
22900         change the call for warning.
22901
22902 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
22903
22904         * config/mips/mips-protos.h (mips_print_operand): Delete.
22905         (mips_print_operand_address): Delete.
22906         * config/mips/mips.h (mips_print_operand_punct): Delete.
22907         (PRINT_OPERAND): Delete.
22908         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
22909         (PRINT_OPERAND_ADDRESS): Delete.
22910         * config/mips/mips.c (mips_print_operand_punct): Make static.
22911         (mips_print_operand_address): Make static.
22912         (mips_print_operand): Make static.  Call
22913         mips_print_operand_punct_valid_p.
22914         (mips_print_operand_punct_valid_p): New function.
22915         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
22916         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
22917
22918 2010-06-07  Jan Hubicka  <jh@suse.cz>
22919
22920         PR middle-end/44454
22921         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
22922         are allocated.
22923
22924 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
22925
22926         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
22927         name of RECORD.
22928
22929 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22930
22931         * doc/sourcebuild.texi (Effective-Target Keywords, Other
22932         attributes): Document gas.
22933
22934 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
22935
22936         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
22937         <TYPE_LEA>: Split instruction.
22938         <default>: Remove alternative 2 handling.
22939         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
22940         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
22941         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
22942
22943         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
22944         (ashift_zext lea splitter): Use DImode for multiplication.
22945
22946         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
22947         to generate addition.
22948
22949 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
22950
22951         * common.opt (fira-verbose): Use Var.
22952         (fpcc-struct-return): Use Init instead of VarExists.
22953         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
22954         toplev.c.
22955         * flags.h (flag_signed_char, flag_short_enums,
22956         flag_pcc_struct_return, flag_ira_verbose,
22957         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
22958         * toplev.c (flag_detailed_statistics, flag_signed_char,
22959         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
22960         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
22961         * toplev.h (flag_crossjumping, flag_if_conversion,
22962         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
22963         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
22964         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
22965         flag_cprop_registers, time_report, flag_ira_loop_pressure,
22966         flag_ira_coalesce, flag_ira_move_spills,
22967         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
22968
22969 2010-06-07  Jan Hubicka  <jh@suse.cz>
22970
22971         * df-core.c (df_analyze_problem): Do verification after allocation.
22972
22973         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
22974         (df_lr_alloc): Initialize problem data; move bitmaps to
22975         lr_bitmaps obstack.
22976         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
22977         (df_lr_verify_solution_start): Do not initialize problem data;
22978         allocate bitmaps in lr_bitmaps.
22979         (df_lr_verify_solution_end): Do not free problem data.
22980
22981 2010-06-07  Jan Hubicka  <jh@suse.cz>
22982
22983         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
22984         if caller is noreturn.
22985         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
22986         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
22987         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
22988         * ipa-pure-const.c (check_decl): Add IPA parameter.
22989         (state_from_flags): New function.
22990         (better_state, worse_state): New functions.
22991         (check_call): When in IPA mode, do not care about callees.
22992         (check_load, check_store): Update.
22993         (check_ipa_load, check_ipa_store): New.
22994         (check_stmt): When in IPA mode, use IPA checkers.
22995         (analyze_function): Use state_from_flags.
22996         (propagate): Check indirect edges and references.
22997
22998 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
22999
23000         PR rtl-optimization/44404
23001         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
23002         of count_occurrences to see if it's safe to modify mem_insn.
23003
23004 2010-06-07  Richard Guenther  <rguenther@suse.de>
23005
23006         * gimplify.c (gimplify_cleanup_point_expr): For empty body
23007         and EH-only cleanup drop the cleanup instead of inserting it
23008         unconditionally.
23009
23010 2010-06-07  Ira Rosen  <irar@il.ibm.com>
23011
23012         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
23013         documentation.
23014         * targhooks.c (default_builtin_vectorization_cost): New function.
23015         * targhooks.h (default_builtin_vectorization_cost): Declare.
23016         * target.h (enum vect_cost_for_stmt): Define.
23017         (builtin_vectorization_cost): Change argument and comment.
23018         * tree-vectorizer.h: Remove cost model macros.
23019         * tree-vect-loop.c: Include target.h.
23020         (vect_get_cost): New function.
23021         (vect_estimate_min_profitable_iters): Replace cost model macros with
23022         calls to vect_get_cost.
23023         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
23024         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
23025         default implementation.
23026         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
23027         calls to target hook builtin_vectorization_cost.
23028         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
23029         Likewise.
23030         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
23031         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
23032         implementation to return costs.
23033         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
23034         * config/spu/spu.h: Remove vectorizer cost model macros.
23035         * config/i386/i386.h: Likewise.
23036         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
23037         a call to target hook builtin_vectorization_cost.
23038
23039 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
23040
23041         PR target/44319
23042         * config/i386/i386.c (override_options): Turn zee pass on for level 2
23043         and above and defer till target is known.
23044         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
23045         turn off otherwise.
23046
23047 2010-05-25  Jan Hubicka  <jh@suse.cz>
23048
23049         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
23050         (df_compact_blocks): Likewise.
23051         * df.h (struct df): Turn hardware_regs_used,
23052         regular_block_artificial_uses, eh_block_artificial_uses,
23053         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
23054         bitmap_head.
23055         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
23056         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
23057         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
23058         df_scan_blocks, df_insn_delete, df_insn_rescan,
23059         df_insn_rescan_debug_internal, df_insn_rescan_all,
23060         df_process_deferred_rescans, df_process_deferred_rescans,
23061         df_notes_rescan, df_get_call_refs, df_get_call_refs,
23062         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
23063         df_record_entry_block_defs, df_record_exit_block_uses,
23064         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
23065         df_scan_verify): Update.
23066
23067 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
23068
23069         PR c++/44188
23070         * c-common.c (is_typedef_decl): Move this definition ...
23071         * tree.c (is_typedef_decl): ... here.
23072         (typdef_variant_p): Move definition here from cp/tree.c.
23073         * c-common.h (is_typedef_decl): Move this declaration ...
23074         * tree.h (is_typedef_decl): ... here.
23075         (typedef_variant_p): Move declaration here from cp/cp-tree.h
23076         * dwarf2out.c (is_naming_typedef_decl): New function.
23077         (gen_tagged_type_die): Split out of ...
23078         (gen_type_die_with_usage): ... this function. When an anonymous
23079         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
23080         is emitted for the typedef.
23081         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
23082         anonymous tagged types.
23083
23084 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23085
23086         PR c/20000
23087         * c-decl.c (grokdeclarator): Delete warning.
23088
23089 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
23090
23091         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
23092         newly built CALL_EXPR.
23093         * tree-profile.c (tree_profiling): Don't profile functions produced
23094         for built-in stuff.
23095
23096 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
23097
23098         PR bootstrap/44427
23099         PR bootstrap/44428
23100         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
23101         endianness-independent.
23102
23103 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
23104
23105         * c-common.c: Move to c-family/.
23106         * c-common.def: Likewise.
23107         * c-common.h: Likewise.
23108         * c-cppbuiltin.c: Likewise.
23109         * c-dump.c: Likewise.
23110         * c-format.c: Likewise.
23111         * c-format.h : Likewise.
23112         * c-gimplify.c: Likewise.
23113         * c-lex.c: Likewise.
23114         * c-omp.c: Likewise.
23115         * c.opt: Likewise.
23116         * c-opts.c: Likewise.
23117         * c-pch.c: Likewise.
23118         * c-ppoutput.c: Likewise.
23119         * c-pragma.c: Likewise.
23120         * c-pragma.h: Likewise.
23121         * c-pretty-print.c: Likewise.
23122         * c-pretty-print.h: Likewise.
23123         * c-semantics.c: Likewise.
23124         * stub-objc.c: Likewise.
23125
23126         * gengtype.c (get_file_langdir): Special-case files in c-family/.
23127         (get_output_file_with_visibility): Fix name for c-common.h.
23128         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
23129
23130         * c-tree.h: Update include path for moved files.
23131         * c-lang.c: Likewise.
23132         * c-lang.h: Likewise.
23133         * c-parser.c: Likewise.
23134         * c-convert.c: Likewise.
23135         * c-decl.c: Likewise.
23136         * c-objc-common.c: Likewise.
23137         * configure.ac: Make sure c-family/ exists in the build directory.
23138         * configure: Regenerate.
23139         * Makefile.in: Update paths for moved files.  Regroup files per
23140         location and update dependencies.  Move generated_files down after
23141         ALL_GTFILES_H.
23142
23143         * config/spu/spu-c.c: Update paths for moved files.
23144         * config/mep/mep-pragma.c: Likewise.
23145         * config/darwin-c.c: Likewise.
23146         * config/i386/msformat-c.c: Likewise.
23147         * config/i386/i386-c.c: Likewise.
23148         * config/avr/avr-c.c: Likewise.
23149         * config/sol2-c.c: Likewise.
23150         * config/ia64/ia64-c.c: Likewise.
23151         * config/rs6000/rs6000-c.c: Likewise.
23152         * config/arm/arm.c: Likewise.
23153         * config/arm/arm-c.c: Likewise.
23154         * config/h8300/h8300.c: Likewise.
23155         * config/v850/v850-c.c: Likewise.
23156
23157         * config/t-darwin: Fix dependencies for moved files.
23158         * config/t-sol2: Fix dependencies for moved files.
23159         * config/mep/t-mep: Fix dependencies for moved files.
23160         * config/ia64/t-ia64: Fix dependencies for moved files.
23161         * config/rs6000/t-rs6000: Fix dependencies for moved files.
23162         * config/v850/t-v850: Fix dependencies for moved files.
23163         * config/v850/t-v850e: Fix dependencies for moved files.
23164
23165         * config/m32c/m32c-pragma.c
23166
23167         * po/exgettext: Look in c-family/ also.
23168
23169 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
23170
23171         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
23172         (mark_control_dependent_edges_necessary): Call it instead of marking
23173         the last statement manually.
23174         (propagate_necessity): Likewise.
23175
23176 2010-06-05  Jan Hubicka  <jh@suse.cz>
23177
23178         * basic-block.h (compute_dominance_frontiers): Updated.
23179         (compute_idf): Likewise.
23180
23181         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
23182         for dominance frontiers.
23183         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
23184         (insert_updated_phi_nodes_for): Likewise.
23185         (update_ssa): Likewise.
23186         * cfganal.c (compute_dominance_frontiers_1): Likewise.
23187         (compute_dominance_frontiers): Likewise.
23188         (compute_idf): Likewise.
23189         * df-problems.c (df_md_local_compute): Likewise.
23190
23191 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
23192
23193         * target.h (struct gcc_target): Add memory_move_cost field.
23194         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
23195         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
23196         * targhooks.c (default_memory_move_cost): New function.
23197         * targhooks.h (default_memory_move_cost): Declare function.
23198         * reload.h (memory_move_cost): Declare.
23199         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23200         * reginfo.c (memory_move_cost): New function.
23201         (memory_move_secondary_cost): Change type of 'in' argument to bool.
23202         * ira.h (ira_memory_move_cost): Update comment.
23203         * ira.c (ira_memory_move_cost): Update comment.
23204         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
23205         with memory_move_cost.
23206         * postreload.c (reload_cse_simplify_set): (Ditto.).
23207         * reload1.c (choose_reload_regs): (Ditto.).
23208         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
23209         (MEMORY_MOVE_COST):  Revise documentation.
23210
23211         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
23212         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
23213         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
23214         type of 'in' argument to bool.
23215         (TARGET_MEMORY_MOVE_COST): Define.
23216
23217 2010-06-05  Jan Hubicka  <jh@suse.cz>
23218
23219         * ipa-pure-const.c (propagate): Fix typo in handling of functions
23220         that cannot return.  Be more careful when merging the results with
23221         previously known ones.
23222
23223 2010-06-05  Matthias Klose  <doko@ubuntu.com>
23224
23225         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
23226         function to add the -iplugindir option.
23227         (find_plugindir_spec_function): Add new declaration and function.
23228         (static_spec_func): Use it for "find-plugindir".
23229
23230 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
23231
23232         PR c++/44361
23233         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
23234         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
23235         statement expression.
23236
23237 2010-06-05  Jan Hubicka  <jh@suse.cz>
23238
23239         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
23240         (df_rd_problem_data): Convert sparse_invalidated_by_call,
23241         dense_invalidated_by_call to bitmap head.
23242         (df_rd_alloc, df_rd_bb_local_compute_process_def,
23243         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
23244         df_rd_start_dump, df_lr_verify_transfer_functions,
23245         df_live_verify_transfer_functions, df_chain_create_bb,
23246         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
23247         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
23248         df_simulate_one_insn_forwards, df_md_alloc,
23249         df_md_bb_local_compute_process_def,
23250         df_md_bb_local_compute_process_def, df_md_local_compute,
23251         df_md_transfer_function df_md_free): Update.
23252
23253 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
23254
23255         PR c/44322
23256         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
23257         target type for ADDR_EXPR; require no changes to qualifiers except
23258         for function types.
23259         * c-tree.h (c_build_type_variant): Remove.
23260
23261 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
23262
23263         * genautomata.c (get_excl_set): Do work per element, not per char.
23264         (check_presence_pattern_sets): Similar.
23265         (check_absence_pattern_sets): Similar.
23266
23267 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
23268
23269         * genautomata.c (curr_state_pass_num): Delete.
23270         (min_issue_delay_pass_states): Delete.
23271         (min_issue_delay): Delete.
23272         (initiate_min_issue_delay_pass_states): Delete.
23273         (output_min_issue_delay_table): Compute min_issue_delay_vect
23274         using a breadth-first search variant.
23275         (output_tables): Don't call initiate_min_issue_delay_pass_states.
23276
23277 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
23278
23279         PR boostrap/44421
23280         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
23281         (df_byte_lr_bb_local_compute): Likewise.
23282
23283 2010-06-03  Jason Merrill  <jason@redhat.com>
23284
23285         Implement noexcept operator (5.3.7)
23286         * c-common.c (c_common_reswords): Add noexcept.
23287         * c-common.h (enum rid): Add RID_NOEXCEPT.
23288
23289 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
23290
23291         * config/darwin-driver.c (darwin_default_min_version): Use
23292         GCC-specific formats in diagnostics.
23293         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
23294         diagnostics.
23295         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
23296         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
23297         eval_spec_function, handle_braces, process_brace_body, main,
23298         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
23299         getenv_spec_function, compare_version_strings,
23300         version_compare_spec_function): Use GCC-specific formats in
23301         diagnostics.
23302
23303 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
23304
23305         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
23306         that operand 0 and operand 1 are equal.
23307         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
23308         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
23309         and operand 1 are equal.
23310         <default>: Ditto.  Remove ??? comment.
23311         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
23312         and operand 1 are equal.
23313         <default>: Ditto.  Remove ??? comment.
23314         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
23315         are equal.
23316         (*add<mode>_4) <default>: Ditto.
23317         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
23318
23319 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
23320
23321         * config/i386/i386-protos.h (ix86_print_operand): Declare.
23322         * config/i386/i386.c (ix86_print_operand): Make non-static.
23323         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
23324         * output.h (output_operand): Declare.
23325         * final.c (output_operand): Make non-static.
23326
23327 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
23328
23329         PR rtl-optimization/44013
23330         * sched-deps.c (add_dependence_list_and_free): Don't free lists
23331         when processing debug insns.
23332
23333         PR debug/41371
23334         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
23335         recursing.  Check that recursion is bounded.  Rename inner var
23336         to avoid hiding incoming argument.
23337
23338 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
23339
23340         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
23341         operands[2] == 255.
23342         (*addqi_3): Ditto.
23343         (*addqi_4): Ditto.
23344         (*addqi_5): Ditto.
23345         (*addqi_ext_1_rex64): Ditto.
23346         (*addqi_ext_1): Ditto.
23347
23348         (*addqi_4): Check for incdec_operand in QImode.
23349
23350         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
23351         using SWI mode iterator.
23352         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
23353         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
23354         mode iterator.
23355         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
23356         using SWI mode iterator.
23357
23358 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23359
23360         PR c/25880
23361         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
23362         * c-format.c (gcc_diag_flag_specs): Add hash.
23363         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
23364         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
23365         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
23366         pp_c_cv_qualifiers. Handle qualifiers spelling here.
23367         (pp_c_type_qualifier_list): Call the function above.
23368         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
23369         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
23370         (WARN_FOR_QUALIFIERS): New macro.
23371         (convert_for_assignment): Use it.
23372
23373 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
23374
23375         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
23376
23377 2010-06-04  Jan Hubicka  <jh@suse.cz>
23378
23379         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
23380         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
23381         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
23382         DF_BYTE_LR_OUT): Update for embedded bitmaps.
23383         * fwprop.c (single_def_use_enter_block): Likewise.
23384         * ddg.c (create_ddg_dep_from_intra_loop_link,
23385         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
23386         * loop-iv.c (latch_dominating_def): Likewise.
23387         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
23388         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
23389         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
23390         df_rd_transfer_function, df_rd_top_dump,
23391         df_rd_bottom_dump): Update.
23392         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
23393         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
23394         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
23395         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
23396         df_lr_verify_solution_start, df_lr_verify_solution_end,
23397         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
23398         df_live_free_bb_info, df_live_alloc, df_live_reset,
23399         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
23400         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
23401         df_live_verify_solution_start, df_live_verify_solution_end,
23402         df_live_verify_transfer_functions, df_chain_create_bb,
23403         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
23404         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
23405         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
23406         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
23407         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
23408         df_byte_lr_transfer_function, df_byte_lr_top_dump,
23409         df_byte_lr_bottom_dump, df_create_unused_note,
23410         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
23411         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
23412         df_md_transfer_function, df_md_init, df_md_confluence_0,
23413         df_md_confluence_n,
23414         df_md_top_dump, df_md_bottom_dump): Update.
23415         (struct df_lr_problem_data): Embedd bitmap headers.
23416
23417 2010-06-04  Jan Hubicka  <jh@suse.cz>
23418
23419         * dce.c (dce_process_block): Do not re-scan already marked
23420         instructions.
23421
23422 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
23423
23424         PR rtl-optimization/39871
23425         PR rtl-optimization/40615
23426         PR rtl-optimization/42500
23427         PR rtl-optimization/42502
23428         * ira.c (init_reg_equiv_memory_loc: New function.
23429         (ira): Call it twice.
23430         * reload.h (calculate_elim_costs_all_insns): Declare.
23431         * ira-costs.c: Include "reload.h".
23432         (regno_equiv_gains): New static variable.
23433         (init_costs): Allocate it.
23434         (finish_costs): Free it.
23435         (ira_costs): Call calculate_elim_costs_all_insns.
23436         (find_costs_and_classes): Take estimated elimination costs
23437         into account.
23438         (ira_adjust_equiv_reg_cost): New function.
23439         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
23440         * reload1.c (init_eliminable_invariants, free_reg_equiv,
23441         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
23442         (elim_bb): New static variable.
23443         (reload): Move code out of here into init_eliminable_invariants and
23444         free_reg_equiv.  Call them.
23445         (calculate_elim_costs_all_insns): New function.
23446         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
23447         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
23448         but call note_reg_elim_costly if we turned a valid memory address
23449         into an invalid one.
23450         * Makefile.in (ira-costs.o): Depend on reload.h.
23451
23452 2010-06-04  Julian Brown  <julian@codesourcery.com>
23453
23454         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
23455         for pool ranges.
23456
23457 2010-06-04  Richard Guenther  <rguenther@suse.de>
23458
23459         PR lto/41584
23460         * cgraph.h (struct varpool_node): Add lto_file_data field.
23461         * lto-cgraph.c (input_varpool_node): Initialize it.
23462
23463 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
23464
23465         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
23466         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
23467         predicate in "type" attribute calculation.
23468         (*addsi_1_zext): Ditto.
23469         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
23470         (*addsi_2_zext): Ditto.
23471         (*add<mode>_3): Ditto.
23472         (*addsi_3_zext): Ditto.
23473         (*add<mode>_5): Ditto.
23474
23475 2010-06-03  Jan Hubicka  <jh@suse.cz>
23476
23477         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
23478         of bitmap_bit_p.
23479         * cfganal.c (compute_dominance_frontiers_1): Likewise.
23480
23481 2010-06-03  Jan Hubicka  <jh@suse.cz>
23482
23483         * df-problems.c (df_create_unused_note, df_note_bb_compute):
23484         micro-optimize the checks when to add new note.
23485
23486 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
23487
23488         * final.c (output_asm_insn): Call
23489         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
23490         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
23491         (output_address): Call targetm.asm_out.print_operand_address.
23492         Update comments.
23493         * target.h (struct gcc_target): Add print_operand,
23494         print_operand_address, and print_operand_punct_valid_p fields.
23495         * targhooks.h (default_print_operand): Declare.
23496         (default_print_operand_address): Declare.
23497         (default_print_operand_punct_valid_p): Declare.
23498         * targhooks.c (default_print_operand): Define.
23499         (default_print_operand_address): Define.
23500         (default_print_operand_punct_valid_p): Define.
23501         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
23502         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
23503         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
23504         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
23505         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
23506         * vmsdbgout.c (addr_const_to_string): Update comment.
23507         * config/i386/i386.c (print_operand): Rename to...
23508         (ix86_print_operand): ...this.  Make static.
23509         (print_operand_address): Rename to...
23510         (ix86_print_operand_address): ...this.  Make static.  Call
23511         ix86_print_operand instead of PRINT_OPERAND.
23512         (ix86_print_operand_punct_valid_p): New function.
23513         (TARGET_PRINT_OPERAND): Define.
23514         (TARGET_PRINT_OPERAND_ADDRESS): Define.
23515         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
23516         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
23517         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
23518         (PRINT_OPERAND): Delete.
23519         (PRINT_OPERAND_ADDRESS): Delete.
23520         * config/i386/i386-protos.h (print_operand): Delete prototype.
23521         (print_operand_address): Delete prototype.
23522
23523 2010-06-03  Richard Guenther  <rguenther@suse.de>
23524
23525         PR tree-optimization/44403
23526         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
23527         Preserve pointer qualifiers.
23528         (vect_create_data_ref_ptr): Likewise.
23529
23530 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
23531
23532         PR c++/44294
23533         * defaults.h (MAX_FIXED_MODE_SIZE): New.
23534
23535         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
23536
23537 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
23538
23539         PR debug/44375
23540         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
23541         return false if merging the bbs would lead to goto_locus
23542         location being lost from the IL.
23543
23544 2010-06-03  Jan Hubicka  <jh@suse.cz>
23545             Jakub Jelinek  <jakub@redhat.com>
23546
23547         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
23548         set->regs[i] is NULL or has just one entry.
23549
23550 2010-06-03  Jan Hubicka  <jh@suse.cz>
23551
23552         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
23553         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
23554
23555 2010-06-03  Paul Brook  <paul@codesourcery.com>
23556
23557         * config/arm/arm.c (FL_TUNE): Define.
23558         (arm_default_cpu, arm_cpu_select): Remove.
23559         (all_cores): Populate core field.
23560         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
23561         (arm_find_cpu): New function.
23562         (arm_handle_option): Lookup cpu/architecture names.
23563         (arm_override_options): Cleanup mcpu/march/mtune handling.
23564         (arm_file_start): Ditto.
23565
23566 2010-06-03  Alan Modra  <amodra@gmail.com>
23567
23568         PR target/44169
23569         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
23570         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
23571         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
23572         (rs6000_emit_load_toc_table): Likewise.
23573
23574 2010-06-02  Jan Hubicka  <jh@suse.cz>
23575
23576         * passes.c (init_optimization_passes): Put ipa reference
23577         after ipa pure-const.
23578
23579 2010-06-02  Jan Hubicka  <jh@suse.cz>
23580
23581         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
23582         calls_read_all and calls_write_all.
23583         (get_reference_optimization_summary): Fix formatting.
23584         (is_proper_for_analysis): Check that decl is not readonly.
23585         (propagate_bits): Check CONST/PURE/noreturn flags.
23586         (ipa_init): Move all_module_statics to optimization_summary_obstack.
23587         (analyze_function): Ignore indirect edges.
23588         (copy_global_bitmap): For all module statics, do nothing.
23589         (generate_summary): Do not print calls_read_all/calls_write_all.
23590         (read_write_all_from_decl): Take node as argument; check
23591         cgraph_node_cannot_return.
23592         (propagate): Reorganize read_all/write_all computation;
23593         check indirect edges; check ecf flags; use all_module_statics
23594         in the results; do not free all_module_statics.
23595         (stream_out_bitmap): Handle all_module_statics.
23596         (ipa_reference_write_optimization_summary): Likewise; use
23597         varpool/cgraph encoders to get boundaries.
23598         (ipa_reference_read_optimization_summary): Read in all_module_statics;
23599         use it when possible.
23600
23601 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
23602
23603         PR target/44218
23604         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
23605         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
23606
23607         * doc/extend.texi (powerpc builtins): Document vec_recip,
23608         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
23609
23610         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
23611         (rs6000_emit_swrsqrt): Ditto.
23612         (rs6000_emit_swdivsf): Delete.
23613         (rs6000_emit_swdivdf): Ditto.
23614         (rs6000_emit_swrsqrtsf): Ditto.
23615
23616         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
23617         describe the reciprocal estimate support for each type.
23618         (recip_options): Map -mrecip=<opt> into option bits.
23619         (gen_2arg_fn_t): New typedef for binary rtx gen function.
23620         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
23621         reciprocal estimate instructions.
23622         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
23623         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
23624         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
23625         cost information if -mdebug=cost or -mdebug=reg.
23626         (rs6000_override_options): Set -mrecip-precision for power6, and
23627         power7 machines.  If -mvsx or -mdfp, enable various options that
23628         came in previous instruction set ISAs, unless the option was
23629         explicitly disabled by the command line option.  Parse
23630         -mrecip=<opt> options.
23631         (rs6000_builtin_vectorized_function): Add support for vectorizing
23632         the reciprocal estimate builtins and expansions.
23633         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
23634         (bdesc_2arg): Add reciprocal estimate builtins.
23635         (bdesc_1arg): Add reciprocal square root estimate builtins.
23636         (rs6000_expand_builtin): Rewrite to use a switch statement,
23637         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
23638         (rs6000_init_builtins): Create declarations for reciprocal
23639         estimate builtins.
23640         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
23641         sized, prefer traditional floating point registers, if integer
23642         vector types, prefer altivec registers.  Don't actually look at
23643         the memory address any more.
23644         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
23645         builtins.
23646         (rs6000_load_constant_and_splat): New helper function to load up
23647         the constant for reciprocal estimate instructions.
23648         (rs6000_emit_madd): New helper function for generating
23649         multiply/add type instructions, based on the current switches.
23650         (rs6000_emit_msub): Ditto.
23651         (rs6000_emit_mnsub): Ditto.
23652         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
23653         replace a divide with a reciprocal estimate and fixup, adding
23654         support for machines with high precision and vectors.
23655         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
23656         low precision machines.
23657         (rs6000_emit_swdiv): New common function to be called to replace a
23658         division with reciprocal estimate and fixup.
23659         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
23660         for double and vector types.  Add support for high precision machines.
23661
23662         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
23663         the reciprocal estimate instructions can be generated.
23664         (TARGET_FRE): Ditto.
23665         (TARGET_FRSQRTES): Ditto.
23666         (TARGET_FRSQRTE): Ditto.
23667         (RS6000_RECIP_*): New macros for reciprocal estimate support.
23668
23669         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
23670         square root estimate on vectors.
23671         (re<mode>2): New insn for reciprocal division estimate on vectors.
23672
23673         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
23674         New builtin.
23675         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
23676         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
23677         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
23678         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
23679         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
23680         (RS6000_BUILTIN_RSQRT): Ditto.
23681         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
23682         floating point builtin.
23683
23684         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
23685         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
23686         __RECIP_PRECISION__ based on the command line switches.
23687         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
23688
23689         * config/rs6000/rs6000.opt (-mrecip): Document add support for
23690         replacing division instructions with reciprocal estimate and fixup.
23691         (-mrecip=<opt>): New option.
23692         (-mrecip-precision): Ditto.
23693
23694         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
23695         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
23696         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
23697         precision scalar.
23698
23699         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
23700         (UNSPEC_VREFP): Ditto.
23701         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
23702         conterparts with regard to support of -mno-fused-madd and -ffast-math.
23703         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
23704         reciprocal estimate instructions to be generated.
23705         (altivec_vrefp): Ditto.
23706
23707         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
23708         estimate support.
23709         (rreg): New mode attribute for reciprocal estimate support.
23710         (recip<mode>3): New insn for division using reciprocal estimate
23711         and fixup builtins.
23712         (divide define_split): New define_split to convert floating point
23713         division to use reciprocal estimate if the user used the
23714         appropriate options and the split is run when we can add new
23715         pseudo registers for the fixup.
23716         (rsqrt<mode>2): New insn for reciprocal square root support.
23717         (recipsf3): Move into recip<mode>3.
23718         (recipdf3): Ditto.
23719         (fres): Use TARGET_FRES.
23720         (rsqrtsf2): Move into rsqrt<mode>2.
23721         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
23722         (copysignsf3): Add support for VSX.
23723         (fred): Use TARGET_FRE.
23724         (fred_fpr): Ditto.
23725         (rsqrtdf_internal1): New function for frsqrte instruciton.
23726
23727         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
23728         (vec_rsqrt): Ditto.
23729
23730 2010-06-03  Richard Guenther  <rguenther@suse.de>
23731
23732         PR middle-end/44291
23733         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
23734         (set_user_assembler_libfunc): Likewise.
23735
23736 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23737
23738         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
23739         defaults.h.
23740         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
23741         to defaults.h
23742         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
23743         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
23744         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
23745         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
23746         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
23747         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
23748         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
23749         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
23750         * defaults.h: Updated for above mentioned changes.
23751
23752 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
23753
23754         * c-common.c: Remove header include of tm_p.h.
23755         * Makefile.in (c-common.o): Remove TM_P_H dependency.
23756
23757 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
23758
23759         * tree.h (struct tree_decl_map): New type.
23760         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
23761         (tree_decl_map_hash): New prototype.
23762         (debug_expr_for_decl, value_expr_for_decl): Change into
23763         tree_decl_map hashtab from tree_map.
23764         (init_ttree): Adjust initialization.
23765         (tree_decl_map_hash): New function.
23766         (decl_debug_expr_lookup, decl_debug_expr_insert,
23767         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
23768
23769 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23770
23771         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
23772         linker emulations.
23773         * configure: Regenerate.
23774         * config.in: Regenerate.
23775
23776         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
23777         (X86_64_EMULATION): Define.
23778         (TARGET_LD_EMULATION): Use them.
23779
23780         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
23781         (SPARC64_EMULATION): Define.
23782         (LINK_ARCH_SPEC): Use them.
23783
23784 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23785
23786         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
23787         smallest_mode_for_size for computing the precision types of new
23788         graphite IVs.  Do not call lang_hooks.types.type_for_size.
23789
23790 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23791
23792         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
23793         information.
23794         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
23795
23796 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
23797
23798         PR middle-end/44363
23799         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
23800         return false instead.
23801
23802 2010-06-02  Jan Hubicka  <jh@suse.cz>
23803
23804         PR middle-end/44295
23805         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
23806         create new cgraph node to check callee.
23807
23808 2010-06-02  Richard Guenther  <rguenther@suse.de>
23809
23810         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
23811
23812 2010-06-02  Richard Guenther  <rguenther@suse.de>
23813
23814         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
23815         (lto_wrapper_cleanup): ... this.  Do not exit.
23816         (fatal): Adjust.  Exit here.
23817         (fatal_perror): Likewise.
23818         (fatal_signal): New function.
23819         (main): Set up signal handlers to cleanup temporary files.
23820         * Makefile.in (lto-wrapper.o): Adjust dependencies.
23821
23822 2010-06-02  Richard Guenther  <rguenther@suse.de>
23823
23824         PR tree-optimization/44377
23825         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
23826
23827 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23828
23829         * config/s390/2097.md (z10_fhex): Remove insn reservation.
23830         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
23831         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
23832         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
23833         instruction.
23834         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
23835
23836 2010-06-02  Jan Hubicka  <jh@suse.cz>
23837
23838         * bitmap.c (bitmap_descriptor): Add search_iter.
23839         (bitmap_find_bit): Increment it.
23840         (print_statistics): Print it.
23841
23842 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
23843
23844         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
23845         instead of gimple_build_call_vec.  Delete unnecessary local variable.
23846
23847 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23848
23849         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
23850         change from yesterday.
23851
23852 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
23853
23854         * c-ada-spec.c: Clean up redundant includes.
23855
23856 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
23857
23858         * gimplify.c: Do not include except.h and optabs.h.
23859         (gimplify_body): Do not initialize RTL profiling.
23860         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
23861         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
23862         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
23863         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
23864         langhooks.h.
23865
23866         * tree-pretty-print.h: Include pretty-print.h.
23867         * gimple-pretty-print.h: Include pretty-print.h.
23868
23869         * tree-pretty-print.c: Do not include diagnostic.h.
23870         * tree-vrp.c: Likewise.
23871         * tree-tailcall.c: Likewise
23872         * tree-scalar-evolution.c: Likewise
23873         * tree-ssa-dse.c: Likewise
23874         * tree-chrec.c: Likewise
23875         * tree-ssa-sccvn.c: Likewise
23876         * tree-ssa-copyrename.c: Likewise
23877         * tree-nomudflap.c: Likewise
23878         * tree-call-cdce.c: Likewise
23879         * tree-stdarg.c: Likewise
23880         * tree-ssa-math-opts.c: Likewise
23881         * tree-nrv.c: Likewise
23882         * tree-ssa-sink.c: Likewise
23883         * tree-browser.c: Likewise
23884         * tree-ssa-loop-ivcanon.c: Likewise
23885         * tree-ssa-loop.c: Likewise
23886         * tree-parloops.c: Likewise
23887         * tree-ssa-address.c: Likewise
23888         * tree-ssa-ifcombine.c: Likewise
23889         * tree-if-conv.c: Likewise
23890         * tree-data-ref.c: Likewise
23891         * tree-affine.c: Likewise
23892         * tree-ssa-phiopt.c: Likewise
23893         * tree-ssa-coalesce.c: Likewise
23894         * tree-ssa-pre.c: Likewise
23895         * tree-ssa-live.c: Likewise
23896         * tree-predcom.c: Likewise
23897         * tree-ssa-forwprop.c: Likewise
23898         * tree-ssa-dce.c: Likewise
23899         * tree-ssa-ter.c: Likewise
23900         * tree-ssa-loop-prefetch.c: Likewise
23901         * tree-optimize.c: Likewise
23902         * tree-ssa-phiprop.c: Likewise
23903         * tree-object-size.c: Likewise
23904         * tree-outof-ssa.c: Likewise
23905         * tree-ssa-structalias.c: Likewise
23906         * tree-switch-conversion.c: Likewise
23907         * tree-ssa-reassoc.c: Likewise
23908         * tree-ssa-operands.c: Likewise
23909         * tree-vectorizer.c: Likewise
23910         * tree-vect-data-refs.c: Likewise
23911         * tree-vect-generic.c: Likewise
23912         * tree-vect-stmts.c: Likewise
23913         * tree-vect-patterns.c: Likewise
23914         * tree-vect-slp.c: Likewise
23915         * tree-vect-loop.c: Likewise
23916         * tree-ssa-loop-ivopts.c: Likewise
23917         * tree-ssa-loop-im.c: Likewise
23918         * tree-ssa-loop-niter.c: Likewise
23919         * tree-ssa-loop-unswitch.c: Likewise
23920         * tree-ssa-loop-manip.c: Likewise
23921         * tree-ssa-loop-ch.c: Likewise
23922         * tree-dump.c: Likewise
23923         * tree-complex.c: Likewise
23924
23925         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
23926         * tree-ssa-uninit.c: Likewise
23927         * tree-ssa-threadupdate.c: Likewise
23928         * tree-ssa-uncprop.c: Likewise
23929         * tree-ssa-ccp.c: Likewise
23930         * tree-ssa-dom.c: Likewise
23931         * tree-ssa-propagate.c: Likewise
23932         * tree-ssa-alias.c: Likewise
23933         * tree-dfa.c: Likewise
23934         * tree-cfgcleanup.c: Likewise
23935         * tree-sra.c: Likewise
23936         * tree-ssa-copy.c: Likewise
23937         * tree-ssa.c: Likewise
23938         * tree-profile.c: Likewise
23939         * tree-cfg.c: Likewise
23940         * tree-ssa-threadedge.c: Likewise
23941         * tree-vect-loop-manip.c: Likewise
23942
23943         * tree-inline.c: Do not include diagnostic.h and expr.h.
23944         Include rtl.h.
23945         (copy_decl_for_dup_finish): Do not use NULL_RTX.
23946
23947         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
23948         * tree-loop-distribution.c: Likewise.
23949
23950 2010-06-01  Jan Hubicka  <jh@suse.cz>
23951
23952         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
23953
23954 2010-06-01  Jan Hubicka  <jh@suse.cz>
23955
23956         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
23957         remove return value.
23958         (split_bbs_on_noreturn_calls) .... here.
23959         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
23960         * tree-flow.h (fixup_noreturn_call): New.
23961
23962 2010-06-01  Jan Hubicka  <jh@suse.cz>
23963
23964         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
23965
23966 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
23967
23968         * tree.h (build_nt_call_list): Delete.
23969         * tree.c (build_nt_call_list): Delete.
23970
23971 2010-06-01  Jan Hubicka  <jh@suse.cz>
23972
23973         * fwprop.c: Make emit-rtl.h include last.
23974         * rtlanal.c: Include emit-rtl.h.
23975         * genautomata.c: Output emit-rtl include into insn-automata.c
23976         * df-scan.c: Include emit-rtl.h.
23977         * haifa-sched.c: Indlude emit-rtl.h.
23978         * mode-switching.c: Indlude emit-rtl.h.
23979         * graph.c: Indlude emit-rtl.h.
23980         * sel-sched.c: Include emit-rtl.h.
23981         * sel-sched-ir.c: Include emit-rtl.h.
23982         * ira-build.c: Include emit-rtl.h.
23983         * emit-rtl.c (first_insn, last_insn): Remove defines.
23984         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
23985         Move to emit-rtl.h.
23986         (set_new_first_and_last_insn, get_last_insn_anywhere,
23987         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
23988         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
23989         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
23990         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
23991         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
23992         Use accessor functions.
23993         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
23994          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
23995         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
23996         mem_expr_equal_p): Move here from rtl.h.
23997         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
23998         Move here from emit-rtl.c; make inline.
23999         * cfglayout.h: Include emit-rtl.h.
24000         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
24001          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
24002         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
24003         mem_expr_equal_p, get_insns, set_first-insn,
24004         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
24005         * reg-stack.c: Include emit-rtl.h.
24006         * dce.c: Likewise.
24007
24008 2010-06-01  Jan Hubicka  <jh@suse.cz>
24009
24010         * cgraph.h (tree_function_versioning): Update prototype.
24011         (cgraph_function_versioning): Update prototype.
24012         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
24013         bitmap.
24014         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
24015         (cgraph_materialize_clone, save_inline_function_body): Update use of
24016         tree_function_versioning.
24017         * tree-inline.c (copy_bb): Look for previous copied block to link
24018         after; fix debug output.
24019         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
24020         (copy_body): Likewise.
24021         (expand_call_inline): Update use of copy_body.
24022         (tree_function_versioning): Update use of copy body; accept
24023         blocks_to_copy and new_entry.
24024
24025 2010-06-01  Jan Hubicka  <jh@suse.cz>
24026
24027         * gegenrtl.c: Remove unnecesary prototypes.
24028         (gendecl): Remove.
24029         (gendef): Produce static inline.
24030         (gencode): Remove.
24031         (main): Do not decode parameters; generate header only.
24032         * Makefile.in (genrtl.c): Remove.
24033
24034 2010-06-01  Jan Hubicka  <jh@suse.cz>
24035
24036         * tree-switch-conversion.c (build_one_array): Make it readonly.
24037
24038 2010-06-01  Richard Guenther  <rguenther@suse.de>
24039
24040         * optabs.c (init_optabs): Guard all accesses to reinit.
24041         * ipa-pure-const.c (propagate): Fix another typo.
24042         * opts.c (common_handle_option): Split assignment to bool.
24043         * c-opts.c (c_common_handle_option): Likewise.
24044
24045 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
24046             Matthew Gingell  <gingell@adacore.com>
24047
24048         * doc/invoke.texi: Mention -fdump-ada-spec.
24049         * tree-dump.c (dump_files): Add ada-spec.
24050         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
24051         * tree-pass.h (tree_dump_index): Add TDI_ada.
24052         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
24053         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
24054         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
24055         * c-decl.c: Include c-ada-spec.h.
24056         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
24057         functions.
24058         (c_write_global_declarations): Add handling of -fdump-ada-spec.
24059         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
24060         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
24061         * c-ada-spec.h, c-ada-spec.c: New files.
24062
24063 2010-06-01  Richard Guenther  <rguenther@suse.de>
24064
24065         PR lto/43853
24066         * ipa-pure-const.c (get_function_state): Hand back varying state
24067         if we do not have one.
24068         (has_function_state): New function.
24069         (duplicate_node_data): Adjust.
24070         (remove_node_data): Likewise.
24071         (pure_const_write_summary): Likewise.
24072         (propagate): Likewise.  Fix typo.
24073
24074 2010-06-01  Jan Hubicka  <jh@suse.cz>
24075
24076         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
24077         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
24078         (execute_all_ipa_transforms): Do not play with the states.
24079
24080 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
24081
24082         * config/arm/t-linux-androideabi: New.
24083         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
24084
24085 2010-06-01  Jan Hubicka  <jh@suse.cz>
24086
24087         * tree-inline.c (estimate_num_insns): For stdarg functions look
24088         into call statement to count cost of argument passing.
24089
24090 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
24091
24092         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
24093         argument for fprintf.
24094         (ix86_output_addr_diff_elt): Likewise.
24095         (x86_function_profiler): Likewise.
24096         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
24097         (LPREFIX): Likewise.
24098         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
24099
24100 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
24101
24102         PR target/44338
24103         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
24104         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
24105         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
24106         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
24107         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
24108         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
24109         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
24110         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
24111         TARGET_FUSED_MADD.
24112
24113 2010-05-31  Jan Hubicka  <jh@suse.cz>
24114
24115         * tree.h (tree_range_check_failed): Declare noreturn.
24116
24117 2010-05-31  Jan Hubicka  <jh@suse.cz>
24118
24119         * gimple.c (gimple_call_builtin_p): New function.
24120         * gimple.h (gimple_call_builtin_p): Declare.
24121         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
24122         to exit.
24123         (execute_warn_function_return): BUILT_IN_RETURN is return.
24124         (split_critical_edges): Return edges are not critical.
24125         (is_ctrl_altering_stmt): Builtin_in_return is altering.
24126         (gimple_verify_flow_info): Handle built_in_return.
24127         (execute_warn_function_return): Handle built_in_return.
24128         * ipa-pure-const.c (check_call): Ignore builtin_return.
24129
24130 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
24131
24132         PR middle-end/44337
24133         * expr.c (expand_assignment): Don't store anything for out-of-bounds
24134         array accesses with non-MEM.
24135
24136         PR tree-optimization/44182
24137         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
24138         newly needs to end a bb is followed by debug stmts, instead return
24139         true from the function at the end.
24140         (maybe_move_debug_stmts_to_successors): New function.
24141         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
24142
24143 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
24144
24145         PR target/44161
24146         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
24147
24148 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
24149
24150         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
24151         for nested functions in non-optimized compilation.
24152
24153 2010-05-31  Richard Guenther  <rguenther@suse.de>
24154
24155         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
24156
24157 2010-05-30  Jan Hubicka  <jh@suse.cz>
24158
24159         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
24160
24161 2010-05-30  Richard Guenther  <rguenther@suse.de>
24162
24163         PR lto/42975
24164         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
24165         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
24166         no longer needed.
24167
24168 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
24169
24170         * config/darwin.c (output_objc_section_asm_op): Add comment.
24171         (name_needs_quotes): Add '_' to list of valid comment chars.
24172         (machopic_output_function_base_name): Remove unneeded quotes.
24173         (darwin_encode_section_info): Adjust asm whitespace.
24174         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
24175         (ASM_OUTPUT_LOCAL): Ditto.
24176         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
24177         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
24178         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
24179
24180 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
24181
24182         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
24183         RS6000_OUTPUT_BASENAME unconditionally.
24184         (rs6000_output_function_epilogue): Likewise.
24185
24186 2010-05-30  Jan Hubicka  <jh@suse.cz>
24187
24188         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
24189         nodes.
24190
24191 2010-05-30  Richard Guenther  <rguenther@suse.de>
24192
24193         * tree-cfg.c (verify_gimple_assign_single): Implement
24194         verification for COND_EXPR rhs.
24195
24196 2010-05-30  Jan Hubicka  <jh@suse.cz>
24197
24198         * cgraph.h (cgraph_dump_file): Declare.
24199         * cgraphunit.c (cgraph_dump_file): Export.
24200         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
24201
24202 2010-05-30  Jan Hubicka  <jh@suse.cz>
24203
24204         * dwarf2out.c (reference_to_unused,
24205         premark_types_used_by_global_vars_helper): Avoid creation of new
24206         varpool nodes.
24207
24208 2010-05-30  Jan Hubicka  <jh@suse.cz>
24209
24210         * cgraph.h (cgraph_node_cannot_return,
24211         cgraph_edge_cannot_lead_to_return): New functions.
24212         * cgraph.c (cgraph_node_cannot_return,
24213         cgraph_edge_cannot_lead_to_return): Use them.
24214         * ipa-pure-const.c (pure_const_names): New static var.
24215         (check_call): Handle calls not leading to return.
24216         (pure_const_read_summary): Dump info read.
24217         (propagate): Dump info about propagation process; ignore side effects
24218         of functions not leading to exit; fix handling of pure functions.
24219
24220 2010-05-30  Jan Hubicka  <jh@suse.cz>
24221
24222         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
24223         for tail call epilogues.
24224
24225 2010-05-30  Jan Hubicka  <jh@suse.cz>
24226
24227         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
24228         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
24229         dump files.
24230
24231 2010-05-29  Jan Hubicka  <jh@suse.cz>
24232
24233         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
24234         node; remove references in node we no longer keep in cgrpah but need
24235         body of.
24236
24237 2010-05-29  Jan Hubicka  <jh@suse.cz>
24238
24239         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
24240
24241 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24242
24243         PR target/44165
24244         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
24245
24246 2010-05-29  Jan Hubicka  <jh@suse.cz>
24247
24248         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
24249         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
24250         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
24251         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
24252         debug_names_replaced_by, debug_update_ssa): Likewise.
24253         * sbitmap.c (debug_sbitmap): Likewise.
24254         * genrecog.c (debug_decision, debug_decision_list): Likewise.
24255         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
24256         debug_tree_chain): Likewise.
24257         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
24258         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
24259         * optabs.c (debug_optab_libfuncs): Likewise.
24260         (verify_loop_closed_ssa): Likewise.
24261         * value-prof.c (verify_histograms): Likewise.
24262         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
24263         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
24264         * cfghooks.c (verify_flow_info): Likewise.
24265         * fold-const.c (debug_fold_checksum): Likewise.
24266         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
24267         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
24268         Likewise.
24269         * omega.c (debug_omega_problem): Likewise.
24270         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
24271         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
24272         * dominance.c (verify_dominators, debug_dominance_info,
24273         debug_dominance_tree): Likewise.
24274         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
24275         * df_regno_debug, df_ref_debug,
24276         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
24277         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
24278         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
24279         * sel-sched.c (debug_state): Likewise.
24280         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
24281         Likewise.
24282         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
24283         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
24284         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
24285         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
24286         Likewise.
24287         * c-pretty-print.c (debug_c_tree): Likewise.
24288         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
24289         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
24290         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
24291         * ebitmap.c (debug_ebitmap): Likewise.
24292         * function.c (debug_find_var_in_block_tree): Likewise.
24293         * print-rtl.c (debug_rtx): Likewise.
24294         (debug_rtx_count): Likewise.
24295         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
24296         * stor-layout.c (debug_rli): Likewise.
24297         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
24298         * tree-data-ref.c (debug_data_references,
24299         debug_data_dependence_relations, debug_data_reference,
24300         debug_data_dependence_relation, debug_rdg_vertex,
24301         debug_rdg_component, debug_rdg): Likewise.
24302         * tree-affine.c (debug_aff): Likewise.
24303         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
24304         Likewise.
24305         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
24306         * emit-rtl.c (verify_rtl_sharing): Likewise.
24307         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
24308         debug_value_expressions): Likewise.
24309         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
24310         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
24311         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
24312         * cfglayout.c (verify_insn_chain): Likewise.
24313         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
24314         debug_clast_stmt, debug_generated_program): Likewise.
24315         * ggc-page.c (debug_print_page_list): Likewise.
24316         * tree-ssa-ter.c (debug_ter): Likewise.
24317         * graphite-dependences.c (debug_pddr): Likewise.
24318         * sched-deps.c (debug_ds): Likewise.
24319         * tree-ssa.c (verify_ssa): Likewise.
24320         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
24321         debug_scattering_functions, debug_iteration_domains, debug_pdr,
24322         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
24323         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
24324         * tree-inline.c (debug_find_tree): Likewise.
24325         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
24326         debug_ppl_powerset_matrix): Likewise.
24327         * var-tracking.c (debug_dv): Likewise.
24328         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
24329         * cfgloop.c (verify_loop_structure): Likewise.
24330         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
24331         * c-common.c (verify_sequence_points): Likewise.
24332         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
24333         debug_candidates, debug_rgn_dependencies): Likewise.
24334         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
24335         * debug_constraint_graph, debug_solution_for_var,
24336         debug_sa_points_to_info): Likewise.
24337         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
24338         Likewie.
24339         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
24340         debug_loops, debug_loop, debug_loop_num): Likewise.
24341         * passes.c (debug_pass): Likewise.
24342         (dump_properties): Likewise; add cfglayout property.
24343         (debug_properties): Likewise.
24344         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
24345         * varpool.c (debug_varpool): Likewise.
24346         * regcprop.c (debug_value_data): Likewise.
24347         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
24348         debug_immediate_uses_for): Likewise.
24349
24350 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
24351
24352         PR bootstrap/44315
24353         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
24354         Filter out insn-flags.h.
24355
24356 2010-05-29  Jan Hubicka  <jh@suse.cz>
24357
24358         * cgraph.h (struct varpool_node_set_def,
24359         struct cgraph_node_set_def): Remove unused AUX pointer.
24360         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
24361         VEC_empty macro.
24362
24363 2010-05-29  Jan Hubicka  <jh@suse.cz>
24364
24365         PR middle-end/44324
24366         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
24367
24368 2010-05-29  Richard Guenther  <rguenther@suse.de>
24369
24370         * lto-streamer.c (cached_bp): New global variable.
24371         (bitpack_create): Return the cached bitpack, if available.
24372         (bitpack_delete): Clear and cache the bitpack, if appropriate.
24373         (bp_pack_value): Remove redundant asserts.
24374
24375 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
24376
24377         PR middle-end/44306
24378         * tree-if-conv.c (is_true_predicate): New.
24379         (is_predicated): Use is_true_predicate.
24380         (add_to_predicate_list): Same.  Do not use unshare_expr.
24381         (add_to_dst_predicate_list): Same.
24382
24383 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
24384
24385         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
24386         field on edges.
24387         (predicate_bbs): Same.
24388         (clean_predicate_lists): Same.
24389         (find_phi_replacement_condition): Do not AND the predicate from
24390         edge->aux.
24391
24392 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
24393
24394         PR bootstrap/44315
24395         * Makefile.in (build/gencondmd.o): Add a missing `\'.
24396
24397 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24398
24399         PR target/44261
24400         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
24401         (negdf2): Adjust expander pattern and use negdf2_slow.
24402         (negsf2): Likewise.
24403
24404 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
24405
24406         * basic-block.h (struct control_flow_graph): Move last_label_uid field
24407         up.
24408         * df.h (struct df_base_ref): Move regno field up.
24409         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
24410         * expr.h (struct separate_ops): Move location field up.
24411         * optabs.h (struct optab_d): Move libcall_basename field down.
24412         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
24413         * config/i386/i386.h (struct machine_function): Convert call_abi field
24414         into a bitfield.  Move cfa field to the end of the structure.
24415
24416 2010-05-29  Jan Hubicka  <jh@suse.cz>
24417
24418         * varpool.c (varpool_get_node): Fix lookup.
24419
24420 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24421
24422         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
24423         RTL specific prototypes with #ifdef RTX_CODE.
24424         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
24425         * config/spu/t-spu-elf: Fix dependencies.
24426
24427         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
24428
24429 2010-05-29  Mike Stump  <mikestump@comcast.net>
24430
24431         PR bootstrap/44315
24432         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
24433         TM_H when building to avoid dependency loops.
24434
24435 2010-05-29  Jan Hubicka  <jh@suse.cz>
24436
24437         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
24438         refs and body; not the whole node for masters of materialized clones.
24439
24440 2010-05-29  Mike Stump  <mikestump@comcast.net>
24441
24442         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
24443
24444 2010-05-29  Jan Hubicka  <jh@suse.cz>
24445
24446         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
24447         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
24448         use of clone_function_name.
24449         * cgraph.h (cgraph_create_virtual_clone,
24450         cgraph_function_versioning): update prototypes.
24451         (clone_function_name): Declare.
24452         * ipa-cp.c (ipcp_insert_stage): Update call of
24453         cgraph_create_virtual_clone.
24454         * omp-low.c (create_omp_child_function_name): Use
24455         cgraph_create_virtual_clone.
24456         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
24457         (cgraph_function_versioning): Take SUFFIX argument; produce new name
24458         and make decl local.
24459
24460 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24461
24462         * vec.h: Include statistics.h
24463         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
24464         with VEC_H.
24465
24466 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24467
24468         * c-lex.c: Do not include c-tree.h.
24469         * c-pretty-print.c: Likewise.
24470         * c-opts.c: Likewise.
24471         * c-gimplify.c: Likewise.
24472         * c-common.c: Likewise.
24473         * c-dump.c: Likewise.  Include c-common.h.
24474
24475 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24476
24477         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
24478         before including diagnostic-core.h.
24479         (c_cpp_error): New prototype moved from c-tree.h.
24480         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
24481         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
24482         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
24483         (c_cpp_error): Prototype moved to c-common.h.
24484         * Makefile.in: Update dependency for C_COMMON_H.
24485
24486 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
24487
24488         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
24489         * c-common.c (c_register_addr_space): Remove here.
24490         * c-decl.c (c_register_addr_space): Re-add here.
24491
24492 2010-05-28  Mike Stump  <mikestump@comcast.net>
24493
24494         * config/darwin-c.c: Remove c-tree.h include.
24495
24496 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24497
24498         * gcc.c: Include diagnostic.h.
24499         (error_count): Remove.  All users changed to use errorcount.
24500         (programname): Remove.  All users changed to use progname.
24501         (fancy_abort, internal_error, fatal_error, error, warning, inform,
24502         fnotice): Remove.
24503         (execute): Don't include "Internal error" and bug reporting
24504         information in argument of internal_error call.
24505         (process_command): Don't increment error_count after calling
24506         perror_with_name.
24507         (input_filename): Rename to gcc_input_filename.  All users
24508         changed.
24509         (main): Call diagnostic_initialize.  Register delete_temp_files
24510         with atexit.  Use seen_error to test for errors.
24511         * gcc.h: Include diagnostic-core.h.
24512         (fatal_error, error, warning): Remove.
24513         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
24514         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
24515         (gcc.o): Update dependencies.
24516
24517 2010-05-28  Jeff Law  <law@redhat.com>
24518
24519         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
24520         functions.
24521         * ira.h (ira_bad_reload_regno): Declare
24522         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
24523
24524         * ira-color.c (update_curr_costs): Free updated hard reg costs.
24525         (ira_reassign_conflict_allocnos): Remove bogus asserts.
24526         (allocno_reload_assign): Likewise.
24527
24528 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
24529
24530         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
24531         build1_stat.
24532
24533 2010-05-28  Richard Guenther  <rguenther@suse.de>
24534
24535         PR lto/44312
24536         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
24537         Stream fixed-point constants mode.
24538         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
24539         and TYPE_PRECISION.
24540         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
24541         Stream fixed-point constants mode.
24542         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
24543         and TYPE_PRECISION.
24544
24545 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24546
24547         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
24548         only place it was called from.
24549         (number_of_latch_executions): Do not return chrec_dont_know when the
24550         may_be_zero is a runtime condition: instead, return a COND_EXPR
24551         including the may_be_zero condition.
24552         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
24553         of nb_iterations.
24554         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
24555         COND_EXPRs.
24556
24557 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24558
24559         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
24560         generate COND_EXPRs for degenerate_phi_result.
24561
24562 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
24563
24564         PR middle-end/44293
24565         * tree-if-conv.c (if_convertible_loop_p): Check the
24566         if-convertibility of phi nodes in non predicated BBs.
24567
24568 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24569
24570         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
24571
24572 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24573
24574         PR driver/15303
24575         * gcc.c (inform, warning, inform): New functions.
24576         (fatal_ice): Rename to internal_error; change cmsgid parameter to
24577         gmsgid.  All callers changed.
24578         (notice): Rename to fnotice; add parameter fp.  All callers changed.
24579         (fatal_error): Rename to fatal_signal.  All users changed.
24580         (fatal): Rename to fatal_error; change cmsgid parameter to
24581         gmsgid.  All callers changed.
24582         (process_command): Use warning instead of error for warnings.
24583         (end_going_arg): Don't use _() around argument of error.
24584         (do_spec_1): Use inform for message from %n specs.  Use warning
24585         instead of error for warnings.
24586         (main): Use inform for comparison messages.  Use warning for
24587         message about unused linker input.
24588         (error): Increment error_count.  Print "error: ".
24589         * gcc.h (fatal): Change to fatal_error.
24590         (warning): Declare.
24591         * config/darwin-driver.c (darwin_default_min_version): Use warning
24592         instead of fprintf for warnings.
24593         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
24594
24595 2010-05-28  Julian Brown  <julian@codesourcery.com>
24596
24597         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
24598         (*thumb2_addsi3_compare0_scratch): New.
24599         * config/arm/constraints.md (Pv): New.
24600         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
24601         for ARM mode only.
24602         (*addsi3_compare0_scratch): Likewise.
24603
24604 2010-05-28  Jan Hubicka  <jh@suse.cz>
24605
24606         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
24607         check.
24608         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
24609         only on local statics.
24610
24611 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
24612
24613         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
24614
24615 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
24616
24617         PR bootstrap/44314
24618         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
24619         (OPTION_GLIBC): Define.
24620
24621 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
24622
24623         PR debug/41048
24624         * dwarf2out.c (double_int_type_size_in_bits): New function.
24625         (round_up_to_align): Change first argument and return value to
24626         double_int.
24627         (field_byte_offset): Work internally on double_ints.
24628
24629         PR target/43636
24630         * builtins.c (expand_movstr): Use a temporary pseudo instead
24631         of target even when target is not NULL and not const0_rtx, but
24632         fails movstr predicate.
24633         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
24634
24635 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
24636
24637         * final.c (rest_of_clean_state): Use %m in errors instead of
24638         strerror (errno).
24639         * gengtype.c (read_input_list, close_output_files): Use xstrerror
24640         instead of strerror.
24641         * toplev.c (process_options): Use %m in errors instead of strerror
24642         (errno).
24643         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
24644         (errno).
24645
24646 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
24647
24648         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
24649         (ix86_canonical_va_list_type): Make static.  Add declaration.
24650         (ix86_enum_va_list): Make static.  Reindent.
24651         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
24652         (ix86_canonical_va_list_type): Ditto.
24653         (ix86_enum_va_list): Ditto.
24654
24655 2010-05-28  Richard Guenther  <rguenther@suse.de>
24656
24657         * lto-wrapper.c (run_gcc): With -save-temps generate a
24658         user-visible ltrans filename.  Fixup ltrans unit numbering.
24659
24660 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
24661
24662         * c-common.c (c_common_nodes_and_builtins): Replace use
24663         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
24664         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
24665         to ix86_enum_va_list.
24666         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
24667         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
24668         (TARGET_ENUM_VA_LIST_P): Add hook description.
24669         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
24670         * target.h (gcc_target): Add enum_va_list hook.
24671
24672         PR bootstrap/44299
24673         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
24674         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
24675         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
24676
24677 2010-05-28  Alan Modra  <amodra@gmail.com>
24678
24679         PR target/44266
24680         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
24681         emit_library_call machinery to set up __tls_get_addr calls.
24682
24683 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24684
24685         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
24686
24687 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
24688
24689         Revert fix for PR c++/44188
24690         * c-common.c (is_typedef_decl): Revert the moving of  this
24691         definition ...
24692         * tree.c (is_typedef_decl): ... here.
24693         (typdef_variant_p): Revert the moving of this  definition
24694         here from cp/tree.c.
24695         * c-common.h (is_typedef_decl): Revert the moving of this
24696         declaration ...
24697         * tree.h (is_typedef_decl): ... here.
24698         (typedef_variant_p): Revert the moving of this  declaration here
24699         from cp/cp-tree.h
24700         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
24701         (gen_tagged_type_die): Revert the splitting out of ...
24702         (gen_type_die_with_usage): ... this function. Revert the anonymous
24703         tagged type handling.
24704         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
24705         typedefs naming anonymous tagged types.
24706
24707 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
24708
24709         * config/rs6000/rs6000-modes.def (PSImode): Delete.
24710
24711 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
24712
24713         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
24714         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
24715         throughout.
24716         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
24717         "xer" to "ca".
24718         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
24719         XER_REGS to CA_REGS throughout.
24720         * config/rs6000/rs6000.h: Same.
24721         (ADDITIONAL_REGISTER_NAMES): Add "xer".
24722         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
24723         that mode_iterator "P" is the size for arithmetic carries as well.
24724         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
24725
24726 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
24727
24728         PR bootstrap/44255
24729         * combine.c (struct rtx_subst_pair): Define unconditionally.
24730         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
24731         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
24732         Call make_compound_operation on pair->to.
24733         (propagate_for_debug): Don't call make_compound_operation here.
24734         Always use simplify_replace_fn_rtx.
24735
24736 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
24737
24738         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
24739         * config/xtensa/xtensa.c (override_options): Check
24740           TARGET_FORCE_NO_PIC and set flag_pic.
24741         * config/xtensa/xtensa.opt: Document -mforce-no-pic
24742
24743 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
24744
24745         PR bootstrap/44299
24746         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
24747         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
24748
24749 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
24750
24751         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
24752         toplev.h.
24753         * diagnostic.c: Don't include toplev.h.
24754         (progname): Define.  Moved from toplev.c.
24755         (seen_error): New function.
24756         * diagnostic.h: Include diagnostic-core.h.
24757         (diagnostic_t, emit_diagnostic): Don't declare here.
24758         * toplev.c (progname): Move to toplev.c.
24759         (emit_debug_global_declarations, compile_file, finalize,
24760         do_compile, toplev_main): Use seen_error.
24761         * toplev.h: Include diagnostic-core.h.
24762         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
24763         internal_error, warning, warning_at, error, error_n, error_at,
24764         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
24765         verbatim, fnotice, progname): Move to diagnostic-core.h.
24766         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
24767         (expand_builtin_expect): Use seen_error.
24768         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
24769         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
24770         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
24771         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
24772         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
24773         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
24774         errorcount for errors.
24775         * c-opts.c (c_common_finish): Use seen_error.
24776         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
24777         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
24778         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
24779         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
24780         (get_coverage_counts): Use seen_error.
24781         * dwarf2out.c (dwarf2out_finish): Use seen_error.
24782         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
24783         gimplify_body): Use seen_error.
24784         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
24785         * ipa-pure-const.c (gate_pure_const): Use seen_error.
24786         * ipa-reference.c (gate_reference): Use seen_error.
24787         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
24788         * lambda-code.c: Include diagnostic-core.h instead of
24789         diagnostic.h.
24790         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
24791         * lto-compress.c: Include diagnostic-core.h instead of
24792         diagnostic.h.
24793         * lto-section-in.c: Include diagnostic-core.h instead of
24794         diagnostic.h.
24795         * lto-streamer-out.c: Include diagnostic-core.h instead of
24796         diagnostic.h.
24797         * lto-streamer.c: Include diagnostic-core.h instead of
24798         diagnostic.h.
24799         (gate_lto_out): Use seen_error.
24800         * matrix-reorg.c: Include diagnostic-core.h instead of
24801         diagnostic.h.
24802         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
24803         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
24804         (gate_expand_omp, lower_omp_1): Use seen_error.
24805         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
24806         (rest_of_decl_compilation, rest_of_type_compilation,
24807         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
24808         * tree-cfg.c (label_to_block_fn): Use seen_error.
24809         * tree-inline.c (optimize_inline_calls): Use seen_error.
24810         * tree-mudflap.c (mudflap_finish_file): Use
24811         seen_error.
24812         * tree-optimize.c (gate_all_optimizations,
24813         gate_all_early_local_passes, gate_all_early_optimizations): Use
24814         seen_error.
24815         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
24816         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
24817         (varpool_remove_unreferenced_decls,
24818         varpool_assemble_pending_decls): Use seen_error.
24819         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
24820         (TOPLEV_H, DIAGNOSTIC_H): Update.
24821         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
24822         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
24823         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
24824         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
24825         coverage.o, lambda-code.o): Update dependencies.
24826
24827 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
24828
24829         PR c++/44188
24830         * c-common.c (is_typedef_decl): Move this definition ...
24831         * tree.c (is_typedef_decl): ... here.
24832         (typdef_variant_p): Move definition here from cp/tree.c.
24833         * c-common.h (is_typedef_decl): Move this declaration ...
24834         * tree.h (is_typedef_decl): ... here.
24835         (typedef_variant_p): Move declaration here from cp/cp-tree.h
24836         * dwarf2out.c (is_naming_typedef_decl): New function.
24837         (gen_tagged_type_die): Split out of ...
24838         (gen_type_die_with_usage): ... this function. When an anonymous
24839         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
24840         is emitted for the typedef.
24841         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
24842         anonymous tagged types.
24843
24844 2010-05-27  Jason Merrill  <jason@redhat.com>
24845
24846         * print-tree.c (debug_vec_tree): New fn.
24847         (print_vec_tree): New fn.
24848         * tree.h: Declare them.
24849         * gdbinit.in (pvt): New command.
24850
24851         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
24852
24853         * gdbinit.in (pdd): New command.
24854
24855 2010-05-27  Jan Hubicka  <jh@suse.cz>
24856
24857         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
24858         (update_caller_keys): Return early if there are no callers;
24859         only update fibheap when decresing the key.
24860         (update_callee_keys): Avoid recursion.
24861         (decide_inlining_of_small_functions): When badness does not match;
24862         re-insert into fibheap.
24863
24864 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
24865
24866         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
24867         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
24868         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
24869         (ALL_HOST_OBJS): Now a union of the above two.
24870         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
24871         all files in ALL_HOST_FRONTEND_OBJS.
24872         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
24873
24874         * c-common.c: Pretend to be a backend file by undefining
24875         IN_GCC_FRONTEND (still need rtl.h here).
24876
24877 2010-05-27  Jan Hubicka  <jh@suse.cz>
24878
24879         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
24880         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
24881
24882 2010-05-27  Jan Hubicka  <jh@suse.cz>
24883
24884         * sched-ebb.c: Rename struct deps to struct deps_desc.
24885         * ddg.c: Likewise.
24886         * sel-sched-ir.c: Likewise.
24887         * sched-deps.c: Likewise.
24888         * sched-int.h: Likewise.
24889         * sched-rgn.c: Likewise.
24890
24891 2010-05-27  Jon Beniston  <jon@beniston.com>
24892
24893         PR 43726
24894         * config/lm32/lm32.h: Remove definition of
24895         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
24896
24897 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
24898
24899         PR lto/44230
24900         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
24901
24902 2010-05-27  Richard Guenther  <rguenther@suse.de>
24903
24904         PR tree-optimization/44284
24905         * tree-vect-stmts.c (vectorizable_assignment): Handle
24906         sign-changing conversions as simple copy.
24907
24908 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24909
24910         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
24911         Bionic C library.
24912         (__gthread_active_p): Check for pthread_create if compiling against
24913         Bionic C library.
24914
24915 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24916
24917         Support compilation for Android platform.  Reimplement -mandroid.
24918
24919         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
24920         (*android*): Set ANDROID_DEFAULT.
24921         (arm*-*-linux*): Include linux-android.h.
24922         (arm*-*-eabi*): Don't include previous -mandroid implementation.
24923         * config/arm/eabi.h: Remove, move Android-specific parts ...
24924         * config/linux-android.h: ... here.  New file.
24925         * config/arm/eabi.opt: Rename to ...
24926         * config/linux-android.opt: ... this.
24927         (mandroid): Allow -mno-android option.  Initialize based on
24928         ANDROID_DEFAULT.
24929         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
24930         Move logic to corresponding LINUX_TARGET_* macros.
24931         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
24932         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
24933         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
24934         Android definitions.
24935         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
24936         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
24937         Document.
24938
24939 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
24940
24941         Add support for Bionic C library
24942
24943         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
24944         macro.
24945         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
24946         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
24947
24948         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
24949         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
24950         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
24951         to support multiple C libraries.  Handle Bionic.
24952         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
24953         (BIONIC_DYNAMIC_LINKER64): Define.
24954         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
24955         Update.
24956         (TARGET_HAS_SINCOS): Enable for Bionic.
24957
24958         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
24959         the last option specified on command line take effect.
24960         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
24961         (mbionic): New.
24962         (mglibc, muclibc): Update.
24963
24964         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
24965         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
24966         DEFAULT_LIBC.
24967
24968         * doc/invoke.texi (-mglibc, -muclibc): Update.
24969         (-mbionic): Document.
24970
24971 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24972
24973         * c-common.h (c_register_addr_space): Add prototype.
24974         (ADDR_SPACE_KEYWORD): Remove.
24975         * c-common.c (c_register_addr_space): New function.
24976         (c_addr_space_name): Reimplement.
24977         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
24978
24979         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
24980         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
24981
24982         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
24983         Remove TARGET_ADDR_SPACE_KEYWORDS.
24984
24985 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
24986
24987         * input.c: New file.
24988         * input.h (main_input_filename): Move declaration to toplev.h.
24989         * toplev.c (input_location, line_table): Move to input.c
24990         * toplev.h (main_input_filename): Move declaration from input.h.
24991         * tree.c (expand_location): Move to input.c.
24992         * Makefile.in (OBJS-common): Add input.o.
24993         (input.o): Add dependencies.
24994
24995 2010-05-27  Richard Guenther  <rguenther@suse.de>
24996
24997         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
24998         for non-existant files.
24999         (fork_execute): Mark args_name file as deleted.
25000
25001 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
25002
25003         PR bootstrp/44287
25004         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
25005         (narrow_signed_type): Likewise.
25006
25007 2010-05-26  Jan Hubicka  <jh@suse.cz>
25008
25009         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
25010         edge only when checking is enabled; check using former_clone_of;
25011         check inline clones too.
25012         (cgraph_materialize_clone): Record former_clone_of pointer.
25013         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
25014         combining redirections; dump args_to_skip bitmap
25015         (cgraph_materialize_all_clones): Do no redirection here.
25016         * ipa-inline.c (inline_transform): Do redirection here.
25017         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
25018         cheking only).
25019
25020 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25021
25022         * config/avr/avr-c.c: Do not include regs.h.
25023         Include cpplib.h for cpp_define and tree.h for c-common.h.
25024         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
25025         * config/avr/t-avr: Fix dependencies for avr-c.o.
25026
25027 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25028
25029         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
25030         string instead of SYMBOL_REF rtx.
25031         * rtl.h (set_stack_check_libfunc): Move prototype from here...
25032         * libfuncs.h: ...to here.  Adjust for explow.c change.
25033
25034 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
25035
25036         * pretty-print.c: Don't include ggc.h.
25037         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
25038         (identifier_to_locale): Use them for allocation.
25039         * pretty-print.h (identifier_to_locale_alloc,
25040         identifier_to_locale_free): Declare.
25041         * toplev.c (alloc_for_identifier_to_locale): New.
25042         (general_init): Set identifier_to_locale_alloc and
25043         identifier_to_locale_free.
25044         * Makefile.in (pretty-print.o): Update dependencies.
25045
25046 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
25047
25048         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
25049         pointer types if they have different alignment or mode.
25050
25051 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
25052
25053         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
25054         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
25055         * config/sparc/sparc-protos.h (function_value): Remove declaration.
25056         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
25057         sparc_function_value_regno_p): New functions.
25058         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25059         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25060         (function_value): Rename to...
25061         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
25062         argument to 'outgoing'.
25063         (function_arg_record_value, function_arg_union_value,
25064         function_arg_vector_value): Update comment.
25065
25066 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
25067
25068         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
25069         (fde_needed_for_eh_p): New predicate.
25070         (output_call_frame_info): Use it throughout to decide whether FDEs
25071         are needed for EH purpose.
25072         (dwarf2out_begin_prologue): Reorder assignments.
25073
25074 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25075
25076         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
25077         special case loop->header.
25078         (is_predicated): New.
25079         (if_convertible_loop_p): Call it.
25080
25081 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25082
25083         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
25084         iterator in parameter.  Do not generate code during the analysis.
25085         (tree_if_convert_cond_stmt): Removed.
25086         (tree_if_convert_stmt): Removed.
25087         (predicate_bbs): New.
25088         (if_convertible_loop_p): Call predicate_bbs.
25089         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
25090         now contains all the analysis part.
25091
25092 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25093
25094         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
25095         statements in the analysis part.
25096         (tree_if_convert_stmt): Update comment.
25097         (remove_conditions_and_labels): New.
25098         (combine_blocks): Call remove_conditions_and_labels.
25099         (tree_if_conversion): Update comment.
25100
25101 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25102
25103         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
25104         than 2 predecessors or more than 2 successors.
25105
25106 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25107
25108         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
25109         of loops in which the data dependence analysis fails.
25110
25111 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25112
25113         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
25114         CDI_POST_DOMINATORS.
25115         (tree_if_conversion): Same.
25116
25117 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25118
25119         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
25120
25121 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
25122
25123         * tree-if-conv.c: Update copyright years.  Fix comments.
25124         Fix indentation.
25125
25126 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
25127
25128         * builtin-types.def (BT_INT128): New primitive type.
25129         (BT_UINT128): Likewise.
25130         * c-common.c (c_common_r): Add __int128 keyword.
25131         (c_common_type_for_size): Handle __int128.
25132         (c_common_type_for_mode): Likewise.
25133         (c_common_signed_or_unsigned_type): Likewise.
25134         (c_common_nodes_and_builtins): Add builtin type
25135         if target supports 128-bit integer scalar.
25136         * c-common.h (enum rid): Add RID_INT128.
25137         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
25138         if target supports 128-bit integer scalar.
25139         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
25140         (finish_declspecs): Likewise.
25141         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
25142         (c_token_starts_declspecs): Likewise.
25143         (c_parser_declspecs): Likewise.
25144         (c_parser_attributes): Likewise.
25145         (c_parser_objc_selector): Likewise.
25146         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
25147         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
25148         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
25149         * tree.c (make_or_reuse_type): Likewise.
25150         (make_unsigned_type): Likewise.
25151         (build_common_tree_nodes_2): Likewise.
25152         * tree.h (enum integer_type_kind): Add itk_int128 and
25153         itk_unsigned_int128.
25154         (int128_integer_type_node): New define.
25155         (int128_unsigned_type_node): New define.
25156         * doc/extend.texi: Add documentation about __int128 type.
25157
25158 2010-05-26  Richard Guenther  <rguenther@suse.de>
25159
25160         * tree-ssa-sccvn.c (copy_nary): Adjust.
25161         (copy_phis): Rename to ...
25162         (copy_phi): ... this.  Adjust.
25163         (copy_references): Rename to ...
25164         (copy_reference): ... this.  Adjust.
25165         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
25166         result into the valid table.
25167
25168 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25169
25170         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
25171         insn-config.h, insn-codes.h, recog.h, and optabs.h.
25172
25173 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25174
25175         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
25176
25177 2010-05-26  Richard Guenther  <rguenther@suse.de>
25178
25179         * opts.c (common_handle_option): Handle OPT_Ofast.
25180
25181 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
25182
25183         * diagnostic.c: Don't include opts.h.
25184         (permissive_error_option): Define.
25185         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
25186         for classify_diagnostic.  Don't use memset for
25187         classify_diagnostic.  Initialize new and recently added fields.
25188         (diagnostic_classify_diagnostic): Use context->n_opts instead of
25189         N_OPTS.
25190         (diagnostic_report_diagnostic): Pass context parameter to
25191         diagnostic_report_warnings_p.  Use option_enabled and option_name
25192         hooks from context.
25193         (emit_diagnostic): Use permissive_error_option.
25194         (permerror): Likewise.
25195         * diagnostic.h: Don't include options.h.
25196         (struct diagnostic_context): Add n_opts, opt_permissive,
25197         inhibit_warnings, warn_system_headers, option_enabled and
25198         option_name fields.  Change classify_diagnostic to a pointer.
25199         * opts-diagnostic.h: New file.
25200         * opts.c: Include opts-diagnostic.h.
25201         (common_handle_option): Set global_dc fields for -Wfatal-errors,
25202         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
25203         (option_name): New function.
25204         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
25205         (c_common_handle_option): Set global_dc->permissive for
25206         -fpermissive.
25207         * c-common.c (c_cpp_error): Save and restore
25208         global_dc->warn_system_headers, not variable warn_system_headers.
25209         * toplev.c: Include opts-diagnostic.h.
25210         (general_init): Update call to diagnostic_initialize.  Set
25211         global_dc->show_column, global_dc->option_enabled and
25212         global_dc->option_name.
25213         (process_options): Don't set global_dc fields here.
25214         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
25215         (diagnostic.o, opts.o, toplev.o): Update dependencies.
25216
25217 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
25218
25219         * config/picochip/picochip.md (movsi): Split a movsi from a
25220         const after reload.
25221
25222 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25223
25224         * ggc-zone.c: Update copyright year.
25225         (poison_region): Mark memory for Valgrind as undefined before
25226         memset () call and inaccessible afterwards.
25227         (ggc_pch_total_size): Change type of i to int.
25228
25229 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25230
25231         * ggc-common.c (ggc_free_overhead): Allow empty slot.
25232
25233 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
25234
25235         * ggc-common.c: Update copyright year.
25236         (ggc_rlimit_bound): Remove prototype.  Compile only if
25237         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
25238         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
25239         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
25240         (ggc_min_heapsize_heuristic): Likewise.
25241
25242 2010-05-26  Richard Guenther  <rguenther@suse.de>
25243
25244         PR rtl-optimization/44164
25245         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
25246         no-common access-path disambiguation.
25247         (indirect_ref_may_alias_decl_p): Adjust.
25248         (indirect_refs_may_alias_p): Likewise.
25249         (refs_may_alias_p_1): Likewise.
25250
25251 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25252
25253         * c-typeck.c: Do not include expr.h.
25254
25255 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
25256
25257         * rtl.h (decl_default_tls_model): Move prototype from here...
25258         * output.h: ...to here.
25259         * c-decl.c: Do not include rtl.h.
25260         * c-pragma.c: Likewise.
25261         * c-parser.c: Likewise.
25262         * c-gimplify.c: Likewise.  And also not hard-reg-set.
25263         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
25264         FIXME note for it.  Add a FIXME note for expr.h.
25265         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
25266         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
25267         defined.
25268
25269 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
25270
25271         PR target/44199
25272         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
25273         or total_size is larger than red zone size for non-V4 ABI, emit a
25274         stack_tie resp. frame_tie insn before stack pointer restore.
25275         * config/rs6000/rs6000.md (frame_tie): New insn.
25276
25277 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
25278
25279         * function.h (struct function): Add can_throw_non_call_exceptions bit.
25280         * lto-streamer-in.c (input_function): Stream it in.
25281         * lto-streamer-out.c (output_function): Stream it out.
25282         * function.c (allocate_struct_function): Set it.
25283         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
25284         for flag_non_call_exceptions.
25285         * cfgbuild.c (control_flow_insn_p): Likewise.
25286         (make_edges): Likewise.
25287         * cfgexpand.c (expand_stack_alignment): Likewise.
25288         * combine.c (distribute_notes): Likewise.
25289         * cse.c (cse_extended_basic_block): Likewise.
25290         * except.c (insn_could_throw_p): Likewise.
25291         * gcse.c (simple_mem): Likewise.
25292         * ipa-pure-const.c (check_call): Likewise.
25293         (check_stmt ): Likewise.
25294         * lower-subreg.c (lower-subreg.c): Likewise.
25295         * optabs.c (emit_libcall_block): Likewise.
25296         (prepare_cmp_insn): Likewise.
25297         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
25298         * postreload.c (rest_of_handle_postreload): Likewise.
25299         * reload1.c (reload_as_needed): Likewise.
25300         (emit_input_reload_insns): Likewise.
25301         (emit_output_reload_insns): Likewise.
25302         (fixup_abnormal_edges): Likewise.
25303         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
25304         * store-motion.c (find_moveable_store): Likewise.
25305         * tree-eh.c (stmt_could_throw_p): Likewise.
25306         (tree_could_throw_p): Likewise.
25307         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
25308         * config/arm/arm.c (arm_expand_prologue): Likewise.
25309         (thumb1_expand_prologue): Likewise.
25310         * config/rx/rx.md (cbranchsf4): Likewise.
25311         (cmpsf): Likewise.
25312         * config/s390/s390.c (s390_emit_prologue): Likewise.
25313         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
25314         (inline_forbidden_into_p): New predicate.
25315         (expand_call_inline): Use it to forbid inlining.
25316         (tree_can_inline_p): Likewise.
25317
25318 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
25319
25320         * config/i386/i386-c.c: Do not include rtl.h.
25321         * config/i386/t-i386: Update dependencies.
25322
25323 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
25324
25325         * attribs.c: Do not include rtl.h.
25326         * Makefile.in: Update dependencies.
25327
25328 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
25329
25330         * double-int.h (double_int_and): New.
25331         * combine.c (try_combine): Clean up, use double_int_* and
25332         immed_double_int_const functions.
25333
25334 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25335
25336         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
25337         stderr to /dev/null instead of grep -q.
25338         * configure: Regenerate.
25339
25340 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
25341
25342         * Makefile.in (EXCEPT_H): Fix typo.
25343
25344 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
25345
25346         * ira-build.c (update_conflict_hard_reg_costs): New.
25347         (ira_build): Call update_conflict_hard_reg_costs.
25348
25349 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
25350
25351         PR debug/41371
25352         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
25353         ENABLE_CHECKING.
25354         (intersect_loc_chains): Walk the s2var's loc_chain together
25355         with s1node chain as long as the locations are equal, don't
25356         call find_loc_in_1pdv in that case.
25357
25358         PR debug/42801
25359         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
25360         (copy_bind_expr): ... instead of here.
25361         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
25362         if the block hasn't been remapped.
25363         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
25364         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
25365
25366 2010-05-25  Richard Guenther  <rguenther@suse.de>
25367
25368         PR middle-end/44069
25369         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
25370         out-of-bounds array accesses.
25371
25372 2010-05-25  Richard Guenther  <rguenther@suse.de>
25373
25374         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
25375         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
25376         (run_gcc): Re-organize to make cleanup easier.
25377
25378 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25379
25380         * config/s390/s390.c (optimization_options): Fix and move the
25381         flag_prefetch_loop_arrays override ...
25382         (override_options): ... here.
25383
25384 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
25385
25386         * diagnostic.c: Don't include plugin.h.
25387         (diagnostic_report_diagnostic): Don't handle plugins specially
25388         here.  Pass context to internal_error callback.
25389         * diagnostic.h (struct diagnostic_context): Add context parameter
25390         to internal_error callback.
25391         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
25392         * plugin.h (struct diagnostic_context): Declare.
25393         (warn_if_plugins, plugins_internal_error_function): Declare.
25394         * toplev.c (general_init): Set global_dc->internal_error.
25395         * Makefile.in (diagnostic.o): Update dependencies.
25396
25397 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
25398
25399         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
25400         * config/rs6000/t-darwin64: New.
25401         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
25402         build crt2.
25403
25404 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
25405
25406         PR 44203
25407         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
25408         match the original (and intended) behaviour before r159557.  This
25409         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
25410         in two ways.
25411
25412 2010-05-25  Richard Guenther  <rguenther@suse.de>
25413
25414         * doc/invoke.texi: Document -Ofast.
25415         * target.h (struct gcc_target): Add handle_ofast.
25416         * target-def.h (TARGET_HANDLE_OFAST): Add.
25417         (TARGET_INITIALIZER): Adjust.
25418         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
25419         * common.opt (Ofast): Add.
25420
25421 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
25422
25423         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
25424         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
25425
25426 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
25427
25428         PR target/43610
25429         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
25430         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
25431         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
25432         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
25433
25434 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
25435
25436         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
25437         DW_OP_minus with negated offset instead of DW_OP_plus.
25438         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
25439
25440 2010-05-25  Wei Guozhi  <carrot@google.com>
25441
25442         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
25443         tst instruction and a new alternative.
25444         * config/arm/constraints.md (Pu): New constraint.
25445
25446 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
25447
25448         * function.c (assign_stack_local_1): Initialize variable
25449         to avoid warning when bootstrapping at -O3.
25450
25451 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
25452
25453         * configure.ac (all_lang_makefiles): Remove everything related to it.
25454         * configure: Regenerate.
25455         * Makefile.in: Fix reference to ada Make-lang.in.
25456         Remove support for LANG_MAKEFILES.
25457
25458 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
25459             Sandra Loosemore  <sandra@codesourcery.com>
25460
25461         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
25462         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
25463         description.  Add arm_neon_fp16_ok.
25464         (Add Options): Add arm_neon and arm_neon_fp16.
25465
25466 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
25467
25468         * diagnostic.c: Don't include flags.h.
25469         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
25470         context parameters.  Check flags in the context passed as a parameter.
25471         (diagnostic_build_prefix): Add context parameter.  Check
25472         show_column flag in context.
25473         (diagnostic_action_after_output): Check fatal_errors flag in context.
25474         (diagnostic_report_current_module): Check show_column flag in context.
25475         (default_diagnostic_starter): Update call to
25476         diagnostic_build_prefix.
25477         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
25478         (emit_diagnostic): Pass context to permissive_error_kind.
25479         (permerror): Pass context to permissive_error_kind.
25480         * diagnostic.h (struct diagnostic_context): Add show_column,
25481         pedantic_errors, permissive and fatal_errors fields.
25482         (diagnostic_build_prefix): Update prototype.
25483         * langhooks.c
25484         * toplev.c (process_options): Set flags in global_dc from
25485         flag_show_column, flag_pedantic_errors, flag_permissive,
25486         flag_fatal_errors.
25487         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
25488         to diagnostic_build_prefix.
25489         * Makefile.in (diagnostic.o): Update dependencies.
25490
25491 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
25492
25493         * config/i386/ia32intrin.h (__crc32q): Define only if
25494         __SSE4_2__ is defined.
25495
25496 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
25497
25498         PR target/44132
25499         PR middle-end/43602
25500         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
25501         DECL_VISIBILITY_SPECIFIED.
25502         (emutls_decl): Set DECL_PRESERVE_P and copy
25503         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
25504         (emutls_finalize_control_var): New callback.
25505         (emutls_finish): Finalize emutls control variables.
25506         * toplev.c (compile_file): Move the call to emutls_finish ()
25507         before varpool_assemble_pending_decls ().
25508
25509 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
25510
25511         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
25512         added to the preprocessor condition.
25513
25514 2010-05-24  Paul Brook  <paul@codesourcery.com>
25515
25516         * gengtype-lex.l: Add HARD_REG_SET.
25517         * expr.c (expand_expr_real_1): Record writes to hard registers.
25518         * function.c (rtl_data): Add asm_clobbers.
25519         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
25520         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
25521         Use crtl->asm_clobbers.
25522
25523 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25524
25525         * doc/makefile.texi (Makefile): Mention stages 'profile'
25526         and 'feedback' for profiledbootstrap.
25527
25528 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
25529
25530         PR target/44245
25531         * config/i386/i386.c (def_builtin): Properly check
25532         OPTION_MASK_ISA_64BIT.
25533
25534 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
25535
25536         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
25537         typedefs with different but compatible types.  Allow duplicate
25538         typedefs with the same type except for pedantic non-C1X, but give
25539         warning for variably modified types.
25540         * c-typeck.c (tagged_types_tu_compatible_p,
25541         function_types_compatible_p, type_lists_compatible_p,
25542         comptypes_internal): Add parameter different_types_p; set
25543         *different_types_p for different but compatible types.  All
25544         callers changed.
25545         (comptypes_check_different_types): New.
25546         * c-tree.h (comptypes_check_different_types): Declare.
25547
25548 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
25549
25550         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
25551         * jump.c: Include basic-block.h.
25552         * profile.c: Likewise.
25553         * tree-profile.c: Likewise.
25554         * coverage.c: Likewise.
25555         * basic-block.h (optimize_function_for_size_p): Move to function.h.
25556         (optimize_function_for_speed_p): Likewise.
25557         * function.h (optimize_function_for_size_p,
25558         optimize_function_for_speed_p): Moved here from basic-block.h.
25559         * Makefile.in: Update dependencies.
25560
25561 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25562
25563         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
25564         before calling make; allow override through $MAKE.
25565         * doc/invoke.texi (Optimize Options): Document override.
25566
25567 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
25568
25569         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
25570         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25571         (rs6000_mode_dependent_address_ptr): Make static.
25572         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25573         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
25574         Remove.
25575
25576 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
25577
25578         PR target/43869
25579         * config/i386/i386.c: Make sure that the correct regparm is passed.
25580
25581 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
25582
25583         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
25584         * sbitmap.c: ...to here to internalize sbitmap element access.
25585         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
25586         Explain why basic-block.h is included.
25587         * function.h: Include tm.h for CUMULATIVE_ARGS.
25588         * Makefile.in: Update dependencies.
25589
25590 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
25591
25592         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
25593         New core types.
25594         * sbitmap.h (struct sbitmap_def): Do not typedef here.
25595         * sbitmap.c: Include sbitmap.h.
25596         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
25597         hard-reg-set.h.  Split everything related to regsets out from here...
25598         * regset.h: ...to here.  New file.
25599         * df.h: Include regset.h and sbitmap.h.
25600         * tree-flow.h: Likewise.
25601         * cfgloop.h: Likewise.
25602         * except.h: Do not include sbitmap.h.  Include hashtab.h.
25603         * cgraph.h: Include vec.h and function.h.
25604         * reload.h (struct insn_chain): Change types of live_throughout
25605         and dead_or_set from regset_head to bitmap_head.
25606         (compute_use_by_pseudos): Be defined also if regset.h is not included.
25607         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
25608         spilled_regs from regset_head to bitmap_head to avoid dependency
25609         in regset.h.
25610         * sel-sched-ir.h: Include regset.h.
25611         * reload.c: Include df.h before reload.h.
25612         * caller-save.c: Likewise.
25613         * reload1.c: Likewise.
25614         * ira.c: Likewise.
25615         (mark_elimination): Update type of r to bitmap, consistent with
25616         DF_LR_IN.
25617         * dominance.c: Include bitmap.h.
25618         * modulo-sched.c: Include df.h.
25619         * cfganal.c: Include bitmap.h and sbitmap.h.
25620         * cfgbuild.c: Include sbitmap.h.
25621         * lcm.c: Include sbitmap.h.
25622         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
25623         * domwalk.c: Include sbitmap.h, exclude ggc.h.
25624         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
25625         * cselib.c: Include bitmap.h.
25626         * tree-optimize.c: Include regset.h.
25627         * stmt.c: Include bitmap.h.
25628         * Makefile.in: Update dependencies.
25629
25630 2010-05-22  Jan Hubicka  <jh@suse.cz>
25631
25632         * cgraph.h (struct varpool_node): Add same_comdat_group.
25633         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
25634         pointer.
25635         (output_varpool): Update call of lto_output_varpool_node.
25636         (input_varpool): Read same_comdat_group pointer.
25637         (input_varpool_1): Fixup same_comdat_group pointer.
25638         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
25639         group is needed, all are.
25640         * varpool.c (varpool_remove_node): Remove node from same comdat group
25641         linklist too.
25642         (varpool_analyze_pending_decls): Walk same comdat groups.
25643
25644 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
25645
25646         * rtl.h (union rtunion_def): Remove rt_bit member.
25647         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
25648         * print-rtl (print_rtx): Do not print the member.
25649         * gengtype.c (adjust_field_rtx_def): Do not handle it.
25650         * gengenrtl.c (type_from_format): Likewise.
25651         (accessor_from_format): Likewise.
25652
25653 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
25654
25655         * dbgcnt.c: Include toplev.h instead of errors.h.
25656         * ira-emit.c: Don't include errors.h.
25657         * ira.c: Include toplev.h instead of errors.h.
25658         * lto-compress.c: Include toplev.h instead of errors.h.
25659         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
25660         ira.o, dbgcnt.o): Update dependencies.
25661
25662 2010-05-22  Richard Guenther  <rguenther@suse.de>
25663
25664         * gimple.c (gimple_types_compatible_p): Check type qualifications
25665         before merging pointer to complete and pointer to incomplete type.
25666         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
25667         we use our own resolution algorithm.  The gold linker plugin
25668         doesn't do the job we want it to do here.
25669
25670 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
25671
25672         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
25673         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
25674         (sparc_mode_dependent_address_p): New function.
25675
25676 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25677
25678         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
25679
25680         * timevar.c: Do not include any core headers.
25681         (timevar_print): De-i18n-ize.
25682         (print_time): Likewise.
25683         * timevar.h (timevar_push, timevar_pop): Make inline functions.
25684
25685 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
25686
25687         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
25688         langhooks-def.h.
25689         (diagnostic_initialize): Initialize x_data not last_function.
25690         (diagnostic_report_current_function): Move to tree-diagnostic.c.
25691         (default_diagnostic_starter): Call
25692         diagnostic_report_current_module not
25693         diagnostic_report_current_function.
25694         (diagnostic_report_diagnostic): Initialize x_data not
25695         abstract_origin.
25696         (verbatim): Likewise.
25697         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
25698         x_data.
25699         (struct diagnostic_context): Change last_function to x_data.
25700         (diagnostic_auxiliary_data): Replace with
25701         diagnostic_context_auxiliary_data and
25702         diagnostic_info_auxiliary_data.
25703         (diagnostic_last_function_changed, diagnostic_set_last_function,
25704         diagnostic_report_current_function): Move to tree-diagnostic.h.
25705         (print_declaration, dump_generic_node, print_generic_stmt,
25706         print_generic_stmt_indented, print_generic_expr,
25707         print_generic_decl, debug_c_tree, dump_omp_clauses,
25708         print_call_name, debug_generic_expr, debug_generic_stmt,
25709         debug_tree_chain, default_tree_printer): Move to
25710         tree-pretty-print.h.
25711         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
25712         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
25713         gimple-pretty-print.h.
25714         * pretty-print.c: Don't include tree.h
25715         (pp_base_format): Don't handle %K here.
25716         (pp_base_tree_identifier): Move to tree-pretty-print.c.
25717         * pretty-print.h (text_info): Change abstract_origin to x_data.
25718         (pp_tree_identifier, pp_unsupported_tree,
25719         pp_base_tree_identifier): Move to tree-pretty-print.h.
25720         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
25721         tree-pretty-print.h: New files.
25722         * tree-pretty-print.c: Include tree-pretty-print.h.
25723         (percent_K_format): New.  Moved from pretty-print.c.
25724         (pp_base_tree_identifier): Move from pretty-print.c.
25725         * c-objc-common.c: Include tree-pretty-print.h.
25726         (c_tree_printer): Handle %K here.
25727         * langhooks.c: Include tree-diagnostic.h.
25728         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
25729         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
25730         (default_tree_printer): Handle %K using percent_K_format.
25731         (general_init): Use default_tree_diagnostic_starter.
25732         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
25733         (free_lang_data): Use default_tree_diagnostic_starter.
25734         * c-pretty-print.c: Include tree-pretty-print.h.
25735         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25736         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25737         * dwarf2out.c: Include tree-pretty-print.h.
25738         * except.c: Include tree-pretty-print.h.
25739         * gimple-pretty-print.c: Include tree-pretty-print.h and
25740         gimple-pretty-print.h.
25741         * gimplify.c: Include tree-pretty-print.h.
25742         * graphite-poly.c: Include tree-pretty-print.h and
25743         gimple-pretty-print.h.
25744         * ipa-cp.c: Include tree-pretty-print.h.
25745         * ipa-inline.c: Include gimple-pretty-print.h.
25746         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25747         * ipa-pure-const.c: Include gimple-pretty-print.h.
25748         * ipa-struct-reorg.c: Include tree-pretty-print.h and
25749         gimple-pretty-print.h.
25750         * ipa-type-escape.c: Include tree-pretty-print.h.
25751         * print-rtl.c: Include tree-pretty-print.h.
25752         * print-tree.c: Include gimple-pretty-print.h.
25753         * sese.c: Include tree-pretty-print.h.
25754         * tree-affine.c: Include tree-pretty-print.h.
25755         * tree-browser.c: Include tree-pretty-print.h.
25756         * tree-call-cdce.c: Include gimple-pretty-print.h.
25757         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
25758         * tree-chrec.c: Include tree-pretty-print.h.
25759         * tree-data-ref.c: Include tree-pretty-print.h and
25760         gimple-pretty-print.h.
25761         * tree-dfa.c: Include tree-pretty-print.h.
25762         * tree-if-conv.c: Include tree-pretty-print.h and
25763         gimple-pretty-print.h.
25764         * tree-inline.c: Include tree-pretty-print.h.
25765         * tree-into-ssa.c: Include tree-pretty-print.h and
25766         gimple-pretty-print.h.
25767         * tree-nrv.c: Include tree-pretty-print.h.
25768         * tree-object-size.c: Include tree-pretty-print.h and
25769         gimple-pretty-print.h.
25770         * tree-outof-ssa.c: Include tree-pretty-print.h and
25771         gimple-pretty-print.h.
25772         * tree-parloops.c: Include tree-pretty-print.h and
25773         gimple-pretty-print.h.
25774         * tree-predcom.c: Include tree-pretty-print.h and
25775         gimple-pretty-print.h.
25776         * tree-scalar-evolution.c: Include tree-pretty-print.h and
25777         gimple-pretty-print.h.
25778         * tree-sra.c: Include tree-pretty-print.h.
25779         * tree-ssa-address.c: Include tree-pretty-print.h.
25780         * tree-ssa-alias.c: Include tree-pretty-print.h.
25781         * tree-ssa-ccp.c: Include tree-pretty-print.h and
25782         gimple-pretty-print.h.
25783         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
25784         * tree-ssa-copy.c: Include tree-pretty-print.h and
25785         gimple-pretty-print.h.
25786         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
25787         * tree-ssa-dce.c: Include tree-pretty-print.h and
25788         gimple-pretty-print.h.
25789         * tree-ssa-dom.c: Include tree-pretty-print.h and
25790         gimple-pretty-print.h.
25791         * tree-ssa-dse.c: Include gimple-pretty-print.h.
25792         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
25793         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
25794         * tree-ssa-live.c: Include tree-pretty-print.h and
25795         gimple-pretty-print.h.
25796         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
25797         gimple-pretty-print.h.
25798         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
25799         gimple-pretty-print.h.
25800         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
25801         gimple-pretty-print.h.
25802         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
25803         gimple-pretty-print.h.
25804         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
25805         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
25806         * tree-ssa-operands.c: Include tree-pretty-print.h and
25807         gimple-pretty-print.h.
25808         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
25809         gimple-pretty-print.h.
25810         * tree-ssa-pre.c: Include tree-pretty-print.h and
25811         gimple-pretty-print.h.
25812         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
25813         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
25814         gimple-pretty-print.h.
25815         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
25816         gimple-pretty-print.h.
25817         * tree-ssa-sink.c: Include gimple-pretty-print.h.
25818         * tree-ssa-ter.c: Include tree-pretty-print.h and
25819         gimple-pretty-print.h.
25820         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
25821         * tree-ssa.c: Include tree-pretty-print.h and
25822         gimple-pretty-print.h.
25823         * tree-stdarg.c: Include gimple-pretty-print.h.
25824         * tree-switch-conversion.c: Include gimple-pretty-print.h.
25825         * tree-tailcall.c: Include tree-pretty-print.h and
25826         gimple-pretty-print.h.
25827         * tree-vect-data-refs.c: Include tree-pretty-print.h and
25828         gimple-pretty-print.h.
25829         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
25830         gimple-pretty-print.h.
25831         * tree-vect-loop.c: Include tree-pretty-print.h and
25832         gimple-pretty-print.h.
25833         * tree-vect-patterns.c: Include gimple-pretty-print.h.
25834         * tree-vect-slp.c: Include tree-pretty-print.h and
25835         gimple-pretty-print.h.
25836         * tree-vect-stmts.c: Include tree-pretty-print.h and
25837         gimple-pretty-print.h.
25838         * tree-vectorizer.c: Include tree-pretty-print.h.
25839         * tree-vrp.c: Include tree-pretty-print.h and
25840         gimple-pretty-print.h.
25841         * value-prof.c: Include tree-pretty-print.h and
25842         gimple-pretty-print.h.
25843         * var-tracking.c: Include tree-pretty-print.h.
25844         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
25845         (tree-diagnostic.o): New dependencies.
25846         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
25847         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
25848         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
25849         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
25850         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
25851         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
25852         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
25853         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
25854         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
25855         tree-ssa-address.o, tree-ssa-loop-niter.o,
25856         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
25857         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
25858         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
25859         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
25860         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
25861         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
25862         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
25863         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
25864         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
25865         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
25866         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
25867         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
25868         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
25869         tree-switch-conversion.o, var-tracking.o, value-prof.o,
25870         cfgexpand.o, pretty-print.o): Update dependencies.
25871
25872 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
25873
25874         * tree-ssa-structalias.c: Remove tm_p.h from include.
25875
25876 2010-05-21  Jeff Law  <law@redhat.com>
25877
25878         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
25879
25880 2010-05-21  Jason Merrill  <jason@redhat.com>
25881
25882         * tree-eh.c (cleanup_is_dead_in): New.
25883         (lower_try_finally): Don't generate a dead cleanup region.
25884         (lower_cleanup): Likewise.
25885
25886 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
25887
25888         PR debug/44223
25889         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
25890         unchain each use from the cyclic next_regno_use chain first.
25891
25892 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25893
25894         * real: Do not include gmp.h, mpfr.h, and mpc.h.
25895         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
25896         (real_value_negate, real_value_abs): New prototypes.
25897         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
25898         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
25899         new include file for interface between MPFR and REAL_VALUE_TYPE.
25900         * real.c: Include realmpfr.h.
25901         (real_arithmetic2): Remove legacy function.
25902         (real_value_negate): New.
25903         (real_value_abs): New.
25904         (mfpr_from_real, real_from_mpfr): Move from here...
25905         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
25906         * builtins.c: Include realmpfr.h.
25907         * fold-const.c: Include realmpfr.h.
25908         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
25909         (fold_negate_const): Likewise.
25910         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
25911         * toplev.c: Include realmpfr.h.
25912         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
25913         and real_value_negate.
25914         * fixed-value.c (check_real_for_fixed_mode): Likewise.
25915         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
25916         (vfp3_const_double_index): Likewise.
25917         (arm_print_operand): Likewise.
25918         * Makefile.in: Update dependencies.
25919
25920 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25921
25922         * config/s390/s390.c (override_options): Increase the default
25923         of max-completely-peel-times.
25924
25925 2010-05-21  Julian Brown  <julian@codesourcery.com>
25926             Mark Mitchell  <mark@codesourcery.com>
25927
25928         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
25929         sibling calls for Thumb-1.
25930         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
25931         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
25932         Thumb-2.
25933         (*call_insn, *call_value_insn): Don't use for Thumb-2.
25934         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
25935         for Thumb-2.
25936         (return): New expander.
25937         (*arm_return): New name for ARM return insn.
25938         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
25939
25940 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
25941
25942         * config.gcc (sparc64-*-rtems*): New target.
25943
25944 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25945
25946         * tree.c (build_function_decl_skip_args): Fix grammar.
25947         (build_function_type_list_1): Fix typos, adjust formatting.
25948
25949 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
25950
25951         * tree.h: Include real.h and fixed-value.h as basic datatypes.
25952         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
25953         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
25954         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
25955         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
25956         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
25957         tree-pretty-print.c, tree-loop-distribution.c,
25958         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
25959         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
25960         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
25961         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
25962         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
25963         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
25964         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
25965         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
25966         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
25967         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
25968         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
25969         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
25970         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
25971         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
25972         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
25973         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
25974         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
25975         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
25976         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
25977         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
25978         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
25979         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
25980         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
25981         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
25982         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
25983         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
25984         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
25985         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
25986         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
25987         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
25988         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
25989         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
25990         config/score/score7.c, config/score/score.c, config/arm/arm.c,
25991         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
25992         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
25993         config/bfin/bfin.c: Clean up redundant includes.
25994         * Makefile.in: Update accordingly.
25995
25996 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
25997
25998         PR middle-end/44204
25999         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
26000         statement has no arguments.
26001
26002 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
26003
26004         PR/44139
26005         * varasm.c (emutls_decl): Merge attributes to new decl.
26006
26007 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
26008
26009         PR middle-end/44101
26010         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
26011         around the uniquized constructor if its type requires a conversion.
26012
26013 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
26014
26015         PR debug/44205
26016         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
26017         at -O0 goto_locus of any of the incoming edges differs from
26018         goto_locus of outgoing edge, or gimple_location of any of the
26019         labels differs.
26020
26021 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
26022
26023         * ira.c (ira_non_ordered_class_hard_regs): Define.
26024         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
26025         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
26026         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
26027         cost of unaligned hard regs when allocating multi-reg pseudos.
26028
26029 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
26030
26031         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
26032         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
26033         for TARGET_NO_FLOAT.
26034         * config/mips/mips.c (mips_file_start): Expand conditional expression
26035         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
26036         (mips_override_options): Move -mno-float override -msoft-float and
26037         -mhard-float.
26038         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
26039         Condition(TARGET_SUPPORTS_NO_FLOAT).
26040         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
26041         __mips_no_float here.
26042         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
26043         (TARGET_SUPPORTS_NO_FLOAT): Define.
26044         * config/mips/sdemtk.opt: Delete.
26045
26046 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
26047
26048         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
26049
26050 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
26051
26052         PR target/43733
26053         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
26054         * configure: Regenerate.
26055         * config.in: Regenerate.
26056         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
26057         instead of sahf only for 64bit targets.
26058
26059 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
26060
26061         PR debug/44178
26062         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
26063         setup_ref_regs for DEBUG_INSNs.
26064
26065 2010-05-20  Jan Hubicka  <jh@suse.cz>
26066
26067         PR middle-end/44197
26068         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
26069
26070 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
26071
26072         PR bootstrap/43870
26073         * df-scan.c (df_ref_compare): Stabilize sort.
26074
26075 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
26076
26077         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
26078         argument.  Don't use DW_OP_piece if offset is non-zero,
26079         put offset into second DW_OP_bit_piece argument.
26080         (dw_sra_loc_expr): Adjust callers.  For memory expressions
26081         compute offset.
26082
26083 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
26084
26085         PR target/44202
26086         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
26087         settings for 16-bit-constant "addo" alternative.
26088
26089 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
26090
26091         * config/mips/mips-dsp.md (add<DSPV:mode>3,
26092         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
26093
26094         PR target/43764
26095         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
26096         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
26097         Use it.
26098
26099 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
26100
26101         * diagnostic.c (FLOAT, FFS): Don't undefine.
26102         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
26103         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
26104         include ordering.
26105
26106 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
26107
26108         * combine.c (propagate_for_debug): Call make_compound_operation
26109         on the source value.
26110         (try_combine): When implementing a split chosen by find_split_point,
26111         either copy i2src or set it to null.  Assert that i2src is not null
26112         before substituting into CALL_INSN_FUNCTION_USAGE.
26113
26114 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
26115
26116         * double-int.h (double_int_ior): New function.
26117         * tree.h (build_int_cst_wide_type): Remove.
26118         * tree.c (build_int_cst_wide_type): Remove.
26119         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
26120         of build_int_cst_wide_type.
26121         * stor-layout.c (set_sizetype): (Ditto.).
26122         * dojump.c (do_jump): Use build_int_cstu instead of
26123         build_int_cst_wide_type.
26124
26125 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
26126
26127         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
26128         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
26129         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
26130         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
26131         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
26132         propagate the 'data' argument to copy_tree_r.
26133         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
26134         Propagate 'data' argument to walk_tree.
26135         (copy_if_shared): New function.
26136         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
26137         (unmark_visited): New function.
26138         (unshare_body): Call copy_if_shared instead of doing it manually.
26139         (unvisit_body): Call unmark_visited instead of doing it manually.
26140
26141 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
26142
26143         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
26144         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
26145         * hooks.c: Likewise.
26146         * target-def.h (TARGET_FOLD_BUILTIN): Define to
26147         hook_tree_tree_int_treep_bool_null.
26148         * target.h (struct gcc_target): Update signature of fold_builtin
26149         field.
26150         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
26151         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
26152         instead of the call expression.
26153         (fold_builtin_call_array): Pass n and argarray directly.
26154         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
26155         consing a list.
26156         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
26157         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
26158         `i' and use it in place of `arity'.
26159         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
26160         Dereference `args' directly.
26161         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
26162
26163 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26164
26165         * doc/sourcebuild.texi (Effective-Target Keywords): Document
26166         3dnow, sse3, sse2.
26167         (Directives): Document optional dg-require-effective-target
26168         selector.
26169
26170 2010-05-19  Richard Guenther  <rguenther@suse.de>
26171
26172         PR lto/44196
26173         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
26174
26175 2010-05-19  Richard Guenther  <rguenther@suse.de>
26176
26177         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
26178         * common.opt (fwhopr=): New.
26179         * opts.c (common_handle_option): Handle OPT_fwhopr.
26180         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
26181         * collect2.c (main): Match -fwhopr*.
26182         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
26183         Execute ltrans stage in parallel when jobs is bigger than 1.
26184
26185 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26186
26187         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
26188         pentiumpro on Solaris 8/x86 with Sun as.
26189         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
26190         hidden alias bug.
26191         (gcc_cv_as_ix86_quad): Check for .quad directive.
26192         * configure: Regenerate.
26193         * config.in: Regenerate.
26194         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
26195
26196 2010-05-19  Martin Jambor  <mjambor@suse.cz>
26197
26198         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
26199         also for indirect edges.  Actual printing moved...
26200         (ipa_print_node_jump_functions_for_edge): ...here.
26201         (ipa_compute_jump_functions): Renamed to
26202         ipa_compute_jump_functions_for_edge and made static.
26203         (ipa_compute_jump_functions): New function.
26204         (make_edge_direct_to_target): Check if the number of arguments on
26205         the newly direct edge is the same as the number of parametrs of
26206         the callee.
26207         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
26208         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
26209         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
26210         analysis functions unconditionally, call the new
26211         ipa_analyze_params_uses on the node instead of every edge.
26212
26213 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
26214
26215         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
26216         to tree.
26217         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
26218         also checks for a constant int vs.  non-constant but
26219         loop-invariant steps.
26220         (find_or_create_group): Change the sort algorithm to only consider
26221         steps that are constant ints.
26222         (idx_analyze_ref): Adopt code to handle a tree instead of a
26223         HOST_WIDE_INT for step.
26224         (gather_memory_references_ref): Handle tree instead of int and be
26225         prepared to see a NULL_TREE.
26226         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
26227         prefetches if the step cannot be calculated at compile time.
26228         (issue_prefetch_ref): Issue prefetches for non-constant but
26229         loop-invariant steps.
26230
26231 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26232
26233         Revert:
26234         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26235
26236         * tree.h (build_call_list): Remove.
26237         * tree.c (build_call_list): Remove.
26238
26239 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
26240
26241         * tree.h (build_call_list): Remove.
26242         * tree.c (build_call_list): Remove.
26243
26244 2010-05-18  Jan Hubicka  <jh@suse.cz>
26245
26246         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
26247
26248 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
26249
26250         PR rtl-optimization/43332
26251         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
26252
26253 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
26254
26255         * tree.h (build_int_cstu): Implement as static inline.
26256         * tree.c (build_int_cstu): Remove function.
26257         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
26258         sign extended.
26259
26260 2010-05-18  Richard Guenther  <rguenther@suse.de>
26261
26262         PR lto/44143
26263         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
26264         (debug): Initialize from -save-temps.
26265         (collect_execute): Print command-line when verbose.
26266         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
26267         for ltrans invocation.  Produce -dumpbase flag again.
26268         (process_args): Remove.
26269         (main): Simplify.
26270         * collect2.c (maybe_run_lto_and_relink): Only pass object
26271         files to lto-wrapper.
26272         * gcc.c (LINK_COMMAND_SPEC): Likewise.
26273
26274 2010-05-18  Jan Hubicka  <jh@suse.cz>
26275
26276         * opts.c (decode_options): Do not disable whopr at ipa_cp.
26277         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
26278
26279 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
26280
26281         PR lto/44184
26282         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
26283         in a GIMPLE_ASM.
26284         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
26285         in a GIMPLE_ASM.
26286
26287 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
26288
26289         PR debug/41371
26290         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
26291         rtx_equal_p inline.
26292
26293 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
26294
26295         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
26296         lto-macho as lto_binary_reader.
26297
26298         * darwin.c (darwin_asm_named_section): Do not add assembler comment
26299         after .section directive; just print it before the directive instead.
26300
26301 2010-05-17  Jan Hubicka  <jh@suse.cz>
26302
26303         * cgraph.c (cgraph_create_virtual_clone): Only check
26304         versionable_function_p when not in wpa and checking is enabled.
26305         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
26306         there are no more functions to materialize.
26307
26308 2010-05-17  Jan Hubicka  <jh@suse.cz>
26309
26310         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
26311         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
26312         New functions.
26313         (output_cgraph): Call output_cgraph_opt_summary.
26314         (input_cgrpah): Call input_cgraph_opt_summary.
26315         (output_cgraph_opt_summary_p, output_node_opt_summary,
26316         input_node_opt_summary, input_cgraph_opt_section): New functions.
26317         * lto-section-in.c (lto_section_name): Add cgraphopt.
26318         * tree-inline.c (tree_function_versioning): Handle parm_num.
26319         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
26320         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
26321
26322 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
26323
26324         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
26325         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
26326         the insn to prefetch ratio heuristic to loops with known trip count.
26327
26328 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
26329
26330         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
26331         (schedule_prefetches): Do not generate a prefetch if the unroll factor
26332         is far from what is required by the prefetch.
26333
26334 2010-05-17  Jan Hubicka  <jh@suse.cz>
26335
26336         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
26337         (ipcp_estimate_growth): Likewise.
26338         (ipcp_const_param_count): Likewise.
26339         (ipcp_insert_stage): Likewise.
26340         * ipa-prop.c (visit_load_for_mod_analysis): New function.
26341         (visit_store_addr_for_mod_analysis): Set used flag.
26342         (ipa_detect_param_modifications): Set used flag for SSE params;
26343         update use of walk_stmt_load_store_addr_ops.
26344         (ipa_print_node_params): Print used flag.
26345         (ipa_write_node_info): Stream used flag.
26346         (ipa_read_node_info): Likewise.
26347         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
26348         (ipa_is_param_used): New function.
26349         (lto_ipa_fixup_call_notes): Remove unused declaration.
26350
26351 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26352
26353         PR target/44074
26354         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
26355         * configure: Regenerate.
26356         * config.in: Regenerate.
26357         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
26358         !HAVE_AS_IX86_REP_LOCK_PREFIX.
26359         Don't emit whitespace.
26360         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
26361         (*rep_movsi): Likewise.
26362         (*rep_movsi_rex64): Likewise.
26363         (*rep_movqi): Likewise.
26364         (*rep_movqi_rex64): Likewise.
26365         (*rep_stosdi_rex64): Likewise.
26366         (*rep_stossi): Likewise.
26367         (*rep_stossi_rex64): Likewise.
26368         (*rep_stosqi): Likewise.
26369         (*rep_stosqi_rex64): Likewise.
26370         (*cmpstrnqi_nz_1): Use {%;} after repz.
26371         (*cmpstrnqi_nz_rex_1): Likewise.
26372         (*cmpstrnqi_1): Likewise.
26373         (*cmpstrnqi_rex_1): Likewise.
26374         (*strlenqi_1): Use {%;} after repnz.
26375         (*strlenqi_rex_1): Likewise.
26376         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
26377         (*sync_compare_and_swap<mode>): Likewise.
26378         (sync_double_compare_and_swap<mode>): Likewise.
26379         (*sync_double_compare_and_swapdi_pic): Likewise.
26380         (sync_old_add<mode>): Likewise.
26381         (sync_add<mode>): Likewise.
26382         (sync_sub<mode>): Likewise.
26383         (sync_<code><mode>): Likewise.
26384
26385 2010-05-17  Martin Jambor  <mjambor@suse.cz>
26386
26387         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
26388         otr_token and polymorphic.
26389         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
26390         (cgraph_clone_edge): Copy the above fields.
26391         * tree.c (get_binfo_at_offset): New function.
26392         * tree.h (get_binfo_at_offset): Declare.
26393         * ipa-prop.h (enum jump_func_type): Added known_type jump function
26394         type, reordered items, updated comments.
26395         (union jump_func_value): Added base_type field, reordered fields.
26396         (enum ipa_lattice_type): Moved down in the file.
26397         (struct ipa_param_descriptor): New field polymorphic.
26398         (ipa_is_param_polymorphic): New function.
26399         * ipa-prop.c: Include gimple.h and gimple-fold.h.
26400         (ipa_print_node_jump_functions): Print known type jump functions.
26401         (compute_complex_pass_through): Renamed to...
26402         (compute_complex_assign_jump_func): this.
26403         (compute_complex_ancestor_jump_func): New function.
26404         (compute_known_type_jump_func): Likewise.
26405         (compute_scalar_jump_functions): Create known type and complex ancestor
26406         jump functions.
26407         (ipa_note_param_call): New parameter polymorphic, set the corresponding
26408         flag in the call note accordingly.
26409         (ipa_analyze_call_uses): Renamed to...
26410         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
26411         variable var only in the block where it is used.
26412         (ipa_analyze_virtual_call_uses): New function.
26413         (ipa_analyze_call_uses): Likewise.
26414         (combine_known_type_and_ancestor_jfs): Likewise.
26415         (update_jump_functions_after_inlining): Implemented handling of a
26416         number of new jump function types combination.
26417         (print_edge_addition_message): Removed.
26418         (make_edge_direct_to_target): New function.
26419         (try_make_edge_direct_simple_call): Likewise.
26420         (try_make_edge_direct_virtual_call): Likewise.
26421         (update_call_notes_after_inlining): Renamed to...
26422         (update_indirect_edges_after_inlining): this.  Moved edge creation for
26423         indirect calls to try_make_edge_direct_simple_call, also calls
26424         try_make_edge_direct_virtual_call for virtual calls.
26425         (ipa_print_node_params): Changed the header message.
26426         (ipa_write_jump_function): Stream also known type jump functions.
26427         (ipa_read_jump_function): Likewise.
26428         (ipa_write_indirect_edge_info): Stream new fields in
26429         cgraph_indirect_call_info.
26430         (ipa_read_indirect_edge_info): Likewise.
26431         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
26432         GIMPLE_FOLD_H.
26433
26434 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26435
26436         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
26437
26438 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
26439
26440         * tree.h (CALL_EXPR_ARGS): Delete.
26441         (call_expr_arglist): Delete.
26442         * tree.c (call_expr_arglist): Delete.
26443         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
26444         targetm.fold_builtin.
26445         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
26446         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
26447         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
26448         arglist parameter.  Use CALL_EXPR_ARG.
26449         (picochip_expand_builtin_3op): Likewise.
26450         (picochip_expand_builtin_2opvoid): Likewise.
26451         (picochip_expand_array_get): Likewise.
26452         (picochip_expand_array_put): Likewise.
26453         (picochip_expand_array_testport): Likewise.
26454         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
26455         rather than arglist.
26456         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
26457         CALL_EXPR_ARGS.
26458         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
26459         than TREE_VALUE and TREE_CHAIN.
26460         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
26461         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
26462         the arglist.
26463
26464 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
26465
26466         PR bootstrap/42347
26467         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
26468         to have no fallthru edge.
26469
26470         PR middle-end/44102
26471         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
26472         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
26473         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
26474         add BARRIER after previous bb if needed.
26475
26476 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
26477
26478         * tree.c (build_function_type_list_1): Remove bogus assert condition.
26479
26480 2010-05-17  Alan Modra  <amodra@gmail.com>
26481
26482         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
26483         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
26484         with copy_reg rtx param.
26485         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
26486         Correct cases where code for ABI_V4 did not initialise the reg
26487         used to access frame.  Also leave frame_reg_rtx as sp for large
26488         frames that save no regs.
26489
26490 2010-05-17  Martin Jambor  <mjambor@suse.cz>
26491
26492         PR middle-end/44133
26493         * tree-sra.c (create_access_replacement): New parameter rename, mark
26494         the replaement for renaming only when it is true.
26495         (get_access_replacement): Pass true in the rename parameter of
26496         create_access_replacement.
26497         (get_unrenamed_access_replacement): New function.
26498         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
26499         replacement declaration from it.
26500
26501 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
26502
26503         * function.c (try_fit_stack_local, add_frame_space): New static
26504         functions.
26505         (assign_stack_local_1): Use them.  Look for opportunities to use
26506         space previously wasted on alignment.
26507         * function.h (struct frame_space): New.
26508         (struct rtl_data): Add FRAME_SPACE_LIST member.
26509         * reload1.c (something_was_spilled): New static variable.
26510         (alter_reg): Set it.
26511         (reload): Test it in addition to testing if the frame size changed.
26512
26513 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
26514
26515         * config/s390/s390.c: Define sane prefetch settings and activate
26516         flag_prefetch_loop_arrays on -O3.
26517         * config/s390/s390.h: Declare that read can use write prefetch.
26518
26519 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
26520
26521         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
26522         build.
26523
26524 2010-05-16  Jan Hubicka  <jh@suse.cz>
26525
26526         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
26527         function body; do not check stdarg field of struct function.
26528
26529 2010-05-16  Jan Hubicka  <jh@suse.cz>
26530
26531         * cgraph.c (dump_cgraph_node): Dump versionable flag.
26532         * cgraph.h (cgraph_local_info): Add versionable flag.
26533         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
26534         (ipcp_versionable_function_p): Use it.
26535         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
26536         versionable flag.
26537
26538 2010-05-16  Jan Hubicka  <jh@suse.cz>
26539
26540         * cgraph.c (cgraph_clone_node): Take decl argument and insert
26541         clone into hash when it is different from orig.
26542         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
26543         * cgraph.h (cgraph_clone_node): Update prototype.
26544         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
26545         (lto_cgraph_encoder_delete): Delete body map.
26546         (lto_cgraph_encoder_size): Move to header.
26547         (lto_cgraph_encoder_encode_body_p,
26548         lto_set_cgraph_encoder_encode_body): New.
26549         (lto_output_node): Do not take written_decls argument; output clone_of
26550         pointer.
26551         (add_node_to): Add include_body_argument; call
26552         lto_set_cgraph_encoder_encode_body on master of the clone.
26553         (add_references): Update use of add_node_to.
26554         (compute_ltrans_boundary): Likewise.
26555         (output_cgraph): Do not create written_decls bitmap.
26556         (input_node): Take nodes argument; stream in clone_of correctly.
26557         (input_cgraph_1): Update use of input_node.
26558         * lto-streamer-out.c (lto_output): Use encoder info to decide
26559         what bodies to output.
26560         * ipa-inline.c (cgraph_clone_inlined_nodes,
26561         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
26562         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
26563         (lto_cgraph_encoder_size): Define here.
26564         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
26565         Declare.
26566
26567 2010-05-16  Richard Guenther  <rguenther@suse.de>
26568
26569         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
26570         -fipa-type-escape.
26571         * ipa-type-escape.c (gate_type_escape_vars): Run when
26572         -fipa-struct-reorg runs.
26573         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
26574         * common.opt (fipa-type-escape): Remove.
26575
26576 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
26577
26578         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
26579         (decode_options): Likewise.
26580         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
26581
26582 2010-05-16  Jan Hubicka  <jh@suse.cz>
26583
26584         * ipa.c (function_and_variable_visibility): Also bring local all
26585         aliases.
26586
26587 2010-05-16  Richard Guenther  <rguenther@suse.de>
26588
26589         * alias.c (nonoverlapping_memrefs_p): Remove use of
26590         IPA type-escape information.
26591
26592 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
26593
26594         * c-common.c (c_common_reswords): Add _Static_assert for C.
26595         * c-parser.c (c_token_starts_declaration,
26596         c_parser_next_token_starts_declaration,
26597         c_parser_static_assert_declaration_no_semi,
26598         c_parser_static_assert_declaration): New.
26599         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
26600         Handle static assertions if static_assert_ok.
26601         (c_parser_external_declaration, c_parser_declaration_or_fndef,
26602         c_parser_compound_statement_nostart, c_parser_label,
26603         c_parser_for_statement, c_parser_objc_methodprotolist,
26604         c_parser_omp_for_loop): All callers of
26605         c_parser_declaration_or_fndef changed.
26606         (c_parser_struct_declaration): Handle static assertions.
26607         (c_parser_compound_statement_nostart): Use
26608         c_parser_next_token_starts_declaration and
26609         c_token_starts_declaration to detect start of declarations.
26610         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
26611         Likewise.
26612
26613 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
26614
26615         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26616         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26617         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26618         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26619         (mmix_function_outgoing_value): Rename to...
26620         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
26621         (mmix_function_value_regno_p): Make static.
26622         (mmix_libcall_value): New function.
26623         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
26624         mmix_function_value_regno_p): Remove declaration.
26625
26626 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
26627
26628         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
26629         BUILT_IN_ALLOCA if stack checking is enabled.
26630
26631 2010-05-16  Richard Guenther  <rguenther@suse.de>
26632
26633         * var-tracking.c (vars_copy_1): Inline ...
26634         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
26635         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
26636         (variable_merge_over_cur): Adjust.  Merge asserts.
26637         (variable_merge_over_src): Likewise.
26638         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
26639         (variable_post_merge_new_vals): Merge asserts.
26640         (variable_post_merge_perm_vals): Likewise.
26641         (find_mem_expr_in_1pdv): Likewise.
26642         (dataflow_set_different_value): Remove.
26643         (onepart_variable_different_p): Merge asserts.
26644         (variable_different_p): Likewise.
26645         (dataflow_set_different_1): Inline ...
26646         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
26647         (emit_notes_for_differences_1): Merge asserts.
26648
26649 2010-05-16  Richard Guenther  <rguenther@suse.de>
26650
26651         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
26652         * optabs.c (libfunc_decl_hash): Likewise.
26653         * varasm.c (emutls_decl): Likewise.
26654
26655 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
26656
26657         * c-decl.c: Don't include gimple.h.
26658         (merge_decls): Do not copy gimple_body.
26659
26660 2010-05-15  Jason Merrill  <jason@redhat.com>
26661
26662         * c.opt: Add -fnothrow-opt.
26663
26664 2010-05-15  Jan Hubicka  <jh@suse.cz>
26665
26666         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
26667         analyzed.
26668         * passes.c (ipa_write_summaries): Write all analyzed nodes.
26669
26670 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
26671
26672         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
26673         * Makefile.in: Add it.
26674         Fix all other Makefile dependencies for changes below.
26675         * tree.h: Include it instead of defining VEC primitives here.
26676         * gimple.h: Likewise.
26677         * rtl.h: Likewise.
26678         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
26679         * except.h: Include vecir.h, break dependence on tree.h.
26680
26681         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
26682         Move from here...
26683         * tree-iterator.c: ...to here.
26684         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
26685
26686         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
26687         tm_p.h.
26688         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
26689         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
26690         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
26691         tree-mudflap.h, and target.h.
26692         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
26693         predict.h, tree-inline.h, gimple.h, and langhooks.h.
26694         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
26695         Add FIXME for why gimple.h is still included (should be unnecessary
26696         since GCC 4.5 gimplification unit-at-a-time).
26697         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
26698         * c-pragma.c: Add FIXME for why function.h needs to be included just
26699         for cfun, at front-end level.
26700         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
26701         Do not include ggc.h, but include vecprim.h for VEC(char).
26702         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
26703         Explain why target.h is included.
26704         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
26705         Explain why gimple.h is included.
26706         * c-ppoutput.c: Do not include tm.h.
26707         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
26708         * c-parses.c: Explain why rtl.h is included, and that this (and only
26709         this) is also why tm.h must be included.
26710         Do not include except.h.
26711         * c-lang.c: Do not include ggc.h.
26712
26713 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
26714
26715         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
26716
26717 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
26718
26719         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
26720         unions by default if those structs and unions have no tags.  Do
26721         not condition anonymous struct and unions handling on flag_iso.
26722         Allow anonymous structs and unions for C1X.
26723         (finish_struct): Do not diagnose lack of named fields when
26724         anonymous structs and unions present for C1X.  Accept flexible
26725         array members in structure with anonymous structs or unions but no
26726         directly named fields.
26727         * doc/extend.texi (Unnamed Fields): Update.
26728
26729 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
26730
26731         * gimple.h (compare_field_offset): Rename into...
26732         (gimple_compare_field_offset): ...this.
26733         * gimple.c (compare_field_offset): Rename into...
26734         (gimple_compare_field_offset): ...this.  Compare the full access if
26735         the offset is self-referential.
26736         (gimple_types_compatible_p): Adjust for above renaming.
26737         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
26738         DECL_NONADDRESSABLE_P flag of fields before merging them.
26739
26740 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
26741
26742         * tree.h (ctor_to_list): Delete.
26743         * tree.c (ctor_to_list): Delete.
26744
26745 2010-05-15  Jan Hubicka  <jh@suse.cz>
26746
26747         * ipa-reference.c: Include toplev.h
26748         (is_proper_for_analysis): Only add to all_module_statics
26749         if it is allocated.
26750         (write_node_summary_p, stream_out_bitmap,
26751         ipa_reference_write_optimization_summary,
26752         ipa_reference_read_optimization_summary): New.
26753         (struct ipa_opt_pass_d pass_ipa_reference): Add
26754         optimization summary streaming.
26755         * lto-cgraph.c (referenced_from_this_partition_p,
26756         reachable_from_this_partition_p): New functions.
26757         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
26758         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
26759         * opts.c (decode_options): Enable ipa_reference.
26760         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
26761         * lto-streamer.h (referenced_from_this_partition_p,
26762         reachable_from_this_partition_p): Declare.
26763
26764 2010-05-15  Richard Guenther  <rguenther@suse.de>
26765
26766         PR tree-optimization/44038
26767         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
26768         taking the address of a V_C_E of a constant.
26769
26770 2010-05-14  Jan Hubicka  <jh@suse.cz>
26771
26772         * tree.h (memory_identifier_string): Remove.
26773         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
26774         (ipa_reference_global_vars_info_d): Remove statics_not_read and
26775         statics_not_written.
26776         (ipa_reference_optimization_summary_d): New structure.
26777         (ipa_reference_optimization_summary_t): New type and vector.
26778         (ipa_reference_vars_info_d): Embedd structures instead of using
26779         pointers.
26780         (reference_vars_to_consider): Remove out of GGC space.
26781         (module_statics_escape): Remove.
26782         (global_info_obstack): Rename to ...
26783         (optimization_summary_obstack): ... this one.
26784         (initialization_status_t): Remove.
26785         (memory_identifier_string): Remove.
26786         (get_reference_vars_info): Fix indenting.
26787         (set_reference_vars_info): Likewise.
26788         (get_reference_optimization_summary): New.
26789         (set_reference_optimization_summary): New.
26790         (get_global_reference_vars_info): Remove.
26791         (ipa_reference_get_read_global): Remove.
26792         (ipa_reference_get_written_global): Remove.
26793         (ipa_reference_get_not_read_global): Update.
26794         (ipa_reference_get_not_written_global): Update.
26795         (is_proper_for_analysis): Outlaw addressable.
26796         (propagate_bits): Update for new datastructures.
26797         (analyze_variable): Remove.
26798         (init_function_info): Update for new datastructures.
26799         (clean_function_local_data): Remove.
26800         (clean_function): Remove.
26801         (copy_global_bitmap): Use optimizations_summary_obstack.
26802         (duplicate_node_data): Duplicate optimization summary only.
26803         (remove_node_data): Remove optimization summary only.
26804         (generate_summary): Do not analyze variables; do not compute
26805         module_statics_escape; do not prune solutions by it.
26806         (read_write_all_from_decl): Fix typos in comments.
26807         (propagate): Doscover readonly and nonaddressable first;
26808         update for new datastructures; share global bitmaps.
26809         * ipa-reference.h (ipa_reference_get_read_global,
26810         ipa_reference_get_written_global): Remove.
26811         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
26812         * Makefile.in: Remove ipa-refereference from GT files.
26813
26814 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
26815
26816         PR debug/44112
26817         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
26818         for all SYMBOL_REF_DECLs.
26819
26820 2010-05-14  Jan Hubicka  <jh@suse.cz>
26821
26822         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
26823         (varpool_all_refs_explicit_p): New inline function.
26824         * ipa-reference.c: Update comment.
26825         (module_statics_written): Remove.
26826         (get_static_decl): Remove.
26827         (ipa_init): Do not initialize module_statics_written.
26828         (analyze_function): Likewise.
26829         (generate_summary): Likewise; do not compute module_statics_readonly
26830         and do not update variable flags.
26831         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
26832         * ipa.c: Inlucde flags.h
26833         (cgraph_local_node_p): New.
26834         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
26835         promote functions to local.
26836         (ipa_discover_readonly_nonaddressable_vars): New function.
26837         (function_and_variable_visibility): Use cgraph_local_node_p.
26838         * varpool.c (varpool_finalize_decl): Set force_output for
26839         DECL_PRESERVE_P vars.
26840
26841 2010-05-14  Jan Hubicka  <jh@suse.cz>
26842
26843         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
26844
26845 2010-05-14  Richard Guenther  <rguenther@suse.de>
26846
26847         PR tree-optimization/44119
26848         * tree-ssa-pre.c (eliminate): Properly mark replacement of
26849         a PHI node necessary.
26850
26851 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
26852
26853         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
26854
26855 2010-05-14  Jason Merrill  <jason@redhat.com>
26856
26857         PR c++/44127
26858         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
26859         (gimple_call_set_nothrow): New.
26860         * gimple.c (gimple_build_call_from_tree): Call it.
26861         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
26862
26863         PR c++/44127
26864         * gimplify.c (gimplify_seq_add_stmt): No longer static.
26865         * gimple.h: Declare it.
26866         * gimple.c (gimple_build_eh_filter): No ops.
26867
26868 2010-05-14  Jan Hubicka  <jh@suse.cz>
26869
26870         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
26871         nodes already in queue.
26872         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
26873         re-enqueueing node.
26874
26875 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
26876
26877         PR debug/44136
26878         * cfgexpand.c (expand_debug_expr): If non-memory op0
26879         has BLKmode, return NULL.
26880
26881 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
26882
26883         * config.gcc: Add support for --with-cpu option for bdver1.
26884         * config/i386/i386.h (TARGET_BDVER1): New macro.
26885         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
26886         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
26887         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
26888         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
26889         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
26890         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
26891         (processor_type): Add PROCESSOR_BDVER1.
26892         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
26893         processor_type in config/i386/i386.h.
26894         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
26895         movaps <reg, reg> instead of movapd <reg, reg> when replacing
26896         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
26897         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
26898         to emit packed xor instead of packed double/packed integer
26899         xor for SSE and AVX when moving a zero value.
26900         * config/i386/sse.md: Add check for
26901         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
26902         movapd/movdqa for SSE and AVX.
26903         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
26904         single logical operations i.e and, or and xor instead of packed double
26905         logical operations for SSE and AVX.
26906         * config/i386/i386-c.c (ix86_target_macros_internal):
26907         Add PROCESSOR_BDVER1.
26908         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
26909         (has_fma4, has_xop): New.
26910         * config/i386/i386.c (bdver1_cost): New variable.
26911         (m_BDVER1): New macro.
26912         (m_AMD_MULTIPLE): Add m_BDVER1.
26913         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
26914         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
26915         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
26916         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
26917         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
26918         x86_tune_sse_partial_reg_dependency,
26919         x86_tune_sse_unaligned_load_optimal,
26920         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
26921         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
26922         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
26923         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
26924         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
26925         Enable/disable for bdver1.
26926         (processor_target_table): Add bdver1_cost.
26927         (cpu_names): Add bdver1.
26928         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
26929          processor_alias_table.
26930         (ix86_expand_vector_move_misalign): Change.
26931         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
26932         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
26933         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
26934         of movupd/movdqu for SSE and AVX.
26935         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
26936         (ix86_tune_adjust_cost): Add code for bdver1.
26937         (standard_sse_constant_opcode): Add check for
26938         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
26939         of packed double xor for SSE and AVX.
26940
26941 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
26942
26943         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
26944         result to unsigned.
26945
26946 2010-05-14  Tristan Gingold  <gingold@adacore.com>
26947
26948         * toplev.c (default_debug_hooks): Remove this variable.
26949         (process_options): Remove assignments to default_debug_hooks.
26950
26951 2010-05-14  Martin Jambor  <mjambor@suse.cz>
26952
26953         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
26954         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
26955         * langhooks.h (struct lang_hooks_for_decls): Removed field
26956         fold_obj_type_ref.
26957         * tree.c (free_lang_data): Remove assignment to
26958         lang_hooks.fold_obj_type_ref.
26959         * tree.def (OBJ_TYPE_REF): Update comment.
26960
26961 2010-05-14  Richard Guenther  <rguenther@suse.de>
26962
26963         PR tree-optimization/44124
26964         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
26965
26966 2010-05-14  Alan Modra  <amodra@gmail.com>
26967
26968         PR target/44075
26969         * config/rs6000/rs6000.c (struct machine_function): Reorder
26970         fields for better packing.  Add lr_save_state.
26971         (rs6000_ra_ever_killed): Return lr_save_state if set.
26972         (rs6000_emit_eh_reg_restore): Set lr_save_state.
26973
26974 2010-05-13  Jan Hubicka  <jh@suse.cz>
26975
26976         * varpool.c (decide_is_variable_needed): Drop code checking
26977         TREE_SYMBOL_REFERENCED.
26978
26979 2010-05-13  Jan Hubicka  <jh@suse.cz>
26980
26981         * final.c (output_addr_const): Do not call mark_decl_referenced.
26982         * cgraphunit.c (process_function_and_variable_attributes): Use
26983         mark_needed_node dirrectly.
26984         (assemble_thunk): Do not call mark_decl_referenced.
26985
26986 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
26987
26988         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
26989
26990 2010-05-13  Jeff Law  <law@redhat.com>
26991
26992         * ira-conflicts.c (print_allocno_conflicts): New function broken out
26993         from...
26994         (print_conflicts): Call print_allocno_conflicts.
26995
26996 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
26997
26998         PR debug/44104
26999         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
27000         if it is NULL.
27001
27002 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
27003
27004         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
27005         t-mingw-w64 or t-mingw-w32 for multilib configuration.
27006         * config/i386/t-mingw-w32: New.
27007         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
27008
27009 2010-05-13  Martin Jambor  <mjambor@suse.cz>
27010
27011         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
27012         gimple-fold.c).
27013         * gimple-fold.c (get_base_binfo_for_type): New function.
27014         (gimple_get_relevant_ref_binfo): Likewise.
27015         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27016         (gimple_fold_obj_type_ref): Likewise.
27017         (fold_gimple_call): Simplify condition for folding virtual calls
27018         and call gimple_fold_obj_type_ref.
27019         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
27020         (gimple_fold_obj_type_ref_known_binfo): Likewise.
27021
27022 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
27023
27024         * config/rs6000/rs6000-protos.h
27025         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
27026         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
27027         (rs6000_debug_mode_dependent_address)
27028         (rs6000_mode_dependent_address_ptr): Likewise.
27029
27030 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
27031
27032         PR debug/43983
27033         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
27034         by SRA.
27035         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
27036         * tree-sra.c (create_access_replacement): Call unshare_expr before
27037         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
27038         * dwarf2out.c: Include tree-flow.h.
27039         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
27040         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
27041         Handle DW_OP_bit_piece.
27042         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
27043         construct_piece_list, adjust_piece_list): New functions.
27044         (add_var_loc_to_decl): Handle SRA optimized variables.
27045         Adjust for var_loc_note to loc field renaming.
27046         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
27047         in VAR_LOCATION note.
27048         (new_loc_descr_op_bit_piece): New function.
27049         (dw_sra_loc_expr): New function.
27050         (dw_loc_list): Use it.  Don't handle the last range after the
27051         loop, handle it inside of the loop.  Adjust for var_loc_note
27052         to loc field renaming.
27053         (add_location_or_const_value_attribute): Only special case
27054         single entry loc lists if loc is NOTE_P.  Adjust for
27055         var_loc_note to loc field renaming.
27056         (dwarf2out_var_location): Don't set newloc->var_loc_note
27057         and newloc->next here.
27058
27059 2010-05-12  Jan Hubicka  <jh@suse.cz>
27060
27061         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
27062         flag.
27063         * cgraph.h (cgraph_only_called_directly_p,
27064         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
27065         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
27066         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
27067         (assemble
27068         * ipa.c (cgraph_remove_unreachable_nodes): Use
27069         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
27070         flags.
27071         * tree-inline.c (copy_bb): Check address_taken flag.
27072         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
27073         externally_visible flag.
27074
27075 2010-05-12  Jason Merrill  <jason@redhat.com>
27076
27077         PR bootstrap/44048
27078         PR target/44099
27079         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
27080         * sdbout.c (plain_type_1): Likewise.
27081         * dwarf2out.c (is_base_type): Likewise.
27082         (gen_type_die_with_usage): Likewise.  Generate
27083         DW_TAG_unspecified_type for any LANG_TYPE.
27084
27085 2010-05-12  Jan Hubicka  <jh@suse.cz>
27086
27087         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
27088         indrect edges too.
27089         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
27090         (cgraph_clone_edge): Update.
27091         (cgraph_node_remove_callees): Remove indirect calls too.
27092         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
27093         (cgraph_create_indirect_edge): Update prototype.
27094         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
27095         is_proper_for_analysis.
27096         (add_new_function, visited_nodes, function_insertion_hook_holder,
27097         get_local_reference_vars_info, mark_address_taken, mark_address,
27098         mark_load, mark_store, check_asm_memory_clobber, check_call,
27099         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
27100         (ipa_init): Do not initialize visited_nodes;
27101         function_insertion_hook_holder.
27102         (analyze_variable): Rewrite.
27103         (analyze_function): Rewrite.
27104         (copy_local_bitmap): Remove.
27105         (duplicate_node_dat): Do not duplicate local info.
27106         (generate_summary): Simplify to only walk cgraph.
27107         (write_node_summary_p, ipa_reference_write_summary,
27108         ipa_reference_read_summary): Remove.
27109         (propagate): Do not remove function insertion;
27110         generate summary.
27111         (pass_ipa_reference): NULLify summary handling fields.
27112         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
27113         (input_edge): Input ecf_flags.
27114         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
27115         (update_indirect_edges_after_inlining): Ignore edges with unknown
27116         param.
27117
27118 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
27119
27120         * implicit-zee.c: New file.
27121         * tree-pass.h (pass_implicit_zee): Declare.
27122         * passes.c (init_optimization_passes): Add zee pass.
27123         * common.opt (fzee): New flag.
27124         * timevar.def (TV_ZEE): Define.
27125         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
27126         and beyond.
27127         * Makefile.in (implicit-zee.o): Add new build file.
27128
27129 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27130             Nathan Froyd  <froydnj@codesourcery.com>
27131
27132         * c-common.c (sync_resolve_params): Remove write-only variable.
27133
27134 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
27135
27136         * target.h (struct gcc_target): Add mode_dependent_address_p field.
27137         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
27138         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
27139         * targhooks.c (default_mode_dependent_address_p): New function.
27140         * targhooks.h (default_mode_dependent_address_p): Declare function.
27141         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
27142         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
27143         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
27144         target hook. Change return type to bool.
27145         * recog.h (mode_dependent_address_p): Change return type to bool.
27146
27147 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27148             Nathan Froyd  <froydnj@codesourcery.com>
27149
27150         * tree-mudflap.c (build_function_type_0, build_function_type_1,
27151         build_function_type_2, build_function_type_3): Remove.
27152         (mudflap_init): Use build_function_type_list.
27153
27154 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
27155             Nathan Froyd  <froydnj@codesourcery.com>
27156
27157         * coverage.c (build_fn_info_value): Call build_constructor instead of
27158         build_constructor_from_list.
27159         (build_ctr_info_value): Likewise.
27160         (build_gcov_info): Likewise.
27161
27162 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
27163
27164         * tree.c (build_constructor): Compute TREE_CONSTANT for the
27165         resultant constructor.
27166         (build_constructor_single): Don't set TREE_CONSTANT.
27167         (build_constructor_from_list): Don't compute TREE_CONSTANT.
27168
27169 2010-05-12  Jan Hubicka  <jh@suse.cz>
27170
27171         * cgraph.h (struct varpool_node): Add aux.
27172         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
27173         * varpool.c (varpool_remove_node): Do not remove initializer.
27174         (varpool_reset_queue): Export.
27175         (varpool_finalize_decl): Volatile vars are forced to be output.
27176         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
27177         replaced decl.
27178         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
27179         process_references, varpool_can_remove_if_no_refs): New functions.
27180         (cgraph_remove_unreachable_nodes): Handle variables too.
27181
27182 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
27183
27184         PR target/44088
27185         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
27186
27187 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
27188
27189         PR middle-end/44085
27190         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
27191         change value of ORT_TASK.
27192         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
27193         (omp_notice_threadprivate_variable): New function.
27194         (omp_notice_variable): Call it for threadprivate variables.
27195         If enclosing ctx is a task, print enclosing task rather than
27196         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
27197         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
27198         if task has untied clause.
27199
27200         PR debug/42278
27201         * dwarf2out.c (base_type_die): Don't add name attribute here.
27202         (modified_type_die): Instead of sizetype use
27203         its underlying original type.  If a DW_TAG_base_type doesn't
27204         have name added, add __unknown__.
27205         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
27206         always call force_type_die instead.
27207
27208 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
27209
27210         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
27211         for __stack_chk_guard.
27212
27213 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
27214
27215         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
27216         don't call start_source_file debug hook here...
27217         (finish_options): ... but here, after outputting predefined and
27218         command line defines and undefs.
27219
27220         PR middle-end/44071
27221         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
27222         no fallthru edge.
27223         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
27224         optimizing away empty bb with no successors, move over its
27225         footer chain to fallthru predecessor.
27226         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
27227         (rtl_split_edge): For asm goto call patch_jump_insn even if
27228         splitting fallthru edge.
27229
27230         PR c++/44059
27231         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
27232         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
27233         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
27234         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
27235         on DW.ref.* decls.
27236
27237         PR c++/44062
27238         * c-parser.c (c_parser_expression): Mark LHS of a comma
27239         expression as read if it is a decl, handled component or
27240         COMPOUND_EXPR with that on the RHS.
27241         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
27242         if it is a decl or handled component.
27243
27244 2010-05-11  Jan Hubicka  <jh@suse.cz>
27245
27246         * lto-symtab.c (lto_symtab_free): New function.
27247         * lto-streamer.h (lto_symtab_free): Declare.
27248
27249 2010-05-11  Jan Hubicka  <jh@suse.cz>
27250
27251         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
27252         that if function is needed it is reachable.
27253         (lto_output_node): See if it the function is reachable or referenced.
27254         (output_cgraph): Update call of lto_output_node.
27255         * lto-streamer.h (reachable_from_other_partition_p): Declare.
27256
27257 2010-05-11  Jan Hubicka  <jh@suse.cz>
27258
27259         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
27260         Mark as used.
27261
27262 2010-05-11  Jan Hubicka  <jh@suse.cz>
27263
27264         PR tree-optimize/44063
27265         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
27266         queue.
27267         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
27268         limits.
27269         (estimate_function_body_sizes): Compute sizes even when disregarding.
27270
27271 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
27272
27273         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
27274
27275 2010-05-11  Jan Hubicka  <jh@suse.cz>
27276
27277         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
27278         into every boundary.
27279
27280 2010-05-11  Jan Hubicka  <jh@suse.cz>
27281
27282         * matrix-reorg.c (matrix_reorg): Rebuild edges.
27283
27284 2010-05-11  Jan Hubicka  <jh@suse.cz>
27285
27286         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
27287         lto_streamer_cache_delete): Put nodes into heap.
27288         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
27289         heap.
27290
27291 2010-05-11  Jan Hubicka  <jh@suse.cz>
27292
27293         * cgraphbuild.c (cgraph_rebuild_references): New.
27294         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
27295         out extern inlines.
27296         * cgraph.h (cgraph_rebuild_references): Declare.
27297         * tree-inline.c (tree_function_versioning): Use it.
27298         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
27299
27300 2010-05-11  Jan Hubicka  <jh@suse.cz>
27301
27302         * cgraph.c: Include ipa-utils.h
27303         (cgraph_create_virtual_clone): Update references.
27304         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
27305
27306 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
27307
27308         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
27309         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
27310         cache size.
27311
27312 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
27313
27314         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
27315
27316 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
27317
27318         * gcc.c (execute): For -### don't quote arguments that
27319         contain just alphanumerics and _/-. characters.
27320         * doc/invoke.texi: Document that change for -###.
27321
27322         PR debug/44023
27323         * df-problems.c (struct dead_debug): Add to_rescan field.
27324         (dead_debug_init): Clear to_rescan field.
27325         (dead_debug_finish): Rescan all debug insns in to_rescan
27326         bitmap and free the bitmap.
27327         (dead_debug_insert_before): Instead of rescanning debug insns
27328         immediately queue their rescanning until dead_debug_finish.
27329         (df_note_bb_compute): After dead_debug_add do continue instead
27330         of break.
27331
27332 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
27333
27334         PR debug/44028
27335         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
27336         clear also INSN_REG_USE_LIST.
27337
27338 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27339
27340         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
27341
27342 2010-05-10  Jan Hubicka  <jh@suse.cz>
27343
27344         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
27345         commited change.
27346
27347 2010-05-10  Jan Hubicka  <jh@suse.cz>
27348
27349         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
27350         Allocate encoders.
27351         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
27352         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
27353         (lto_streamer_cache_create): Init alloc pool.
27354         (lto_streamer_cache_delete): Free alloc pool.
27355         * lto-streamer.h: Include alloc pool.
27356         (lto_streamer_cache_d): Use alloc pool.
27357         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
27358
27359 2010-05-10  Jan Hubicka  <jh@suse.cz>
27360
27361         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
27362         * cgraphbuild.c: Include except.h
27363         (record_type_list, record_eh_tables): New function.
27364         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
27365
27366 2010-05-10  Jan Hubicka  <jh@suse.cz>
27367
27368         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
27369         __frame_dummy_init_array_entry, force_to_data): Attribute as used
27370         rather than unused.
27371
27372 2010-05-10  Michael Matz  <matz@suse.de>
27373
27374         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
27375         (can_reassociate_p): Use FLOAT_TYPE_P.
27376         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
27377         (vect_force_simple_reduction): ... this.
27378         * tree-parloops.c (gather_scalar_reductions): Use
27379         vect_force_simple_reduction.
27380         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
27381         vect_is_simple_reduction, add modify argument, if true rewrite
27382         "a-b" into "a+(-b)".
27383         (vect_is_simple_reduction, vect_force_simple_reduction): New
27384         functions.
27385         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
27386
27387 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
27388             Vladimir Makarov  <vmakarov@redhat.com>
27389
27390         PR rtl-optimization/44012
27391         * ira-build.c (remove_unnecessary_allocnos): Nullify
27392         regno_allocno_map of the removed allocno.
27393
27394 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27395
27396         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
27397         to /dev/null.
27398         * configure: Regenerate.
27399
27400 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27401
27402         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
27403         unused.
27404         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
27405         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
27406         support in Sun ld.
27407         * configure: Regenerate.
27408
27409 2010-05-10  Richard Guenther  <rguenther@suse.de>
27410
27411         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
27412         marked if the entry identifier is marked.
27413
27414 2010-05-10  Richard Guenther  <rguenther@suse.de>
27415
27416         * c-common.c (struct c_common_attributes): Add fnspec attribute.
27417         (handle_fnspec_attribute): New function.
27418         * gimple.h (gimple_call_return_flags): Declare.
27419         (gimple_call_arg_flags): Likewise.
27420         * gimple.c (gimple_call_arg_flags): New function.
27421         (gimple_call_return_flags): Likewise.
27422         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
27423         New argument flags.
27424         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
27425         return value flags.
27426         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
27427         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
27428         main work to ...
27429         (make_heapvar_for): ... this new function.
27430         (handle_rhs_call): Handle fnspec attribute argument specifiers.
27431         (handle_lhs_call): Likewise.
27432         (find_func_aliases): Adjust.
27433
27434 2010-05-10  Richard Guenther  <rguenther@suse.de>
27435
27436         PR tree-optimization/44050
27437         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
27438
27439 2010-05-10  Wei Guozhi  <carrot@google.com>
27440
27441         PR target/42879
27442         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
27443
27444 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
27445
27446         PR c/10676
27447         * c-typeck.c (lookup_field): Take a type directly.  Update
27448         recursive calls.
27449         (build_component_ref): Update call to lookup_field.
27450         (set_init_label): Use lookup_field to find initialized field.
27451         Handle returned list of fields like a sequence of designators.
27452
27453 2010-05-09  Richard Guenther  <rguenther@suse.de>
27454
27455         PR middle-end/44024
27456         * fold-const.c (tree_single_nonzero_warnv_p): Properly
27457         handle &FUNCTION_DECL.
27458
27459 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
27460
27461         PR c/4784
27462         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
27463         structures and unions recursively.
27464         (detect_field_duplicates): Move duplicate detection with a hash to
27465         detect_field_duplicates_hash.  Always use a hash if anonymous
27466         structures or unions are present.
27467         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
27468         give errors.
27469
27470 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
27471
27472         PR target/44046
27473         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
27474         detect Atom, Core 2 and Core i7.
27475
27476 2010-05-09  Richard Guenther  <rguenther@suse.de>
27477
27478         * gcc.c (store_arg): Handle temporary file deletion for
27479         joined arguments.
27480
27481 2010-05-09  Richard Guenther  <rguenther@suse.de>
27482
27483         PR middle-end/44043
27484         * ipa-inline.c (estimate_function_body_sizes): Return after
27485         disregarding inline limits.
27486
27487 2010-05-09  Richard Guenther  <rguenther@suse.de>
27488
27489         * gcc.c (store_arg): Revert last change.
27490
27491 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
27492
27493         PR middle-end/28685
27494         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
27495         (optimize_ops_list): Call it.
27496
27497 2010-05-08  Richard Guenther  <rguenther@suse.de>
27498
27499         PR tree-optimization/44030
27500         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
27501         NECESSARY flag if we propagate from a inserted expression.
27502
27503 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
27504
27505         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
27506         domain types as equal if they are both PLACEHOLDER_EXPRs.
27507
27508 2010-05-08  Richard Guenther  <rguenther@suse.de>
27509
27510         * lto-wrapper.c (run_gcc): Remove linker output from
27511         command line for LTRANS invocation.
27512
27513 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
27514
27515         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
27516         lto-macho as lto_binary_reader.
27517         * target.h (struct gcc_target): New hooks lto_start and lto_end.
27518         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
27519         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
27520         in lto_start and lto_end calls.
27521         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
27522         magic numbers.
27523         (scan_prog_file): Update is_elf_or_coff call.
27524         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
27525
27526         * collect2.c (main): Fix enum comparison.
27527
27528         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
27529         Add prototypes.
27530         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
27531         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
27532         and TARGET_ASM_LTO_END.
27533         * darwin.c: Include obstack.h and lto-streamer.h.
27534         (lto_section_names_offset, lto_section_names_obstack,
27535         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
27536         global variables.
27537         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
27538         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
27539         to a temporary file.
27540         (darwin_asm_lto_end): New function.  Restore asm_out_file.
27541         (darwin_asm_named_section): For LTO sections, replace the name with
27542         the offset of the section name in a string table, and build this
27543         table.
27544         (darwin_file_start): Initialize global vars for LTO support.
27545         (darwin_file_end): If output to asm_out_file was redirected, append it
27546         to the proper asm_out_file here.  Add the section names section.
27547
27548 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
27549
27550         * c-pragma.c (pending_weak_d, pending_weak): New.
27551         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
27552         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
27553         handle_pragma_weak): Update the uses of pending_weaks.
27554
27555 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27556
27557         PR documentation/44016
27558         * doc/standards.texi (Standards): Link to unversioned
27559         cxx0x_status.html page.
27560
27561 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
27562
27563         PR target/43708
27564         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
27565         in addition to TREE_USED, to avoid "set but unused" warnings.
27566
27567 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27568
27569         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
27570         (is_loop_prefetching_profitable): Do not insert prefetches
27571         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
27572         times the prefetch ahead distance.
27573
27574 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27575
27576         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
27577         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
27578         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
27579         the unroll_factor.
27580
27581 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
27582
27583         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
27584         a diagnostic info when the insn-to-mem ratio is too small.
27585
27586 2010-05-07  Richard Guenther  <rguenther@suse.de>
27587
27588         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
27589         the linker plugin.
27590         (store_arg): Queue temp_filename for deletion instead of
27591         the whole argument.
27592
27593 2010-05-07  Richard Guenther  <rguenther@suse.de>
27594
27595         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
27596         (run_gcc): Handle LTRANS phase invocation.
27597         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
27598
27599 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
27600
27601         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
27602         this is also meaningful on PARM_DECLs and RESULT_DECLs.
27603
27604 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27605
27606         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
27607
27608 2010-05-07  Richard Guenther  <rguenther@suse.de>
27609
27610         PR tree-optimization/44020
27611         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
27612         code when PRE is not yet initialized.
27613
27614 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27615
27616         * config/mips/dbxmdebug.h: Remove.
27617         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
27618
27619 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
27620
27621         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
27622         with null pointer and also warn about ordered comparison of zero with
27623         pointer if -Wextra.
27624
27625 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
27626
27627         * graphite-blocking.c
27628         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
27629         * graphite-clast-to-gimple.c
27630         (clast_to_gcc_expression): Same.
27631         (precision_for_value): Same.
27632         (precision_for_interval): Same.
27633         (gcc_type_for_interval): Same.
27634         (graphite_create_new_guard): Same.
27635         (compute_bounds_for_level): Same.
27636         (graphite_create_new_loop_guard): Same.
27637         * graphite-interchange.c
27638         (build_linearized_memory_access): Same.
27639         (pdr_stride_in_loop): Same.
27640         (memory_strides_in_loop_1): Same.
27641         (memory_strides_in_loop): Same.
27642         (extend_scattering): Same.
27643         (psct_scattering_dim_for_loop_depth): Same.
27644         (pbb_number_of_iterations): Same.
27645         * graphite-poly.h
27646         (debug_iteration_domains): Same.
27647         * graphite-ppl.c
27648         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
27649         (ppl_set_inhomogeneous_gmp): Same.
27650         (ppl_strip_loop): Same.
27651         (ppl_lexico_compare_linear_expressions): Same.
27652         (ppl_read_polyhedron_matrix): Same.
27653         (ppl_max_for_le_pointset): Same.
27654         * graphite-ppl.h
27655         (ppl_read_polyhedron_matrix): Same.
27656         (tree_int_to_gmp): Same.
27657         (gmp_cst_to_tree): Same.
27658         (ppl_set_inhomogeneous): Same.
27659         (ppl_set_inhomogeneous_tree): Same.
27660         (ppl_set_coef): Same.
27661         (ppl_set_coef_tree): Same.
27662         * graphite-sese-to-poly.c
27663         (build_pbb_scattering_polyhedrons): Same.
27664         (build_scop_scattering): Same.
27665         (scan_tree_for_params_right_scev): Same.
27666         (scan_tree_for_params): Same.
27667         (find_params_in_bb): Same.
27668         (find_scop_parameters): Same.
27669         (add_upper_bounds_from_estimated_nit): Same.
27670         (build_loop_iteration_domains): Same.
27671         (add_condition_to_domain): Same.
27672         (pdr_add_memory_accesses): Same.
27673
27674 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
27675
27676         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
27677         CLooG's value_* macros to their respective mpz_* counterparts.
27678         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
27679         (graphite_create_new_loop_guard): Same.
27680         * graphite-interchange.c (build_linearized_memory_access): Same.
27681         (pdr_stride_in_loop): Same.
27682         (memory_strides_in_loop_1): Same.
27683         (1st_interchange_profitable_p): Same.
27684         * graphite-poly.c (extend_scattering): Same.
27685         (psct_scattering_dim_for_loop_depth): Same.
27686         (pbb_number_of_iterations): Same.
27687         (pbb_number_of_iterations_at_time): Same.
27688         * graphite-poly.h (new_1st_loop): Same.
27689         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
27690         (oppose_constraint): Same.
27691         (insert_constraint_into_matrix): Same.
27692         (ppl_set_inhomogeneous_gmp): Same.
27693         (ppl_set_coef_gmp): Same.
27694         (ppl_strip_loop): Same.
27695         (ppl_lexico_compare_linear_expressions): Same.
27696         (ppl_max_for_le_pointset): Same.
27697         (ppl_min_for_le_pointset): Same.
27698         (ppl_build_realtion): Same.
27699         * graphite-ppl.h (gmp_cst_to_tree): Same.
27700         (ppl_set_inhomogeneous): Same.
27701         (ppl_set_inhomogeneous_tree): Same.
27702         (ppl_set_coef): Same.
27703         (ppl_set_coef_tree): Same.
27704         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
27705         (build_scop_scattering): Same.
27706         (add_value_to_dim): Same.
27707         (scan_tree_for_params_right_scev): Same.
27708         (scan_tree_for_params_int): Same.
27709         (scan_tree_for_params): Same.
27710         (find_params_in_bb): Same.
27711         (find_scop_parameters): Same.
27712         (add_upper_bounds_from_estimated_nit): Same.
27713         (build_loop_iteration_domains): Same.
27714         (create_linear_expr_from_tree): Same.
27715         (add_condition_to_domain): Same.
27716         (pdr_add_memory_accesses): Same.
27717
27718 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
27719             Jason Merrill  <jason@redhat.com>
27720
27721         * c-common.c (c_common_reswords): Add nullptr.
27722         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
27723         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
27724         (gen_type_die_with_usage): Likewise.
27725         * dbxout.c (dbxout_type): Likewise.
27726         * sdbout.c (plain_type_1): Likewise.
27727
27728 2010-05-06  Jason Merrill  <jason@redhat.com>
27729
27730         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
27731         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
27732         ret appropriately.
27733         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
27734
27735         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
27736         stripping WITH_SIZE_EXPR.
27737         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
27738         change.
27739
27740 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27741
27742         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
27743         list of obsolete configurations.
27744         Disabled check for obsolete configurations.
27745         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
27746         Removed support for previous versions.
27747         * config/mips/iris.h: Removed.
27748         * config/mips/iris5.h: Removed.
27749         * config/mips/iris6.h: Merged old iris.h contents.
27750         (TARGET_IRIX): Removed.
27751         (DRIVER_SELF_SPECS): Removed mabi=32.
27752         (IDENT_ASM_OP): Removed undef.
27753         (STARTFILE_SPEC): Removed mabi=32.
27754         (ENDFILE_SPEC): Likewise.
27755         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
27756         (MACHINE_TYPE): Update for IRIX 6.5.
27757         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
27758         TARGET_IRIX by TARGET_IRIX6.
27759         (mips_file_start): Likewise.
27760         (mips_output_external): Remove IRIX 5/6 O32 support.
27761         (mips_output_function_prologue): Likewise.
27762         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
27763         TARGET_IRIX6.
27764         (TARGET_CPU_CPP_BUILTINS): Likewise.
27765         (TARGET_IRIX): Removed.
27766         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
27767         (MULTILIB_DIRNAMES): Removed 32.
27768         (MULTILIB_OSDIRNAMES): Removed ../lib.
27769         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
27770         (Specific, mips-sgi-irix5): Document removal.
27771         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
27772         Remove references to older IRIX 6 releases and the O32 ABI.
27773
27774 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
27775
27776         PR bootstrap/43994
27777         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
27778         instead of DF_REF_REAL_REG.
27779
27780 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
27781
27782         PR target/43888
27783         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
27784         handling to still return true for x64 targets.
27785
27786 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
27787
27788         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
27789
27790 2010-05-06  Jan Hubicka  <jh@suse.cz>
27791
27792         PR tree-optimization/43791
27793         * ipa-inline.c (update_caller_keys): Remove bogus
27794         disregard_inline_limits check.
27795
27796 2010-05-06  Michael Matz  <matz@suse.de>
27797
27798         PR tree-optimization/43984
27799         * tree-ssa-pre.c (inserted_phi_names): Remove.
27800         (inserted_exprs): Change to bitmap.
27801         (create_expression_by_pieces): Set bits, don't append to vector.
27802         (insert_into_preds_of_block): Don't handle inserted_phi_names.
27803         (eliminate): Don't look at inserted_phi_names, remove deleted
27804         insns from inserted_exprs.
27805         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
27806         (init_pre, fini_pre): Allocate and free bitmaps.
27807         (execute_pre): Insert insns on edges before elimination.
27808
27809 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
27810
27811         * tree.c (initializer_zerop): Handle STRING_CST.
27812
27813 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27814
27815         PR 40989
27816         * doc/invoke.texi (Wimplicit): Document as C only.
27817         * opts.c (common_handle_option): Add argument kind.
27818         (handle_option): Rename as read_cmdline_option. Factor out code to...
27819         (handle_option): ... here. New.
27820         (handle_options): Rename as read_cmdline_options.
27821         (decode_options): Update call.
27822         (set_option): Use option index instead of option pointer. Classify
27823         diagnostics correctly.
27824         (enable_warning_as_error): Call handle_option.
27825         * opts.h (set_option): Update declaration.
27826         (handle_option): Declare.
27827         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
27828         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
27829         * c-opts.c (set_Wimplicit): Delete.
27830         (c_family_lang_mask): New static constant.
27831         (c_common_handle_option): Add argument kind. Use handle_option
27832         instead of set_Wimplicit.
27833         (c_common_post_options): warn_implicit and warn_implicit_int
27834         are disabled by default.
27835         * c-common.c (warn_implicit): Do not define here.
27836         * c-common.h (warn_implicit): Do not declare here.
27837         (c_common_handle_option): Update declaration.
27838         * lto-opts.c (lto_reissue_options): Update call to set_option.
27839
27840 2010-05-06  Richard Guenther  <rguenther@suse.de>
27841
27842         PR tree-optimization/43571
27843         * domwalk.c (walk_dominator_tree): Walk the dominator
27844         sons in more optimal order.
27845
27846 2010-05-06  Richard Guenther  <rguenther@suse.de>
27847
27848         PR tree-optimization/43934
27849         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
27850         (stmt_cost): Likewise.
27851         (extract_true_false_args_from_phi): New helper.
27852         (determine_max_movement): For PHI nodes verify we can hoist them
27853         and compute their cost.
27854         (determine_invariantness_stmt): Handle PHI nodes.
27855         (move_computations_stmt): Likewise.  Hoist PHI nodes in
27856         if-converted form using COND_EXPRs.
27857         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
27858         (tree_ssa_lim): Likewise.
27859         * tree-flow.h (tree_ssa_lim): Adjust prototype.
27860         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
27861
27862 2010-05-06  Richard Guenther  <rguenther@suse.de>
27863
27864         PR tree-optimization/43987
27865         * tree-ssa-structalias.c (could_have_pointers): For possibly
27866         address-taken variables force pointers to be recorded.
27867         (create_variable_info_for_1): Likewise.
27868         (push_fields_onto_fieldstack): Pass in wheter all fields
27869         must have pointers.
27870         (find_func_aliases): Query types instead of vars whether
27871         they contain pointers where appropriate.
27872
27873 2010-05-06  Jan Hubicka  <jh@suse.cz>
27874
27875         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
27876         (record_reference, mark_address, mark_load, mark_store): Record
27877         references.
27878         (record_references_in_initializer): Update call of record_references.
27879         (rebuild_cgraph_edges): Remove all references before rebuiding.
27880         * cgraph.c (cgraph_create_node): Clear ref list.
27881         (cgraph_remove_node): Remove references.
27882         (dump_cgraph_node): Dump references.
27883         (cgraph_clone_node): Clone references.
27884         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
27885         (struct cgraph_node, varpool_node): Add ref_lst.
27886         * ipa-ref.c: New file.
27887         * ipa-ref.h: New file.
27888         * ipa-ref-inline.h: New file.
27889         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
27890         (referenced_from_other_partition_p): New function.
27891         (lto_output_varpool_node): Take set arugment; call
27892         referenced_from_other_partition.
27893         (lto_output_ref): New.
27894         (add_references): New.
27895         (output_refs): New.
27896         (output_cgraph): Compute boundary based on references; output refs.
27897         (output_varpool): Accept cgraph_node_set argument.
27898         (input_ref): New.
27899         (input_refs): New.
27900         (input_cgraph): Call input_refs.
27901         * lto-section-in.c (lto_section_name): Add refs.
27902         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
27903         (ipa-ref.o): New file.
27904         * varpool.c (varpool_node): Clear ipa ref list.
27905         (varpool_remove_node): Remove references.
27906         (dump_varpool_node): Dump references.
27907         (varpool_assemble_decl): Only compile finalized ones.
27908         (varpool_extra_name_alias): Initialize ref list.
27909         * lto-streamer.c (lto-get_section_name): Add .refs section.
27910         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
27911         (referenced_from_other_partition_p): Declared.
27912
27913 2010-05-06  Ira Rosen  <irar@il.ibm.com>
27914
27915         PR tree-optimization/43901
27916         * tree-vect-stmts.c (vectorizable_call): Assert that vector
27917         type is not NULL if it's transformation phase, and return
27918         FALSE if it's analysis.
27919         (vectorizable_conversion, vectorizable_operation,
27920         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
27921
27922 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
27923
27924         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27925         Delete.
27926         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
27927         New define.
27928         * config/mips/mips-protos.h
27929         (mips_small_register_classes_for_mode_p): Delete prototype.
27930
27931 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
27932
27933         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
27934         * config/arm/arm.c (multiple_operation_profitable_p,
27935         compute_offset_order): New static functions.
27936         (load_multiple_sequence, store_multiple_sequence): Use them.
27937         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
27938         memory offsets, not register numbers.
27939         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
27940
27941 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
27942
27943         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
27944         (get_pending_sizes, put_pending_size, put_pending_sizes):
27945         Update the uses of pending_sizes.
27946         * c-decl.c (store_parm_decls): Likewise.
27947         * c-tree.h (struct c_arg_info): Likewise.
27948         * tree.h: Update the prototype for get_pending_sizes and
27949         put_pending_sizes.
27950
27951 2010-05-05  Jason Merrill  <jason@redhat.com>
27952
27953         PR debug/43370
27954         * c-common.c (handle_aligned_attribute): Respect
27955         ATTR_FLAG_TYPE_IN_PLACE.
27956
27957         PR testsuite/43758
27958         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
27959         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27960         (TARGET_INITIALIZER): Use it.
27961         * c-common.c (attribute_takes_identifier_p): Call it.
27962         * c-common.h: Update prototype.
27963         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
27964         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
27965
27966 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
27967
27968         PR debug/43950
27969         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
27970         DW_ID_down_case for Fortran compilation units.
27971
27972 2010-05-05  Jan Hubicka  <jh@suse.cz>
27973
27974         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
27975         handle aliases.
27976
27977 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
27978
27979         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
27980         a variable-sized RESULT_DECL.
27981
27982 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
27983
27984         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
27985
27986 2010-05-05  Jason Merrill  <jason@redhat.com>
27987
27988         PR c++/43787
27989         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
27990         returns GS_OK.
27991         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
27992
27993 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
27994             Jakub Jelinek  <jakub@redhat.com>
27995
27996         PR debug/43478
27997         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
27998         (dead_debug_init, dead_debug_finish): New functions.
27999         (dead_debug_add, dead_debug_insert_before): Likewise.
28000         (df_note_bb_compute): Initialize a dead_debug object, add dead
28001         debug uses to it, insert debug bind insns before death insns,
28002         reset debug insns that refer to pending uses at the end.
28003         * rtl.h (make_debug_expr_from_rtl): New prototype.
28004         * varasm.c (make_debug_expr_from_rtl): New function.
28005
28006 2010-05-05  Jan Hubicka  <jh@suse.cz>
28007
28008         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
28009         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
28010         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
28011         lto_varpool_encoder_deref, lto_varpool_encoder_size,
28012         lto_varpool_encoder_encode_initializer_p,
28013         lto_set_varpool_encoder_encode_initializer): New functions.
28014         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
28015         call output_varpool.
28016         (input_varpool_node): Do not always set analyzed.
28017         (input_cgraph_1): Return vector of cgraph nodes.
28018         (input_varpool_1): Return vector of varpools.
28019         (input_cgraph): Free the vectors.
28020         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
28021         output only initializers needed.
28022         (lto_output): Only call output_cgraph.
28023         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
28024         * lto-section-out.c (lto_new_out_decl_state): Initialize
28025         state->varpool_node_encoder.
28026         * lto-streamer.h (lto_varpool_encoder_d): New.
28027         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
28028         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
28029         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
28030         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
28031         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
28032         Declare.
28033         (output_varpool, input_varpool): Remove declarations.
28034
28035 2010-05-05  Jan Hubicka  <jh@suse.cz>
28036
28037         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
28038         with body can prevail.
28039
28040 2010-05-05  Jan Hubicka  <jh@suse.cz>
28041
28042         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
28043         size.
28044
28045 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
28046
28047         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
28048
28049         * gengtype.h (erro_at_line): Constify pos argument.
28050
28051         * gengtype.c: Include hashtab.h.
28052         (enum gc_used): Document GC_MAYBE_POINTED_TO.
28053         (error_at_line): Constify pos argument.
28054         (do_typedef): Initialize p->opt field.
28055         (get_file_gtfilename): Fix comment typo.
28056         (struct walk_type_data): Constify line field.
28057         (get_output_file_for_structure): New function.
28058         (write_local_func_for_structure): Constify orig_s argument.
28059         Use get_output_file_for_structure.
28060         (write_func_for_structure): Use get_output_file_for_structure.
28061         (INDENT): New define.
28062         (dump_pair, dump_type, dump_type_list, dump_typekind)
28063         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
28064         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
28065         functions.
28066         (seen_types): New variable.
28067         (main): New variable do_dump.  Process "-d" command line option.
28068         Call dump_everything if dump requested.
28069
28070 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
28071
28072         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
28073         in a temporary instead of invoking the macro multiple times.
28074         (track_expr_p): Likewise.
28075
28076 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
28077
28078         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
28079         per new semantics.
28080         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
28081         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
28082         conditions for printing notes.
28083         * common.opt (-Wcoverage-mismatch): Allow negative, default to
28084         true, update documentation.
28085         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
28086
28087 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
28088
28089         PR c/43981
28090         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
28091         on dimen.
28092
28093 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
28094
28095         PR target/43799
28096         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
28097         (*sse_prologue_save_insn1): Likewise.
28098         (SSE prologue save splitter): Likewise.
28099
28100 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
28101
28102         * tree.c (free_lang_data_in_one_sizepos): New inline function.
28103         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
28104         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
28105         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
28106         all decls.  Call it on DECL_FIELD_OFFSET of fields.
28107         (find_decls_types_r): Follow DECL_VALUE_EXPR.
28108         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
28109
28110 2010-05-04  Martin Jambor  <mjambor@suse.cz>
28111
28112         * tree-sra.c (build_access_from_expr_1): The first parameter type
28113         changed to simple tree.
28114         (build_access_from_expr): Likewise, gsi parameter was eliminated.
28115         (scan_assign_result): Renamed to assignment_mod_result, enum elements
28116         renamed as well.
28117         (build_accesses_from_assign): Removed all parameters except for a
28118         simple gimple statement.  Now returns a simple bool.
28119         (scan_function): All non-analysis parts moved to separate functions
28120         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
28121         parameters and updated both callers.
28122         (sra_modify_expr): Removed parameter data.
28123         (sra_modify_function_body): New function.
28124         (perform_intra_sra): Call sra_modify_function_body to modify the
28125         function body.
28126         (replace_removed_params_ssa_names): Parameter data changed into
28127         adjustments vector.
28128         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
28129         changed the parameter dont_convert to convert with the opposite
28130         meaning.
28131         (sra_ipa_modify_assign): Parameter data changed into adjustments
28132         vector, return value changed to bool.
28133         (ipa_sra_modify_function_body): New function.
28134         (sra_ipa_reset_debug_stmts): Updated a comment.
28135         (modify_function): Use ipa_sra_modify_function_body to modify function
28136         body.
28137
28138 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
28139
28140         PR middle-end/43671
28141         * alias.c (true_dependence): Handle the same VALUE in x and mem.
28142         (canon_true_dependence): Likewise.
28143         (write_dependence_p): Likewise.
28144
28145 2010-05-04  Jan Hubicka  <jh@suse.cz>
28146
28147         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
28148         * cgraphbuild.c: Include ipa-utils.h
28149         (record_reference_ctx): New struct.
28150         (record_reference): Simplify to work on initializers; not statements.
28151         (mark_address, mark_load, mark_store): New.
28152         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
28153         walk PHI nodes too.
28154         (record_references_in_initializer): Update use of record_reference.
28155         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
28156         walk PHI nodes too.
28157
28158 2010-05-04  Jan Hubicka  <jh@suse.cz>
28159
28160         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
28161         node will be removed anyway.
28162         (lto_varpool_replace_node): Allow also unanalyzed nodes;
28163         relink aliases of node into prevailing node.
28164         * varpool.c (varpool_remove_node): Remove aliases properly;
28165         when removing node, remove all its aliases too; remove DECL_INITIAL
28166         of removed node; ggc_free the varpool node.
28167
28168 2010-05-04  Richard Guenther  <rguenther@suse.de>
28169
28170         PR tree-optimization/43879
28171         * tree-ssa-structalias.c (alias_get_name): Use
28172         DECL_ASSEMBLER_NAME if available.
28173         (create_function_info_for): Return the varinfo node.
28174         (ipa_pta_execute): Associate same-body aliases and extra names
28175         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
28176
28177 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
28178
28179         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
28180
28181 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
28182
28183         PR bootstrap/43964
28184         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
28185         only if HONOR_REG_ALLOC_ORDER is not defined.
28186
28187 2010-05-04  Richard Guenther  <rguenther@suse.de>
28188
28189         PR tree-optimization/43949
28190         * tree-vrp.c (extract_range_from_binary_expr): Only handle
28191         TRUNC_MOD_EXPR.
28192
28193 2010-04-26  Jason Merrill  <jason@redhat.com>
28194
28195         * c.opt (-fstrict-enums): New.
28196         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
28197
28198 2010-05-03  David Ung  <davidu@mips.com>
28199             James E. Wilson  <wilson@codesourcery.com>
28200
28201         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
28202         emit the trap instruction before the divide for TUNE_74K.
28203
28204 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
28205
28206         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
28207         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
28208         based on the above, for new target hook.
28209
28210         * hooks.c (hook_bool_mode_true): New generic hook.
28211         * hooks.h (hook_bool_mode_true): Add prototype.
28212
28213         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
28214         target hook.
28215         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
28216         target hook, set to hook_bool_mode_false.
28217         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
28218         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
28219         with targetm.small_register_classes_for_mode_p.
28220         (find_reusable_reload): Likewise.
28221         (combine_reloads): Likewise.
28222         * reload1.c (reload_as_needed): Likewise.
28223         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
28224         * ifcvt.c (noce_process_if_block, check_cond_move_block,
28225         dead_or_predicable): Likewise.
28226         * regmove.c (optimize_reg_copy_1): Likewise.
28227         * calls.c (prepare_call_address): Likewise.
28228         (precompute_register_parameters): Likewise.
28229
28230         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
28231         hook definition.
28232         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
28233         implementation of the hook that considers all register classes
28234         small except for SH64.
28235         (sh_override_options): Use the new hook.
28236         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
28237         Add prototype.
28238
28239         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
28240         hook definition.
28241         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
28242         implementation of the hook that considers all register classes
28243         small for THUMB1.
28244         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
28245         Add prototype.
28246
28247         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
28248         hook definition.
28249         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
28250         implementation of the hook that considers all register classes
28251         small for MIPS16.
28252         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
28253         Add prototype.
28254
28255         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
28256         hook definition.
28257         * config/m32c/m32c.h: Likewise.
28258         * config/pdp11/pdp11.h: Likewise.
28259         * config/avr/avr.h: Likewise.
28260         * config/xtensa/xtensa.h: Likewise.
28261         * config/m68hc11/m68hc11.h: Likewise.
28262         * config/mn10300/mn10300.h: Likewise.
28263         * config/mcore/mcore.h: Likewise.
28264         * config/h8300/h8300.h: Likewise.
28265         * config/bfin/bfin.h: Likewise.
28266
28267         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
28268         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
28269
28270 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
28271
28272         * double-int.h (tree_to_double_int): Remove macro.
28273         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
28274         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
28275         (tree_to_double_int): New function.
28276         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
28277         Move ...
28278         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
28279
28280 2010-05-03  Richard Guenther  <rguenther@suse.de>
28281
28282         PR tree-optimization/43971
28283         * tree-ssa-structalias.c (get_constraint_for_1): Fix
28284         constraints in the !flag_delete_null_pointer_checks case.
28285
28286 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
28287
28288         PR debug/43972
28289         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
28290         result mode matches original rtl mode.
28291
28292 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
28293
28294         PR target/43888
28295         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
28296
28297 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28298
28299         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
28300         when processing flag options.
28301
28302 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28303
28304         * gcov-iov.c (main): Change format string placeholder
28305         from %#08x to 0x%08x.
28306         * genchecksum.c (dosum): Change format string placeholder
28307         from %#02x to 0x%02x.
28308
28309 2010-05-02  Richard Guenther  <rguenther@suse.de>
28310
28311         PR tree-optimization/43879
28312         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
28313
28314 2010-05-02  Bruno Haible  <bruno@clisp.org>
28315
28316         * doc/extend.texi (Function Attributes): Fix a typo.
28317
28318 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28319
28320         Revert:
28321         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
28322         placeholder from 0x%x to %#x.
28323         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
28324         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
28325         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
28326         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
28327         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
28328         * config/i386/i386.c (ix86_target_string): Ditto.
28329         * config/i386/i386.c (output_pic_addr_const): Ditto.
28330         (print_operand): Ditto.
28331
28332 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
28333
28334         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
28335         placeholder from 0x%x to %#x.
28336         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
28337         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
28338         (ASM_OUTPUT_DEBUG_DATA): Ditto.
28339         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
28340         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
28341         * optc-gen.awk: Ditto.
28342         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
28343         (HOST_WIDE_INT_PRINT_HEX): Ditto.
28344         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
28345         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
28346
28347 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
28348
28349         * target.h (struct calls): Add function_value_regno_p field.
28350         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
28351         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
28352         * targhooks.c (default_function_value_regno_p): New function.
28353         * targhooks.h (default_function_value_regno_p): Declare function.
28354         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
28355         * builtins.c. (apply_result_size): (Ditto.).
28356         * combine.c. (likely_spilled_retval_p): (Ditto.).
28357         * mode-switching.c. Include 'target.h'.
28358         (create_pre_exit): Use function_value_regno_p hook.
28359         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
28360         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
28361         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
28362
28363         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
28364         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
28365         (ix86_function_value_regno_p): Declare as static, change argument
28366         type to const unsigned int.
28367         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
28368
28369 2010-05-01  Richard Guenther  <rguenther@suse.de>
28370
28371         PR tree-optimization/43949
28372         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
28373         types.
28374         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
28375
28376 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
28377
28378         * rtl.h (CONST_DOUBLE_P): Define.
28379         (rtx_to_double_int): Declare.
28380         * emit-rtl.c (rtx_to_double_int): New function.
28381         * dwarf2out.c (insert_double): New function.
28382         (loc_descriptor, add_const_value_attribute): Clean up, use
28383         rtx_to_double_int and insert_double functions.
28384
28385 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
28386
28387         * doc/extend.texi (Inline): Add missing return keyword to examples.
28388         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
28389         "command-line".
28390
28391 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
28392
28393         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
28394         the variable part of the offset as well.  Use highest_pow2_factor for
28395         all alignment checks.
28396
28397 2010-04-30  Richard Guenther  <rguenther@suse.de>
28398
28399         PR tree-optimization/43879
28400         * tree-ssa-structalias.c (type_could_have_pointers): Functions
28401         can have pointers.
28402
28403 2010-04-30  Jan Hubicka  <jh@suse.cz>
28404
28405         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
28406         varpool.
28407         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
28408
28409 2010-04-30  Jan Hubicka  <jh@suse.cz>
28410
28411         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
28412         New.
28413         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
28414         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
28415         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
28416         cgraph_node_set_needs_ltrans_p): Remove.
28417
28418 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
28419
28420         * sdbout.c: Include vec.h, do not include varray.h.
28421         (deferred_global_decls, sdbout_global_decl,
28422         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
28423         * toplev.c: Do not include varray.h.
28424         (dump_memory_report): Do not dump VARRAY statistics.
28425         * gengtype.c (open_base_file): Ignore varray.h.
28426         * Makefile.in: Update for abovementioned changes.
28427         Remove all traces of varray.c and varray.h.
28428         * varray.c: Remove file.
28429         * varray.h: Remove file.
28430
28431 2010-04-30  Jan Hubicka  <jh@suse.cz>
28432
28433         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
28434         references.
28435
28436 2010-04-30  Jan Hubicka  <jh@suse.cz>
28437
28438         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
28439         needed.
28440
28441 2010-04-30  Richard Guenther  <rguenther@suse.de>
28442
28443         * tree-ssa-structalias.c (get_constraint_for_1): Generate
28444         constraints for CONSTRUCTOR.
28445
28446 2010-04-30  Richard Guenther  <rguenther@suse.de>
28447
28448         PR lto/43946
28449         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
28450         first after all lowering passes.
28451
28452 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
28453
28454         * toplev.c: Include varray.h for statistics dumping.
28455         * tree.h: Do not declare varray_head_tag.
28456         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
28457         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
28458         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
28459         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
28460         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
28461         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
28462         c-common.c, c-common.h, reg-stack.c, basic-block.h,
28463         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
28464         include varray.h.
28465         * Makefile.in: Update for abovementioned changes.
28466
28467 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
28468
28469         PR debug/43942
28470         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
28471
28472 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
28473
28474         * config/picochip/picochip.c (picochip_legitimize_address): Define.
28475         Use this function to do machine-specific conversion.
28476         (picochip_legitimize_reload_address): Likewise.
28477         (picochip_legitimate_address_p): Check valid base register only if
28478         strict.
28479         (picochip_check_conditional_copy): Check for modw only if opnd is
28480         register.
28481         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
28482         to call the function in c.
28483         * config/picochip/picochip-protos.h
28484         (picochip_legitimize_reload_address): Define.
28485         * config/picochip/picochip.md (supported_compare1): Define.
28486
28487 2010-04-30  Jan Hubicka  <jh@suse.cz>
28488
28489         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
28490         (cgraph_global_info): Remove inlined.
28491         (LTO_cgraph_tag_names): Remove.
28492         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
28493         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
28494         simplify cgraph tags and document.
28495         (lto_output_node): Use only LTO_cgraph_unavail_node and
28496         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
28497         for_functions_valid, global info, process and output flags.
28498         (input_overwrite_node): Initialize estimated stack size and
28499         estimated growth.  Do not read flags we no longer store.
28500         (input_node): Likewise do not read info no longer stored.
28501         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
28502         flag.
28503
28504 2010-04-30  Richard Guenther  <rguenther@suse.de>
28505
28506         PR tree-optimization/43879
28507         * tree-ssa-structalias.c (get_constraint_for_1): Properly
28508         handle non-zero initializers.
28509
28510 2010-04-30  Richard Guenther  <rguenther@suse.de>
28511
28512         * builtins.c (fold_builtin_1): Delete free (0).
28513
28514 2010-04-29  Jan Hubicka  <jh@suse.cz>
28515
28516         * gengtype.c (open_base_files): Add lto-streamer.h
28517         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
28518         (pass_ipa_cp): GGC collect.
28519         * toplev. (compile_file): Do not output symbols.
28520         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
28521         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
28522         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
28523         * lto-section-in.c: Include ggc.h
28524         (lto_new_in_decl_state): Alloc in GGC.
28525         (lto_delete_in_decl_state): Likewise.
28526         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
28527         Collect.
28528
28529 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
28530
28531         PR target/42895
28532         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
28533         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
28534         (HONOR_REG_ALLOC_ORDER): Describe new macro.
28535         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
28536         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
28537         account only if HONOR_REG_ALLOC_ORDER is not defined.
28538         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
28539         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
28540
28541 2010-04-29  Jon Grant  <04@jguk.org>
28542
28543         * collect2.c (vflag): Change type from int to bool.
28544         (debug): Likewise.
28545         (helpflag): New global bool.
28546         (main): Set vflag and debug with boolean, not integer truth values.
28547         Accept new "--help" option and output usage text if found.
28548         * collect2.h (vflag): Update prototype.
28549         (debug): Likewise.
28550
28551 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
28552
28553         PR bootstrap/43936
28554         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
28555
28556 2010-04-29  Richard Guenther  <rguenther@suse.de>
28557
28558         PR bootstrap/43935
28559         * plugin.h (invoke_plugin_callbacks): Annotate arguments
28560         with ATTRIBUTE_UNUSED.
28561
28562 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
28563
28564         PR target/43921
28565         * config/i386/i386.c (get_some_local_dynamic_name): Replace
28566         INSN_P with NONDEBUG_INSN_P.
28567         (distance_non_agu_define): Likewise.
28568         (distance_agu_use): Likewise.
28569
28570 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
28571
28572         From Dominique d'Humieres  <dominiq@lps.ens.fr>
28573         PR bootstrap/43858
28574         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
28575         test_set.
28576
28577 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
28578
28579         * plugin.h (invoke_plugin_callbacks): New inline function.
28580         * plugin.c (flag_plugin_added): New global flag.
28581         (add_new_plugin): Initialize above flag.
28582         (invoke_plugin_callbacks): Rename to ...
28583         (invoke_plugin_callbacks_full): ... this.
28584
28585 2010-04-28  Jan Hubicka  <jh@suse.cz>
28586
28587         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
28588         (lto_varpool_replace_node): New.
28589         (lto_symtab_resolve_symbols): Resolve varpool nodes.
28590         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
28591         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
28592         * cgraph.h (varpool_node_ptr): New type.
28593         (varpool_node_ptr): New vector.
28594         (varpool_node_set_def): New structure.
28595         (varpool_node_set): New type.
28596         (varpool_node_set): New vector.
28597         (varpool_node_set_element_def): New structure.
28598         (varpool_node_set_element, const_varpool_node_set_element): New types.
28599         (varpool_node_set_iterator): New type.
28600         (varpool_node): Add prev pointers, add used_from_other_partition,
28601         in_other_partition.
28602         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
28603         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
28604         varpool_get_node, varpool_remove_node): Declare.
28605         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
28606         varpool_node_set_size): New inlines.
28607         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
28608         * tree-pass.h (varpool_node_set_def): Forward declare.
28609         (ipa_opt_pass_d): Summary writting takes vnode sets too.
28610         (ipa_write_optimization_summaries): Update prototype.
28611         * ipa-cp.c (ipcp_write_summary): Update.
28612         * ipa-reference.c (ipa_reference_write_summary): Update.
28613         * lto-cgraph.c (lto_output_varpool_node): New static function.
28614         (output_varpool): New function.
28615         (input_varpool_node): New static function.
28616         (input_varpool_1): New function.
28617         (input_cgraph): Input varpool.
28618         * ipa-pure-const.c (pure_const_write_summary): Update.
28619         * lto-streamer-out.c (lto_output): Update, output varpool too.
28620         (write_global_stream): Kill WPA hack.
28621         (produce_asm_for_decls): Update.
28622         (output_alias_pair_p): Handle variables.
28623         (output_unreferenced_globals): Output only needed partition of varpool.
28624         * ipa-inline.c (inline_write_summary): Update.
28625         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
28626         cgraph.
28627         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
28628         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
28629         varpool_node_set_new, varpool_node_set_add,
28630         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
28631         debug_varpool_node_set): New functions.
28632         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
28633         (execute_one_pass): Process new decls too.
28634         (ipa_write_summaries_2): Pass around vsets.
28635         (ipa_write_summaries_1): Likewise.
28636         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
28637         to add.
28638         (ipa_write_optimization_summaries_1): Pass around vsets.
28639         (ipa_write_optimization_summaries): Likewise.
28640         * varpool.c (varpool_get_node): New.
28641         (varpool_node): Update doubly linked lists.
28642         (varpool_remove_node): New.
28643         (dump_varpool_node): More dumping.
28644         (varpool_enqueue_needed_node): Update doubly linked lists.
28645         (decide_is_variable_needed): Kill ltrans hack.
28646         (varpool_finalize_decl): Kill lto hack.
28647         (varpool_assemble_decl): Skip decls in other partitions.
28648         (varpool_assemble_pending_decls): Update doubly linkes lists.
28649         (varpool_empty_needed_queue): Likewise.
28650         (varpool_extra_name_alias): Likewise.
28651         * lto-streamer.c (lto_get_section_name): Add vars section.
28652         * lto-streamer.h (lto_section_type): Update.
28653         (output_varpool, input_varpool): Declare.
28654
28655 2010-04-28  Mike Stump  <mikestump@comcast.net>
28656
28657         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
28658
28659 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28660
28661         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
28662         record or union type with RECORD_OR_UNION_TYPE_P predicate.
28663         (lto_input_ts_type_tree_pointers): Likewise.
28664         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
28665         (lto_output_ts_type_tree_pointers): Likewise.
28666
28667 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28668
28669         Uniquization of constants at the Tree level
28670         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
28671         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
28672         bit to the end.
28673         (tree_output_constant_def): Declare.
28674         * gimplify.c (gimplify_init_constructor): When using block copy, first
28675         uniquize the constant constructor on the RHS.
28676         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
28677         DECL_IN_CONSTANT_POOL flag.
28678         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
28679         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
28680         constant pool.
28681         (assemble_variable): Deal with symbols belonging to the tree constant
28682         pool.
28683         (get_constant_section): Add ALIGN parameter and simplify.
28684         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
28685         (assemble_constant_contents): Use the expression of the VAR_DECL.
28686         (output_constant_def_contents): Use the alignment of the VAR_DECL.
28687         (tree_output_constant_def): New global function.
28688         (mark_constant): Use the expression of the VAR_DECL.
28689         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
28690         its expression.
28691         (output_object_block): Likewise and assemble the expression.
28692
28693 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28694
28695         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
28696         hash_tree, eq_tree): New tree hash table.
28697         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
28698         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
28699         lto_orig_address_remove): Reimplement.
28700
28701 2010-04-28  Xinliang David Li  <davidxl@google.com>
28702
28703         PR c/42643
28704         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
28705         (compute_uninit_opnds_pos): New function.
28706         (is_non_loop_exit_postdominating): New function.
28707         (compute_control_dep_chain): New function.
28708         (find_pdom): New function.
28709         (convert_control_dep_chain_into_preds): New function.
28710         (find_predicates): New function.
28711         (find_control_equiv_block): New function.
28712         (collect_phi_def_edges): New function.
28713         (find_def_preds): New function.
28714         (find_dom): New function.
28715         (dump_predicates): New function.
28716         (get_cmp_code): New function.
28717         (is_value_included_in): New function.
28718         (find_matching_predicate_in_rest_chains): New function.
28719         (use_pred_not_overlap_with_undef_path_pred): New function.
28720         (is_use_properly_guarded): New function.
28721         (normalize_cond_1): New function.
28722         (is_and_or_or): New function.
28723         (normalize_cond): New function.
28724         (is_gcond_subset_of): New function.
28725         (is_subset_of_any): New function.
28726         (is_or_set_subset_of): New function.
28727         (is_and_set_subset_of): New function.
28728         (is_norm_cond_subset_of): New function.
28729         (is_pred_expr_subset_of): New function.
28730         (is_pred_chain_subset_of): New function.
28731         (is_included_in): New function.
28732         (is_superset_of): New function.
28733         (find_uninit_use): New function.
28734         (warn_uninitialized_phi): New function.
28735         (compute_possibly_undefined_names): New function.
28736         (ssa_undefined_value_p): New function.
28737         (execute_late_warn_uninitialized): New function.
28738         * tree-ssa.c (ssa_undefined_value_p): Removed.
28739         (warn_uninit): Changed to extern.
28740         (warn_uninitialized_phi): Removed.
28741         (warn_uninitialized_vars): Changed to extern.
28742         (execute_late_warn_uninitialized): Removed
28743         * tree-flow.h: Add new prototypes.
28744         * timevar.def: Add new time variable.
28745         * Makefile.in: Add new build file.
28746
28747 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
28748
28749         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
28750         type if available.
28751
28752 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28753
28754         PR target/22224
28755         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
28756
28757 2010-04-28  Martin Jambor  <mjambor@suse.cz>
28758
28759         * cgraph.h (struct cgraph_node): New field indirect_calls.
28760         (struct cgraph_indirect_call_info): New type.
28761         (struct cgraph_edge): Removed field indirect_call. New fields
28762         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
28763         (cgraph_create_indirect_edge): Declare.
28764         (cgraph_make_edge_direct): Likewise.
28765         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
28766         * ipa-prop.h (struct ipa_param_call_note): Removed.
28767         (struct ipa_node_params): Removed field param_calls.
28768         (ipa_create_all_structures_for_iinln): Declare.
28769         * cgraph.c: Described indirect edges and uids in initial comment.
28770         (cgraph_add_edge_to_call_site_hash): New function.
28771         (cgraph_edge): Search also among the indirect edges, use
28772         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
28773         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
28774         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
28775         site hash.
28776         (initialize_inline_failed): Assign a reason to indirect edges.
28777         (cgraph_create_edge_1): New function.
28778         (cgraph_create_edge): Moved some functionality to
28779         cgraph_create_edge_1.
28780         (cgraph_create_indirect_edge): New function.
28781         (cgraph_edge_remove_callee): Add an assert checking for
28782         non-indirectness.
28783         (cgraph_edge_remove_caller): Special-case indirect edges.
28784         (cgraph_remove_edge): Likewise.
28785         (cgraph_set_edge_callee): New function.
28786         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
28787         (cgraph_make_edge_direct): New function.
28788         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
28789         the declaration of the call statement matches.
28790         (cgraph_node_remove_callees): Special-case indirect edges.
28791         (cgraph_clone_edge): Likewise.
28792         (cgraph_clone_node): Clone also the indirect edges.
28793         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
28794         indirect_call, dump count of indirect_calls edges.
28795         * ipa-prop.c (iinlining_processed_edges): New variable.
28796         (ipa_note_param_call): Create indirect edges instead of
28797         creating notes.  New parameter node.
28798         (ipa_analyze_call_uses): New parameter node, pass it on to
28799         ipa_note_param_call.
28800         (ipa_analyze_stmt_uses): Likewise.
28801         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
28802         (print_edge_addition_message): Work on edges rather than on notes.
28803         (update_call_notes_after_inlining): Likewise, renamed to
28804         update_indirect_edges_after_inlining.
28805         (ipa_create_all_structures_for_iinln): New function.
28806         (ipa_free_node_params_substructures): Do not free notes.
28807         (ipa_edge_duplication_hook): Propagate bits within
28808         iinlining_processed_edges bitmap.
28809         (ipa_node_duplication_hook): Do not duplicate notes.
28810         (free_all_ipa_structures_after_ipa_cp): Renamed to
28811         ipa_free_all_structures_after_ipa_cp.
28812         (free_all_ipa_structures_after_iinln): Renamed to
28813         ipa_free_all_structures_after_iinln.
28814         (ipa_write_param_call_note): Removed.
28815         (ipa_read_param_call_note): Removed.
28816         (ipa_write_indirect_edge_info): New function.
28817         (ipa_read_indirect_edge_info): Likewise.
28818         (ipa_write_node_info): Do not stream notes, do stream information
28819         in indirect edges.
28820         (ipa_read_node_info): Likewise.
28821         (lto_ipa_fixup_call_notes): Removed.
28822         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
28823         * ipa-inline.c (pass_ipa_inline): Likewise.
28824         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
28825         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
28826         * tree-inline.c (copy_bb): Removed an unnecessary double check for
28827         is_gimple_call.
28828         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
28829         edges.
28830         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
28831         (output_cgraph): Stream also indirect edges.
28832         (lto_output_edge): Added capability to stream indirect edges.
28833         (input_edge): Likewise.
28834         (input_cgraph_1): Likewise.
28835         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
28836         of indirect edges.
28837
28838 2010-04-28  Richard Guenther  <rguenther@suse.de>
28839
28840         PR tree-optimization/43879
28841         PR tree-optimization/43909
28842         * tree-ssa-structalias.c (struct variable_info): Add
28843         only_restrict_pointers flag.
28844         (new_var_info): Initialize it.  Increment stats.total_vars here.
28845         (create_function_info_for): Do not increment stats.total_vars here.
28846         (get_function_part_constraint): Fix build with C++.
28847         (insert_into_field_list): Remove.
28848         (push_fields_onto_fieldstack): Properly merge fields.
28849         (create_variable_info_for): Split and simplify.
28850         (create_variable_info_for_1): New piece.
28851         (intra_create_variable_infos): Properly make restrict constraints
28852         from parameters.
28853
28854 2010-04-28  Richard Guenther  <rguenther@suse.de>
28855
28856         PR c++/43880
28857         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
28858
28859 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28860             Jan Hubicka  <hubicka@ucw.cz>
28861
28862         * doc/invoke.texi (-Wsuggest-attribute=const,
28863         -Wsuggest-attribute=pure): Document.
28864         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
28865         (function_always_visible_to_compiler_p,
28866         suggest_attribute, warn_function_pure, warn_function_const):
28867         New functions.
28868         (check_call): Improve debug info.
28869         (analyze_function): Do not check availability.
28870         (add_new_function): Check availability.
28871         (propagate): Output warnings.
28872         (skip_function_for_local_pure_const): New function.
28873         (local_pure_const): Use it; output warnings.
28874         * common.opt (Wsuggest-attribute=const,
28875         Wsuggest-attribute=pure): New.
28876
28877 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
28878
28879         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
28880         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
28881         or DW_CFA_def_cfa_offset{,_sf}.
28882
28883 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
28884
28885         * tree.h: Fix truncated long macros.
28886
28887 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
28888
28889         * collect2.c (TARGET_64BIT): Redefine to target's default.
28890         * tlink.c: Likewise.
28891         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
28892         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
28893         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
28894         for underscoring __USER_LABEL_PREFIX__.
28895         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
28896         (SUB_LINK_ENTRY32): New.
28897         (SUB_LINK_ENTRY64): New.
28898         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
28899         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
28900         (SUB_LINK_ENTRY64): New.
28901         (SUB_LINK_ENTRY): New.
28902         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
28903         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
28904         x64 target is choosen.
28905         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
28906         * configure: Regenerated.
28907         * configure.ac (leading-mingw64-underscores): Option added.
28908
28909 2010-04-27  Jan Hubicka  <jh@suse.cz>
28910
28911         * doc/invoke.texi (-fipa-profile): Document.
28912         * opts.c (decode_options): Enable ipa-profile at -O1.
28913         * timevar.def (TV_IPA_PROFILE): Define.
28914         * common.opt (fipa-profile): Add.
28915         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
28916         flag for clones.
28917         (cgraph_propagate_frequency): Handle only local ones.
28918         * tree-pass.h (pass_ipa_profile): Declare.
28919         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
28920         (pass_ipa_profile): Use TV_IPA_PROFILE.
28921         * ipa.c (ipa_profile): New function.
28922         (gate_ipa_profile): Likewise.
28923         (pass_ipa_profile): New global variable.
28924         * passes.c (pass_ipa_profile): New.
28925
28926 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
28927
28928         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
28929
28930 2010-04-27  Martin Jambor  <mjambor@suse.cz>
28931
28932         PR middle-end/43812
28933         * ipa.c (dissolve_same_comdat_group_list): New function.
28934         (function_and_variable_visibility): Call
28935         dissolve_same_comdat_group_list when comdat group contains external or
28936         newly local nodes.
28937         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
28938         lists are circular and that they contain only DECL_ONE_ONLY nodes.
28939
28940 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
28941
28942         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
28943         (const_hash_1) <VECTOR_CST>: New case.
28944         (compare_constant) <VECTOR_CST>: Likewise.
28945         <ADDR_EXPR>: Deal with LABEL_REFs.
28946         (copy_constant) <VECTOR_CST>: New case.
28947
28948 2010-04-27  Jan Hubicka  <jh@suse.cz>
28949
28950         * cgraph.c (cgraph_propagate_frequency): New function.
28951         * cgraph.h (cgraph_propagate_frequency): Declare.
28952         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
28953         cgraph_propagate_frequency.
28954
28955 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
28956
28957         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
28958
28959 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
28960
28961         PR target/40657
28962         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
28963         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
28964         here to determine which regs to push and how much stack to reserve.
28965
28966 2010-04-27  Jie Zhang  <jie@codesourcery.com>
28967
28968         * doc/gimple.texi (gimple_statement_with_ops): Remove
28969         addresses_taken field.
28970         (gimple_statement_with_memory_ops): Likewise.
28971
28972 2010-04-27  Jan Hubicka  <jh@suse.cz>
28973
28974         * tree-inline.c (eni_inlining_weights): Remove.
28975         (estimate_num_insns): Special case more builtins.
28976
28977 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
28978
28979         PR c/32207
28980         * c-typeck.c (build_binary_op): Move forward check for comparison
28981         pointer with null pointer constant and adjust the diagnostic message.
28982
28983 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
28984
28985         PR lto/42776
28986         * configure.ac (gcc_cv_as_section_has_align): Set if installed
28987         binutils supports extended .section directive needed by LTO, or
28988         warn if older binutils found.
28989         (LTO_BINARY_READER): New AC_SUBST'd variable.
28990         (LTO_USE_LIBELF): Likewise.
28991         * config.gcc (lto_binary_reader): New target-specific configure
28992         variable.
28993         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
28994         (LTO_USE_LIBELF): Likewise.
28995         * configure: Regenerate.
28996
28997         * collect2.c (is_elf): Rename from this ...
28998         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
28999          object files in addition to ELF-formatted ones.
29000         (scan_prog_file): Caller updated.  Also allow for LTO info marker
29001         symbol to be prefixed or not by an extra underscore.
29002
29003         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
29004         * config/i386/winnt.c: Also #include lto-streamer.h
29005         (i386_pe_asm_named_section): Specify 1-byte section alignment for
29006         LTO named sections.
29007         (i386_pe_asm_output_aligned_decl_common): Add comment.
29008         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
29009
29010 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
29011
29012         PR target/43889
29013         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
29014         Add missing earlyclobber for second alternative.
29015
29016 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
29017
29018         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
29019         bits for artificial defs at the top of the block.
29020         * fwprop.c (single_def_use_enter_block): Don't call it.
29021
29022 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
29023
29024         PR 43715
29025         * configure.ac: Use "$gcc_cv_nm -g" on darwin
29026         instead of "$gcc_cv_objdump -T".
29027         Use "-undefined dynamic_lookup" on darwin.
29028         * configure: Regenerate.
29029
29030 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
29031
29032         PR c/43893
29033         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
29034
29035 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
29036
29037         * c-parser.c (struct c_token): Move location field up.
29038         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
29039         (struct c_declspecs): Convert typespec_word, storage_class, and
29040         default_int_p into bitfields.
29041         (struct c_declarator): Move loc field up.
29042
29043 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
29044
29045         * cfgloop.h (struct loop): Move can_be_parallel field up.
29046         * ipa-prop.h (struct ip_node_params): Move bitfields up.
29047         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
29048         down.
29049         (struct iv_cand): Convert pos field into a bitfield.
29050         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
29051         field up.
29052         (struct _stmt_vec_info): Shuffle fields for better packing.
29053
29054 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
29055
29056         * varasm.c (IN_NAMED_SECTION): Remove guard.
29057         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
29058         (IN_NAMED_SECTION_P): ...this.
29059         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
29060         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
29061
29062 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
29063
29064         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
29065         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
29066         of shadowing it.  Fix comments.
29067
29068 2010-04-26  Jan Hubicka  <jh@suse.cz>
29069
29070         * cgraph.c (cgraph_create_node): Set node frequency to normal.
29071         (cgraph_clone_node): Copy function frequency.
29072         * cgraph.h (node_frequency): New enum
29073         (struct cgraph_node): Add.
29074         * final.c (rest_of_clean_state): Update.
29075         * lto-cgraph.c (lto_output_node): Output node frequency.
29076         (input_overwrite_node): Input node frequency.
29077         * tre-ssa-loop-ivopts (computation_cost): Update.
29078         * lto-streamer-out.c (output_function): Do not output function
29079         frequency.
29080         * predict.c (maybe_hot_frequency_p): Update and handle functions
29081         executed once.
29082         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
29083         attribute lookup.
29084         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
29085         (compute_function_frequency): Set noreturn functions to be executed
29086         once.
29087         (choose_function_section): Update.
29088         * lto-streamer-in.c (input_function): Do not input function frequency.
29089         * function.c (allocate_struct_function): Do not initialize function
29090         frequency.
29091         * function.h (function_frequency): Remove.
29092         (struct function): Remove function frequency.
29093         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
29094         (try_update): Update.
29095         * tree-inline.c (initialize_cfun): Do not update function frequency.
29096         * passes.c (pass_init_dump_file): Update.
29097         * i386.c (ix86_compute_frame_layout): Update.
29098         (ix86_pad_returns): Update.
29099
29100 2010-04-26  Jie Zhang  <jie@codesourcery.com>
29101
29102         PR tree-optimization/43833
29103         * tree-vrp.c (range_int_cst_p): New.
29104         (range_int_cst_singleton_p): New.
29105         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
29106         when both operands are constants.  Use range_int_cst_p in
29107         BIT_IOR_EXPR case.
29108
29109 2010-04-26  Jan Hubicka  <jh@suse.cz>
29110
29111         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
29112
29113 2010-04-26  Richard Guenther  <rguenther@suse.de>
29114
29115         PR lto/43080
29116         * gimple.c (gimple_decl_printable_name): Deal gracefully
29117         with a NULL DECL_NAME.
29118
29119 2010-04-26  Richard Guenther  <rguenther@suse.de>
29120
29121         PR lto/42425
29122         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
29123         if emitting debug information and it is either a function
29124         or a namespace decl.
29125
29126 2010-04-26  Ira Rosen  <irar@il.ibm.com>
29127
29128         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
29129         determine if the statement is vectorizable, and a macro to access it.
29130         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
29131         Skip statements that can't be vectorized. If the analysis fails,
29132         mark the statement as unvectorizable if vectorizing basic block.
29133         (vect_compute_data_refs_alignment): Likewise.
29134         (vect_verify_datarefs_alignment): Skip statements marked as
29135         unvectorizable. Add print.
29136         (vect_analyze_group_access): Skip statements that can't be
29137         vectorized. If the analysis fails, mark the statement as
29138         unvectorizable if vectorizing basic block.
29139         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
29140         * tree-vect-stmts.c (vectorizable_store): Fix the number of
29141         generated stmts for SLP.
29142         (new_stmt_vec_info): Initialize the new field.
29143         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
29144         statements marked as unvectorizable.
29145
29146 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
29147
29148         * c-common.c (flag_isoc1x): New.
29149         (flag_isoc99): Update comment.
29150         * c-common.h (flag_isoc1x): New.
29151         (flag_isoc99): Update comment.
29152         * c-cppbuiltin.c (builtin_define_float_constants): Also define
29153         __<type>_DECIMAL_DIG__.
29154         * c-opts.c (set_std_c1x): New.
29155         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
29156         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
29157         * c.opt (-std=c1x, -std=gnu1x): New options.
29158         * doc/cpp.texi: Mention -std=c1x.
29159         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
29160         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
29161         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
29162         * doc/standards.texi: Mention C1X.
29163         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
29164         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
29165         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
29166         Define for C1X.
29167
29168 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
29169
29170         * config/i386/gmon-sol2.c (_mcleanup): Change format string
29171         placeholder from 0x%x to %#x.
29172         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
29173         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
29174         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
29175         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
29176         * config/i386/i386.c (ix86_target_string): Ditto.
29177         (output_pic_addr_const): Ditto.
29178         (print_operand): Ditto.
29179
29180 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
29181
29182         * combine.c (find_split_point): Add third argument.  Use it
29183         to find nested multiply-accumulate instructions.  Adjust calls.
29184         (try_combine): Adjust call to find_split_point.
29185
29186 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
29187
29188         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
29189
29190 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
29191
29192         PR tree-optimization/41442
29193         * fold-const.c (merge_truthop_with_opposite_arm): New function.
29194         (fold_binary_loc): Call it.
29195
29196 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
29197
29198         * toplev.c (general_init): Set default for fdiagnostics-show-option.
29199         * opts.c (common_handle_option): Allow disabling it.
29200         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
29201
29202 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
29203
29204         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
29205         between modes if both types are integral.
29206
29207 2010-04-23  Richard Guenther  <rguenther@suse.de>
29208
29209         PR tree-optimization/43572
29210         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
29211
29212 2010-04-23  Richard Guenther  <rguenther@suse.de>
29213
29214         PR lto/43455
29215         * tree-inline.c (tree_can_inline_p): Also check compatibility
29216         of return types.
29217
29218 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29219
29220         PR tree-optimization/43846
29221         * tree-sra.c (struct access): New flag grp_assignment_read.
29222         (build_accesses_from_assign): Set grp_assignment_read.
29223         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
29224         (enum mark_read_status): New type.
29225         (analyze_access_subtree): Propagate grp_assignment_read, create
29226         accesses also if both direct_read and root->grp_assignment_read.
29227
29228 2010-04-23  Martin Jambor  <mjambor@suse.cz>
29229
29230         PR middle-end/43835
29231         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
29232         function does not have type attributes.
29233
29234 2010-04-23  Richard Guenther  <rguenther@suse.de>
29235
29236         PR lto/42653
29237         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
29238         of FUNCTION_DECLs.
29239
29240 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29241
29242         * sese.h (create_if_region_on_edge): Remove.
29243
29244         * sese.c (create_if_region_on_edge): Make static.
29245
29246         * tree-inline.c: Do not include ggc.h.
29247
29248         * expr.c: Do not include ggc.h.
29249
29250         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
29251         dependencies.
29252
29253 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
29254
29255         PR target/43744
29256         * config/sh/sh.c (find_barrier): Don't emit a constant pool
29257         in the middle of insns for casesi_worker_2.
29258
29259 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
29260
29261         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
29262
29263 2010-04-22  Ira Rosen  <irar@il.ibm.com>
29264
29265         PR tree-optimization/43842
29266         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
29267         loop unrolling in update of exit phis. Fix comment.
29268         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
29269         least two reduction statements in the loop before starting SLP
29270         analysis.
29271
29272 2010-04-22  Nick Clifton  <nickc@redhat.com>
29273
29274         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
29275
29276 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
29277
29278         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
29279         to simplify a + ~a.
29280
29281 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29282
29283         * tree-parloops.c (loop_parallel_p): New argument
29284         parloop_obstack.  Pass it down.
29285         (parallelize_loops): New variable parloop_obstack.  Initialize it,
29286         pass it down, free it.
29287
29288         * tree-loop-linear.c (linear_transform_loops): Pass down
29289         lambda_obstack.
29290
29291         * tree-data-ref.h (lambda_compute_access_matrices): New argument
29292         of type struct obstack *.
29293
29294         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
29295         scratch_obstack.  Initialize it, pass down, free it.
29296
29297         * lambda.h (lambda_loop_new): Remove.
29298         (lambda_matrix_new, lambda_matrix_inverse)
29299         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
29300         argument of type struct obstack *.
29301
29302         * lambda-trans.c (lambda_trans_matrix_new): New argument
29303         lambda_obstack.  Pass it down, use obstack allocation for ret.
29304         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
29305         it down.
29306
29307         * lambda-mat.c (lambda_matrix_get_column)
29308         (lambda_matrix_project_to_null): Remove.
29309         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
29310         allocation for mat.
29311         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
29312         lambda_obstack.
29313
29314         * lambda-code.c (lambda_loop_new): New function.
29315         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
29316         (lambda_compute_auxillary_space, lambda_compute_target_space)
29317         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
29318         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
29319         (build_access_matrix): New argument lambda_obstack.  Use obstack
29320         allocation for am.
29321         (lambda_compute_step_signs, lambda_compute_access_matrices): New
29322         argument lambda_obstack.  Pass it down.
29323
29324 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
29325
29326         * optabs.h (expand_widening_mult): Declare.
29327
29328 2010-04-22  Richard Guenther  <rguenther@suse.de>
29329
29330         PR tree-optimization/43845
29331         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
29332         lookup the CALL_EXPR function and arguments.
29333
29334 2010-04-22  Nick Clifton  <nickc@redhat.com>
29335
29336         * config/stormy16/stormy16.c
29337         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
29338         * config/stormy16/stormy16.h: Tidy up formatting.
29339         (DONT_USE_BUILTIN_SETJMP): Remove definition.
29340         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
29341         (ineqbranchsi): Delete pattern.
29342         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
29343         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
29344         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
29345         stormy16-lib2-ucmpsi2.c.
29346
29347 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
29348
29349         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
29350         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
29351         extra set merge_set_noclobber, and use it to relax the final test
29352         slightly.
29353         * df.h (df_simulate_find_noclobber_defs): Declare.
29354         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
29355         conditional defs.
29356         (df_simulate_find_noclobber_defs): New function.
29357
29358 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
29359
29360         * config/i386/i386.md: Use {} around multi-line preparation statements.
29361
29362 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29363
29364         * c-tree.h (push_init_level, pop_init_level, set_init_index)
29365         (process_init_element): New argument of type struct obstack *.
29366
29367         * c-typeck.c (push_init_level, pop_init_level, set_designator)
29368         (set_init_index, set_init_label, set_nonincremental_init)
29369         (set_nonincremental_init_from_string, find_init_member)
29370         (output_init_element, output_pending_init_elements)
29371         (process_init_element): New argument braced_init_obstack.  Pass it
29372         down.
29373         (push_range_stack, add_pending_init): New argument
29374         braced_init_obstack.  Use obstack allocation.
29375
29376         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
29377         braced_init_obstack.  Pass it down.
29378         (c_parser_braced_init): New variables ret, braced_init_obstack.
29379         Initialize obstack, pass it down and finally free it.
29380
29381 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
29382
29383         PR middle-end/29274
29384         * tree-pass.h (pass_optimize_widening_mul): Declare.
29385         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
29386         gate_optimize_widening_mul): New static functions.
29387         (pass_optimize_widening_mul): New.
29388         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
29389         <case MULT_EXPR>: Remove support for widening multiplies.
29390         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
29391         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
29392         simplify_gen_unary rather than directly building extensions.
29393         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
29394         WIDEN_MULT_EXPR.
29395         * expmed.c (expand_widening_mult): New function.
29396         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
29397
29398 2010-04-21  Jan Hubicka  <jh@suse.cz>
29399
29400         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
29401         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
29402         * lto-wpa-fixup.c: Remove.
29403         * Makefile.in (lto-wpa-fixup.o): Remove.
29404         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
29405         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
29406         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
29407
29408 2010-04-21  Jan Hubicka  <jh@suse.cz>
29409
29410         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
29411         add write_optimization_summary, read_optimization_summary.
29412         (ipa_write_summaries_of_cgraph_node_set): Remove.
29413         (ipa_write_optimization_summaries): Declare.
29414         (ipa_read_optimization_summaries): Declare.
29415         * ipa-cp.c (pass_ipa_cp): Update.
29416         * ipa-reference.c (pass_ipa_reference): Update.
29417         * ipa-pure-const.c (pass_ipa_pure_const): Update.
29418         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
29419         Update.
29420         * ipa-inline.c (pass_ipa_inline): Update.
29421         * ipa.c (pass_ipa_whole_program): Update.
29422         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
29423         * passes.c (ipa_write_summaries_1): Do not test wpa.
29424         (ipa_write_optimization_summaries_1): New.
29425         (ipa_write_optimization_summaries): New.
29426         (ipa_read_summaries): Do not test ltrans.
29427         (ipa_read_optimization_summaries_1): New.
29428         (ipa_read_optimization_summaries): New.
29429
29430 2010-04-21  Jan Hubicka  <jh@suse.cz>
29431
29432         * lto-cgraph.c (lto_output_node): Do not output comdat groups
29433         for boundary nodes.
29434         (output_cgraph): Do not arrange comdat groups for boundary nodes.
29435
29436 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29437
29438         PR debug/40040
29439         * dwarf2out.c (add_name_and_src_coords_attributes): Add
29440         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
29441
29442 2010-04-21  Jan Hubicka  <jh@suse.cz>
29443
29444         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
29445
29446 2010-04-21  Jan Hubicka  <jh@suse.cz>
29447
29448         * varpool.c (decide_is_variable_needed): Variable is always needed
29449         during ltrans.
29450
29451 2010-04-21  Jan Hubicka  <jh@suse.cz>
29452
29453         * opts.c (decode_options): Enable pure-const pass for whopr.
29454
29455 2010-04-21  Jan Hubicka  <jh@suse.cz>
29456
29457         * cgraph.c (dump_cgraph_node): Dump also assembler name.
29458         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
29459         at WPA dumping.
29460         (cgraph_decide_inlining): Do not expect callee to be removed in all
29461         cases.
29462
29463 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
29464
29465         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
29466
29467 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
29468
29469         * config/i386/i386.md (x86_shrd): Add athlon_decode and
29470         amdfam10_decode attributes.
29471
29472 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29473
29474         PR middle-end/43570
29475         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
29476         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
29477         (lower_copyprivate_clauses): Use private var in outer
29478         context instead of original var.  Make sure the types
29479         are correct for VLAs.
29480
29481 2010-04-21  Richard Guenther  <rguenther@suse.de>
29482
29483         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
29484         to non-pointer objects.
29485
29486 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
29487
29488         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
29489         last chain entry if it starts with the still current label.
29490         (add_location_or_const_value_attribute): Check that
29491         loc_list->first->next is NULL instead of comparing ->first with ->last.
29492         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
29493         to add_var_loc_to_decl.
29494
29495         * dwarf2out.c (output_call_frame_info): For dw_cie_version
29496         >= 4 add also address size and segment size fields into CIE header.
29497
29498         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
29499         long as address size is the same as sizeof (void *) and
29500         segment size is 0.
29501         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
29502         address size or segment size is unexpected, return DW_EH_PE_omit.
29503         (classify_object_over_fdes): If get_cie_encoding returned
29504         DW_EH_PE_omit, return -1.
29505         (init_object): If classify_object_over_fdes returned -1,
29506         pretend there were no FDEs at all.
29507
29508 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
29509
29510         * config/i386/i386.md (bswap<mode>2): Macroize expander from
29511         bswap{si,di}2 using SWI48 mode iterator.
29512         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
29513         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
29514         set modrm attribute of bswap insn to 0 and remove length attribute.
29515         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
29516         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
29517         set mode attribute to <MODE> and remove length attribute.
29518
29519 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
29520
29521         PR rtl-optimization/43520
29522         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
29523         zero available registers.
29524
29525 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29526
29527         * builtins.c (fold_builtin_cproj): Fold more cases.
29528
29529 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29530
29531         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
29532         (fold_builtin_1): Fold builtin cproj.
29533         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
29534         Use ATTR_CONST_NOTHROW_LIST.
29535
29536 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
29537
29538         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
29539         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
29540         ffsi2_no_cmove for !TARGET_CMOVE.
29541         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
29542         (ffssi2): Remove expander.
29543         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
29544         mode iterator.
29545         (ctz<mode>2): Ditto from ctz{si,di}2.
29546         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
29547         mode iterator.
29548         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
29549         mode iterator.
29550
29551 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
29552
29553         * dwarf2out.c (AT_linkage_name): Define.
29554         (clone_as_declaration): Handle DW_AT_linkage_name.
29555         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
29556         of DW_AT_MIPS_linkage_name.
29557         (move_linkage_attr): Likewise.
29558         (dwarf2out_finish): Likewise.
29559
29560 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
29561
29562         PR middle-end/41952
29563         * fold-const.c (fold_comparison): New folding rule.
29564
29565 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
29566
29567         * double-int.h (double_int_setbit): Declare.
29568         * double-int.c (double_int_setbit): New function.
29569         * rtl.h (immed_double_int_const): Declare.
29570         * emit-rtl.c (immed_double_int_const): New function.
29571         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
29572         and immed_double_int_const functions.
29573         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
29574         expand_copysign_bit): (Ditto.).
29575         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
29576         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
29577         * dojump.c (prefer_and_bit_test): (Ditto.).
29578         * expr.c (convert_modes, reduce_to_bit_field_precision,
29579         const_vector_from_tree): (Ditto.).
29580         * expmed.c (mask_rtx, lshift_value): (Ditto.).
29581
29582 2010-04-20  Jan Hubicka  <jh@suse.cz>
29583
29584         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
29585         (dump_cgraph_node): Dump new flags.
29586         * cgraph.h (struct cgraph_node): Add flags
29587         reachable_from_other_partition and in_other_partition.
29588         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
29589         other partition can not be removed.
29590         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
29591         the other partition must be output; silence sanity checking on
29592         leaking functions bodies from other paritition.
29593         * lto-cgraph.c (reachable_from_other_partition_p): New function.
29594         (lto_output_node): Output new flags; do not sanity check that inline
29595         clones are output; drop lto_forced_extern_inline_p code; do not mock
29596         visibility flags at partition boundaries.
29597         (add_node_to): New function.
29598         (output_cgraph): Use it to sort functions so masters appear before
29599         clones.
29600         (input_overwrite_node): Input new flags.
29601         * passes.c (ipa_write_summaries): Do not call
29602         lto_new_extern_inline_states.
29603         * lto-section-out.c (forced_extern_inline,
29604         lto_new_extern_inline_states lto_delete_extern_inline_states,
29605         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
29606         * lto-streamer.h (lto_new_extern_inline_states,
29607         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
29608         lto_forced_extern_inline_p): Kill.
29609
29610 2010-04-20  Richard Guenther  <rguenther@suse.de>
29611
29612         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
29613         from vars that can have pointers.
29614         (process_constraint): Dump useless constraints.
29615
29616 2010-04-20  Richard Guenther  <rguenther@suse.de>
29617
29618         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
29619         (dump_sa_points_to_info): Remove asserts.
29620         (init_base_vars): nothing_id isn't an escape point nor does it
29621         have pointers.
29622
29623 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
29624
29625         * tree.h (TYPE_REF_IS_RVALUE): Define.
29626         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
29627         should_move_die_to_comdat, prune_unused_types_walk): Handle
29628         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
29629         (modified_type_die, gen_reference_type_die): Emit
29630         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
29631         if TYPE_REF_IS_RVALUE and -gdwarf-4.
29632
29633 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29634
29635         PR target/43635
29636         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
29637         calls for -fpic -m31 if they have been sibcall optimized.
29638
29639 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
29640
29641         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
29642         ar.lc fixed and call-used.
29643
29644         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
29645
29646 2010-04-19  Jan Hubicka  <jh@suse.cz>
29647
29648         * opts.c (decode_options): Disable whpr incompatible passes.
29649         * lto/lto.c (lto_1_to_1_map): Skip clones.
29650         (read_cgraph_and_symbols): Do not mark everything as needed.
29651         (do_whole_program_analysis): Do map only after optimizing;
29652         set proper cgraph_state; use passmanager.
29653
29654 2010-04-19  DJ Delorie  <dj@redhat.com>
29655
29656         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
29657         POINTER_PLUS_EXPR and fix them.
29658
29659 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
29660
29661         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
29662         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
29663         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
29664         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
29665         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
29666         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
29667         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
29668         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
29669         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
29670         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
29671         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
29672
29673 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
29674
29675         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
29676         (check_cond_move_block): Likewise.
29677         (cond_move_process_if_block): Likewise.
29678         (noce_find_if_block): Improve formatting.
29679         (find_if_header): Pass 0 to memset and tweak conditions.
29680         (cond_exec_find_if_block): Fix long lines and tweak conditions.
29681
29682 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
29683
29684         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
29685         for -gdwarf-4.
29686
29687         PR middle-end/43337
29688         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
29689         with non-local decl doesn't need chain.
29690
29691 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
29692
29693         * ira-color.c (allocno_reload_assign): Avoid accumulating
29694         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
29695
29696 2010-04-19  Martin Jambor  <mjambor@suse.cz>
29697
29698         * gimple.h (create_tmp_reg): Declare.
29699         * gimplify.c (create_tmp_reg): New function.
29700         (gimplify_return_expr): Use create_tmp_reg.
29701         (gimplify_omp_atomic): Likewise.
29702         (gimple_regimplify_operands): Likewise.
29703         * tree-dfa.c (make_rename_temp): Likewise.
29704         * tree-predcom.c (predcom_tmp_var): Likewise.
29705         (reassociate_to_the_same_stmt): Likewise.
29706         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
29707         (get_replaced_param_substitute): Likewise.
29708         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
29709         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
29710         * tree-ssa-pre.c (get_representative_for): Likewise.
29711         (create_expression_by_pieces): Likewise.
29712         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
29713         (create_tailcall_accumulator): Likewise.
29714
29715 2010-04-19  Martin Jambor  <mjambor@suse.cz>
29716
29717         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
29718         new_stmt.
29719         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
29720
29721 2010-04-19  Richard Guenther  <rguenther@suse.de>
29722
29723         PR tree-optimization/43796
29724         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
29725         from SCEV in the lattice.
29726         (vrp_visit_phi_node): Dump change.
29727
29728 2010-04-19  Richard Guenther  <rguenther@suse.de>
29729
29730         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
29731         * configure: Re-generated.
29732
29733 2010-04-19  Richard Guenther  <rguenther@suse.de>
29734
29735         PR tree-optimization/43783
29736         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
29737         constant ARRAY_REF operands two and three if possible.
29738
29739 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
29740
29741         PR target/43766
29742         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
29743
29744 2010-04-19  Jie Zhang  <jie@codesourcery.com>
29745
29746         PR target/43662
29747         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
29748
29749 2010-04-19  Ira Rosen  <irar@il.ibm.com>
29750
29751         PR tree-optimization/37027
29752         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
29753         and macro to access it.
29754         (vectorizable_reduction): Add argument.
29755         (vect_get_slp_defs): Likewise.
29756         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
29757         statements for possible use in SLP.
29758         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
29759         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
29760         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
29761         add new argument.
29762         (vectorizable_reduction): Likewise.
29763         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
29764         vect_get_slp_defs.
29765         (vectorizable_type_demotion, vectorizable_type_promotion,
29766         vectorizable_store): Likewise.
29767         (vect_analyze_stmt): Update call to vectorizable_reduction.
29768         (vect_transform_stmt): Likewise.
29769         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
29770         (vect_build_slp_tree): Fix indentation. Check that there are no loads
29771         from different interleaving chains in same node.
29772         (vect_slp_rearrange_stmts): New function.
29773         (vect_supported_load_permutation_p): Allow load permutations for
29774         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
29775         inside SLP nodes if necessary.
29776         (vect_analyze_slp_instance): Handle reductions.
29777         (vect_analyze_slp): Try to build SLP instances originating from groups
29778         of reductions.
29779         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
29780         (vect_get_constant_vectors): Create initial vectors for reductions
29781         according to reduction code. Add new argument.
29782         (vect_get_slp_defs): Add new argument, pass it to
29783         vect_get_constant_vectors.
29784         (vect_schedule_slp_instance): Remove SLP tree root statements.
29785
29786 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
29787
29788         * tree.h (ENUM_IS_SCOPED): Define.
29789         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
29790         for ENUM_IS_SCOPED enums.
29791
29792 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
29793
29794         * fold-const.c (fold_comparison): Use ssizetype.
29795         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
29796         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
29797         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
29798         * tree-object-size.c (compute_object_sizes): Use size_type_node.
29799
29800         * tree.h (initialize_sizetypes): Remove parameter.
29801         (build_common_tree_nodes): Remove second parameter.
29802         * stor-layout.c (initialize_sizetypes): Remove parameter.
29803         Always create an unsigned type.
29804         (set_sizetype): Assert that the passed type is unsigned and simplify.
29805         * tree.c (build_common_tree_nodes): Remove second parameter.
29806         Adjust call to initialize_sizetypes.
29807         * c-decl.c (c_init_decl_processing): Remove second argument in call to
29808         build_common_tree_nodes.
29809
29810 2010-04-18  Matthias Klose  <doko@ubuntu.com>
29811
29812         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
29813
29814 2010-04-18  Ira Rosen  <irar@il.ibm.com>
29815
29816         PR tree-optimization/43771
29817         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
29818         load permutation doesn't have gaps.
29819
29820 2010-04-18  Jan Hubicka  <jh@suse.cz>
29821
29822         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
29823         (sse_prologue_save_insn expander): Use new pattern.
29824         (sse_prologue_save_insn1): New pattern and splitter.
29825         (sse_prologue_save_insn): Update to deal also with 64bit aligned
29826         blocks.
29827         * i386.c (setup_incoming_varargs_64): Do not compute jump
29828         destination here.
29829         (ix86_gimplify_va_arg): Update alignment needed.
29830         (ix86_local_alignment): Do not align all local arrays to 128bit.
29831
29832 2010-04-17  Jan Hubicka  <jh@suse.cz>
29833
29834         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
29835
29836 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29837
29838         * arm.md (negdi2): Remove redundant code to force values into a
29839         register.
29840
29841 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29842
29843         * arm/bpabi.S: Add EABI alignment attributes to objects.
29844         * arm/bpabi-v6m.S: Likewise.
29845         * arm/crti.asm: Likewise.
29846         * arm/crtn.asm: Likewise.
29847         * arm/lib1funcs.asm: Likewise.
29848         * arm/libunwind.S: Likewise.
29849
29850 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
29851
29852         * arm-protos.h (tune_params): New structure.
29853         * arm.c (current_tune): New variable.
29854         (arm_constant_limit): Delete.
29855         (struct processors): Add pointer to the tune parameters.
29856         (arm_slowmul_tune): New tuning option.
29857         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
29858         (all_cores): Adjust to pick up the tuning model.
29859         (arm_constant_limit): New function.
29860         (arm_override_options): Select the appropriate tuning model.  Delete
29861         initialization of arm_const_limit.
29862         (arm_split_constant): Use the new constant-limit model.
29863         (arm_rtx_costs): Pick up the current tuning model.
29864         * arm.md (is_strongarm, is_xscale): Delete.
29865         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
29866         for Xscale variant architectures.
29867         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
29868
29869 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29870
29871         * config/arm/arm.c (arm_gen_constant): Remove unused variable
29872         can_shift.
29873         (arm_rtx_costs_1): Remove unused variable extra_cost.
29874         (arm_unwind_emit_set): Use variable offset.
29875         (thumb1_output_casesi): Remove unused variable flags.
29876
29877 2010-04-16  Jeff Law  <law@redhat.com>
29878
29879         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
29880         needing assignment rather than doing a two-phase assignment.  Remove
29881         unused variable 'm'.
29882
29883 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29884
29885         PR bootstrap/43767
29886         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
29887
29888 2010-04-16  Doug Kwan  <dougkwan@google.com>
29889
29890         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
29891         (next_operand_entry_id): New static variable.
29892         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
29893         (add_to_ops_vec): Assigned unique ID to operand entry.
29894         (struct oecount_s): New field ID.
29895         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
29896         (undistribute_ops_list): Assign unique IDs to oecounts.
29897         (init_reassoc): reset next_operand_entry_id.
29898
29899 2010-04-16  Doug Kwan  <dougkwan@google.com>
29900
29901         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
29902         missing left parenthesis.
29903
29904 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
29905
29906         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
29907         *btdi_rex64 using SWI48 mode iterator.
29908         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
29909         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
29910         *jcc_btdi_mask_rex64.
29911
29912 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
29913
29914         * double-int.h (tree_to_double_int): Convert to macro.
29915         * double-int.c (tree_to_double_int): Remove.
29916
29917 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
29918
29919         PR debug/43762
29920         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
29921         with want_address 2 and in case a single element list might be
29922         possible, call it again with want_address 0.
29923
29924 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
29925
29926         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
29927         case 'W' print operands for HI mode.
29928         * config/h8300/h8300.h (Y0, Y2) : New constraints.
29929         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
29930         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
29931         * config/h8300/predicate.md (bit_register_indirect_operand): New.
29932
29933         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
29934
29935         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
29936         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
29937         #xx:3 and #xx:4 mode.
29938
29939         * config/h8300/h8300.md (inverted load with HImode dest): Add
29940         support for H8300SX.
29941
29942         * config/h8300/predicate.md (bit_operand): Allow immediate values that
29943         satisfy 'U' constraint.
29944
29945 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29946
29947         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
29948         * configure: Regenerate.
29949         * config.in: Regenerate.
29950         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
29951         works.
29952
29953 2010-04-16  Richard Guenther  <rguenther@suse.de>
29954
29955         * tree.h (struct tree_decl_minimal): Move pt_uid ...
29956         (struct tree_decl_common): ... here.
29957         (DECL_PT_UID): Adjust.
29958         (SET_DECL_PT_UID): Likewise.
29959         (DECL_PT_UID_SET_P): Likewise.
29960
29961 2010-04-16  Richard Guenther  <rguenther@suse.de>
29962
29963         PR tree-optimization/43572
29964         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
29965         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
29966         * tree-flow.h (is_call_clobbered): Remove.
29967         * tree-flow-inline.h (is_call_clobbered): Likewise.
29968         * tree-dfa.c (dump_variable): Do not dump call clobber state.
29969         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
29970         (execute_return_slot_opt): Adjust.
29971         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
29972         check for call clobbered vars here.
29973         (find_tail_calls): Move tailcall verification to the
29974         proper place.
29975
29976 2010-04-16  Diego Novillo  <dnovillo@google.com>
29977
29978         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
29979
29980 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29981
29982         PR target/40603
29983         * config/arm/arm.md (cbranchqi4): New pattern.
29984         * config/arm/predicates.md (const0_operand,
29985         cbranchqi4_comparison_operator): New predicates.
29986
29987 2010-04-16  Richard Guenther  <rguenther@suse.de>
29988
29989         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
29990         (dump_gimple_stmt): Likewise.
29991
29992 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
29993
29994         * recog.h (struct recog_data): New field is_operator.
29995         (struct insn_operand_data): New field is_operator.
29996         * recog.c (extract_insn): Set recog_data.is_operator.
29997         * genoutput.c (output_operand_data): Emit code to set the
29998         is_operator field.
29999         * reload.c (find_reloads): Use it rather than testing for an
30000         empty constraint string.
30001
30002         PR target/41514
30003         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
30004         If the previous insn is a cbranchsi4_insn with the same arguments,
30005         omit the compare instruction.
30006
30007         * config/arm/arm.md (addsi3_cbranch): If destination is a high
30008         register, inputs must be low registers and we need a low register
30009         scratch.  Handle alternative 2 like alternative 3.
30010
30011 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
30012
30013         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
30014         don't call get_addr on both.  If one expression is a VALUE and
30015         the other a REG, check VALUE's locs if the REG isn't among them.
30016
30017 2010-04-16  Christian Bruel  <christian.bruel@st.com>
30018
30019         * config/sh/sh.h (sh_frame_pointer_required): New function.
30020         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
30021         (flag_omit_frame_pointer) Set.
30022         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
30023         (rounded_frame_size): Adjust size with outgoing_args_size.
30024         (sh_set_return_address): Must return from stack pointer.
30025         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
30026         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
30027         (ACCUMULATE_OUTGOING_ARGS): Define.
30028         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
30029         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
30030
30031 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
30032
30033         PR target/43471
30034         * config/sh/sh.c (sh_legitimize_reload_address): Use
30035         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
30036         Remove a unneeded check for offset_base.
30037
30038 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
30039
30040         * configure: Regenerated.
30041
30042 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30043
30044         * config/s390/s390.c (s390_call_save_register_used): Switch back
30045         to HARD_REGNO_NREGS.
30046
30047 2010-04-15  Richard Guenther  <rguenther@suse.de>
30048
30049         * alias.c (alias_set_subset_of): Handle alias-set zero
30050         child properly.
30051
30052 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
30053             Julian Brown  <julian@codesourcery.com>
30054
30055         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
30056         alternatives according to use of high and low regs.
30057         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
30058         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
30059         optimizing for size on Thumb-2.
30060
30061 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
30062
30063         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
30064
30065 2010-04-15  Richard Guenther  <rguenther@suse.de>
30066
30067         * tree-ssa-structalias.c (struct variable_info): Add
30068         is_fn_info flag.
30069         (new_var_info): Initialize it.
30070         (dump_constraints): Support printing last added constraints.
30071         (debug_constraints): Adjust.
30072         (dump_constraint_graph): Likewise.
30073         (make_heapvar_for): Check for NULL cfun.
30074         (get_function_part_constraint): New function.
30075         (get_fi_for_callee): Likewise.
30076         (find_func_aliases): Properly implement IPA PTA constraints.
30077         (process_ipa_clobber): New function.
30078         (find_func_clobbers): Likewise.
30079         (insert_into_field_list_sorted): Remove.
30080         (create_function_info_for): Properly allocate vars for IPA mode.
30081         Do not use insert_into_field_list_sorted.
30082         (create_variable_info_for): Properly generate constraints for
30083         global vars in IPA mode.
30084         (dump_solution_for_var): Always dump the solution.
30085         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
30086         (find_what_var_points_to): Adjust.
30087         (pt_solution_set): Change.
30088         (pt_solution_ior_into): New function.
30089         (pt_solution_empty_p): Export.
30090         (pt_solution_includes_global): Adjust.
30091         (pt_solution_includes_1): Likewise.
30092         (pt_solutions_intersect_1): Likewise.
30093         (dump_sa_points_to_info): Check some invariants.
30094         (solve_constraints): Move constraint dumping ...
30095         (compute_points_to_sets): ... here.
30096         (ipa_pta_execute): ... and here.
30097         (compute_may_aliases): Do not re-compute points-to info
30098         locally if IPA info is available.
30099         (ipa_escaped_pt): New global var.
30100         (ipa_pta_execute): Properly implement IPA PTA.
30101         * tree-into-ssa.c (dump_decl_set): Support dumping
30102         decls not in referenced-vars.
30103         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
30104         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
30105         (dump_points_to_solution): Likewise.
30106         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
30107         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
30108         (remap_gimple_stmt): Reset call clobber/use information if necessary.
30109         (copy_decl_to_var): Copy DECL_PT_UID.
30110         (copy_result_decl_to_var): Likewise.
30111         * tree.c (make_node_stat): Initialize DECL_PT_UID.
30112         (copy_node_stat): Copy it.
30113         * tree.h (DECL_PT_UID): New macro.
30114         (SET_DECL_PT_UID): Likewise.
30115         (DECL_PT_UID_SET_P): Likewise.
30116         (struct tree_decl_minimal): Add pt_uid member.
30117         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
30118         (pt_solution_empty_p): Declare.
30119         (pt_solution_set): Adjust.
30120         (ipa_escaped_pt): Declare.
30121         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
30122         * gimple-pretty-print.c (pp_points_to_solution): New function.
30123         (dump_gimple_call): Dump call clobber/use information.
30124         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
30125         * tree-pass.h (TDF_ALIAS): New dump option.
30126         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
30127         * doc/invoke.texi (-fipa-pta): Update documentation.
30128
30129 2010-04-15  Richard Guenther  <rguenther@suse.de>
30130
30131         * Makefile.in (OBJS-common): Add gimple-fold.o.
30132         (gimple-fold.o): New rule.
30133         * tree.h (maybe_fold_offset_to_reference,
30134         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
30135         prototypes ...
30136         * gimple.h: ... here.
30137         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
30138         may_propagate_address_into_dereference): Move prototypes ...
30139         * gimple.h: ... here.
30140         * tree-ssa-ccp.c (get_symbol_constant_value,
30141         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
30142         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
30143         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
30144         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
30145         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
30146         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
30147         gimplify_and_update_call_from_tree): Move ...
30148         * gimple-fold.c: ... here.  New file.
30149         (ccp_fold_builtin): Rename to ...
30150         (gimple_fold_builtin): ... this.
30151         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
30152
30153 2010-04-15  Richard Guenther  <rguenther@suse.de>
30154
30155         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
30156         fit_double_type, force_fit_type_double, add_double_with_sign,
30157         neg_double, mul_double_with_sign, lshift_double, rshift_double,
30158         lrotate_double, rrotate_double, div_and_round_double): Move ...
30159         * double-int.c: ... here.
30160         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
30161         add_double, neg_double, mul_double_with_sign, mul_double,
30162         lshift_double, rshift_double, lrotate_double, rrotate_double,
30163         div_and_round_double): Move prototypes ...
30164         * double-int.h: ... here.
30165
30166 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
30167
30168         PR target/43742
30169         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
30170         matching constraints to ensure inputs match the output.
30171
30172 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
30173
30174         PR target/43742
30175         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
30176         in an input-only operand.
30177
30178 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
30179
30180         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
30181         (double_int_not, double_int_lshift, double_int_rshift): Declare.
30182         (double_int_negative_p): Convert to static inline function.
30183         * double-int.c (double_int_lshift, double_int_lshift): New functions.
30184         (double_int_negative_p): Remove.
30185         * tree.h (lshift_double, rshift_double):
30186         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
30187         * fold-const.c (fold_convert_const_int_from_real,
30188         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
30189         (lshift_double): Change type of arith argument to bool.
30190         (rshift_double): Change type of arith argument to bool. Correct
30191         comment.
30192         * expmed.c (mask_rtx, lshift_value): (Ditto.).
30193
30194 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
30195
30196         PR target/21803
30197         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
30198         at the start and end of the then/else blocks, and omit them from the
30199         conversion.
30200         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
30201         argument; all callers changed.  Pass zero to old_insns_match_p instead.
30202         (flow_find_head_matching_sequence): New function.
30203         (old_insns_match_p): Check REG_EH_REGION notes for calls.
30204         * basic-block.h (flow_find_cross_jump,
30205         flow_find_head_matching_sequence): Declare functions.
30206
30207 2010-04-14  Jason Merrill  <jason@redhat.com>
30208
30209         PR c++/36625
30210         * c-common.c (attribute_takes_identifier_p): New fn.
30211         * c-common.h: Declare it.
30212
30213 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30214
30215         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
30216         splitter condition.
30217         (*udivmod<mode>4): Ditto.
30218
30219 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30220
30221         * config/i386/i386.md (maxmin_int): Rename code attribute from
30222         maxminiprefix and update all users.
30223         (maxmin_float): Ditto from maxminfprefix.
30224         (logic): Ditto from logicprefix.
30225         (absneg_mnemonic): Ditto from absnegprefix.
30226         * config/i386/mmx.md: Update all users of maxminiprefix,
30227         maxminfprefix and logicprefix for rename.
30228         * config/i386/sse.md: Ditto.
30229         * config/i386/sync.md (sync_<code><mode>): Update for
30230         logicprefix rename.
30231
30232 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30233
30234         PR 42966
30235         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
30236         warnings converted to errors.
30237
30238 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30239
30240         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
30241         used insn_type variable.
30242         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
30243         to avoid set-but-not-used warning.
30244
30245 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30246
30247         * df-core.c (df_ref_debug): Change format string placeholder
30248         from 0x%x to %#x.
30249         * dwarf2asm.c (dw2_asm_output_data_raw,
30250         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
30251         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
30252         * dwarf2out.c (output_cfi, output_cfi_directive,
30253         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
30254         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
30255         Ditto.
30256         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
30257         * print-rtl.c (print_rtx): Ditto.
30258
30259 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
30260
30261         PR middle-end/42694
30262         * builtins.c (expand_builtin_pow_root): New function to expand pow
30263         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
30264         series of sqrt and cbrt calls under -ffast-math.
30265         (expand_builtin_pow): Call it.
30266
30267 2010-04-14  Michael Matz  <matz@suse.de>
30268
30269         PR tree-optimization/42963
30270         * tree-cfg.c (touched_switch_bbs): New static variable.
30271         (group_case_labels_stmt): New function broken out from ...
30272         (group_case_labels): ... here, use the above.
30273         (start_recording_case_labels): Allocate touched_switch_bbs.
30274         (end_recording_case_labels): Deallocate it, call
30275         group_case_labels_stmt.
30276         (gimple_redirect_edge_and_branch): Remember index of affected BB.
30277
30278 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30279
30280         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
30281         from insn template.
30282
30283 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
30284
30285         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
30286
30287 2010-04-13  Jan Hubicka  <jh@suse.cz>
30288
30289         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
30290         of optimized out static functions.
30291         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
30292         cost computation.  Also sanity check for overflows.
30293         (update_caller_keys): Update cgraph_edge_badness call; properly
30294         update fibheap and sanity check that it is up to date.
30295         (add_new_edges_to_heap): Update cgraph_edge_badness.
30296         (cgraph_decide_inlining_of_small_function): Likewise;
30297         add sanity checking that badness in heap is up to date;
30298         improve dumping of reason; Update badness of calls to the
30299         offline copy of function currently inlined; dump badness
30300         of functions not inlined because of unit growth limits.
30301
30302 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
30303
30304         PR middle-end/32628
30305         * c-common.c (pointer_int_sum): Disregard overflow that occured only
30306         because of sign-extension change when converting to sizetype here...
30307         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
30308
30309         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
30310         the folding to constants.  Remove redundant final conversion.
30311         (fold_binary) <associate>: Do not associate if the re-association of
30312         constants alone overflows.
30313         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
30314         to the end of the list.
30315         (multiple_of_p) <COND_EXPR>: New case.
30316
30317 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30318
30319         * opt-functions.awk (opt_sanitized_name): New.
30320         (opt_enum): New.
30321         * optc-gen.awk: Use it
30322         * opth-gen.awk: Use it.
30323
30324 2010-04-13  Martin Jambor  <mjambor@suse.cz>
30325
30326         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
30327         (sra_modify_assign): Delete stmts loading dead data even if racc has no
30328         children.  Call replace_uses_with_default_def_ssa_name to handle
30329         SSA_NAES on lhs.
30330
30331 2010-04-13  Michael Matz  <matz@suse.de>
30332
30333         PR middle-end/43730
30334         * builtins.c (expand_builtin_interclass_mathfn): Also create
30335         a register if the predicate doesn't match.
30336
30337 2010-04-13  Diego Novillo  <dnovillo@google.com>
30338
30339         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
30340         * c-pch.c: Include timevar.h.
30341         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
30342         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
30343         * ggc-common.c: Include timevar.h.
30344         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
30345         * timevar.def (TV_PCH_SAVE): Define.
30346         (TV_PCH_CPP_SAVE): Define.
30347         (TV_PCH_PTR_REALLOC): Define.
30348         (TV_PCH_PTR_SORT): Define.
30349         (TV_PCH_RESTORE): Define.
30350         (TV_PCH_CPP_RESTORE): Define.
30351
30352 2010-04-13  Michael Matz  <matz@suse.de>
30353
30354         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
30355         into MINUS_EXPRs.
30356         (can_reassociate_p): New function.
30357         (break_up_subtract_bb, reassociate_bb): Use it.
30358
30359 2010-04-13  Richard Guenther  <rguenther@suse.de>
30360
30361         PR bootstrap/43737
30362         * builtins.c (c_readstr): Fix assert.
30363
30364 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
30365
30366         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
30367         when generating cltd insn.
30368
30369         (*ashl<mode>3_1): Remove special handling for register operand 2.
30370         (*ashlsi3_1_zext): Ditto.
30371         (*ashlhi3_1): Ditto.
30372         (*ashlhi3_1_lea): Ditto.
30373         (*ashlqi3_1): Ditto.
30374         (*ashlqi3_1_lea): Ditto.
30375         (*<shiftrt_insn><mode>3_1): Ditto.
30376         (*<shiftrt_insn>si3_1_zext): Ditto.
30377         (*<shiftrt_insn>qi3_1_slp): Ditto.
30378         (*<rotate_insn><mode>3_1): Ditto.
30379         (*<rotate_insn>si3_1_zext): Ditto.
30380         (*<rotate_insn>qi3_1_slp): Ditto.
30381
30382 2010-04-13  Richard Guenther  <rguenther@suse.de>
30383
30384         * tree-ssa-structalias.c (callused_id): Remove.
30385         (call_stmt_vars): New.
30386         (get_call_vi): Likewise.
30387         (lookup_call_use_vi): Likewise.
30388         (lookup_call_clobber_vi): Likewise.
30389         (get_call_use_vi): Likewise.
30390         (get_call_clobber_vi): Likewise.
30391         (make_transitive_closure_constraints): Likewise.
30392         (handle_const_call): Adjust to do per-call call-used handling.
30393         (handle_pure_call): Likewise.
30394         (find_what_var_points_to): Remove general callused handling.
30395         (init_base_vars): Likewise.
30396         (init_alias_vars): Initialize call_stmt_vars.
30397         (compute_points_to_sets): Process call-used and call-clobbered
30398         vars for call statements.
30399         (delete_points_to_sets): Free call_stmt_vars.
30400
30401 2010-04-13  Richard Guenther  <rguenther@suse.de>
30402
30403         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
30404         Only add RW dependence for dependence distance zero.
30405         Adjust maximal vectorization factor according to dependences.
30406         Move alignment handling ...
30407         (vect_find_same_alignment_drs): ... here.  New function.
30408         (vect_analyze_data_ref_dependences): Adjust.
30409         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
30410         (vect_analyze_data_refs): Adjust minimal vectorization factor
30411         according to data references.
30412         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
30413         dependences before determining the vectorization factor.
30414         Analyze alignment after determining the vectorization factor.
30415         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
30416         dependences before alignment.
30417         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
30418         Adjust prototype.
30419         (vect_analyze_data_refs): Likewise.
30420         (MAX_VECTORIZATION_FACTOR): New define.
30421
30422 2010-04-13  Duncan Sands  <baldrick@free.fr>
30423
30424         * except.h (lang_eh_type_covers): Remove.
30425         * except.c (lang_eh_type_covers): Likewise.
30426
30427 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30428             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30429
30430         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
30431         * config/s390/s390.c: Replace UNTIS_PER_WORD with
30432         UNITS_PER_LONG where it is ABI relevant.
30433         (s390_return_addr_rtx): Likewise.
30434         (s390_back_chain_rtx): Likewise.
30435         (s390_frame_area): Likewise.
30436         (s390_frame_info): Likewise.
30437         (s390_initial_elimination_offset): Likewise.
30438         (save_gprs): Likewise.
30439         (s390_emit_prologue): Likewise.
30440         (s390_emit_epilogue): Likewise.
30441         (s390_function_arg_advance): Likewise.
30442         (s390_function_arg): Likewise.
30443         (s390_va_start): Likewise.
30444         (s390_gimplify_va_arg): Likewise.
30445         (s390_function_profiler): Likewise.
30446         (s390_optimize_prologue): Likewise.
30447         (s390_rtx_costs): Likewise.
30448         (s390_secondary_reload): Likewise.
30449         (s390_promote_function_mode): Likewise.
30450         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
30451         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
30452         registers available.
30453         (s390_unwind_word_mode): New function.
30454         (s390_function_value): Split 64 bit values into register pair if
30455         used as return value.
30456         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
30457         function call parameters.  Handle parallels.
30458         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
30459         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
30460         (DWARF_CIE_DATA_ALIGNMENT): New macro.
30461         (s390_expand_setmem): Remove unused variable src_addr.
30462         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
30463         deal with 64 bit registers.
30464         * config/s390/s390.h: Define __zarch__ predefined macro.
30465         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
30466         (UNITS_PER_LONG): New macro.
30467         * libjava/include/s390-signal.h: Define extended ucontext
30468         structure containing the upper halfs of the 64 bit registers.
30469
30470 2010-04-13  Simon Baldwin  <simonb@google.com>
30471
30472         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
30473
30474 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
30475
30476         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
30477         rvalue on the RHS if the LHS is of a non-renamable type.
30478         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
30479
30480 2010-04-13  Matthias Klose  <doko@ubuntu.com>
30481
30482         * gcc.c (cc1_options): Handle -iplugindir before processing
30483         the cc1 spec. Only add -iplugindir once.
30484         (cpp_unique_options): Add -iplugindir option if -fplugin* options
30485         found.
30486         * common.opt (iplugindir): Remove `Separate' property, initialize.
30487         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
30488         option.
30489         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
30490         (distclean): Remove plugin dir.
30491         * doc/invoke.texi: Document -iplugindir.
30492
30493 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
30494
30495         * doc/plugins.texi (Loading Plugins): Document short
30496         -fplugin=foo option.
30497         (Plugin API): Mention default_plugin_dir_name function.
30498
30499         * gcc.c (find_file_spec_function): Add new declaration.
30500         (static_spec_func): Use it for "find-file".
30501         (find_file_spec_function): Add new function.
30502         (cc1_options): Add -iplugindir option if -fplugin* options found.
30503
30504         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
30505
30506         * plugin.c (add_new_plugin): Updated comment, and handle short
30507         plugin name.
30508         (default_plugin_dir_name): Added new function.
30509
30510         * common.opt (iplugindir): New option to set the plugin directory.
30511
30512 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
30513
30514         * config/i386/i386.md (any_rotate): New code iterator.
30515         (rotate_insn): New code attribute.
30516         (rotate): Ditto.
30517         (SWIM124): New mode iterator.
30518         (<rotate_insn>ti3): New expander.
30519         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
30520         any_rotate code iterator.
30521         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
30522         using any_rotate code iterator and SWIM124 mode iterator.
30523         (ix86_rotlti3): New insn_and_split pattern.
30524         (ix86_rotrti3): Ditto.
30525         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
30526         ix86_rotl{di,ti}3 patterns.
30527         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
30528         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
30529         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
30530         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
30531         code iterator and SWI mode iterator.
30532         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
30533         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
30534         code iterator.
30535         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
30536         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
30537         (bswap rotatert splitter): Add splitter.
30538         (bswap splitter): Macroize splitter using any_rotate code iterator.
30539         Add insn predicate to split only for TARGET_USE_XCHGB or when
30540         optimizing function for size.
30541
30542 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30543
30544         * config/pa/pa.c (emit_move_sequence): Remove use of
30545         deleted variable flag_argument_noalias.
30546
30547 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30548
30549         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
30550         configurations.
30551         Add to unsupported targets list.
30552         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
30553         sparc*-sun-solaris2.[567]* from target lists.
30554         * configure: Regenerate.
30555         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
30556         removal.
30557         Remove Solaris 7 patch references.
30558         (Specific, sparc-sun-solaris2.7): Removed.
30559         (sparc-sun-solaris2*): Update Solaris 7 example.
30560         (sparc64-*-solaris2*): Likewise.
30561
30562 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30563
30564         * config.build (alpha*-dec-osf4*): Remove.
30565         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
30566         of obsolete configurations.
30567         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
30568         support.
30569         * config/alpha/t-osf4: Renamed to ...
30570         * config/alpha/t-osf5: ... this.
30571         * config/alpha/osf.h: Renamed to ...
30572         * config/alpha/osf5.h: ... this.
30573         Merged old osf5.h contents.
30574         Update comments.
30575         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
30576         (EXTRA_SPECS): Removed.
30577         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
30578         reflect removal of Tru64 UNIX V4.0/V5.0 support.
30579         Document that.
30580
30581 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30582
30583         * doc/contrib.texi (Contributors, Rainer Orth): Update.
30584
30585 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
30586
30587         PR/43702
30588         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
30589         __thiscall convention.
30590
30591 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30592
30593         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
30594         orig_base.
30595         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
30596
30597 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
30598
30599         * function.c (assign_parms_initialize_all): Add unused attribute
30600         to fntype.
30601
30602 2010-04-12  Richard Guenther  <rguenther@suse.de>
30603
30604         * gsstruct.def (GSS_CALL): New.
30605         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
30606         * gimple.h: Include tree-ssa-alias.h.
30607         (struct gimple_statement_call): New.
30608         (union gimple_statement_struct_d): Add gimple_call member.
30609         (gimple_call_reset_alias_info): Declare.
30610         (gimple_call_use_set): New function.
30611         (gimple_call_clobber_set): Likewise.
30612         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
30613         * gimple.c (gimple_call_reset_alias_info): New function.
30614         (gimple_build_call_1): Call it.
30615         * lto-streamer-in.c (input_gimple_stmt): Likewise.
30616         * tree-inline.c (remap_gimple_stmt): Likewise.
30617         (expand_call_inline): Remove callused handling.
30618         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
30619         * tree-dfa.c (dump_variable): Likewise.
30620         * tree-parloops.c (parallelize_loops): Likewise.
30621         * tree-ssa.c (init_tree_ssa): Likewise.
30622         (delete_tree_ssa): Likewise.
30623         * tree-flow-inline.h (is_call_used): Remove.
30624         * tree-flow.h (struct gimple_df): Remove callused member.
30625         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
30626         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
30627         (ref_maybe_used_by_call_p_1): Simplify.
30628         (call_may_clobber_ref_p_1): Likewise.
30629         * tree-ssa-structalias.c (compute_points_to_sets): Set
30630         the call stmt used and clobbered sets.
30631         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
30632         (find_tail_calls): Verify the tail call.
30633
30634 2010-04-12  Richard Guenther  <rguenther@suse.de>
30635
30636         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
30637         single-iteration always-inline inlining.
30638         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
30639         (cgraph_decide_inlining): Do not handle always-inline specially.
30640         (try_inline): Remove always-inline cycle detection special case.
30641         Do not recurse on always-inlines.
30642         (cgraph_early_inlining): Do not iterate if not optimizing.
30643         (cgraph_gate_early_inlining): remove.
30644         (pass_early_inline): Run unconditionally.
30645         (gate_cgraph_decide_inlining): New function.
30646         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
30647         not inlining or optimizing.
30648         (cgraph_decide_inlining_of_small_functions): Also consider
30649         always-inline functions.
30650         (cgraph_default_inline_p): Return true for nodes which should
30651         disregard inline limits.
30652         (estimate_function_body_sizes): Assume zero size and time for
30653         nodes which are marked as disregarding inline limits.
30654         (cgraph_decide_recursive_inlining): Do not perform recursive
30655         inlining on always-inline nodes.
30656
30657 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
30658
30659         PR bootstrap/43699
30660         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
30661         for exprs satisfying handled_component_p.
30662
30663 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
30664
30665         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
30666         non-constant aggregate elements.
30667
30668         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
30669         is a real initialization.
30670
30671 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
30672
30673         PR c/36774
30674         * c-decl.c (start_function): Move forward check for nested function.
30675
30676 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
30677
30678         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
30679         * config/sh/sh.c: Include reload.h.
30680         (sh_legitimize_reload_address): New.
30681         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
30682         sh_legitimize_reload_address.
30683
30684 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
30685
30686         * config/sh/sh.md (*movqi_pop): New insn pattern.
30687         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
30688
30689 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30690
30691         * config/i386/i386.md (any_shiftrt): New code iterator.
30692         (shiftrt_insn): New code attribute.
30693         (shiftrt): Ditto.
30694         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
30695         using any_shiftrt code iterator.
30696         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
30697         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
30698         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
30699         pattern from corresponding peephole2 patterns.
30700         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
30701         using any_shiftrt code iterator.
30702         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
30703         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
30704         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
30705         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
30706         *{ashr,lshr}<mode>3_cmp_zext.
30707         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
30708
30709 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30710
30711         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
30712         scratch register.
30713         (*lshr<mode>3_cconly): Ditto.
30714
30715 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
30716
30717         * config/i386/i386.md (lshr<mode>3): Macroize expander from
30718         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
30719         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30720         pattern from *lshr{di,ti}3_1 and corresponding splitters using
30721         DWI mode iterator.
30722         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
30723         from corresponding peephole2 patterns.
30724         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
30725         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
30726         and *lshrdi3_1_rex64 using SWI mode iterator.
30727         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
30728         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
30729         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
30730         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
30731         and *lshrdi3_cmp_rex64 using SWI mode iterator.
30732         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
30733         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
30734         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
30735         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
30736         SWI mode iterator.
30737
30738 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
30739
30740         * config/i386/i386.md (ashr<mode>3): Macroize expander from
30741         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
30742         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30743         pattern from *ashr{di,ti}3_1 and corresponding splitters using
30744         DWI mode iterator.
30745         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
30746         from corresponding peephole2 patterns.
30747         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
30748         (ashrsi3_cvt): Rename from ashrsi3_31.
30749         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
30750         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
30751         and x86_64_shift_adj_3 using SWI48 mode iterator.
30752         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
30753         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
30754         and *ashrdi3_1_rex64 using SWI mode iterator.
30755         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
30756         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
30757         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
30758         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
30759         and *ashrdi3_cmp_rex64 using SWI mode iterator.
30760         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
30761         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
30762         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
30763         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
30764         SWI mode iterator.
30765         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
30766         * config/i386/i386.c (ix86_split_ashr): Update for renamed
30767         x86_shift<mode>_adj_3 expanders.
30768
30769 2010-04-10  Wei Guozhi  <carrot@google.com>
30770
30771         PR target/42601
30772         * config/arm/arm.c (arm_pic_static_addr): New function.
30773         (legitimize_pic_address): Call arm_pic_static_addr when it detects
30774         a static symbol.
30775         (arm_output_addr_const_extra): Output expression for new pattern.
30776         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
30777
30778 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
30779
30780         * ira-costs.c (record_reg_classes): Ignore alternatives that are
30781         not enabled.
30782
30783         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
30784         * web.c: Include "insn-config.h" and "recog.h".
30785         (union_match_dups): New function.
30786         (web_main): Call it.
30787         (union_defs): Don't try to recognize match_dups.
30788
30789         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
30790         if doing so would replace the entire pattern.
30791
30792 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
30793
30794         PR target/43707
30795         PR target/43709
30796         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
30797         and splitter pattern.  Change splitter operand 1 predicate to
30798         nonmemory_operand.
30799
30800 2010-04-09  Martin Jambor  <mjambor@suse.cz>
30801
30802         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
30803         lattices are addresses of CONST_DECLs with the same initial value.
30804         (ipcp_print_all_lattices): Print values of CONST_DECLs.
30805         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
30806
30807 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
30808             Bernd Schmidt  <bernds@codesourcery.com>
30809
30810         * loop-invariant.c (replace_uses): New static function.
30811         (move_invariant_reg): Use it to ensure we can replace the uses.
30812
30813 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
30814
30815         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
30816         function template.
30817         (picochip_override_options): Enable section anchors only above -O1.
30818         (picochip_reorg): Fixed a couple of build warnings.
30819
30820 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30821
30822         * configure.ac (plugin -rdynamic test): Log result.
30823         * configure: Regenerate.
30824         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
30825         (RDYNAMIC_SPEC): Define.
30826         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
30827
30828 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30829
30830         * configure.ac: Determine Sun ld version numbers.
30831         (comdat_group): Restrict GNU ld version checks to gld.
30832         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
30833         (enable_comdat): Support --enable-comdat.
30834         * configure: Regenerate.
30835         * doc/install.texi (Configuration): Document --enable-comdat.
30836
30837 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30838
30839         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
30840         * config/sol2-gld.h: ... here.
30841         * config.gcc (sparc*-*-solaris2*): Reflect this.
30842         (i[34567]86-*-solaris2*): Use it.
30843
30844 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
30845
30846         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
30847         setup_clocks_p.
30848         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
30849
30850 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30851
30852         PR 42965
30853         * diagnostic.c (diagnostic_initialize): Initialize
30854         some_warnings_are_errors.
30855         (diagnostic_finish): New.
30856         (diagnostic_action_after_output): Call it before exiting.
30857         (diagnostic_report_diagnostic): Do not print message here. Set
30858         some_warnings_are_errors.
30859         * diagnostic.h (diagnostic_context): Delete
30860         issue_warnings_are_errors_message. Add some_warnings_are_errors.
30861         (diagnostic_finish): Declare.
30862         * toplev.c (toplev_main): Call it before exit.
30863
30864 2010-04-09  Jason Merrill  <jason@redhat.com>
30865
30866         PR c++/42623
30867         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
30868         for incomplete type.
30869
30870         PR c++/41788
30871         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
30872         based on a warning flag.
30873
30874 2010-04-09  Richard Guenther  <rguenther@suse.de>
30875
30876         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
30877
30878 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
30879
30880         PR bootstrap/43684
30881         * varasm.c (default_assemble_visibility): Wrap vars that are
30882         set, but unused, by targets without GAS.
30883         * config/rs6000/rs6000.c (paired_emit_vector_compare):
30884         Remove set, but unused, vars.
30885         (rs6000_legitimize_tls_address): Likewise.
30886         (altivec_expand_dst_builtin): Likewise.
30887         * config/darwin.c (machopic_classify_symbol): Likewise.
30888         (machopic_indirection_name): Likewise.
30889
30890 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
30891
30892         * config/i386/i386.md (DWI): New mode iterator.
30893         (S): New mode attribute.
30894         (shift_operand): Ditto.
30895         (shift_immediate_operand): Ditto.
30896         (ashl_input_operand): Ditto.
30897         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
30898         using SDWIM mode iterator.
30899         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
30900         pattern from *ashl{di,ti}3_1 and corresponding splitters using
30901         DWI mode iterator.
30902         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
30903         from corresponding peephole2 patterns.
30904         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
30905         and x86_64_shift_adj_1 using SWI48 mode iterator.
30906         (x86_shift<mode>_adj_2): Ditto.
30907         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
30908         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
30909         using SWI48 mode iterator.
30910         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
30911         *ashldi3_cmp_rex64 using SWI mode iterator.
30912         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
30913         *ashldi3_cconly_rex64 using SWI mode iterator.
30914         * config/i386/i386.c (ix86_split_ashl): Update for renamed
30915         x86_shift<mode>_adj_{1,2}.
30916         (ix86_split_ashr): Ditto.
30917         (ix86_split_lshr): Ditto.
30918
30919 2010-04-09  Richard Guenther  <rguenther@suse.de>
30920
30921         * target.h (builtin_conversion): Pass in input and output types.
30922         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
30923         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
30924         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
30925         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
30926
30927         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
30928         Handle AVX modes.
30929         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
30930
30931 2010-04-09  Richard Guenther  <rguenther@suse.de>
30932
30933         PR target/43152
30934         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
30935
30936 2010-04-09  Richard Guenther  <rguenther@suse.de>
30937
30938         * tree-vectorizer.h (struct _stmt_vec_info): Document
30939         that vectype is the type of the LHS.
30940         (supportable_widening_operation, supportable_narrowing_operation):
30941         Get both input and output vector types as arguments.
30942         (vect_is_simple_use_1): Declare.
30943         (get_same_sized_vectype): Likewise.
30944         * tree-vect-loop.c (vect_determine_vectorization_factor):
30945         Set STMT_VINFO_VECTYPE to the vector type of the def.
30946         (vectorizable_reduction): Adjust.
30947         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
30948         Adjust.  Specify the output vector type.
30949         (vect_pattern_recog_1): Adjust.
30950         * tree-vect-stmts.c (get_same_sized_vectype): New function.
30951         (vectorizable_call): Adjust.
30952         (vectorizable_conversion): Likewise.
30953         (vectorizable_operation): Likewise.
30954         (vectorizable_type_demotion): Likewise.
30955         (vectorizable_type_promotion): Likewise.
30956         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
30957         the def.
30958         (vect_is_simple_use_1): New function.
30959         (supportable_widening_operation): Get both input and output
30960         vector types.
30961         (supportable_narrowing_operation): Likewise.
30962         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
30963
30964 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
30965
30966         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
30967         __thiscall and _thiscall as predefined macros.
30968         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
30969         thiscall attribute handling.
30970         (ix86_comp_type_attributes): Likewise.
30971         (ix86_function_regparm): Likewise.
30972         (ix86_return_pops_args): Likewise.
30973         (init_cumulative_args): Likewise.
30974         (find_drap_reg): Likewise.
30975         (ix86_static_chain): Likewise.
30976         (x86_this_parameter): Likewise.
30977         (x86_output_mi_thunk): Likewise.
30978         (ix86_attribute_table): Add description for thiscall attribute.
30979         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
30980         * doc/extend.texi: Add documentation for thiscall.
30981
30982 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
30983
30984         PR c++/28584
30985         * c.opt (Wint-to-pointer-cast): Available in C++.
30986         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
30987
30988 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
30989
30990         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
30991         * calls.c (expand_call): Pass the function type to aggregate_value_p.
30992         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
30993         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
30994         function type instead.  Reorder and simplify checks.
30995
30996         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
30997
30998 2010-04-08  Jing Yu  <jingyu@google.com>
30999             Zdenek Dvorak  <ook@ucw.cz>
31000
31001         PR tree-optimization/42720
31002         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
31003         loop unswitch conditions here from ...
31004         (tree_unswitch_single_loop): ... here.
31005
31006 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31007
31008         * tree-if-conv.c: Fix comments and simplify logic.
31009
31010 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
31011
31012         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
31013         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
31014         (main_tree_if_conversion): Update call to tree_if_conversion.
31015
31016 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
31017
31018         PR 42485
31019         * doc/invoke.texi (-b,-V): Delete.
31020         * doc/tm.texi: Do not mention -b.
31021         * gcc.c (display_help): Delete -b and -V.
31022         (process_command): Delete -b and -V.
31023         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
31024
31025 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
31026             Wolfgang Gellerich  <gellerich@de.ibm.com>
31027
31028         Implement target hook for loop unrolling
31029         * target.h (loop_unroll_adjust): Add a new target hook function.
31030         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
31031         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
31032         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
31033         (s390_loop_unroll_adjust): Implement the new target hook for s390.
31034         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
31035         target hook.
31036         (decide_unroll_stupid): Likewise.
31037
31038 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31039
31040         PR target/43643
31041         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
31042
31043 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31044
31045         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
31046         (Specific, *-*-solaris2*): Likewise.
31047         Don't prefer Sun as over GNU as.
31048
31049 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
31050
31051         * config/s390/s390.c (override_options): Adjust the z10 defaults
31052         for max-unroll-times, max-completely-peeled-insns
31053         and max-completely-peel-times.
31054
31055 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31056
31057         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
31058         instructions for z10.
31059         (s390_expand_setmem): Likewise.
31060         (s390_expand_cmpmem): Likewise.
31061
31062 2010-04-08  Richard Guenther  <rguenther@suse.de>
31063
31064         PR tree-optimization/43679
31065         * tree-ssa-pre.c (eliminate): Only propagate copies.
31066
31067 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
31068
31069         PR bootstrap/43681
31070         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
31071         set but not used variable warning.
31072
31073 2010-04-08  Wei Guozhi  <carrot@google.com>
31074
31075         PR target/41653
31076         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
31077         (arm_size_rtx_costs): Call the new function when optimized for size.
31078
31079 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
31080
31081         PR debug/43670
31082         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
31083         op0 is not a MEM, just return NULL instead of assertion
31084         failure.
31085         (discover_nonconstant_array_refs): Don't walk debug stmts.
31086
31087 2010-04-08  Doug Kwan  <dougkwan@google.com>
31088
31089         * configure.ac: Recognize gold and do not use its version number
31090         to test ld features.
31091         * configure: Regenerate.
31092
31093 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
31094
31095         PR middle-end/40815
31096         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
31097         (negate_value): Move code to push elements to broken_up_substracts ...
31098         (eliminate_plus_minus_pair): ... here.  Push operands that have no
31099         negative pair to plus_negates.
31100         (repropagate_negates, init_reassoc, fini_reassoc): Update.
31101
31102 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31103
31104         * doc/install.texi (Configuration): Move description of
31105         --enable-lto, --with-libelf*, --enable-gold from Java section to
31106         general section.
31107
31108         * doc/generic.texi (Working with declarations)
31109         (Function Properties, C and C++ Trees): Fix typos.
31110         * doc/sourcebuild.texi (Top Level): Likewise.
31111
31112 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
31113
31114         PR c/18624
31115         * tree.h (DECL_READ_P): Define.
31116         (struct tree_decl_common): Add decl_read_flag.
31117         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
31118         a set but not used warning.
31119         (merge_decls): Merge DECL_READ_P flag.
31120         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
31121         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
31122         * c-common.c (handle_used_attribute, handle_unused_attribute):
31123         Likewise.
31124         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
31125         New prototypes.
31126         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
31127         New functions.
31128         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
31129         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
31130         c_parser_binary_expression, c_parser_cast_expression,
31131         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
31132         Call default_function_array_read_conversion instead of
31133         default_function_array_conversion where needed.
31134         (c_parser_unary_expression, c_parser_conditional_expression,
31135         c_parser_postfix_expression_after_primary, c_parser_initelt):
31136         Likewise.  Call mark_exp_read where needed.
31137         (c_parser_statement_after_labels, c_parser_asm_operands,
31138         c_parser_typeof_specifier, c_parser_sizeof_expression,
31139         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
31140         where needed.
31141         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
31142         New.
31143         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
31144         (warn_unused_but_set_parameter): Default to warn_unused
31145         && extra_warnings.
31146         * doc/invoke.texi: Document -Wunused-but-set-variable and
31147         -Wunused-but-set-parameter.
31148
31149         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
31150         used count variable.
31151         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
31152         when operandN variables aren't used in the body of the expander
31153         or splitter.
31154         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
31155         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
31156         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
31157         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
31158         FOR_EACH_IMM_USE_ON_STMT): Likewise.
31159         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
31160         * tree.c (PROCESS_ARG): Likewise.
31161
31162 2010-04-07  Simon Baldwin  <simonb@google.com>
31163
31164         * diagnostic.h (diagnostic_override_option_index): New macro to
31165         set a diagnostic's option_index.
31166         * c-tree.h (c_cpp_error): Add warning reason argument.
31167         * opts.c (_warning_as_error_callback): New.
31168         (register_warning_as_error_callback): Store callback for
31169         warnings enabled via enable_warning_as_error.
31170         (enable_warning_as_error): Call callback, minor code tidy.
31171         * opts.h (register_warning_as_error_callback): Declare.
31172         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
31173         response to -Werror=.
31174         (c_common_init_options): Register warning_as_error_callback in opts.c.
31175         * common.opt: Add -Wno-cpp option.
31176         * c-common.c (struct reason_option_codes_t): Map cpp warning
31177         reason codes to gcc option indexes.
31178         * (c_option_controlling_cpp_error): New function, lookup the gcc
31179         option index for a cpp warning reason code.
31180         * (c_cpp_error): Add warning reason argument, call
31181         c_option_controlling_cpp_error for diagnostic_override_option_index.
31182         * doc/invoke.texi: Document -Wno-cpp.
31183
31184 2010-04-07  Richard Guenther  <rguenther@suse.de>
31185
31186         * ipa-reference.c (mark_load): Use get_base_address.
31187         (mark_store): Likewise.
31188
31189         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
31190         inserting GIMPLE_NOPs into the IL.
31191         * tree-ssa-structalias.c (get_constraint_for_component_ref):
31192         Explicitly strip handled components and indirect references.
31193
31194         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
31195         folding address expressions.
31196         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
31197         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
31198         operand_equal_p to compare decls.
31199         (ptr_deref_may_alias_decl_p): Likewise.
31200         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
31201         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
31202         Handle reversed comparison ops.
31203         * tree-sra.c (asm_visit_addr): Use get_base_address.
31204         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
31205         * ipa-reference.c (mark_address): Use get_base_address.
31206
31207 2010-04-07  Richard Guenther  <rguenther@suse.de>
31208
31209         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
31210         Propagate constants everywhere.
31211
31212 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
31213
31214         PR debug/43516
31215         * tree.c (MAX_INT_CACHED_PREC): Define.
31216         (nonstandard_integer_type_cache): New array.
31217         (build_nonstandard_integer_type): Cache results for precision
31218         <= MAX_INT_CACHED_PREC.
31219
31220 2010-04-07  Richard Guenther  <rguenther@suse.de>
31221
31222         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
31223         -fargument-noalias-global, -fargument-noalias-anything): Remove.
31224         * common.opt: Likewise.
31225         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
31226         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
31227         (nonoverlapping_memrefs_p): Likewise.
31228         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
31229         * opts.c (common_handle_option): Handle OPT_fargument_alias,
31230         OPT_fargument_noalias, OPT_fargument_noalias_anything and
31231         OPT_fargument_noalias_global for backward compatibility.
31232
31233 2010-04-07  Richard Guenther  <rguenther@suse.de>
31234
31235         PR tree-optimization/43270
31236         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
31237         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
31238         * tree-ssa-pre.c (phi_translate_1): Adjust.
31239         (fully_constant_expression): Split out vn_reference handling to ...
31240         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
31241         Fold reads from constant strings.
31242         (vn_reference_lookup): Handle fully constant references.
31243         (vn_reference_lookup_pieces): Likewise.
31244         * Makefile.in (expmed.o-warn): Add -Wno-error.
31245
31246 2010-04-07  Martin Jambor  <mjambor@suse.cz>
31247
31248         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
31249
31250 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
31251
31252         PR driver/41594
31253         * gcc.c: Add -static-libstdc++ to list of recognized options.
31254
31255 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31256
31257         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
31258
31259 2010-04-07  Richard Guenther  <rguenther@suse.de>
31260
31261         PR middle-end/42617
31262         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
31263         bases build simple mem attributes to retain points-to information.
31264
31265 2010-04-07  Richard Guenther  <rguenther@suse.de>
31266
31267         PR middle-end/42617
31268         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
31269         preserve points-to related information.
31270
31271 2010-04-07  Richard Guenther  <rguenther@suse.de>
31272
31273         PR middle-end/42617
31274         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
31275         discard plain indirect references.
31276         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
31277         * tree.c (tree_nop_conversion): Likewise.
31278
31279 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
31280
31281         PR debug/43628
31282         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
31283
31284 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
31285
31286         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
31287         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
31288
31289 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
31290
31291         * tree-if-conv.c: Fix indentation and comments.
31292
31293 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
31294
31295         * tree-if-conv.c: Sort static functions in topological order.
31296
31297 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
31298
31299         * tree-if-conv.c: Fix indentation and comments.
31300
31301 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31302
31303         PR middle-end/43519
31304         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
31305         lang_hooks.types.type_for_size instead of
31306         build_nonstandard_integer_type.
31307         When converting an unsigned type to signed, double its precision.
31308         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
31309         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
31310         (graphite_create_new_loop_guard): When ub + 1 wraps around,
31311         use lb <= ub.
31312
31313 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31314
31315         PR middle-end/43519
31316         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
31317         POINTER_PLUS_EXPR for pointer types.
31318
31319 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31320
31321         PR middle-end/43519
31322         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
31323         * graphite-clast-to-gimple.c: Include langhooks.h.
31324         (max_signed_precision_type): New.
31325         (max_precision_type): Takes two types as arguments.
31326         (precision_for_value): New.
31327         (precision_for_interval): New.
31328         (gcc_type_for_interval): New.
31329         (gcc_type_for_value): New.
31330         (gcc_type_for_clast_term): New.
31331         (gcc_type_for_clast_red): New.
31332         (gcc_type_for_clast_bin): New.
31333         (gcc_type_for_clast_expr): Split up into several functions.
31334         (gcc_type_for_clast_eq): Rewritten.
31335         (compute_bounds_for_level): New.
31336         (compute_type_for_level_1): New.
31337         (compute_type_for_level): New.
31338         (gcc_type_for_cloog_iv): Removed.
31339         (gcc_type_for_iv_of_clast_loop): Rewritten.
31340         (graphite_create_new_loop): Compute the lower and upper bound types
31341         with gcc_type_for_clast_expr.
31342         (graphite_create_new_loop_guard): Same.
31343         (find_cloog_iv_in_expr): Removed.
31344         (compute_cloog_iv_types_1): Removed.
31345         (compute_cloog_iv_types): Removed.
31346         (gloog): Do not call compute_cloog_iv_types.
31347         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
31348         GBB_CLOOG_IV_TYPES.
31349         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
31350         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
31351         (GBB_CLOOG_IV_TYPES): Removed.
31352
31353 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31354
31355         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
31356         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
31357         (detect_commutative_reduction): Same.
31358
31359 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31360
31361         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
31362         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
31363         argument.
31364         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
31365         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
31366         (rewrite_commutative_reductions_out_of_ssa): Same.
31367         * passes.c (execute_function_todo): Call verify_ssa for every pass
31368         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
31369         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
31370         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
31371         with an extra argument.
31372         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
31373         verify_ssa only when the extra argument is true.
31374         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
31375         with an extra argument.
31376         (tree_transform_and_unroll_loop): Same.
31377
31378 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
31379
31380         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
31381         for all the passes of the LNO having LOOP_CLOSED_SSA.
31382         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
31383         * tree-loop-distribution.c (pass_loop_distribution): Same.
31384         * tree-pass.h (TODO_verify_loops): Removed.
31385         * tree-ssa-loop.c (pass_tree_loop_init): Same.
31386         (pass_lim): Same.
31387         (pass_tree_unswitch): Same.
31388         (pass_predcom): Same.
31389         (pass_vectorize): Same.
31390         (pass_linear_transform): Same.
31391         (pass_graphite_transforms): Same.
31392         (pass_iv_canon): Same.
31393         (pass_complete_unroll): Same.
31394         (pass_complete_unrolli): Same.
31395         (pass_parallelize_loops): Same.
31396         (pass_loop_prefetch): Same.
31397         (pass_iv_optimize): Same.
31398
31399 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
31400
31401         PR middle-end/32824
31402         * passes.c (init_optimization_passes): Move pass_lim before
31403         pass_copy_prop and pass_dce_loop.
31404
31405 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
31406
31407         PR target/43667
31408         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
31409         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
31410         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
31411         MULTI_* defines for 4 argument vpermil2p* builtins.
31412
31413 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
31414
31415         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
31416         * config/i386/i386.c (x86_maybe_negate_const_int): New.
31417         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
31418         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
31419         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
31420         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
31421         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
31422         Use x86_maybe_negate_const_int to output insn mnemonic.
31423         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
31424         check from instruction predicate.  Update comments.
31425         * config/i386/sync.md (sync_add<mode>): Use
31426         x86_maybe_negate_const_int to output insn mnemonic.
31427
31428 2010-04-06  Jan Hubicka  <jh@suse.cz>
31429
31430         PR tree-optimization/42906
31431         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
31432         IGNORE_SELF argument.  Set visited_control_parents for fully
31433         processed BBs.
31434         (find_obviously_necessary_stmts): Update call of
31435         mark_control_dependent_edges_necessary.
31436         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
31437
31438 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
31439
31440         * config/i386/i386.md: Remove comment about 'e' and 'E'
31441         operand modifier.
31442
31443 2010-04-06  Richard Guenther  <rguenther@suse.de>
31444
31445         PR tree-optimization/43627
31446         * tree-vrp.c (extract_range_from_unary_expr): Widenings
31447         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
31448         not varying.
31449
31450 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
31451
31452         * BASE-VER: Change to 4.6.0.
31453
31454         PR target/43638
31455         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
31456         handling.
31457
31458 2010-04-06  Richard Guenther  <rguenther@suse.de>
31459
31460         PR middle-end/43661
31461         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
31462
31463 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31464
31465         * doc/invoke.texi (Optimize Options): Document that LTO
31466         won't remove object access purely due to incompatible
31467         declarations.
31468
31469 2010-04-04  Matthias Klose  <doko@ubuntu.com>
31470
31471         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
31472         Initialize variable.
31473
31474 2010-04-03  Richard Guenther  <rguenther@suse.de>
31475
31476         PR middle-end/42509
31477         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
31478         require a non-NULL MEM_OFFSET.
31479
31480 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
31481
31482         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
31483         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
31484         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
31485         config/alpha/predicates.md, config/arm/arm.md,
31486         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
31487         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
31488         config/darwin9.h, config/darwin.c, config/darwin.h,
31489         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
31490         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
31491         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
31492         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
31493         config/mips/mips.md, config/mn10300/mn10300.c,
31494         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
31495         config/rs6000/aix.h, config/rs6000/dfp.md,
31496         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
31497         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
31498         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
31499         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
31500         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
31501         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
31502         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
31503         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
31504         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
31505         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
31506         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
31507         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
31508         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
31509         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
31510         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
31511         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
31512         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
31513         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
31514         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
31515         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
31516         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
31517         opt-functions.awk, opth-gen.awk, params.def, passes.c,
31518         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
31519         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
31520         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
31521         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
31522         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
31523         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31524         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
31525         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
31526         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
31527         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
31528         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
31529         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
31530         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
31531         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
31532
31533 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31534
31535         PR other/43620
31536         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
31537         * aclocal.m4: Regenerate.
31538
31539 2010-04-02  Richard Guenther  <rguenther@suse.de>
31540
31541         PR tree-optimization/43629
31542         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
31543         if we have seen a constant value.
31544
31545 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
31546
31547         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
31548
31549 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
31550
31551         PR target/43469
31552         * arm.c (legitimize_tls_address): Adjust call to
31553         gen_tls_load_dot_plus_four.
31554         (arm_note_pic_base): New function.
31555         (arm_cannot_copy_insn_p): Use it.
31556         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
31557         constraint.
31558
31559 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31560
31561         PR bootstrap/43531
31562
31563         Revert:
31564         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31565
31566         * Makefile.in ($(out_object_file)): Depend on
31567         gt-$(basename $(notdir $(out_file))).h.
31568
31569 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
31570
31571         * config.gcc (lm32-*-rtems*): Add t-lm32.
31572
31573 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
31574
31575         * config.gcc: Add lm32-*-rtems*.
31576         * config/lm32/rtems.h: New file.
31577
31578 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
31579
31580         PR target/42609
31581         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
31582
31583 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
31584
31585         * dwarf2out.c (output_compilation_unit_header): For
31586         -gdwarf-4 use version 4 instead of version 3.
31587         (output_line_info): For version 4 and above emit additional
31588         maximum ops per insn header field.
31589         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
31590
31591         * dwarf2out.c (is_c_family, is_java): Remove.
31592         (lower_bound_default): New function.
31593         (add_bound_info, gen_descr_array_type_die): Use it.
31594
31595 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
31596
31597         PR debug/43325
31598         * dwarf2out.c (gen_variable_die): Allow debug info for variable
31599         re-declaration when it happens in a function.
31600
31601 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
31602
31603         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
31604         (cgraph_remove_function_insertion_hook): Same.
31605         (cgraph_call_function_insertion_hooks): Same.
31606
31607 2010-04-01  Richard Guenther  <rguenther@suse.de>
31608
31609         PR middle-end/43614
31610         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
31611         and TREE_THIS_VOLATILE.
31612         (copy_ref_info): Likewise.
31613         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
31614         * tree.c (build6_stat): Ignore side-effects of all but arg5
31615         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
31616         TARGET_MEM_REF.
31617
31618 2010-04-01  Richard Guenther  <rguenther@suse.de>
31619
31620         PR tree-optimization/43607
31621         * ipa-type-escape.c (check_call): Do not access non-existing
31622         arguments.
31623
31624 2010-04-01  Richard Guenther  <rguenther@suse.de>
31625
31626         PR middle-end/43602
31627         Revert
31628         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
31629                     Jack Howarth  <howarth@bromo.med.uc.edu>
31630
31631         * tree-profile.c (tree_init_ic_make_global_vars): Make static
31632         variables TLS.
31633
31634 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31635
31636         * doc/install.texi (Prerequisites): Document libelf usability on
31637         IRIX 5/6 and Solaris 2.
31638         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
31639         Update GNU as, GNU ld requirements.
31640         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
31641         Document Sun Studio compiler download.
31642         Update and simplify as, ld recommendations.
31643         (Specific, *-*-solaris2.7): Note obsoletion, removal.
31644
31645 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31646
31647         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
31648         with_tune_32 to pentium4.
31649
31650 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
31651
31652         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
31653
31654 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31655
31656         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
31657         obsoletion, removal.
31658         Update IDO URL.
31659         Document GNU as requirement.
31660         Update configure requirements.
31661         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
31662         Recomment IRIX 6.5.18+.
31663         Document IDF/IDL requirement.
31664         Document GNU as requirement.
31665         Document GNU ld bootstrap failure.
31666         Remove freeware.sgi.com reference.
31667
31668 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31669
31670         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
31671         UNIX V4.0, V5.0 obsoletion, removal.
31672         Remove --with-gc=simple reference.
31673         Update VM requirements during bootstrap.
31674         Remove -oldas bootstrap description.
31675         Update binutils reference.
31676         Remove comparison failure note.
31677
31678 2010-03-31  Richard Guenther  <rguenther@suse.de>
31679             Zdenek Dvorak  <ook@ucw.cz>
31680             Sebastian Pop  <sebastian.pop@amd.com>
31681
31682         PR middle-end/43464
31683         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
31684         with multiple arguments.
31685         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
31686
31687 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31688
31689         * graphite-dependences.c (print_pddr): Call print_pdr with an
31690         extra argument.
31691         * graphite-poly.c (debug_pdr): Add an extra argument for the
31692         verbosity level.
31693         (print_pdr): Same.
31694         (print_pbb_domain): Same.
31695         (print_pbb): Same.
31696         (print_scop_context): Same.
31697         (print_scop): Same.
31698         (print_cloog): Same.
31699         (debug_pbb_domain): Same.
31700         (debug_pbb): Same.
31701         (print_pdrs): Same.
31702         (debug_pdrs): Same.
31703         (debug_scop_context): Same.
31704         (debug_scop): Same.
31705         (debug_cloog): Same.
31706         (print_scop_params): Same.
31707         (debug_scop_params): Same.
31708         (print_iteration_domain): Same.
31709         (print_iteration_domains): Same.
31710         (debug_iteration_domain): Same.
31711         (debug_iteration_domains): Same.
31712         (print_scattering_function): Same.
31713         (print_scattering_functions): Same.
31714         (debug_scattering_function): Same.
31715         (debug_scattering_functions): Same.
31716         * graphite-poly.h (debug_pdr): Update declaration.
31717         (print_pdr): Same.
31718         (print_pbb_domain): Same.
31719         (print_pbb): Same.
31720         (print_scop_context): Same.
31721         (print_scop): Same.
31722         (print_cloog): Same.
31723         (debug_pbb_domain): Same.
31724         (debug_pbb): Same.
31725         (print_pdrs): Same.
31726         (debug_pdrs): Same.
31727         (debug_scop_context): Same.
31728         (debug_scop): Same.
31729         (debug_cloog): Same.
31730         (print_scop_params): Same.
31731         (debug_scop_params): Same.
31732         (print_iteration_domain): Same.
31733         (print_iteration_domains): Same.
31734         (debug_iteration_domain): Same.
31735         (debug_iteration_domains): Same.
31736         (print_scattering_function): Same.
31737         (print_scattering_functions): Same.
31738         (debug_scattering_function): Same.
31739         (debug_scattering_functions): Same.
31740
31741 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31742
31743         * graphite-poly.c (print_scattering_function_1): New.
31744         (print_scattering_function): Call it.
31745         (print_scop_params): Remove spaces at the end of lines.
31746         (print_cloog): New.
31747         (debug_cloog): New.
31748         * graphite-poly.h (print_cloog): Declared.
31749         (debug_cloog): Declared.
31750
31751 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31752
31753         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
31754         in loop->header.
31755         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
31756         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
31757         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
31758         to switch between adding the IV bump in loop->latch or in loop->header.
31759
31760 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
31761
31762         * graphite-poly.c (print_scattering_function): Pretty print following
31763         the scoplib format.
31764         (print_pdr): Same.
31765         (print_pbb_domain): Same.
31766         (dump_gbb_cases): Same.
31767         (dump_gbb_conditions): Same.
31768         (print_pdrs): Same.
31769         (print_pbb): Same.
31770         (print_scop_params): Same.
31771         (print_scop_context): Same.
31772         (print_scop): Same.
31773         (print_pbb_body): New.
31774         (lst_indent_to): New.
31775         (print_lst): Start new lines with a #.
31776         * graphite-poly.h (pbb_bb): New.
31777         (pbb_index): Use pbb_bb.
31778         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
31779         disjuncts.
31780         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
31781
31782 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
31783
31784         * dwarf2out.c (size_of_die): For -gdwarf-4 use
31785         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
31786         and 0 instead of 1 for dw_val_class_flag.
31787         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
31788         dw_val_class_range_list, dw_val_class_loc_list,
31789         dw_val_class_lineptr and dw_val_class_macptr, use
31790         DW_FORM_flag_present for dw_val_class_flag and
31791         DW_FORM_exprloc for dw_val_class_loc.
31792         (output_die): For -gdwarf-4 print dw_val_class_loc
31793         size as uleb128 instead of 1 or 2 bytes and don't print
31794         anything for dw_val_class_flag.
31795
31796         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
31797         instead of cselib_lookup following by tweaking locs->setting_insn.
31798
31799         PR bootstrap/43596
31800         * cselib.c (cselib_process_insn): Clear cselib_current_insn
31801         even before returning from label, setjmp call or volatile asm
31802         handling.
31803
31804 2010-03-31  Richard Guenther  <rguenther@suse.de>
31805
31806         PR middle-end/43600
31807         * cgraphunit.c (cgraph_output_in_order): Do not allocate
31808         temporary data on stack.
31809
31810 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31811
31812         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
31813         (PUSHSECTION_ASM_OP): Remove.
31814         (POPSECTION_ASM_OP): Remove.
31815         (PUSHSECTION_FORMAT): Remove.
31816         * config/sol2.h (PUSHSECTION_FORMAT): Define.
31817         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
31818         * config/sol2.c (solaris_output_init_fini): Use it.
31819
31820 2010-03-31  Jie Zhang  <jie@codesourcery.com>
31821
31822         PR 43574
31823         * opt-functions.awk (var_type_struct): Use signed char type
31824         for simple variables.
31825
31826 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31827
31828         * config/sol2.c: Include output.h.
31829         (solaris_assemble_visibility): New function.
31830         * config/t-sol2 (sol2.o): Add output.h dependency.
31831         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
31832         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
31833         Redefine.
31834
31835 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
31836
31837         PR target/43580
31838         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
31839         V2SImode or XFmode on PRE_DEC.
31840
31841         PR debug/43557
31842         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
31843         BLKmode.
31844
31845 2010-03-31  Jie Zhang  <jie@codesourcery.com>
31846
31847         PR 43562
31848         * reload.h (caller_save_initialized_p): Declare.
31849         * toplev.c (backend_init_target): Don't call
31850         init_caller_save but set caller_save_initialized_p to false.
31851         * caller-save.c (caller_save_initialized_p): Define.
31852         (init_caller_save): Check caller_save_initialized_p.
31853         * ira.c (ira): Call init_caller_save if flag_caller_saves.
31854
31855 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31856
31857         PR target/39048
31858         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
31859         and soft-fp/t-softfp to tmake_file.
31860         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
31861         (LIBGCC2_TF_CEXT): Define.
31862         (TF_SIZE): Define.
31863
31864 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
31865
31866         PR debug/42977
31867         * cselib.c (n_useless_values): Document handling of debug locs.
31868         (n_useless_debug_values, n_debug_values): New variables.
31869         (new_elt_loc_list): Don't add to debug values, keep count.
31870         (promote_debug_loc): New.
31871         (cselib_reset_table): Zero new variables.
31872         (entry_and_rtx_equal_p): Promote debug locs.
31873         (discard_useless_locs): Increment n_useless_debug_values for
31874         debug values.
31875         (remove_useless_values): Adjust n_useless_values and n_debug_values
31876         with n_useless_debug_values.
31877         (add_mem_for_addr): Promote debug locs.
31878         (cselib_lookup_mem): Likewise.
31879         (cselib_lookup_addr): Renamed to...
31880         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
31881         (cselib_log_lookup): ... this.  Turn into...
31882         (cselib_lookup_addr): ... new wrapper.
31883         (cselib_lookup_from_insn): New.
31884         (cselib_invalidate_regno): Increment n_useless_debug_values for
31885         debug values.
31886         (cselib_invalidate_mem): Likewise.
31887         (cselib_process_insn): Take n_deleted and n_debug_values into
31888         account to guard remove_useless_value call.
31889         (cselib_finish): Zero n_useless_debug_values.
31890         * cselib.h (cselib_lookup_from_insn): Declare.
31891         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
31892         (sched_analyze_2): Likewise.
31893
31894 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
31895
31896         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
31897         functions.
31898         (adjust_mems): Replace narrowing SUBREG of expression containing
31899         just PLUS, MINUS, MULT and ASHIFT of registers and constants
31900         with operations in the narrower mode.
31901
31902         PR debug/43593
31903         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
31904         regs_invalidated_by_call instead all call_used_reg_set registers.
31905
31906 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
31907
31908         PR middle-end/43430
31909         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
31910         pointer comparisons with types_compatible_p.
31911         * tree-vect-stmts.c (vectorizable_call): Same.
31912         (vectorizable_condition): Same.
31913
31914 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31915
31916         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
31917         stack check if the mask would be zero.
31918
31919 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
31920             Jack Howarth  <howarth@bromo.med.uc.edu>
31921
31922         * tree-profile.c (tree_init_ic_make_global_vars): Make static
31923         variables TLS.
31924
31925 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
31926
31927         PR other/25232
31928         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
31929         and __unordtf2.
31930         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
31931         Include ___unordxf2 and ___unordtf2.
31932         * config/i386/libgcc-glibc.ver: Do not define inheritance from
31933         GCC_4.4.0 here.
31934
31935 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
31936
31937         * config/lm32/t-lm32: New file.
31938         * config.gcc: Use the above file when targetting lm32.
31939
31940 2010-03-28  Duncan Sands  <baldrick@free.fr>
31941
31942         * Makefile.in (PLUGIN_HEADERS): Add except.h.
31943
31944 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31945
31946         PR middle-end/43431
31947         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
31948         Improve vectorization cost model diagnostic.
31949
31950 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
31951
31952         PR middle-end/43436
31953         * tree-vect-data-refs.c (vect_analyze_data_refs): When
31954         compute_data_dependences_for_loop returns false, early exit
31955         and output an extra diagnostic for the failed data reference
31956         analysis.
31957
31958 2010-03-29  Richard Guenther  <rguenther@suse.de>
31959
31960         PR tree-optimization/43560
31961         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
31962         (can_sm_ref_p): Treat stores to readonly locations as trapping.
31963
31964 2010-03-29  Jie Zhang  <jie@codesourcery.com>
31965
31966         PR 43564
31967         * toplev.c (process_options): Set optimization_default_node
31968         and optimization_current_node.
31969         * opts.c (decode_options): Don't set optimization_default_node
31970         and optimization_current_node.
31971
31972 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
31973
31974         * config/rtems.h: Abandon -qrtems_debug.
31975
31976 2010-03-28  Jan Hubicka  <jh@suse.cz>
31977
31978         PR tree-optimization/43505
31979         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
31980         map should not be copied.
31981
31982 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31983
31984         PR middle-end/41674
31985         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
31986         cdtors, set DECL_PRESERVE_P.
31987         * ipa.c (cgraph_externally_visible_p): Return true if declaration
31988         should be preseved.
31989
31990 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
31991
31992         PR tree-optimization/43528
31993         * stor-layout.c (place_field): Check that constant fits into
31994         unsigned HWI when skipping calculation of MS bitfield layout.
31995
31996 2010-03-27  Jan Hubicka  <jh@suse.cz>
31997
31998         PR middle-end/43391
31999         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
32000         notice_global_symbol work.
32001
32002 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
32003
32004         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
32005         instead of dwarf2out_decl.
32006         (struct var_loc_node): Remove section_label field.
32007         (dwarf2out_function_decl): New function.
32008         (dwarf2out_var_location): Don't set section_label field.
32009         (dwarf2out_begin_function): Don't empty decl_loc_table here.
32010
32011 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
32012
32013         PR tree-optimization/43544
32014         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
32015         First argument for builtin vectorized function hook is now a
32016         tree to be able to distinguish between machine specific and
32017         standard builtins.
32018         * targhooks.c (default_builtin_vectorized_function): Ditto.
32019         * targhooks.h (default_builtin_vectorized_function): Ditto.
32020         * target.h (struct gcc_target): Ditto.
32021         * tree-vect-stmts.c (vectorizable_function): Ditto.
32022         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
32023         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
32024         Ditto.
32025
32026 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
32027
32028         PR c/43381
32029         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
32030         nested binding iff it is a FUNCTION_DECL.
32031         (store_parm_decls_newstyle): Pass nested=true to bind for
32032         FUNCTION_DECLs amongst parameters.
32033
32034 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
32035
32036         * var-tracking.c (vt_expand_loc_callback): Don't run
32037         cselib_expand_value_rtx_cb in dummy mode if
32038         cselib_dummy_expand_value_rtx_cb returned false.
32039
32040         * var-tracking.c (emit_note_insn_var_location): For one part
32041         notes with offset 0, don't add EXPR_LIST around the location.
32042         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
32043         add_location_or_const_value_attribute): Adjust for that change.
32044
32045         PR debug/43540
32046         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
32047         into first operand and location into second.
32048         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
32049         dw_cfi_oprnd_loc for DW_CFA_expression.
32050         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
32051         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
32052         assume first argument is regnum and second argument is location.
32053
32054 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
32055
32056         PR target/42113
32057         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
32058         of scratch register to DImode.  Split to DImode comparison operator.
32059         Use SImode subreg of scratch register in the multiplication.
32060         (*cmp_sadd_sidi): Ditto.
32061         (*cmp_ssub_si): Ditto.
32062         (*cmp_ssub_sidi): Ditto.
32063
32064 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
32065
32066         PR target/43524
32067         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
32068         Remove invalid assert and wrong comment.
32069
32070 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
32071
32072         PR debug/43516
32073         * flags.h (final_insns_dump_p): New extern.
32074         * final.c (final_insns_dump_p): New variable.
32075         (rest_of_clean_state): Set it before -fdump-final-insns=
32076         dumping, clear afterwards.
32077         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
32078         MEM_ALIAS_SET on MEMs.
32079
32080 2010-03-26  David S. Miller  <davem@davemloft.net>
32081
32082         * configure.ac: Fix sparc GOTDATA_OP bug check.
32083         * configure: Rebuild.
32084
32085 2010-03-26  Alan Modra  <amodra@gmail.com>
32086
32087         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
32088
32089 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32090
32091         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
32092         TLS_SECTION_ASM_FLAG.
32093
32094 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
32095
32096         PR bootstrap/43511
32097         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
32098         Clear first_function_block_is_cold.
32099
32100         PR c/43385
32101         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
32102         argument if the argument is truth_value_p.
32103
32104 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
32105
32106         * config/rs6000/constraints.md: Update copyright year for my changes.
32107
32108         PR target/43484
32109         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
32110         used in reg+reg addressing, swap registers.
32111
32112 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
32113
32114         PR debug/43293
32115         * target.h (struct gcc_target): Add code_end hook.
32116         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
32117         if not yet defined.
32118         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
32119         * toplev.c (compile_file): Call targetm.asm_out.code_end
32120         hook before unwind info/debug info output.
32121         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
32122         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
32123         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
32124         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
32125         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
32126         * config/i386/i386.c (ix86_file_end): Renamed to...
32127         (ix86_code_end): ... this.  Make static.  Don't call
32128         file_end_indicate_exec_stack.  Emit unwind info using
32129         final_start_function/final_end_function.
32130         (darwin_x86_file_end): Remove.
32131         (TARGET_ASM_CODE_END): Define.
32132         * config/i386/i386.h (TARGET_ASM_FILE_END,
32133         NEED_INDICATE_EXEC_STACK): Don't define.
32134         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
32135         (TARGET_ASM_FILE_END): Define to darwin_file_end.
32136         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
32137         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
32138
32139         PR target/43498
32140         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
32141         at the beginning and final_end_function at the end.
32142         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
32143
32144 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32145
32146         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
32147         and Sun as TLS syntax.
32148         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
32149         * configure: Regenerate.
32150         * config.in: Regenerate.
32151         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
32152         (default_elf_asm_named_section): Use it.
32153         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
32154         (i386_output_dwarf_dtprel): Likewise.
32155         (output_addr_const_extra): Likewise.
32156         (output_pic_addr_const): Lowercase @GOTTPOFF.
32157         (output_addr_const_extra): Likewise.
32158         (output_pic_addr_const): Lowercase @GOTNTPOFF.
32159         (output_addr_const_extra): Likewise.
32160         (output_pic_addr_const): Lowercase @INDNTPOFF.
32161         (output_addr_const_extra): Likewise.
32162         (output_pic_addr_const): Lowercase @NTPOFF.
32163         (output_addr_const_extra): Likewise.
32164         (output_pic_addr_const): Lowercase @TPOFF.
32165         (output_addr_const_extra): Likewise.
32166         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
32167         (*tls_global_dynamic_64): Likewise.
32168         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
32169         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
32170
32171         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
32172         (ASM_OUTPUT_TLS_COMMON): Use it.
32173         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
32174
32175         PR target/38118
32176         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
32177         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
32178         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
32179         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
32180         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32181         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
32182
32183 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32184
32185         * config/i386/i386.c (override_options): Don't accept
32186         -mtls-dialect=sun any longer.
32187         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
32188         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
32189         (*tls_local_dynamic_base_32_sun): Likewise.
32190         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
32191
32192 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
32193
32194         PR debug/43508
32195         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
32196         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
32197
32198         PR debug/43479
32199         * ira.c (adjust_cleared_regs): New function.
32200         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
32201
32202         PR debug/19192
32203         PR debug/43479
32204         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
32205         from gimple_block.
32206         * expr.c (expand_expr_real): Restore previous
32207         curr_insn_source_location and curr_insn_block after
32208         expand_expr_real_1 call.
32209         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
32210         instead of expand_expr_real_1.
32211
32212 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
32213
32214         PR rtl-optimization/43413
32215         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
32216         hard regs too.
32217
32218 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
32219
32220         PR target/43348
32221         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
32222         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
32223
32224 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
32225
32226         * config/i386/i386.c (ix86_target_string): Add -mfma.
32227         Fix a typo in comment.
32228
32229 2010-03-22  Mike Stump  <mikestump@comcast.net>
32230
32231         PR target/23071
32232         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
32233         Don't overly align based upon packed packed fields.
32234
32235 2010-03-22  Jason Merrill  <jason@redhat.com>
32236
32237         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
32238         Use () rather than [], and move before the element type.
32239
32240 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32241
32242         * doc/configfiles.texi (Configuration Files): Removed
32243         fixinc/Makefile*, intl/Makefile.*.
32244         * doc/makefile.texi: Fixed markup. Abstract from version
32245         control system used.
32246         (Makefile): Removed obsolete java/parse.y example.
32247         * doc/sourcebuild.texi: Likewise.
32248         (Top Level): Added config, gnattools, libdecnumber, libgcc,
32249         libgomp, libssp.  Removed fastjar.
32250         (Miscellaneous Docs): Clarify location.
32251         Added COPYING3, COPYING3.LIB.
32252         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
32253
32254 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32255
32256         PR target/38085
32257         * config/i386/i386.c (x86_function_profiler)
32258         [!NO_PROFILE_COUNTERS]: Fix typo.
32259         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
32260         instead of callq.
32261
32262 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
32263             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32264
32265         * doc/sourcebuild.texi (Test Directives): Split into six
32266         subsections, with most of the current text in new subsections
32267         Directives, Selectors, and Final Actions.
32268         (Directives): Split list of test directives into multiple
32269         subsubsections.
32270         (Selectors): Describe use and syntax of selectors.
32271         (Effective-Target Keywords): Describe all existing keywords.
32272         (Add Options): Describe features for dg-add-options.
32273         (Require Support): Describe variants of dg-require-support.
32274         (Final Actions): Describe commands to use in dg-final.
32275
32276 2010-03-22  Michael Matz  <matz@suse.de>
32277
32278         PR middle-end/43475
32279         * recog.c (validate_replace_rtx_group): Replace also in
32280         REG_EQUAL and REG_EQUIV notes.
32281
32282 2010-03-22  Richard Guenther  <rguenther@suse.de>
32283
32284         PR tree-optimization/43390
32285         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
32286         sure vector extracts are type correct.
32287
32288 2010-03-22  Richard Guenther  <rguenther@suse.de>
32289
32290         PR middle-end/40106
32291         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
32292         x * sqrt (x) even when optimizing for size if the target
32293         has native support for sqrt.
32294
32295 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
32296
32297         * varasm.c (make_decl_rtl_for_debug): Also clear
32298         flag_mudflap for the duration of make_decl_rtl call.
32299
32300         PR debug/43443
32301         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
32302         locs from preserved VALUEs.
32303
32304 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32305
32306         PR middle-end/42718
32307         * pa.md (movmemsi): Set align to one if zero.
32308         (movmemdi): Likewise.
32309
32310 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
32311
32312         PR target/42321
32313         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
32314         with their corresponding prologue pushes.
32315
32316 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
32317
32318         PR target/43156
32319         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
32320         at the begining or end.
32321         (spu_expand_epilogue): Likewise.
32322
32323 2010-03-20  Richard Guenther  <rguenther@suse.de>
32324
32325         PR rtl-optimization/43438
32326         * combine.c (make_extraction): Properly zero-/sign-extend an
32327         extraction of the low part of a CONST_INT.  Also handle
32328         CONST_DOUBLE.
32329
32330 2010-03-19  Mike Stump  <mikestump@comcast.net>
32331
32332         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
32333         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
32334         (override_options): Use SUBTARGET32_DEFAULT_CPU.
32335
32336 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
32337
32338         PR c/43211
32339         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
32340         an error.
32341
32342 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
32343
32344         PR rtl-optimization/42258
32345         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
32346         use that may match DEF.
32347
32348         PR target/40697
32349         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
32350         the cost of loading the constant rather than assuming
32351         COSTS_N_INSNS (1).
32352         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
32353         outer code is AND, do the same tests as the andsi3 expander and
32354         return COSTS_N_INSNS (1) if and is cheap.
32355
32356         * optabs.c (avoid_expensive_constant): Fix formatting.
32357
32358 2010-03-19  Michael Matz  <matz@suse.de>
32359
32360         PR c++/43116
32361         * attribs.c (decl_attributes): When rebuilding a function pointer
32362         type use the same qualifiers as the original pointer type.
32363
32364 2010-03-19  Martin Jambor  <mjambor@suse.cz>
32365
32366         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
32367         and is_gimple_ip_invariant_address.
32368
32369 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32370
32371         Revert
32372         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32373
32374         * config/arm/arm.c (arm_override_options): Turn off
32375         flag_dwarf2_cfi_asm for AAPCS variants.
32376
32377 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32378
32379         PR target/43399
32380         * config/arm/arm.c (emit_multi_reg_push): Update comments.
32381         Use PRE_MODIFY instead of PRE_DEC.
32382         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
32383         (vfp_emit_fstmd): Likewise.
32384
32385 2010-03-19  Michael Matz  <matz@suse.de>
32386
32387         PR target/43305
32388         * builtins.c (expand_builtin_interclass_mathfn,
32389         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
32390         if that fails.
32391
32392 2010-03-19  Richard Guenther  <rguenther@suse.de>
32393
32394         PR tree-optimization/43415
32395         * tree-ssa-pre.c (phi_translate): Split out worker to ...
32396         (phi_translate_1): ... this.
32397         (phi_translate): Move all caching here.  Cache all NARY
32398         and REFERENCE translations.
32399
32400 2010-03-19  David S. Miller  <davem@davemloft.net>
32401
32402         With help from Eric Botcazou.
32403         * config/sparc/sparc.c: Include dwarf2out.h.
32404         (emit_pic_helper): Delete.
32405         (pic_helper_symbol_name): Delete.
32406         (pic_helper_emitted_p): Delete.
32407         (pic_helper_needed): New.
32408         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
32409         (get_pc_thunk_name): New.
32410         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
32411         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
32412         Set pic_helper_needed to true.  Don't call emit_pic_helper.
32413         (sparc_expand_prologue): Update load_pic_register call.
32414         (sparc_output_mi_thunk): Likewise.
32415         (sparc_file_end): Emit a hidden comdat symbol for the PIC
32416         thunk if possible.  Output CFI information as needed.
32417
32418 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
32419             Jack Howarth  <howarth@bromo.med.uc.edu>
32420
32421         PR target/36399
32422         * config/i386/i386.h: Fix ABI on darwin x86-32.
32423
32424 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
32425
32426         * tree.h: Declare make_decl_rtl_for_debug.
32427         * varasm.c (make_decl_rtl_for_debug): New.
32428         * dwarf2out.c (rtl_for_decl_location): Call it.
32429         * cfgexpand.c (expand_debug_expr): Call it.
32430
32431 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
32432
32433         PR bootstrap/43399
32434         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
32435         mem_mode.
32436
32437         PR bootstrap/43403
32438         * var-tracking.c (vt_init_cfa_base): Do nothing if
32439         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
32440
32441 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
32442
32443         PR debug/42873
32444         * var-tracking.c (canonicalize_vars_star): New.
32445         (dataflow_post_merge_adjust): Use it.
32446
32447 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
32448
32449         PR debug/43058
32450         * var-tracking.c (non_suitable_const): New function.
32451         (add_uses): For DEBUG_INSNs with constants, don't record any
32452         value, instead just the constant value itself.
32453         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
32454         is not VAR_LOC_UNKNOWN_P, set var to the constant.
32455         (emit_notes_in_bb): Likewise.
32456         (emit_note_insn_var_location): For onepart variables if
32457         cur_loc is a VOIDmode constant, use DECL_MODE.
32458
32459 2010-03-18  Martin Jambor  <mjambor@suse.cz>
32460
32461         PR middle-end/42450
32462         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
32463         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
32464         all non-clones.  Moved call redirection...
32465         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
32466         (cgraph_materialize_all_clones): Dispose of all
32467         combined_args_to_skip bitmaps.
32468         (verify_cgraph_node): Do not check for edges pointing to wrong
32469         nodes in inline clones.
32470         * tree-inline.c (copy_bb): Call
32471         cgraph_redirect_edge_call_stmt_to_callee.
32472         * ipa.c (cgraph_remove_unreachable_nodes): Call
32473         cgraph_node_remove_callees even when there are used clones.
32474
32475 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
32476
32477         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
32478
32479 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
32480
32481         PR target/43383
32482         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
32483         for 32bit.
32484
32485 2010-03-18  Michael Matz  <matz@suse.de>
32486
32487         PR middle-end/43419
32488         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
32489         into sqrt(x) if we need to preserve signed zeros.
32490
32491 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
32492             Eric Botcazou  <ebotcazou@adacore.com>
32493
32494         PR rtl-optimization/43360
32495         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
32496         note if we don't know its invariant status.
32497
32498 2010-03-18  Michael Matz  <matz@suse.de>
32499
32500         PR tree-optimization/43402
32501         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
32502         PHI chains of ssa names registered for update.
32503
32504 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
32505
32506         PR target/42427
32507         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
32508         non-offsettable and pre_modify update addressing.
32509         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
32510         and "2" alternatives "#".
32511         (*movdd_softfloat32): Make all alternatives "#";
32512         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
32513         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
32514         (*movdf_softfloat32): Make all alternatives "#";
32515         (movdi): Use the new DIFD mode iterator to create a common splitter
32516         for movdi, movdf and movdd patterns.
32517
32518 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
32519
32520         * common.opt (dumpdir): Remove redundant tab.
32521
32522 2010-03-17  Martin Jambor  <mjambor@suse.cz>
32523
32524         PR tree-optimization/43347
32525         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
32526         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
32527
32528 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
32529
32530         PR rtl-optimization/42216
32531         * regrename.c (create_new_chain): New function, broken out from...
32532         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
32533         appending a use to an empty chain.
32534         (build_def_use): Remove previous changes that convert OP_INOUT to
32535         OP_OUT operands; instead detect the case where an OP_INOUT operand
32536         uses a previously untracked register and create an empty chain for it.
32537
32538 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32539
32540         * doc/extend.texi (Function Attributes): Rewrite unfinished
32541         sentence in ms_abi documentation.
32542
32543 2010-03-17  Alan Modra  <amodra@gmail.com>
32544
32545         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
32546         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
32547         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
32548         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
32549
32550 2010-03-16  Richard Henderson  <rth@redhat.com>
32551
32552         PR middle-end/43365
32553         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
32554         (lower_try_finally): Save and restore eh_seq around the expansion
32555         of the try-finally.
32556
32557 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
32558
32559         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
32560         statements before splitting block.
32561
32562 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32563
32564         * doc/sourcebuild.texi (Testsuites): Fix markup.
32565         Use pathnames relative to gcc/testsuite.
32566         (Test Directives): Move description of how timeout is determined.
32567         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
32568         (C Tests): Correct gcc.misc-tests directory.
32569         Framework tests now live in gcc.test-framework.
32570
32571 2010-03-16  Richard Guenther  <rguenther@suse.de>
32572
32573         PR middle-end/43379
32574         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
32575         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
32576
32577 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
32578             Alexandre Oliva  <aoliva@redhat.com>
32579
32580         PR tree-optimization/42917
32581         * lambda-code.c (remove_iv): Skip debug statements.
32582         (lambda_loopnest_to_gcc_loopnest): Likewise.
32583         (not_interesting_stmt): Debug statements are not interesting.
32584
32585 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
32586
32587         PR debug/43051
32588         PR debug/43092
32589         * cselib.c (cselib_preserve_constants,
32590         cfa_base_preserved_val): New static variables.
32591         (preserve_only_constants): New function.
32592         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
32593         clear its REG_VALUES.  If cselib_preserve_constants, don't
32594         empty the whole hash table, but preserve there VALUEs with constants,
32595         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
32596         (cselib_preserve_cfa_base_value): New function.
32597         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
32598         (cselib_init): Change argument to int bitfield.  Set
32599         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
32600         is in it.
32601         (cselib_finish): Clear cselib_preserve_constants and
32602         cfa_base_preserved_val.
32603         * cselib.h (enum cselib_record_what): New enum.
32604         (cselib_init): Change argument to int.
32605         (cselib_preserve_cfa_base_value): New prototype.
32606         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
32607         * dse.c (dse_step1): Likewise.
32608         * cfgcleanup.c (thread_jump): Likewise.
32609         * sched-deps.c (sched_analyze): Likewise.
32610         * gcse.c (local_cprop_pass): Likewise.
32611         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
32612         If FN is non-NULL, call the callback always and whenever it returns
32613         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
32614         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
32615         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
32616         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
32617         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
32618         * var-tracking.c: Include recog.h.
32619         (bb_stack_adjust_offset): Remove.
32620         (vt_stack_adjustments): Don't call it, instead just gather the
32621         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
32622         (adjust_stack_reference): Remove.
32623         (compute_cfa_pointer): New function.
32624         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
32625         (struct adjust_mem_data): New type.
32626         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
32627         functions.
32628         (get_address_mode): New function.
32629         (replace_expr_with_values): Use it.
32630         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
32631         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
32632         (adjust_sets): Remove.
32633         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
32634         Use get_address_mode.
32635         (get_adjusted_src): Remove.
32636         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
32637         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
32638         (add_with_sets): Don't call adjust_sets.
32639         (fp_setter, vt_init_cfa_base): New functions.
32640         (vt_initialize): Change return type to bool.  Move most of pool etc.
32641         initialization to the beginning of the function from end.  Pass
32642         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
32643         If !frame_pointer_needed, call vt_stack_adjustment before mos
32644         vector is filled, call vt_init_cfa_base if argp/framep has been
32645         eliminated to sp.  If frame_pointer_needed and argp/framep has
32646         been eliminated to hard frame pointer, set
32647         hard_frame_pointer_adjustment and call vt_init_cfa_base after
32648         encountering fp setter in the prologue.  For MO_ADJUST, call
32649         log_op_type before pusing the op into mos vector, not afterwards.
32650         Call adjust_insn before cselib_process_insn/add_with_sets,
32651         call cancel_changes (0) afterwards.
32652         (variable_tracking_main_1): Adjust for vt_initialize calling
32653         vt_stack_adjustments and returning whether it succeeded or not.
32654
32655 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
32656
32657         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
32658         debug statements.
32659
32660 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
32661
32662         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
32663         has been set.
32664         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
32665         drap_reg has not been set.
32666
32667 2010-03-15  Michael Matz  <matz@suse.de>
32668
32669         PR middle-end/43300
32670         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
32671         use it to expand block copies.
32672         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
32673         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
32674         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
32675
32676 2010-03-15  Richard Guenther  <rguenther@suse.de>
32677
32678         PR tree-optimization/43367
32679         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
32680         elimination check.
32681
32682 2010-03-15  Richard Guenther  <rguenther@suse.de>
32683
32684         PR tree-optimization/43317
32685         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
32686
32687 2010-03-15  Martin Jambor  <mjambor@suse.cz>
32688
32689         PR tree-optimization/43141
32690         * tree-sra.c (create_abstract_origin): New function.
32691         (modify_function): Call create_abstract_origin.
32692
32693 2010-03-15  Chris Demetriou  <cgd@google.com>
32694
32695         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
32696         wasn't copied.
32697
32698 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32699
32700         PR middle-end/43354
32701         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
32702         call insert_out_of_ssa_copy for default definitions.
32703
32704 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32705
32706         * graphite-clast-to-gimple.c (my_long_long): Defined.
32707         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
32708         * graphite-sese-to-poly.c (my_long_long): Defined.
32709         (scop_ivs_can_be_represented): Use it.
32710
32711 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32712
32713         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
32714         graphite-max-bbs-per-function, and loop-block-tile-size.
32715         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
32716         with "maximum".
32717         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
32718
32719 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32720
32721         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
32722         forward declaration.
32723         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
32724         (add_upper_bounds_from_estimated_nit): New.
32725         (build_loop_iteration_domains): Use it.
32726
32727 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32728
32729         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
32730
32731 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32732
32733         PR middle-end/43306
32734         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
32735         should be an INTEGER_CST.  Also handle CASE_CONVERT.
32736
32737 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32738
32739         * graphite.c (graphite_initialize): To bound the number of bbs per
32740         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
32741         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
32742         * doc/invoke.texi: Document it.
32743
32744 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32745
32746         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
32747         * graphite-sese-to-poly.h (build_poly_scop): Same.
32748
32749 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
32750
32751         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
32752         the number of parameters in the scop.  Use as an upper bound
32753         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
32754         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
32755         * doc/invoke.texi: Document it.
32756
32757 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
32758
32759         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
32760         * doc/c-tree.texi: Remove.
32761         * doc/generic.texi: Merge c-tree.texi here.
32762         * doc/gccint.texi (Trees): Remove menu entry.
32763         (c-tree.texi): Remove @include.
32764         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
32765         * doc/languages.texi (Reading RTL): Ditto.
32766
32767 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
32768
32769         PR target/42869
32770         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
32771
32772 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
32773
32774         PR middle-end/42431
32775         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
32776         code added to work around reload clobbering CONST insns.
32777
32778 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
32779
32780         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
32781         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
32782         (cselib_preserve_only_values): Remove retain argument, don't
32783         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
32784         * cselib.h (cselib_preserve_only_values): Remove retain argument.
32785         * var-tracking.c (micro_operation): Move insn field before union.
32786         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
32787         (struct variable_tracking_info_def): Remove n_mos field, change
32788         mos into a vector of micro_operations.
32789         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
32790         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
32791         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
32792         changing into a vector.
32793         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
32794         come before all other uops generated by add_stores.
32795         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
32796         argument removal.
32797         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
32798         a vector.  Run just one pass over the bbs instead of separate counting
32799         and computation phase.
32800         (vt_finalize): Free VTI (bb)->mos vector instead of array.
32801
32802         PR debug/43329
32803         * tree-inline.c (remap_decls): Put old_var rather than origin_var
32804         into *nonlocalized_list vector.
32805         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
32806         even if origin is non-NULL.
32807         (gen_variable_die): Likewise.
32808         (process_scope_var): Don't change origin.
32809         (gen_decl_die): Likewise.
32810         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
32811         before adding new edges instead of after it, fix moving over
32812         debug stmts.
32813
32814 2010-03-11  David S. Miller  <davem@davemloft.net>
32815
32816         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
32817         of four.
32818         * configure: Rebuild.
32819
32820 2010-03-11  Martin Jambor  <mjambor@suse.cz>
32821
32822         PR tree-optimization/43257
32823         * tree.c (assign_assembler_name_if_neeeded): New function.
32824         (free_lang_data_in_cgraph): Assembler name assignment moved to the
32825         above new function.
32826         * tree.h (assign_assembler_name_if_neeeded): Declare.
32827         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
32828         the function if needed.
32829
32830 2010-03-11  Chris Demetriou  <cgd@google.com>
32831
32832         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
32833         include/stdint-gcc.h, and include/stdint.h world-readable.
32834
32835 2010-03-11  Richard Guenther  <rguenther@suse.de>
32836
32837         PR tree-optimization/43255
32838         * tree-vrp.c (process_assert_insertions_for): Do not insert
32839         asserts for trivial conditions.
32840
32841 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
32842
32843         PR tree-optimization/43280
32844         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
32845         generation.  Move calculation of size out of the if branch.
32846         (find_bswap): Modify compare number generation.
32847
32848 2010-03-11  Richard Guenther  <rguenther@suse.de>
32849
32850         PR lto/43200
32851         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
32852         (input_gimple_stmt): Fixup handled component types during
32853         operand read.  Also fix up decls in ADDR_EXPRs.
32854
32855 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
32856
32857         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
32858         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
32859
32860 2010-03-10  Jan Hubicka  <jh@suse.cz>
32861
32862         PR c/43288
32863         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
32864         * varasm.c (get_variable_section): Don't do that here...
32865         (make_decl_rtl): ... and here.
32866         (do_assemble_alias): Produce decl RTL.
32867         (assemble_alias): Likewise.
32868
32869 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
32870
32871         PR debug/43290
32872         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
32873         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
32874         of fde->vdrap_reg.
32875         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
32876         (based_loc_descr): Only express drap or vdrap regno based expressions
32877         using DW_OP_fbreg when not optimizing.
32878         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
32879         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
32880         REG_CFA_SET_VDRAP note.
32881
32882 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
32883
32884         PR tree-optimization/43236
32885         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
32886         error in calculation of base address in reverse iteration case.
32887         (generate_builtin): Take number of latch executions if the statement
32888         is in the latch.
32889
32890 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
32891
32892         PR middle-end/42859
32893         * tree-eh.c: Include pointer-set.h.
32894         (lower_eh_dispatch): Filter out duplicate case labels and
32895         remove the unneeded edge when the label is unused.  Return
32896         true when some edges are removed.
32897         (execute_lower_eh_dispatch): When any lowering resulted in
32898         removing an edge, also delete unreachable blocks.
32899
32900 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
32901
32902         PR bootstrap/43287
32903         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
32904         UNSPEC_MACHOPIC_OFFSET.
32905
32906 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
32907
32908         PR target/43294
32909         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
32910         (m68k_delegitimize_address): New function.
32911
32912 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
32913
32914         PR debug/43299
32915         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
32916
32917         PR debug/43299
32918         * var-tracking.c (adjust_sets): New function.
32919         (count_with_sets, add_with_sets): Use it.
32920         (get_adjusted_src): New inline function.
32921         (add_stores): Use it.
32922
32923         PR debug/43304
32924         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
32925         call cselib_dummy_expand_value_rtx_cb instead of
32926         cselib_expand_value_rtx_cb.
32927
32928         PR debug/43293
32929         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
32930         * config/i386/i386.c: Include debug.h and dwarf2out.h.
32931         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
32932         and .cfi_endproc around the pic thunks.
32933         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
32934         all queued unwind info register saves are saved before the call.
32935         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
32936         considered as sp-=4 for unwind info and the pop as sp+=4 which
32937         also clobbers dest, but doesn't actually restore it.
32938
32939         PR debug/43290
32940         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
32941         RTX_FRAME_RELATED_P.
32942
32943 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32944
32945         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
32946         whitespaces in output template.
32947
32948 2010-03-09  Jie Zhang  <jie@codesourcery.com>
32949
32950         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
32951         out array boundary.
32952
32953 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
32954
32955         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
32956         builtins.exp in a separate job.
32957
32958 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32959
32960         * graphite-sese-to-poly.c (add_param_constraints): Use
32961         lower_bound_in_type and upper_bound_in_type.
32962
32963 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32964
32965         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
32966         instead of unsigned_type_node.
32967
32968 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32969             Reza Yazdani  <reza.yazdani@amd.com>
32970
32971         PR middle-end/43065
32972         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
32973         on pointer type parameters.
32974
32975 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32976
32977         PR middle-end/42644
32978         PR middle-end/42130
32979         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
32980         handle conversions from pointer to integers.
32981         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
32982         induction variable, to be able to work with code generated by CLooG.
32983         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
32984         (build_poly_scop): Bail out if we cannot codegen a loop.
32985
32986 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
32987
32988         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
32989         code generation with gloog_error.
32990
32991 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32992
32993         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
32994         Call fold_convert on all the returned values.
32995         (expand_scalar_variables_expr): Pass to
32996         expand_scalar_variables_ssa_name the type of the resulting expression.
32997
32998 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
32999
33000         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
33001         ppl_min_for_le_pointset.
33002         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
33003         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
33004
33005 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33006
33007         * graphite-dependences.c (map_into_dep_poly): Removed.
33008         (dependence_polyhedron_1): Use combine_context_id_scat.
33009
33010 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33011
33012         * graphite-poly.h (struct poly_scattering): Add layout documentation.
33013         (struct poly_bb): Same.
33014         (combine_context_id_scat): New.
33015
33016 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33017
33018         PR middle-end/42326
33019         * sese.c (name_defined_in_loop_p): Return false for default
33020         definitions.
33021
33022 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33023
33024         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
33025         and clean up the logic.
33026
33027 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
33028
33029         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
33030         early return.
33031
33032 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
33033
33034         * var-tracking.c (remove_cselib_value_chains): Define only for
33035         ENABLE_CHECKING.
33036         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
33037         delete_slot_part, emit_notes_for_differences_1): Don't call
33038         remove_cselib_value_chains here.
33039         (set_slot_part, emit_notes_for_differences_2): Don't call
33040         add_cselib_value_chains here.
33041         (preserved_values): New vector.
33042         (preserve_value): New function.
33043         (add_uses, add_stores, vt_add_function_parameters): Use it
33044         instead of cselib_preserve_value.
33045         (changed_values_stack): New vector.
33046         (check_changed_vars_0): New function.
33047         (check_changed_vars_1, check_changed_vars_2): Use it.
33048         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
33049         changed_values_stack VALUEs.
33050         (vt_emit_notes): For all preserved_values call
33051         add_cselib_value_chains.  If ENABLE_CHECKING call
33052         remove_cselib_value_chains before verifying value_chains is empty.
33053         Initialize and free changed_values_stack.
33054         (vt_initialize): Initialize preserved_values.
33055         (vt_finalize): Free preserved_values.
33056
33057 2010-03-08  Richard Guenther  <rguenther@suse.de>
33058
33059         PR tree-optimization/43269
33060         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
33061         region detection.
33062
33063 2010-03-08  Martin Jambor  <mjambor@suse.cz>
33064
33065         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
33066         (ipa_is_param_called): Removed.
33067         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
33068         (ipa_print_node_params): Do not print the called flag.
33069         (ipa_write_node_info): Do not stream the called flag.
33070         (ipa_read_node_info): Likewise.
33071
33072 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
33073
33074         PR debug/43176
33075         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
33076         * cselib.c (struct expand_value_data): Add dummy field.
33077         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
33078         dummy to false.
33079         (cselib_dummy_expand_value_rtx_cb): New function.
33080         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
33081         any rtl.
33082         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
33083         * var-tracking.c: Include pointer-set.h.
33084         (variable): Change n_var_parts to char from int.  Add
33085         cur_loc_changed and in_changed_variables fields.
33086         (variable_canonicalize): Remove.
33087         (shared_var_p): New inline function.
33088         (unshare_variable): Maintain cur_loc_changed and
33089         in_changed_variables fields.  If var was in changed_variables,
33090         replace it there with new_var.  Just copy cur_loc instead of
33091         resetting it to something else.
33092         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
33093         (dataflow_set_union): Don't call variable_canonicalize.
33094         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
33095         of their DEBUG_EXPR_TREE_DECLs.
33096         (canonicalize_loc_order_check): Verify that cur_loc is NULL
33097         and in_changed_variables and cur_loc_changed is false.
33098         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
33099         and cur_loc_changed.  Don't update cur_loc here.
33100         (variable_merge_over_src): Don't call variable_canonicalize.
33101         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
33102         removing loc that is equal to cur_loc, clear cur_loc,
33103         set cur_loc_changed and ensure variable_was_changed is called.
33104         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
33105         compare pointers in cur_loc check, if it is equal to loc,
33106         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
33107         (variable_different_p): Remove compare_current_location argument,
33108         don't compare cur_loc.
33109         (dataflow_set_different_1): Adjust variable_different_p caller.
33110         (variable_was_changed): If dv had some var in changed_variables
33111         already, reset in_changed_variables flag for it and propagate
33112         cur_loc_changed over to the new variable.  On empty var
33113         always set cur_loc_changed.  Set in_changed_variables on whatever
33114         var is added to changed_variables.
33115         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
33116         Use shared_var_p.  When removing loc that is equal to cur_loc,
33117         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
33118         end, don't set it to something else, just call variable_was_changed.
33119         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
33120         loc being removed, clear cur_loc and set cur_loc_changed.
33121         Set cur_loc_changed if all locations have been removed.
33122         (struct expand_loc_callback_data): New type.
33123         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
33124         allocated.  Always create SUBREGs if simplify_subreg failed.
33125         Prefer to use cur_loc, when that fails and still in
33126         changed_variables (and seen first time) recompute it.  Set
33127         cur_loc_changed of variables which had to change cur_loc and
33128         compute elcd->cur_loc_changed if any of the subexpressions used
33129         had to change cur_loc.
33130         (vt_expand_loc): Adjust to pass arguments in
33131         expand_loc_callback_data structure.
33132         (vt_expand_loc_dummy): New function.
33133         (emitted_notes): New variable.
33134         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
33135         that weren't used for any other decl in current
33136         emit_notes_for_changes call call vt_expand_loc_dummy to update
33137         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
33138         first loc_chain location if NULL before.  Always use just
33139         cur_loc instead of first loc_chain location.  When cur_loc_changed
33140         is false, when not --enable-checking=rtl just don't emit any note.
33141         When rtl checking, compute the note and assert it is the same
33142         as previous note.  Clear cur_loc_changed and in_changed_variables
33143         at the end before removing from changed_variables.
33144         (check_changed_vars_3): New function.
33145         (emit_notes_for_changes): Traverse changed_vars to call
33146         check_changed_vars_3 on each changed var.
33147         (emit_notes_for_differences_1): Clear cur_loc_changed and
33148         in_changed_variables.  Recompute cur_loc of new_var.
33149         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
33150         (vt_emit_notes): Initialize and destroy emitted_notes.
33151
33152 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
33153
33154         PR rtl-optimization/42220
33155         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
33156         Use verify_reg_tracked to determine if we should use OP_OUT rather
33157         than OP_INOUT.
33158         (build_def_use): If we see an in-out operand for a register that we
33159         know nothing about, treat is an output if possible, fail the block if
33160         not.
33161
33162 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33163
33164         PR debug/42897
33165         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
33166         permanently.
33167
33168 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33169
33170         PR debug/42897
33171         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
33172         uses of relevant DEFs that are dead outside the loop too.
33173
33174 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
33175
33176         * var-tracking.c (dataflow_set_merge): Swap src and src2.
33177         Reverted:
33178         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
33179         PR debug/41371
33180         * var-tracking.c (values_to_unmark): New variable.
33181         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
33182         values_to_unmark vector.  Moved body to...
33183         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
33184         instead queue it into values_to_unmark vector.
33185         (vt_find_locations): Free values_to_unmark vector.
33186
33187 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
33188
33189         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
33190         (site.exp): Export them when plugins are enabled.
33191
33192 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
33193
33194         PR middle-end/42326
33195         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
33196         that contain scevs.
33197         (chrec_fold_multiply): Same.
33198
33199 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
33200
33201         PR c/43248
33202         * c-decl.c (build_compound_literal): Return early if init is
33203         an error_mark_node.
33204
33205 2010-03-04  Martin Jambor  <mjambor@suse.cz>
33206
33207         PR tree-optimization/43164
33208         PR tree-optimization/43191
33209         * tree-sra.c (type_consists_of_records_p): Reject records with
33210         zero-size bit-fields at the end.
33211
33212 2010-03-04  Mike Stump  <mikestump@comcast.net>
33213
33214         * Makefile.in (TAGS): Remove *.y.
33215
33216 2010-03-04  Richard Guenther  <rguenther@suse.de>
33217
33218         PR tree-optimization/40761
33219         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
33220         in reverse order.
33221         (my_rev_post_order_compute): New function.
33222         (init_pre): Call it.
33223
33224 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
33225
33226         PR middle-end/43209
33227         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
33228         decrease the cost of an IV candidate when the cost is infinite.
33229
33230 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33231
33232         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
33233         Use '3DNow!' for the extension of that name, ensure normal space
33234         after the string.
33235         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
33236
33237 2010-03-03  Jeff Law  <law@redhat.com>
33238
33239         * PR middle-end/32693
33240         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
33241         than gen_rtx_SUBREG.
33242         (extract_bit_field_1): Likewise.
33243
33244 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
33245
33246         * doc/sourcebuild.texi (Test directives): Document that arguments
33247         include-opts and exclude-opts are now optional for dg-skip-if,
33248         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
33249
33250 2010-03-03  Jason Merrill  <jason@redhat.com>
33251
33252         PR c++/12909
33253         * cgraph.h (varpool_node): Add extra_name field.
33254         * varpool.c (varpool_extra_name_alias): New.
33255         (varpool_assemble_decl): Emit extra name aliases.
33256         (varpool_mark_needed_node): Look past an extra name alias.
33257         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
33258         * lto-streamer-in.c (lto_input_tree): Read it.
33259         * lto-streamer-out.c (output_unreferenced_globals): Write it.
33260
33261 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
33262
33263         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
33264         (sparc*-*-solaris2*): ...this.
33265
33266 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
33267
33268         PR debug/43229
33269         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
33270         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
33271         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
33272         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
33273
33274         PR debug/43237
33275         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
33276         fallthrough to default handling, just with want_address 0 instead of 2.
33277         For single element lists, add_AT_loc directly, otherwise create an
33278         artificial variable DIE and stick location list to it.
33279
33280         PR debug/43177
33281         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
33282         (VAL_EXPR_HAS_REVERSE): Define.
33283         (reverse_op): New function.
33284         (add_stores): For reversible operations add an extra MO_VAL_USE.
33285
33286 2010-03-02  Jason Merrill  <jason@redhat.com>
33287
33288         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
33289
33290 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
33291
33292         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
33293         (sparc64-*-linux*): Likewise.
33294         (sparc64-*-solaris2*): Include assembler files before linker ones.
33295         (sparc-*-solaris2*): Simplify and reorder to match previous case.
33296         * config/sparc/gas.h: Delete.
33297         * config/sparc/sol2-64.h: Add copyright notice.
33298         * config/sparc/sol2-gas-bi.h: Likewise.
33299         * config/sparc/sol2-gld.h: Likewise.
33300         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
33301         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
33302         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
33303         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
33304         (sparc_elf_asm_named_section): Rename into...
33305         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
33306
33307 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
33308
33309         * config/alpha/alpha.c (override_options): Fix -mtune error message.
33310
33311 2010-03-02  Jeff Law  <law@redhat.com>
33312
33313         PR middle-end/42431
33314         * reload1.c (rtx_p, substitute_stack): Declare.
33315         (substitute): Record addresses of changed rtxs.
33316         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
33317         Restore the original rtx when complete.
33318         (reload): Free subsitute_stack when complete.
33319
33320 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
33321
33322         * doc/gccint.texi (menu): Add Testsuites as a chapter.
33323         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
33324         new chapter.
33325         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
33326         LTO Testing, gcov Testing, profopt Testing, compat Testing,
33327         Torture Tests): Change from subsection to section.
33328
33329 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
33330             Steven Bosscher  <steven@gcc.gnu.org>
33331
33332         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
33333         instead of bb.
33334
33335 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
33336
33337         PR middle-end/42640
33338         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
33339         the assignment from the new induction variable to the assignment
33340         of the value from the original loop PHI function.
33341
33342 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
33343             Daniel Jacobowitz  <dan@codesourcery.com>
33344
33345         * doc/sourcebuild.texi (Test directives): Clarify options to
33346         dg-skip-if.
33347
33348 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33349
33350         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
33351         Disable cfi directives unless GCC and gas agree on using read-only
33352         .eh_frame sections for 64-bit.
33353         * configure: Regenerate.
33354
33355 2010-03-01  Richard Guenther  <rguenther@suse.de>
33356
33357         PR tree-optimization/43220
33358         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
33359         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
33360
33361 2010-03-01  Richard Guenther  <rguenther@suse.de>
33362             Martin Jambor  <mjambor@suse.cz>
33363
33364         PR middle-end/41250
33365         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
33366         gimplified parameters.
33367
33368 2010-03-01  Christian Bruel  <christian.bruel@st.com>
33369
33370         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
33371
33372 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
33373
33374         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
33375
33376 2010-03-01  Richard Guenther  <rguenther@suse.de>
33377
33378         PR middle-end/43213
33379         * expr.c (expand_assignment): Use the alias-oracle to tell
33380         if the rhs aliases the result decl.
33381
33382 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33383
33384         PR pch/14940
33385         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
33386         to sol_gt_pch_get_address.
33387         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
33388         64-bit, SPARC and x86.
33389         (sol_gt_pch_get_address): New function.
33390
33391 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
33392
33393         * toplev.h (inform_n, error_n): Declare.
33394         * diagnostic.c (inform_n, error_n): New function.
33395
33396 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
33397
33398         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
33399         has no rtl yet when processing local_decls, queue it and recheck
33400         if deferred stack allocation hasn't assigned it rtl.
33401
33402 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
33403
33404         * config/sh/sh.c (unspec_bbr_uid): New.
33405         (gen_block_redirect): Use it instead of INSN_UID.
33406         (gen_far_branch): Likewise.
33407
33408 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
33409
33410         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
33411         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
33412
33413 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
33414
33415         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
33416         (Warning Options): -Wno-conversion-null is valid for
33417         Objective-C++ as well.
33418         * doc/tm.texi (Named Address Spaces): Likewise.
33419         * doc/plugins.texi (Plugins): Replace TABs with spaces.
33420         * doc/tree-ssa.texi (Tree SSA): Likewise.
33421
33422 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33423
33424         PR bootstrap/43202
33425         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
33426         by default.  Don't set the default arch for
33427         i[34567]86-*-darwin*|x86_64-*-darwin*.
33428
33429 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33430
33431         PR bootstrap/43202
33432         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
33433         default.  Set the default 32bit/64bit archs with $with_arch
33434         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
33435
33436 2010-02-27  Richard Guenther  <rguenther@suse.de>
33437
33438         PR tree-optimization/43186
33439         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
33440         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
33441         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
33442         unroller iterations.
33443
33444 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
33445
33446         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
33447         required and i[34567]86-*-* targets don't support 64bit ISA.
33448
33449 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
33450
33451         PR ada/43096
33452         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
33453         the same alias set.
33454
33455 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
33456
33457         * config.gcc: Set the default arch at least to Prescott for
33458         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
33459         if SSE math is enabled.
33460
33461 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33462
33463         * diagnostic.c (diagnostic_initialize): Update.
33464         (diagnostic_report_diagnostic): Test inhibit_notes_p for
33465         informative notes.
33466         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
33467         (diagnostic_inhibit_notes): New.
33468         * toplev.c (process_options): inhibit notes with -fcompare-debug.
33469
33470 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33471
33472         PR c/20631
33473         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
33474         * doc/standards.texi: Likewise.
33475         * doc/extend.texi: Likewise.
33476         * doc/trouble.texi: Likewise.
33477         * doc/cppopts.texi: Likewise.
33478         * doc/install.texi: Likewise.
33479         * c.opt (std=c90,std=gnu90): New options.
33480         * c-opts.c (c_common_handle_option): Handle them.
33481
33482 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33483
33484         PR c/24577
33485         * c-decl.c (undeclared_variable): Use an informative note.
33486
33487 2010-02-26  Richard Guenther  <rguenther@suse.de>
33488
33489         PR tree-optimization/43186
33490         * gimple.h (gimple_fold): Remove.
33491         * gimple.c (gimple_fold): Remove.  Inline into single user ...
33492         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
33493         Try harder for conditions.
33494
33495 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
33496
33497         PR debug/43190
33498         * function.c (used_types_insert): Don't skip through named pointer
33499         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
33500         and it is different from the main variant's type.
33501
33502 2010-02-26  Nick Clifton  <nickc@redhat.com>
33503
33504         * config/rx/rx.md (sminsi3): Remove bogus alternative.
33505
33506 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
33507
33508         * config.gcc: Support --with-fpmath=sse for x86.
33509
33510         * config/i386/ssemath.h: New.
33511
33512         * doc/install.texi (--with-fpmath=sse): Documented.
33513
33514 2010-02-26  Richard Guenther  <rguenther@suse.de>
33515
33516         PR tree-optimization/43188
33517         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
33518         vector types of over-aligned element type.
33519
33520 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
33521
33522         PR target/43175
33523         * config/i386/i386.c (expand_vec_perm_blend): Use correct
33524         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
33525
33526 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
33527
33528         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
33529
33530 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
33531
33532         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
33533         * var-tracking.c: Include diagnostic.h.
33534         (debug_dv): New function.
33535         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
33536
33537         PR debug/43160
33538         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
33539         (add_value_chain, add_value_chains, remove_value_chain,
33540         remove_value_chains): Handle DEBUG_EXPRs.
33541         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
33542
33543         PR debug/43161
33544         * regcprop.c (struct queued_debug_insn_change): New type.
33545         (struct value_data_entry): Add debug_insn_changes field.
33546         (struct value_data): Add n_debug_insn_changes field.
33547         (debug_insn_changes_pool): New variable.
33548         (free_debug_insn_changes, apply_debug_insn_changes,
33549         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
33550         (kill_value_one_regno): Call free_debug_insn_changes if needed.
33551         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
33552         fields.
33553         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
33554         changes for them.
33555         (copyprop_hardreg_forward_1): Don't call apply_change_group for
33556         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
33557         changes, call cprop_find_used_regs via note_stores.
33558         (copyprop_hardreg_forward): When copying vd from predecessor
33559         which has any queued DEBUG_INSN changes, make sure the pointers are
33560         cleared.  At the end call df_analyze and then if there are any
33561         DEBUG_INSN changes queued at the end of some basic block for still
33562         live registers, apply them.
33563         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
33564
33565 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
33566
33567         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
33568         (arm*-*-*): Ditto.
33569
33570 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
33571
33572         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
33573         targets.  Set the default with_cpu/with_arch from arch/cpu.
33574         Allow x86-64 and native for with_cpu/with_arch.
33575
33576 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
33577
33578         * ebitmap.c: Change calls to verify_popcount with calls to
33579         sbitmap_verify_popcount.
33580         (ebitmap_clear_bit): Fixed map->cacheindex test and
33581         map>cache update when bit clearing results in an empty
33582         element.
33583
33584 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
33585
33586         PR target/43154
33587         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
33588         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
33589         and support both V2DF and V2DI modes.
33590         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
33591         support both V2DF and V2DI modes.
33592         (general): Delete trailing whitespace from a few patterns.
33593
33594         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
33595         V2DF/V2DI interleave high/low builtins.
33596
33597         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
33598         new VSX builtins.
33599
33600         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
33601         interleave high/low functions.
33602
33603 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
33604
33605         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
33606         #pragma extern_prefix.
33607
33608 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
33609
33610         PR debug/43166
33611         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
33612         BLKmode, assert op0 is a MEM and just adjust its mode.
33613
33614         PR debug/43165
33615         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
33616         if bitpos isn't multiple of mode's bitsize.
33617
33618 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33619
33620         * c.opt (-ftemplate-depth=): New.
33621         (-ftemplate-depth-): Deprecate.
33622         * optc-gen.awk: Handle -ftemplate-depth=.
33623         * opth-gen.awk: Likewise.
33624         * c-opts.c (c_common_handle_option): Likewise.
33625         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
33626
33627 2010-02-24  Jason Merrill  <jason@redhat.com>
33628
33629         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
33630
33631 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33632
33633         * cfg.c (alloc_aux_for_block): Remove inline.
33634         (alloc_aux_for_edge): Likewise.
33635
33636 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33637
33638         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
33639
33640 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33641
33642         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
33643         * config/i386/sol2-gas.h: New file.
33644         * config.gcc (i[34567]86-*-solaris2*): Use it.
33645
33646 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33647
33648         PR c/43128
33649         * c-typeck.c (ep_convert_and_check): New.
33650         (build_conditional_expr): Use it.
33651         (build_binary_op): Likewise.
33652
33653 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
33654
33655         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
33656
33657         PR debug/43150
33658         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
33659         bounds even for -O+.
33660         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
33661         expr needs to have DECL_NAME set.
33662
33663 2010-02-24  Nick Clifton  <nickc@redhat.com>
33664
33665         * config/mep/mep.c: Include gimple.h.
33666         (mep_function_uses_sp): Delete unused function.
33667         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
33668         parameters.  Use unsigned integers to count args.  Return a
33669         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
33670
33671 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
33672
33673         PR target/43107
33674         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
33675         greater or equal to nelt instead of 2 * nelt.
33676         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
33677         with nelt - 1.
33678
33679 2010-02-23  Jason Merrill  <jason@redhat.com>
33680
33681         PR debug/42800
33682         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
33683         in cfun->local_decls even if they have register types.
33684
33685         PR c++/42837
33686         * stor-layout.c (place_field): Don't warn about unnecessary
33687         DECL_PACKED if the type is packed.
33688
33689 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
33690
33691         PR target/43139
33692         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
33693         GOTOFF relocs, even when the base reg isn't pic pointer.
33694
33695 2010-02-23  Michael Matz  <matz@suse.de>
33696
33697         PR debug/43077
33698         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
33699         (expand_gimple_basic_block): Generate and use debug temps if there
33700         are debug uses left after the last real use of TERed ssa names.
33701         Unlink debug immediate uses when they are expanded.
33702
33703 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33704
33705         PR 43123
33706         * config/i386/i386.c (override_options): Reorganise to provide
33707         better error messages.
33708
33709 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33710
33711         PR middle-end/43083
33712         * graphite-scop-detection.c (create_single_exit_edge): Move
33713         the call to find_single_exit_edge to....
33714         (create_sese_edges): ...here.  Don't handle multiple edges
33715         exiting the function.
33716         (build_graphite_scops): Don't handle multiple edges
33717         exiting the function.
33718
33719 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33720
33721         PR middle-end/43097
33722         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
33723         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
33724
33725 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
33726
33727         PR middle-end/43026
33728         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
33729
33730 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33731
33732         PR c++/43126
33733         * c-typeck.c (convert_arguments): Print declaration location.
33734         * c-common.c (validate_nargs): Rename as
33735         builtin_function_validate_nargs.
33736         (check_builtin_function_arguments): Update.
33737
33738 2010-02-22  Richard Guenther  <rguenther@suse.de>
33739
33740         PR lto/43045
33741         * tree-inline.c (declare_return_variable): Use the type of
33742         the call stmt lhs if available.
33743
33744 2010-02-22  Duncan Sands  <baldrick@free.fr>
33745
33746         * passes.c (register_pass): Always consider all pass lists when
33747         ref_pass_instance_number is zero.
33748
33749 2010-02-22  Richard Guenther  <rguenther@suse.de>
33750
33751         PR tree-optimization/42749
33752         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
33753         parameter.  Do arithmetic in the original type.
33754         (update_accumulator_with_ops): Likewise.
33755         (adjust_accumulator_values): Adjust.
33756
33757 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33758
33759         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
33760         (QI to BLKmode splitter): New splitter.
33761
33762 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
33763
33764         * config/i386/i386.c (initial_ix86_tune_features): Turn on
33765         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
33766
33767 2010-02-22  Richard Guenther  <rguenther@suse.de>
33768
33769         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
33770
33771 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
33772
33773         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
33774         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
33775         ($(T)crti.o, $(T)crtn.o): Remove rules.
33776
33777 2010-02-21  Tobias Burnus  <burnus@net-b.de>
33778
33779         PR fortran/35259
33780         * doc/invoke.texi (-fassociative-math): Document that this
33781         option is automatically enabled for Fortran.
33782
33783 2010-02-20  David S. Miller  <davem@davemloft.net>
33784
33785         * configure.ac: Test if linker and assembler properly support
33786         GOTDATA_OP relocations.
33787         * configure: Rebuild.
33788         * config.in: Likewise.
33789         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
33790         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
33791         (movsi_high_pic): Likewise.
33792         (movdi_lo_sum_pic): Likewise.
33793         (movdi_high_pic): Likewise.
33794         (movsi_pic_gotdata_op): New pattern.
33795         (movdi_pic_gotdata_op): Likewise.
33796         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
33797         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
33798
33799 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
33800
33801         PR target/43067
33802         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
33803         attribute to ssemul.
33804         (xop_mulv2div2di3_high): Ditto.
33805
33806 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33807
33808         PR c++/35669
33809         * c.opt (Wconversion-null): New option.
33810         * doc/invoke.texi (Wconversion-null): Document.
33811
33812 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33813
33814         * common.opt (Wlarger-than-): Add Undocumented.
33815
33816 2010-02-19  Mike Stump  <mikestump@comcast.net>
33817
33818         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
33819
33820 2010-02-19  Jason Merrill  <jason@redhat.com>
33821
33822         PR target/40332
33823         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
33824         * configure: Likewise.
33825
33826 2010-02-20  Alan Modra  <amodra@gmail.com>
33827
33828         PR middle-end/42344
33829         * cgraph.h (cgraph_make_decl_local): Declare.
33830         * cgraph.c (cgraph_make_decl_local): New function.
33831         (cgraph_make_node_local): Use it.
33832         * cgraphunit.c (cgraph_function_versioning): Likewise.
33833         * ipa.c (function_and_variable_visibility): Likewise.
33834
33835 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33836
33837         PR bootstrap/43121
33838         * except.c (sjlj_emit_function_enter): Don't call
33839         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
33840         directly.
33841         * rtl.h (add_reg_br_prob_note): Remove prototype.
33842
33843 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33844
33845         PR 41779
33846         * c-common.c (conversion_warning): Remove widening conversions
33847         before checking the conversion of integers to reals.
33848
33849 2010-02-19  Mike Stump  <mikestump@comcast.net>
33850
33851         PR middle-end/43125
33852         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
33853
33854         PR objc/43061
33855         * cgraphunit.c (process_function_and_variable_attributes): Check
33856         DECL_PRESERVE_P instead of looking up attribute "used".
33857         * ipa-pure-const.c (check_decl): Likewise.
33858         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
33859         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
33860         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
33861         instead of attribute "used".
33862         * config/sol2-c.c (solaris_pragma_init): Likewise.
33863         (solaris_pragma_fini): Likewise.
33864
33865 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33866
33867         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
33868         Use XCNEW instead of xcalloc.
33869         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
33870         XNEW instead of xmalloc.
33871         (get_fields): Use XNEWVEC instead of xmalloc.
33872
33873         PR debug/43084
33874         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
33875         populate vars array.
33876         (create_new_general_access): For debug stmts just reset value.
33877         (get_stmt_accesses): For accesses within debug stmts just record them
33878         using add_access_to_acc_sites instead of preventing the peeling or
33879         counting them as accesses.
33880
33881         PR middle-end/42233
33882         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
33883
33884 2010-02-19  Richard Guenther  <rguenther@suse.de>
33885
33886         PR tree-optimization/42916
33887         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
33888         instructions.
33889
33890 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
33891
33892         * configure.ac: Replace all uses of changequote in macro arguments
33893         with proper quoting.
33894
33895 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33896
33897         PR middle-end/42233
33898         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
33899
33900 2010-02-19  Richard Guenther  <rguenther@suse.de>
33901
33902         PR tree-optimization/42944
33903         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
33904         test for aliasing with errno.
33905
33906 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
33907
33908         PR middle-end/42233
33909         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
33910         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
33911         * dojump.c: Include output.h.
33912         (inv): New inline function.
33913         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
33914         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
33915         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
33916         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
33917         argument, pass it down to other calls.
33918         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
33919         add REG_BR_PROB note to the conditional jump.
33920         * cfgexpand.c (add_reg_br_prob_note): Removed.
33921         (expand_gimple_cond): Don't call it, add the probability
33922         as last argument to jumpif_1/jumpifnot_1.
33923         * Makefile.in (dojump.o): Depend on output.h.
33924         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
33925         callers.
33926         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
33927         * stmt.c (do_jump_if_equal): Likewise.
33928         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
33929         * loop-unswitch.c (compare_and_jump_seq): Likewise.
33930         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
33931         Likewise.
33932         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
33933         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
33934         jumpifnot_1 callers.
33935         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
33936         callers.
33937         (store_expr): Adjust jumpifnot caller.
33938         (store_constructor): Adjust jumpif caller.
33939
33940         PR middle-end/42233
33941         * gimplify.c (gimple_boolify): For __builtin_expect call
33942         gimple_boolify also on its first argument.
33943
33944 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
33945
33946         * configure.ac (gnu-unique-object): Wrap regexps using [] in
33947         changequote block.
33948         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
33949         * configure: Regenerated.
33950
33951 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33952
33953         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
33954         lang_hooks.types_compatible_p instead of comptypes.
33955
33956 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33957
33958         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
33959         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
33960         if __prefer_thumb__ is defined.
33961
33962 2010-02-18  Martin Jambor  <mjambor@suse.cz>
33963
33964         PR tree-optimization/43066
33965         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
33966         array with zero-sized element type.
33967
33968 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
33969
33970         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
33971         rtx, allocate struct var_loc_node here and return it to the
33972         caller, and only if it is actually needed.
33973         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
33974         move it earlier and return immediately if it returns NULL.
33975
33976 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
33977
33978         * config/sparc/gas.h: New file.  Restore
33979         TARGET_ASM_NAMED_SECTION to its ELF default.
33980         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
33981         check !HAVE_GNU_AS.
33982         * config/sparc/sparc.c (sparc_elf_asm_named_section):
33983         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
33984         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
33985         after sparc/sysv4.h.
33986
33987 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
33988
33989         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
33990
33991 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
33992
33993         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
33994         patterns from predicated pattern.
33995
33996 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
33997
33998         PR target/43103
33999         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
34000         for insn mnemonic suffix.
34001
34002 2010-02-17  Richard Guenther  <rguenther@suse.de>
34003
34004         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
34005         to loop PHI nodes.
34006
34007 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
34008
34009         PR debug/42918
34010         * caller-save.c (save_call_clobbered_regs): If BB ends with
34011         a DEBUG_INSN, move any notes in between last real insn and the last
34012         DEBUG_INSN after the last DEBUG_INSN.
34013
34014 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
34015
34016         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
34017         Fix return type.  Fix argument type.  Explain meaning of return value.
34018
34019 2010-02-16  Richard Guenther  <rguenther@suse.de>
34020
34021         PR tree-optimization/41043
34022         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
34023         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
34024         statements ...
34025         (vrp_visit_phi_node): ... but only for loop PHI nodes.
34026
34027 2010-02-16  Ira Rosen  <irar@il.ibm.com>
34028
34029         PR tree-optimization/43074
34030         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
34031         * tree-vect-loop.c (vect_analyze_loop_operations): Add
34032         vectorizable cycles in hybrid SLP check.
34033         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
34034
34035 2010-02-16  Richard Guenther  <rguenther@suse.de>
34036
34037         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
34038         (true_dependence): If memrefs_conflict_p computes must-alias
34039         trust it.  Move TBAA check after offset-based disambiguation.
34040         (canon_true_dependence): Likewise.
34041
34042 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
34043
34044         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
34045         * doc/invoke.texi: Document it.
34046         * var-tracking.c: Include toplev.h and params.h.
34047         (vt_find_locations): Return bool indicating success.  Compute
34048         hash sizes unconditionally.  Check new parameter, report.
34049         (variable_tracking_main_1): Check vt_find_locations results and
34050         retry.  Renamed from...
34051         (variable_tracking_main): ... this.  New wrapper to preserve
34052         flag_var_tracking_assignments.
34053         * Makefile.in (var-tracking.o): Adjust dependencies.
34054
34055 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
34056             Jakub Jelinek  <jakub@redhat.com>
34057
34058         PR target/42854
34059         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
34060         if weak_import attribute is present.
34061         * config/darwin.c (machopic_select_section): Likewise.
34062
34063 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
34064
34065         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
34066         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
34067         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
34068         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
34069
34070         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
34071         types.
34072
34073         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
34074         Fix argument types.
34075
34076         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
34077         Rewrite text to refer to the names.
34078
34079 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
34080
34081         * config/i386/i386-builtin-types.def
34082         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
34083         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
34084         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
34085         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
34086         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
34087         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
34088         IX86_BUILTIN_VPERMIL2PS256.
34089         (MULTI_ARG_4_DF2_DI_I): Defined.
34090         (MULTI_ARG_4_DF2_DI_I1): Defined.
34091         (MULTI_ARG_4_SF2_SI_I): Defined.
34092         (MULTI_ARG_4_SF2_SI_I1): Defined.
34093         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
34094         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
34095         __builtin_ia32_vpermil2ps256.
34096         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
34097         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
34098         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
34099         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
34100         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
34101         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
34102         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
34103         CODE_FOR_xop_vpermil2v8sf3.
34104         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
34105         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
34106         * config/i386/xopintrin.h (_mm_permute2_pd): New.
34107         (_mm256_permute2_pd): New.
34108         (_mm_permute2_ps): New.
34109         (_mm256_permute2_ps): New.
34110
34111 2010-02-15  Nick Clifton  <nickc@redhat.com>
34112
34113         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
34114         boolean parameters.  Use emit_jump_insn when emitting a pop
34115         instruction containing a return insn.
34116         (push): Use 'true' rather than '1' as second parameter to F.
34117         (h8300_expand_prologue): Likewise.
34118         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
34119         (h8300_expand_epilogue): Likewise.
34120
34121 2010-02-15  Richard Guenther  <rguenther@suse.de>
34122
34123         PR middle-end/43068
34124         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
34125         if that is zero.
34126
34127 2010-02-15  Nick Clifton  <nickc@redhat.com>
34128
34129         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
34130         delta.
34131
34132 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
34133
34134         * intl.c (fake_ngettext): New function.
34135         * intl.h (fake_ngettext): Declare.
34136         (ngettext): Define macro.
34137         * collect2.c (notice_translated): New function.
34138         (main): Use notice_translated and ngettext.
34139         * collect2.h (notice_translated): Declare.
34140
34141 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
34142
34143         * reorg.c (delete_computation): Comment fixes.
34144         * caller-save.c (setup_save_areas): Idem.
34145         * sel-sched-dump.c (dump_lv_set): Idem.
34146         * rtl.def: Idem.
34147
34148 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34149
34150         * config/s390/s390.c (s390_sched_init): New function.
34151         (TARGET_SCHED_INIT): Target hook defined.
34152
34153 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
34154             Jack Howarth  <howarth@bromo.med.uc.edu>
34155             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
34156
34157         PR target/42982
34158         Partial revert of unintended change in fix for PR41605.
34159         * config/darwin.h: Fix typo.
34160         * config/darwin9.h: Same.
34161
34162 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34163
34164         * c-pch.c (pch_init): Clear v.
34165
34166 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34167
34168         PR middle-end/42930
34169         * graphite-scop-detection.c (graphite_can_represent_scev): Call
34170         graphite_can_represent_init for MULT_EXPR.
34171
34172 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34173
34174         PR middle-end/42914
34175         PR middle-end/42530
34176         * graphite-sese-to-poly.c (remove_phi): New.
34177         (translate_scalar_reduction_to_array): Call remove_phi.
34178
34179 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34180
34181         PR middle-end/42771
34182         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
34183         * graphite-clast-to-gimple.h (gloog): Update declaration.
34184         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
34185         * graphite-poly.h (struct poly_bb): Add missing comments.
34186         (struct scop): Add poly_scop_p field.
34187         (POLY_SCOP_P): New.
34188         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
34189         * graphite.c (graphite_transform_loops): Build the polyhedral
34190         representation for each scop before code generation.
34191         * sese.c (rename_variables_in_operand): Removed.
34192         (rename_variables_in_expr): Return the renamed expression.
34193         (rename_sese_parameters): New.
34194         * sese.h (rename_sese_parameters): Declared.
34195
34196 2010-02-11  Richard Guenther  <rguenther@suse.de>
34197
34198         PR tree-optimization/42998
34199         * tree-ssa-pre.c (create_expression_by_pieces): Treat
34200         POINTER_PLUS_EXPR properly.
34201
34202 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
34203             Changpeng Fang  <changpeng.fang@amd.com>
34204
34205         PR middle-end/40886
34206         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
34207         the cost of an IV candidate when the IV is used in a test against zero.
34208
34209         * gcc.dg/tree-ssa/ivopts-3.c: New.
34210
34211 2010-02-11  Richard Guenther  <rguenther@suse.de>
34212
34213         PR lto/41664
34214         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
34215         pointer-vs-decl case by swapping refs.  Handle some cases
34216         of pointer-vs-decl disambiguations more conservatively.
34217         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
34218         to false after expanding.
34219
34220 2010-02-11  Richard Guenther  <rguenther@suse.de>
34221
34222         PR driver/43021
34223         * gcc.c (process_command): Handle LTO file@offset case more
34224         appropriately.
34225
34226 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
34227
34228         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
34229         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
34230         of DEBUG_INSNs.
34231         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
34232
34233         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
34234         if MEM's mode size isn't DWARF2_ADDR_SIZE.
34235         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
34236         Optimize eq/ne comparisons when both arguments are known to be
34237         zero-extended.
34238         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
34239         Don't mask operands unnecessarily if they are known to be already
34240         zero-extended.
34241
34242 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
34243
34244         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
34245         instead of loop.
34246
34247 2010-02-10  Richard Guenther  <rguenther@suse.de>
34248
34249         PR tree-optimization/43017
34250         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
34251         for wrapping signed arithmetic.
34252
34253 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
34254
34255         PR debug/43010
34256         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
34257         if no debug info should be emitted for it.
34258
34259 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
34260
34261         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
34262         note when flag_exceptions is set.
34263
34264 2010-02-10  Duncan Sands  <baldrick@free.fr>
34265
34266         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
34267
34268 2010-02-10  Richard Guenther  <rguenther@suse.de>
34269
34270         PR c/43007
34271         * tree.c (get_unwidened): Handle constants.
34272         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
34273
34274 2010-02-10  Martin Jambor  <mjambor@suse.cz>
34275
34276         PR lto/42985
34277         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
34278         check for variable argument counts independently.
34279
34280 2010-02-10  Christian Bruel  <christian.bruel@st.com>
34281
34282         PR target/42841
34283         * config/sh/sh.c (find_barrier): Increase length for non delayed
34284         conditional branches.
34285
34286 2010-02-10  Christian Bruel  <christian.bruel@st.com>
34287
34288         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
34289
34290 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
34291
34292         * builtins.c (set_builtin_user_assembler_name): Also handle
34293         ffs if int is smaller than word.
34294
34295 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
34296
34297         PR middle-end/42973
34298         * ira-conflicts.c (get_dup): Remove.
34299         (process_reg_shuffles): Add new parameter.  Use it as an
34300         additional guard for copy generation.
34301         (add_insn_allocno_copies): Rewrite.
34302
34303 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
34304
34305         * common.opt (fsched2-use-traces): Preserved for backward
34306         compatibility.
34307         * doc/invoke.texi: Remove the documentation about option
34308         -fsched2-use-traces.
34309         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
34310         flag_sched2_use_traces.
34311         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
34312         the backward compatibility flag section.
34313
34314 2010-02-09  Richard Guenther  <rguenther@suse.de>
34315
34316         PR tree-optimization/43008
34317         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
34318         make HEAP variables initialized from global memory if they
34319         are not known builtin functions.
34320         (find_func_aliases): Adjust.
34321
34322 2010-02-09  Richard Guenther  <rguenther@suse.de>
34323
34324         PR tree-optimization/43000
34325         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
34326         arithmetic manually.
34327
34328 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
34329
34330         PR tree-optimization/42931
34331         * tree-loop-linear.c (try_interchange_loops): Don't call
34332         double_int_mul if estimated_loop_iterations failed.
34333
34334 2010-02-08  Martin Jambor  <mjambor@suse.cz>
34335
34336         PR middle-end/42898
34337         * tree-sra.c (build_accesses_from_assign): Do not mark in
34338         should_scalarize_away_bitmap if stmt has volatile ops.
34339         (sra_modify_assign): Do not process assigns piecemeal if if stmt
34340         has volatile ops.
34341
34342 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
34343
34344         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
34345
34346 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
34347
34348         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
34349         before the pattern.
34350
34351 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
34352
34353         PR middle-end/42946
34354         * df-core.c (df_finish_pass): Change type of saved_flags to int.
34355
34356 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
34357
34358         PR middle-end/42988
34359         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
34360         to unknown_dependence.
34361         (graphite_legal_transform_dr): Handle the unknown_dependence.
34362         (graphite_carried_dependence_level_k): Same.
34363
34364 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
34365
34366         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
34367
34368 2010-02-07  Richard Guenther  <rguenther@suse.de>
34369
34370         PR middle-end/42991
34371         * expr.c (get_inner_reference): Always initialize *pbitsize.
34372
34373 2010-02-07  Richard Guenther  <rguenther@suse.de>
34374
34375         PR middle-end/42956
34376         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
34377         new ARRAY_REFs on variable size element or minimal index arrays.
34378         Complete.
34379         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
34380         gimple_fold_indirect_ref.
34381
34382 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
34383
34384         PR target/42957
34385         * arm.c (arm_override_options): Just return if the user has specified
34386         an invalid fpu name.
34387
34388 2010-02-03  Jason Merrill  <jason@redhat.com>
34389
34390         PR c++/42870
34391         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
34392         i386_pe_maybe_record_exported_symbol.
34393
34394 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
34395
34396         PR target/42924
34397         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
34398         (pa_delegitimize_address): New function.
34399
34400 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
34401
34402         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
34403         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
34404
34405 2010-02-05  Richard Guenther  <rguenther@suse.de>
34406
34407         PR lto/42762
34408         * lto-streamer-in.c (get_resolution): Deal with references
34409         to undefined functions.
34410
34411 2010-02-05  Richard Guenther  <rguenther@suse.de>
34412
34413         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
34414         (fold_const_aggregate_ref): Likewise.
34415         (ccp_fold_stmt): Substitute loads.
34416         (maybe_fold_reference): Verify types before substituting.
34417         Unshare properly.
34418         (fold_gimple_assign): Unshare properly.
34419         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
34420
34421 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
34422
34423         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
34424         for rs6000_gen_cell_microcode.
34425
34426 2010-02-04  Richard Guenther  <rguenther@suse.de>
34427
34428         PR rtl-optimization/42952
34429         * dse.c (const_or_frame_p): Remove MEM handling.
34430
34431 2010-02-04  Nick Clifton  <nickc@redhat.com>
34432
34433         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
34434         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
34435         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
34436         (mn10300_asm_output_mi_thunk): New function.
34437         (mn10300_can_output_mu_thunk): New function.
34438         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
34439         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
34440         (FUNCTION_ARG): Delete incorrect comment.
34441
34442 2010-02-03  Jason Merrill  <jason@redhat.com>
34443
34444         PR c++/40138
34445         * fold-const.c (operand_equal_p): Handle erroneous types.
34446
34447 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34448
34449         * config/h8300/h8300.md (can_delay): Fix attibute condition.
34450
34451 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
34452
34453         PR rtl-optimization/42941
34454         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
34455         of xmalloc.
34456
34457 2010-02-03  Jason Merrill  <jason@redhat.com>
34458
34459         PR c++/35652
34460         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
34461
34462 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
34463
34464         PR debug/42896
34465         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
34466         (cselib_reset_table): Renamed from...
34467         (cselib_reset_table_with_next_value): ... this.
34468         (cselib_get_next_uid): Renamed from...
34469         (cselib_get_next_unknown_value): ... this.
34470         * cselib.c (next_uid): Renamed from...
34471         (next_unknown_value): ... this.
34472         (cselib_clear_table): Adjust.
34473         (cselib_reset_table): Adjust.  Renamed from...
34474         (cselib_reset_table_with_next_value): ... this.
34475         (cselib_get_next_uid): Adjust.  Renamed from...
34476         (cselib_get_next_unknown_value): ... this.
34477         (get_value_hash): Use hash.
34478         (cselib_hash_rtx): Likewise.
34479         (new_cselib_val): Adjust.  Set and dump uid.
34480         (cselib_lookup_mem): Pass next_uid as hash.
34481         (cselib_subst_to_values): Likewise.
34482         (cselib_log_lookup): Dump uid.
34483         (cselib_lookup): Pass next_uid as hash.  Adjust.
34484         (cselib_process_insn): Adjust.
34485         (cselib_init): Initialize next_uid.
34486         (cselib_finish): Adjust.
34487         (dump_cselib_table): Likewise.
34488         * dse.c (canon_address): Dump value uid.
34489         * print-rtl.c (print_rtx): Print value uid.
34490         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
34491         (dvuid): New type.
34492         (dv_uid): New function, sort of renamed from...
34493         (dv_htab_hash): ... this, reimplemented in terms of it and...
34494         (dv_uid2hash): ... this.  New.
34495         (variable_htab_eq): Drop excess assertions.
34496         (tie_break_pointers): Removed.
34497         (canon_value_cmp): Compare uids.
34498         (variable_post_merge_New_vals): Print uids.
34499         (vt_add_function_parameters): Adjust.
34500         (vt_initialize): Reset table.  Adjust.
34501
34502 2010-02-03  Richard Guenther  <rguenther@suse.de>
34503
34504         PR tree-optimization/42944
34505         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
34506         (call_may_clobber_ref_p_1): Likewise.  Properly handle
34507         malloc and calloc clobbering errno.
34508
34509 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
34510
34511         * doc/invoke.texi: Fix name of sched1 dump.
34512
34513         * opts.c (decode_options): Set flag_tree_switch_conversion
34514         only conditionally on optimize >= 2.
34515
34516         * gcse.c: Assorted comment fixes in pass description.
34517
34518 2010-02-03  Anthony Green  <green@moxielogic.com>
34519
34520         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
34521         nop padding in order to maintain alignment of storage location of
34522         target function address.
34523         (moxie_trampoline_init): Store target function address at newly
34524         aligned location.
34525         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
34526         to 32.
34527         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
34528
34529 2010-02-03  Richard Guenther  <rguenther@suse.de>
34530
34531         PR middle-end/42927
34532         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
34533
34534 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34535
34536         * config.gcc: Reenable check for obsolete targets.
34537         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
34538         mips-sgi-irix6.[0-4]*.
34539
34540 2010-02-02  Nick Clifton  <nickc@redhat.com>
34541
34542         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
34543         constant size of 4 as being the same as 0.
34544         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
34545         can take values in the range 0..4.
34546
34547 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
34548
34549         PR java/41991
34550         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
34551         as _darwin10_Unwind_FindEnclosingFunction().
34552         * libgcc-libsystem.ver: New.
34553
34554 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
34555
34556         PR target/41399
34557         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
34558         implicitly set registers.
34559
34560 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
34561
34562         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
34563         (arm_override_options): Allow automatic selection of the thread
34564         pointer register if thumb2.
34565         (legitimize_pic_address): Improve code sequences for Thumb2.
34566         (arm_call_tls_get_addr): Likewise.
34567         (legitimize_tls_address): Likewise.
34568         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
34569         (pic_load_addr_32bit): ... this.  New named pattern.
34570         * thumb2.md (pic_load_addr_thumb2): Delete.
34571         (pic_load_dot_plus_four): Delete.
34572         (tls_load_dot_plus_four): New named pattern.
34573
34574 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34575
34576         PR libgomp/29986
34577         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
34578         Document fix for TLS bug.
34579
34580 2010-01-31  Richard Guenther  <rguenther@suse.de>
34581
34582         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
34583         conservatively correct.
34584
34585 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34586
34587         PR target/42850
34588         Revert:
34589         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34590
34591         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
34592
34593 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
34594
34595         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
34596
34597 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
34598
34599         * config.gcc: Adjust order of makefile fragments for mingw targets.
34600
34601 2010-01-31  Richard Guenther  <rguenther@suse.de>
34602
34603         PR middle-end/42898
34604         * gimplify.c (gimplify_init_constructor): For volatile LHS
34605         initialize a temporary.
34606
34607 2010-01-31  Matthias Klose  <doko@ubuntu.com>
34608
34609         * configure.ac: Fix __stack_chk_fail check for cross builds configured
34610         --with-headers
34611         * configure: Regenerate.
34612
34613 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
34614
34615         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
34616         the same alias set and their sizes different constantness.
34617         (aliasing_component_refs_p): Revert 2009-10-24 change.
34618
34619 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34620
34621         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
34622         unused.
34623
34624 2010-01-29  Richard Guenther  <rguenther@suse.de>
34625
34626         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
34627         Assert we successfully updated the call.
34628
34629 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
34630
34631         PR rtl-optimization/42889
34632         * df.h (df_set_bb_dirty_nonlr): New prototype.
34633         * df-core.c (df_set_bb_dirty_nonlr): New function.
34634         * df-scan.c (df_insn_rescan): Call it instead of
34635         df_set_bb_dirty for DEBUG_INSNs.
34636
34637 2010-01-29  Richard Guenther  <rguenther@suse.de>
34638
34639         PR middle-end/37448
34640         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
34641         quadratic behavior in most cases.
34642
34643 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
34644
34645         PR target/42891
34646         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
34647         in the call to gen_x86_movsicc_0_m1.
34648
34649 2010-01-28  Richard Guenther  <rguenther@suse.de>
34650
34651         PR tree-optimization/42871
34652         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
34653
34654 2010-01-28  Richard Guenther  <rguenther@suse.de>
34655
34656         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
34657         into call arguments.
34658
34659 2010-01-28  Richard Guenther  <rguenther@suse.de>
34660
34661         PR middle-end/42883
34662         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
34663         the forwarder if the destination is an EH landing pad.
34664
34665 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
34666
34667         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
34668         block list passed to gimple_duplicate_sese_tail.
34669         (parallelize_loops): Avoid parallelization when the function
34670         has_nonlocal_label.
34671         Avoid parallelization when the preheader is IRREDUCIBLE.
34672         Try to optimize when estimated_loop_iterations_int is unresolved.
34673         Add the loop's location to the dump file.
34674         * tree-cfg.c (add_phi_args_after_redirect): Remove.
34675         (gimple_duplicate_sese_tail): Remove the check for the latch.
34676         Redirect nexits to the exit block.
34677         Remove handling of the incoming edges to the latch.
34678         Redirect the backedge from the copied latch to the exit bb.
34679
34680 2010-01-28  Michael Matz  <matz@suse.de>
34681
34682         PR target/42881
34683         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
34684         Wrap force_reg into a sequence, emit it before user.
34685
34686 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
34687
34688         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
34689         (arm_rev): New.
34690         (arm_legacy_rev): Likewise.
34691         (thumb_legacy_rev): Likewise.
34692
34693 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
34694
34695         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
34696         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
34697         on MEM's address failed, try avoid_constant_pool_reference and
34698         recurse if it returned something different.
34699         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
34700         address, try avoid_constant_pool_reference and recurse if it
34701         returned something different.
34702         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
34703         address and avoid_constant_pool_reference returned something
34704         different, don't set have_address.
34705
34706 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
34707
34708         PR debug/42861
34709         * var-tracking.c (val_store): Add modified argument, obey it.
34710         Adjust callers.
34711         (count_uses): Move down logging of main.
34712         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
34713         don't need resolution.
34714         (emit_notes_in_bb): Likewise.
34715
34716 2010-01-27  Richard Guenther  <rguenther@suse.de>
34717
34718         PR middle-end/42878
34719         * tree-inline.c (remap_decl): Delay remapping of SSA name
34720         default definitions until we need them.
34721
34722 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
34723
34724         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
34725         (rs6000_delegitimize_address): New function.
34726
34727         * config/s390/s390.c (s390_delegitimize_address): Call
34728         delegitimize_mem_from_attrs.
34729
34730         PR middle-end/42874
34731         * tree-inline.c (cannot_copy_type_1): Removed.
34732         (copy_forbidden): Don't forbid copying of functions containing
34733         records/unions with variable length fields.
34734
34735 2010-01-27  Christian Bruel  <christian.bruel@st.com>
34736
34737         Revert:
34738         PR target/42841
34739         * config/sh/sh.c (find_barrier): Increase length for non delayed
34740         conditional branches.
34741
34742 2010-01-27  Matthias Klose  <doko@ubuntu.com>
34743
34744         * configure.ac (gnu-unique-object): Fix ldd version check.
34745         * configure: Regenerate.
34746
34747 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34748
34749         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
34750         HAVE_GNU_AS value.
34751         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
34752         Test for HAVE_GNU_AS value.
34753
34754 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34755
34756         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
34757         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
34758         INT64_TYPE): Define.
34759         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
34760         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
34761         INT_LEAST64_TYPE): Define.
34762         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
34763         UINT_LEAST64_TYPE): Define.
34764         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
34765         INT_FAST64_TYPE): Define.
34766         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
34767         UINT_FAST64_TYPE): Define.
34768         (INTMAX_TYPE, UINTMAX_TYPE): Define.
34769         (INTPTR_TYPE, UINTPTR_TYPE): Define.
34770         (SIG_ATOMIC_TYPE): Define.
34771
34772 2010-01-26  Richard Guenther  <rguenther@suse.de>
34773
34774         * df-scan.c (df_scan_set_bb_info): Remove assert.
34775         (df_insn_rescan_debug_internal): Merge asserts.
34776         (df_install_ref): Likewise.
34777         (df_mark_reg): Use bitmap_set_range.
34778         (df_hard_reg_used_p): Remove assert.
34779         (df_hard_reg_used_count): Likewise.
34780
34781 2010-01-26  Richard Guenther  <rguenther@suse.de>
34782
34783         PR rtl-optimization/42685
34784         * web.c (web_main): Ignore DEBUG_INSNs.
34785
34786 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
34787
34788         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
34789
34790         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
34791         Fix types of fndecl and arglist parameters.
34792
34793 2010-01-26  Richard Guenther  <rguenther@suse.de>
34794
34795         PR middle-end/42806
34796         * tree-eh.c (unsplit_eh): Skip debug insns.
34797
34798 2010-01-26  Richard Guenther  <rguenther@suse.de>
34799
34800         PR tree-optimization/42250
34801         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
34802
34803 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
34804
34805         PR fortran/42866
34806         * omp-low.c (expand_omp_sections): Only use single_pred if
34807         l2_bb is single_pred_p.
34808
34809 2010-01-25  Christian Bruel  <christian.bruel@st.com>
34810
34811         PR target/42841
34812         * config/sh/sh.c (find_barrier): Increase length for non delayed
34813         conditional branches.
34814         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
34815
34816 2010-01-24  David S. Miller  <davem@davemloft.net>
34817
34818         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
34819         define if not using GAS.
34820         * config/sparc/sparc.c (sparc_elf_asm_named_section):
34821         Likewise.  Delete SECTION_MERGE code, which is only applicable
34822         when using GAS.
34823
34824 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
34825
34826         PR c++/42748
34827         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
34828         mangling of va_list in system headers.
34829
34830 2010-01-23  Toon Moene  <toon@moene.org>
34831
34832         * tree-predcom.c (combine_chains): Return NULL, not false.
34833
34834 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
34835
34836         * tree-loop-distribution.c (distribute_loop): Fix declaration and
34837         initialization of variable res to agree with return type.
34838
34839 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
34840
34841         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
34842         * tree-sra.c: Add include of expr.h.
34843
34844 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
34845
34846         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
34847         insert the debug stmt on the single non-EH edge from the stmt.
34848
34849 2010-01-22  Richard Henderson  <rth@redhat.com>
34850
34851         PR tree-opt/42833
34852         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
34853         the RHS until after generate_subtree_copies has insertted its
34854         code before the current statement.
34855
34856 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
34857
34858         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
34859
34860         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
34861
34862 2010-01-21  Martin Jambor  <mjambor@suse.cz>
34863
34864         PR tree-optimization/42585
34865         * tree-sra.c (struct access): New field grp_total_scalarization.
34866         (dump_access): Dump the new field.
34867         (should_scalarize_away_bitmap): New variable.
34868         (cannot_scalarize_away_bitmap): Likewise.
34869         (sra_initialize): Allocate new bitmaps.
34870         (sra_deinitialize): Free new bitmaps.
34871         (create_access_1): New function.
34872         (create_access): Parts moved to create_access_1.
34873         (type_consists_of_records_p): New function.
34874         (completely_scalarize_record): Likewise.
34875         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
34876         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
34877         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
34878         access.
34879         (analyze_all_variable_accesses): Completely scalarize small eligible
34880         records.
34881
34882 2010-01-21  Martin Jambor  <mjambor@suse.cz>
34883
34884         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
34885
34886 2010-01-21  Andrew Haley  <aph@redhat.com>
34887
34888         * gcc.c (process_command): Move lang_specific_driver before
34889         setting cc_libexec_prefix.
34890
34891 2010-01-21  Richard Guenther  <rguenther@suse.de>
34892
34893         PR middle-end/19988
34894         * fold-const.c (negate_expr_p): Pretend only negative
34895         real constants are easily negatable.
34896
34897 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
34898             Jason Merrill  <jason@redhat.com>
34899
34900         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
34901         (TYPE_TRANSPARENT_AGGR): this, for union and record.
34902         * calls.c (initialize argument_information): Handle it.
34903         * c-common.c (handle_transparent_union_attribute): Use new name.
34904         * c-decl.c (finish_struct): Ditto.
34905         * c-typeck.c (type_lists_compatible_p): Ditto.
34906         (convert_for_assignment): Use new name and also handle record.
34907         * function.c (aggregate_value_p): Handle it.
34908         (pass_by_reference): Ditto.
34909         (assign_parm_data_types): Ditto.
34910         * print-tree.c (print_node): Ditto.
34911         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
34912         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
34913         * tree.c (first_field): New fn.
34914
34915 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
34916
34917         PR target/42818
34918         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
34919         even when linking statically, for now.
34920
34921 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34922
34923         PR debug/42715
34924         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
34925         without a cselib val.
34926         (count_uses): Accept MO_VAL_SET with no val on stores.
34927         (add_stores): Likewise.
34928
34929 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34930
34931         * var-tracking.c (check_value_val): Add a compile time assertion.
34932         (dv_is_decl_p): Simplify.
34933         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
34934         gcc_assert if ENABLE_CHECKING.
34935
34936 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
34937
34938         PR debug/42782
34939         * var-tracking.c: Include tree-flow.h.
34940         (mem_dies_at_call): New.
34941         (dataflow_set_preserve_mem_locs): Use it.
34942         (dataflow_set_remove_mem_locs): Likewise.
34943         (dump_var): Renamed from dump_variable.  Adjust all callers.
34944         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
34945         * Makefile.in (var-tracking.o): Adjust deps.
34946
34947 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
34948
34949         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
34950
34951 2010-01-20  Richard Guenther  <rguenther@suse.de>
34952
34953         PR tree-optimization/42717
34954         * tree-ssa-dce.c (get_live_post_dom): Remove.
34955         (forward_edge_to_pdom): Take an arbitrary edge to copy
34956         degenerate PHI args from.
34957         (remove_dead_stmt): Use the first post-dominator even if it
34958         does not contain live statements as redirection destination.
34959
34960 2010-01-20  Richard Guenther  <rguenther@suse.de>
34961
34962         * tree-inline.c (estimate_num_insns): Handle EH builtins.
34963
34964 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34965
34966         * sel-sched.c (create_speculation_check): Remove set but not used
34967         variable twin.
34968         (try_transformation_cache): Remove set but not used variable ds.
34969         (calculate_privileged_insns): Remove set but not used variables
34970         cur_insn and min_spec_insn.
34971         (find_best_expr): Remove set but not used variable avail_n.
34972         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
34973         variable e.
34974         * cgraphunit.c (assemble_thunk): Remove set but not used variable
34975         false_label.
34976         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
34977         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
34978         new_scop_exit_edge.
34979
34980 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
34981
34982         PR bootstrap/42786
34983         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
34984         cpu types.  Add support for *-sse3 cpu types.
34985         (x86_64-*-*): Ditto.
34986
34987 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
34988
34989         PR middle-end/42803
34990         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
34991         argument, call initializer_constant_valid_p_1 instead of
34992         initializer_constant_valid_p, pass CACHE to it, return NULL
34993         immediately if first call returns NULL.
34994         (initializer_constant_valid_p_1): New function.
34995         (initializer_constant_valid_p): Use it.
34996
34997 2010-01-20  Thomas Quinot  <quinot@adacore.com>
34998
34999         * tree.def (PLACEHOLDER_EXPR): Fix comment.
35000
35001 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
35002
35003         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
35004         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
35005         (loc_list_from_tree): Don't handle unsigned division.  Handle
35006         signed modulo using DW_OP_{over,over,div,mul,minus}.
35007         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
35008         modulo instead of signed.
35009
35010 2010-01-20  DJ Delorie  <dj@redhat.com>
35011
35012         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
35013         (Fpa): Pass it
35014         (h8300_emit_stack_adjustment): Propogate it.
35015         (push): Pass it.
35016         (h8300_expand_prologue): Likewise.
35017         (h8300_expand_epilogue): Likewise.
35018
35019 2010-01-19  Michael Matz  <matz@suse.de>
35020
35021         PR tree-optimization/41783
35022         * tree-data-ref.c (toplevel): Include flags.h.
35023         (dump_data_dependence_relation):  Also dump the inputs if the
35024         result will be unknown.
35025         (split_constant_offset_1): Look through some conversions.
35026         * tree-predcom.c (determine_roots_comp): Restart a new chain if
35027         the offset from last element is too large.
35028         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
35029         (reassociate_to_the_same_stmt): Handle vector registers.
35030         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
35031         (e.g. conversions).
35032         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
35033         wide_prolog_niters argument, emit widening instructions.
35034         (vect_do_peeling_for_alignment): Adjust caller, use widened
35035         variant of the iteration cound.
35036         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
35037
35038 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35039
35040         PR target/38697
35041         * config/arm/neon-testgen.m (emit_automatics): New parameter
35042         features. Adjust for Fixed_return_reg feature.
35043         (test_intrinsic): Call emit_automatics with new feature.
35044         * config/arm/neon.ml: Update copyright years.
35045         (features): New Fixed_return_reg feature.
35046         (ops): Update feature for Vget_low.
35047
35048 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
35049
35050         PR tree-optimization/42719
35051         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
35052         stmt uses.
35053
35054         PR debug/42728
35055         * fwprop.c (all_uses_available_at): Return false if def_set dest
35056         is a REG that is used in def_insn.
35057
35058 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
35059
35060         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
35061
35062         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
35063         Add argument names.
35064
35065         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
35066
35067         * target.h (struct gcc_target) <secondary_reload>: Change type
35068         of last argument to secondary_reload_info *.
35069
35070 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
35071
35072         PR target/42774
35073         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
35074         memory references with unaligned offsets.  Remove CQImode handling.
35075         (unaligned_memory_operand): Return 1 for memory references with
35076         unaligned offsets.  Remove CQImode handling.
35077
35078 2010-01-18  Richard Guenther  <rguenther@suse.de>
35079
35080         PR middle-end/39954
35081         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
35082         builtin calls.
35083
35084 2010-01-18  Richard Guenther  <rguenther@suse.de>
35085
35086         PR tree-optimization/42781
35087         * tree-ssa-structalias.c (find_what_var_points_to): Skip
35088         restrict processing only if the original variable was artificial.
35089
35090 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
35091
35092         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
35093         find number of popped argument bytes.
35094
35095         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
35096         Fix the text that describes the return value for invalid insns.
35097
35098         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
35099
35100         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
35101         Clarify what 'cost of the -dependence' is.  Fix quoting.
35102
35103         * toplev.c (default_get_pch_validity): Rename argument to "sz".
35104         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
35105
35106 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
35107
35108         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
35109         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
35110
35111 2010-01-17  Richard Guenther  <rguenther@suse.de>
35112
35113         PR middle-end/42248
35114         * function.c (split_complex_args): Take a VEC to modify.
35115         (assign_parms_augmented_arg_list): Build a VEC instead of
35116         a chain of PARM_DECLs.
35117         (assign_parms_unsplit_complex): Take a VEC of arguments.
35118         Do not fixup unmodified parms.
35119         (assign_parms): Deal with the VEC.
35120         (gimplify_parameters): Likewise.
35121
35122 2010-01-17  Richard Guenther  <rguenther@suse.de>
35123
35124         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
35125         node existence check.
35126         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
35127         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
35128         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
35129         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
35130         (gimple_execute_on_growing_pred): Likewise.
35131
35132 2010-01-17  Richard Guenther  <rguenther@suse.de>
35133
35134         PR tree-optimization/42773
35135         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
35136         (compute_antic_aux): Likewise.
35137         (compute_partial_antic_aux): Likewise.
35138
35139 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
35140
35141         PR debug/42767
35142         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
35143         and US_TRUNCATE.
35144
35145 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
35146
35147         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
35148         appearance.
35149
35150         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
35151         Fix markup for strict argument.
35152
35153         (TARGET_SCHED_REORDER2): Fix argument types.
35154
35155         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
35156         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
35157
35158         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
35159         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
35160
35161         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
35162         Add argument name.
35163
35164         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
35165         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
35166         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
35167         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
35168         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
35169
35170         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
35171
35172         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
35173
35174         (TARGET_ASM_RELOC_RW_MASK): Add return type.
35175         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
35176
35177         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
35178
35179         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
35180         Use prototype.
35181
35182         (TARGET_ASM_NAMED_SECTION): Fix argument list.
35183
35184         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
35185         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
35186
35187         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
35188
35189         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
35190
35191         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
35192         referring to it.  Fix language.
35193
35194         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
35195
35196         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
35197
35198         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
35199
35200         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
35201
35202         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
35203         '@var{stream}.  Remove stray 'and'.
35204
35205         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
35206
35207         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
35208
35209         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
35210
35211         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
35212         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
35213
35214         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
35215         Fix description of return value.
35216         Rename argument "sz" to "len."
35217
35218         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
35219         Clarify meaning of 'true' return value.
35220
35221         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
35222
35223         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
35224         rep_mode versus mode_rep.
35225
35226         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
35227
35228         (TARGET_BUILTIN_DECL): Fix name.
35229
35230         (TARGET_COMMUTATIVE_P): Fix type of first argument.
35231
35232         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
35233
35234         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
35235
35236         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
35237
35238         (TARGET_RELAXED_ORDERING): Use @deftypevr.
35239
35240         (TARGET_GET_DRAP_RTX): Note that this is a hook.
35241         Clarify language.
35242
35243         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
35244         Rename argument tm_fn to md_fn.
35245
35246         (TARGET_OPTION_PRINT): Fix argument list.
35247
35248 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
35249
35250         PR target/42664
35251         * config/i386/i386.c (ix86_fixup_binary_operands):
35252         Revert FMA4 fixup of operands.
35253
35254 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35255
35256         PR other/42525
35257         * Makefile.in (write_entries_to_file, install-plugin):
35258         Use \012 instead of \n with tr.
35259
35260 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
35261
35262         * configure.ac (HAVE_AS_REF): New C macro.
35263         * configure: Regenerate.
35264         * config.in: Likewise.
35265         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
35266         if HAVE_AS_REF.
35267         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
35268         if HAVE_AS_REF.
35269
35270 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
35271
35272         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
35273
35274         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
35275
35276         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
35277
35278         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
35279
35280         (TARGET_IN_SMALL_DATA_P): Fix argument type.
35281
35282         (TARGET_BINDS_LOCAL_P): Fix argument type.
35283
35284         (TARGET_ASM_FILE_END): Use prototype.
35285
35286         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
35287
35288         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
35289
35290         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
35291
35292         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
35293
35294         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
35295         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
35296
35297         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
35298         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
35299
35300         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
35301         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
35302         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
35303         (TARGET_ADDR_SPACE_CONVERT): Likewise.
35304
35305         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
35306
35307         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
35308
35309         (TARGET_INIT_BUILTINS): Use prototype.
35310
35311         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
35312         Put 'const char *' in braces.  Fix parameter types.
35313         (TARGET_INVALID_CONVERSION): Fix parameter types.
35314         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
35315         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
35316
35317         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
35318         Fix argument type.
35319
35320         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
35321
35322         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
35323
35324 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
35325
35326         * doc/tm.texi (TARGET_HELP): Fix return type.
35327
35328         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
35329         in braces.  Fix argument types.
35330
35331         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
35332
35333         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
35334
35335         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
35336
35337         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
35338         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
35339
35340         (TARGET_MANGLE_TYPE): Fix argument types.
35341
35342         (TARGET_IRA_COVER_CLASSES): Use prototype.
35343
35344         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
35345
35346         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
35347
35348         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
35349
35350         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
35351
35352         (TARGET_CALLEE_COPIES): Fix argument types.
35353
35354         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
35355
35356         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
35357
35358         (TARGET_FUNCTION_VALUE): Fix argument types.
35359
35360         (TARGET_RETURN_IN_MSB): Fix argument type.
35361
35362         (TARGET_RETURN_IN_MEMORY): Fix argument types.
35363
35364         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
35365
35366         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
35367
35368         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
35369         agree with return type.
35370
35371         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
35372
35373 2010-01-15  Jing Yu  <jingyu@google.com>
35374
35375         PR rtl-optimization/42691
35376         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
35377         a pseudo to a constant and are merged, and adjust comments.
35378
35379 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
35380
35381         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
35382
35383 2010-01-15  Richard Guenther  <rguenther@suse.de>
35384
35385         PR middle-end/42739
35386         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
35387         labels of computed or non-local gotos to the destination.
35388         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
35389         landing pad label is the first label.
35390
35391 2010-01-15  Richard Guenther  <rguenther@suse.de>
35392
35393         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
35394
35395 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35396
35397         PR target/42747
35398         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
35399         to allow generation of the xssqrtdp instruction on power7.
35400         (sqrtdf2_fpr): Ditto.
35401
35402 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35403
35404         PR middle-end/42674
35405         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
35406         functions with noreturn attribute.
35407
35408         PR c++/42608
35409         * varasm.c (declare_weak): Add weak attribute to decl if it
35410         doesn't have one already.
35411         (assemble_external): Only add decls to weak_decls if they also
35412         have weak attribute.
35413
35414 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
35415
35416         * var-tracking.c (var_reg_delete): Don't delete the association
35417         between REGs and values or one-part variables if the register
35418         isn't clobbered.
35419
35420 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35421
35422         PR debug/42657
35423         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
35424         because its first operand is a non-localized variable.
35425
35426 2010-01-14  Martin Jambor  <mjambor@suse.cz>
35427
35428         PR tree-optimization/42706
35429         * tree-sra.c (encountered_recursive_call): New variable.
35430         (encountered_unchangable_recursive_call): Likewise.
35431         (sra_initialize): Initialize both new variables.
35432         (callsite_has_enough_arguments_p): New function.
35433         (scan_function): Call decl and flags check only for IPA-SRA, check
35434         whether there is a recursive call and whether it has enough arguments.
35435         (all_callers_have_enough_arguments_p): New function.
35436         (convert_callers): Look for recursive calls only when
35437         encountered_recursive_call is set.
35438         (ipa_early_sra): Bail out either if
35439         !all_callers_have_enough_arguments_p or
35440         encountered_unchangable_recursive_call.
35441
35442 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35443
35444         * sel-sched.c: Add 2010 to copyright years.
35445         * sel-sched-ir.c: Likewise.
35446         * sel-sched-ir.h: Likewise.
35447
35448 2010-01-14  Martin Jambor  <mjambor@suse.cz>
35449
35450         PR tree-optimization/42714
35451         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
35452         constructors specially.
35453
35454 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35455
35456         * config/i386/drivers-i386.c (detect_caches_intel):
35457         Add l2sizekb parameter and fill in.
35458         (host_detect_local_cpu): Add l2sizekb, fill in.
35459         Add Atom small cache heuristic.
35460
35461 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35462
35463         * config/i386/drivers-i386.c (detect_caches_cpuid4):
35464         Add level3 parameter and fill in.
35465         (detect_caches_intel): Handle level3 cache.
35466
35467 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35468
35469         * config/i386/drivers-i386.c (host_detect_local_cpu):
35470         Fix core duo detection.
35471
35472 2010-01-14  Andi Kleen  <ak@linux.intel.com>
35473
35474         * config/i386/drivers-i386.c (host_detect_local_cpu):
35475         Fix Atom detection.
35476
35477 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35478
35479         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
35480         (rs6000_variable_issue_1): this.  Use...
35481         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
35482
35483 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35484
35485         * sel-sched-ir.c (sel_restore_other_notes): Rename to
35486         sel_restore_notes.  Update all callers.  Call reemit_notes
35487         for all insns.
35488
35489 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35490
35491         PR rtl-optimization/42246
35492         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
35493         loops.
35494
35495 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35496
35497         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
35498         all successors is the same as number of successors in current region.
35499
35500 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35501
35502         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
35503         to rename is not separable.  Otherwise check that its LHS is not NULL.
35504
35505 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35506
35507         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
35508
35509 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35510
35511         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
35512         available registers when failed to discover LHS register class.
35513         Fix indentation.  Update comment.
35514
35515 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35516             Alexander Monakov  <amonakov@ispras.ru>
35517
35518         PR rtl-optimization/42389
35519         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
35520         to can_issue_more.
35521         (advance_state_on_fence): Likewise.
35522         (sel_target_adjust_priority): Print debug output only when
35523         sched_verbose >= 4, not 2.
35524         (get_expr_cost): Do not issue all unique insns on the next cycle.
35525         (fill_insns): Initialize can_issue_more from the value saved
35526         with the fence.
35527         * sel-sched-ir.c (flist_add): New parameter issue_more.
35528         Init FENCE_ISSUE_MORE with it.
35529         (merge_fences): Likewise.
35530         (init_fences): Update call to flist_add.
35531         (add_to_fences, add_clean_fence_to_fences)
35532         (add_dirty_fence_to_fences): Likewise.
35533         (move_fence_to_fences): Update call to merge_fences.
35534         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
35535         sched groups.
35536         * sel-sched-ir.h (struct _fence): New field issue_more.
35537         (FENCE_ISSUE_MORE): New accessor macro.
35538
35539 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35540
35541         PR rtl-optimization/42388
35542         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
35543         that have no predecessors nor successors.  Do not call move_bb_info
35544         for empty blocks outside of current region.
35545
35546 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35547
35548         PR rtl-optimization/42294
35549         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
35550         * sel-sched.c (move_exprs_to_boundary): Transitively add all
35551         originators' originators.
35552
35553 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
35554
35555         PR rtl-optimization/39453
35556         PR rtl-optimization/42246
35557         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
35558         for pipelining_p.
35559         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
35560
35561 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35562             Alexander Monakov  <amonakov@ispras.ru>
35563
35564         PR middle-end/42245
35565         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
35566         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
35567         argument.  Update all callers.
35568         (tidy_control_flow): ... and here.  Recompute topological order
35569         of basic blocks in region if necessary.
35570         (sel_redirect_edge_and_branch): Change return type.  Return true
35571         if topological order might have been invalidated.
35572         (purge_empty_blocks): Export and move from...
35573         * sel-sched.c (purge_empty_blocks): ... here.
35574         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
35575         (maybe_tidy_empty_bb): Delete prototype.
35576         (purge_empty_blocks): Declare.
35577
35578 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
35579
35580         PR rtl-optimization/42249
35581         * sel-sched.c (try_replace_dest_reg): When chosen register
35582         and original register is the same, do not bail out early, but
35583         still check all original insns for validity of replacing destination
35584         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
35585         in this case.
35586
35587 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
35588
35589         PR c/42721
35590         Port from no-undefined-overflow branch:
35591         2009-03-09  Richard Guenther  <rguenther@suse.de>
35592
35593         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
35594
35595 2010-01-14  Richard Guenther  <rguenther@suse.de>
35596
35597         PR lto/42665
35598         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
35599
35600 2010-01-14  Ira Rosen  <irar@il.ibm.com>
35601
35602         PR tree-optimization/42709
35603         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
35604         as scalar type in creation of constant vector operand.
35605
35606 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35607
35608         PR testsuite/42414
35609         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
35610         (check-parallel-%): Match `testsuite' directory component only
35611         at the end.
35612
35613 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
35614
35615         PR translation/39521
35616         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
35617         strings with _().
35618
35619 2010-01-13  Richard Guenther  <rguenther@suse.de>
35620
35621         PR tree-optimization/42730
35622         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
35623         offset zero.
35624
35625 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
35626
35627         PR target/pr42542
35628         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
35629         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
35630         them signed.
35631
35632 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
35633
35634         * config/bfin/libgcc-bfin.ver: Regenerate based on current
35635         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
35636         ___umulsi3_highpart.
35637
35638         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
35639         rather than schedule_insns if the pass is enabled.
35640
35641 2010-01-13  Martin Jambor  <mjambor@suse.cz>
35642
35643         PR tree-optimization/42704
35644         * tree-sra.c (sra_modify_assign): Do not delete assignments to
35645         SSA_NAMEs.
35646
35647 2010-01-13  Martin Jambor  <mjambor@suse.cz>
35648
35649         PR tree-optimization/42703
35650         * tree-sra.c (analyze_access_subtree): Check that we can build a
35651         reference to the original data within the aggregate.
35652
35653 2010-01-13  Richard Guenther  <rguenther@suse.de>
35654
35655         PR tree-optimization/42705
35656         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
35657
35658 2010-01-13  Richard Guenther  <rguenther@suse.de>
35659
35660         PR middle-end/42716
35661         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
35662
35663 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
35664
35665         PR debug/41371
35666         * var-tracking.c (values_to_unmark): New variable.
35667         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
35668         values_to_unmark vector.  Moved body to...
35669         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
35670         instead queue it into values_to_unmark vector.
35671         (vt_find_locations): Free values_to_unmark vector.
35672
35673 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
35674
35675         * config/s390/s390.c (override_options): Set
35676         default of max-pending-list-length to 256
35677
35678 2010-01-13  Richard Guenther  <rguenther@suse.de>
35679
35680         PR lto/42678
35681         * tree-pass.h (PROP_gimple_lcx): New.
35682         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
35683         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
35684         before the final cleanup_eh.
35685         (dump_properties): Dump PROP_gimple_lcx.
35686         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
35687         (tree_lower_complex_O0): Remove.
35688         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
35689         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
35690         tree_lower_complex, schedule TODO_update_ssa.
35691         * lto-streamer-out.c (output_function): Stream the functions
35692         properties.
35693         * lto-streamer-in.c (input_function): Likewise.
35694         (lto_read_body): Do not override them here.
35695
35696 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
35697
35698         PR c/42708
35699         * c-typeck.c (build_c_cast): Fold value cast to union type before
35700         wrapping it in a CONSTRUCTOR.
35701
35702 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
35703
35704         PR rtl-optimization/42699
35705         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
35706         involved.
35707
35708 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35709
35710         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
35711         SUBTARGET_WARN_UNUSED_SPEC): Move ...
35712         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
35713         SUBTARGET_WARN_UNUSED_SPEC): ... here
35714         * config/mips/iris5.h (LIBGCC_SPEC): Define.
35715
35716 2010-01-12  Julian Brown  <julian@codesourcery.com>
35717
35718         * config/arm/neon-schedgen.ml (Utils): Don't try to
35719         open missing module.
35720         (find_with_result): New.
35721
35722 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
35723
35724         PR debug/42662
35725         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
35726         sharing when canonicalizing ({lt,ge}u (plus a b) b).
35727
35728         PR tree-optimization/42645
35729         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
35730         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
35731         decl_map, set processing_debug_stmt to -1 and return name without
35732         any remapping.
35733
35734 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
35735
35736         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
35737         binutils version, and reword target configuration description.
35738
35739 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
35740
35741         * config/avr/avr.h (LINKER_NAME): Remove.
35742
35743 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
35744
35745         PR target/42416
35746         * config/rs6000/rs6000.c (rs6000_override_options): On targets
35747         that support VSX, warn for -mno-altivec if vsx is not disabled,
35748         and disable vsx.
35749
35750 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
35751             Shujing Zhao  <pearly.zhao@oracle.com>
35752
35753         PR translation/42469
35754         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
35755         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
35756         character between option name and help text.
35757         * c.opt (imultilib): Likewise.
35758
35759 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
35760
35761         * lto-streamer-out.c (output_unreferenced_globals): Output static
35762         variables.
35763
35764 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
35765
35766         PR rtl-optimization/42621
35767         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
35768         optimizing for size.
35769         (duplicate_computed_gotos): Remove now-redundant check.
35770
35771 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
35772
35773         PR target/37454
35774         * configure.ac: Save and restore LDFLAGS and LIBS
35775         * configure: Regenerate.
35776
35777 2010-01-10  Richard Guenther  <rguenther@suse.de>
35778
35779         PR middle-end/42667
35780         * builtins.c (fold_builtin_strlen): Add type argument and
35781         convert the resulting length to it.
35782         (fold_builtin_1): Adjust.
35783
35784 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
35785
35786         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
35787         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
35788         1 insn.
35789         (num_insns_constant_wide): Adjust for that change.
35790
35791 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35792
35793         PR debug/42631
35794         * web.c (union_defs): Add used argument, to combine uses of
35795         uninitialized regs.
35796         (entry_register): Adjust type and tests of used argument.
35797         (web_main): Widen used for new use.  Pass it to union_defs.
35798         * df.h (union_defs): Adjust prototype.
35799
35800 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35801
35802         PR debug/42630
35803         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
35804         uses in new incoming argument.  Free body.
35805         (reset_debug_uses_in_loop): New.
35806         (analyze_insn_to_expand_var): Call the latter if the former found
35807         anything.  Fix whitespace.  Reject invalid dest overlaps before
35808         going through all insns in the loop.
35809
35810 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35811
35812         PR debug/42629
35813         * haifa-sched.c (dying_use_p): Debug insns don't count.
35814
35815 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35816
35817         PR middle-end/42363
35818         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
35819         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
35820         (verify_gimple_call): Reject LHS in noreturn calls.
35821
35822 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35823
35824         PR debug/42604
35825         PR debug/42395
35826         * tree-vect-loop-manip.c (adjust_info): New type.
35827         (adjust_vec): New pointer to vector.
35828         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
35829         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
35830         (slpeel_update_phis_for_duplicate_loop): Use them.
35831         (slpeel_update_phi_nodes_for_guard1): Likewise.
35832         (slpeel_update_phi_nodes_for_guard2): Likewise.
35833         (slpeel_tree_peel_loop_to_edge): Likewise.
35834         (vect_update_ivs_after_vectorizer): Likewise.
35835
35836 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35837
35838         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
35839         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
35840
35841 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
35842
35843         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
35844         bogus uninitialized warning.
35845
35846 2010-01-09  Richard Guenther  <rguenther@suse.de>
35847
35848         PR middle-end/42512
35849         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
35850         the evolution is compatible with the initial condition.
35851
35852 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
35853
35854         * gcc.c (process_command): Update copyright notice dates.
35855         * gcov.c (print_version): Likewise.
35856         * gcov-dump.c (print_version): Likewise.
35857         * mips-tfile.c (main): Likewise.
35858         * mips-tdump.c (main): Likewise.
35859
35860 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
35861
35862         PR target/41885
35863         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
35864         (rotlhi3): Delete.
35865         (rotlhi3_8): Delete.
35866         (rotlsi3): Delete.
35867         (rotlsi3_8): Delete.
35868         (rotlsi3_16): Delete.
35869         (rotlsi3_24): Delete.
35870         (rotl<mode>3): New.
35871         (*rotw<mode>3): New.
35872         (*rotb<mode>3): New.
35873         * config/avr/avr.c (avr_rotate_bytes): New function.
35874         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
35875
35876 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
35877
35878         PR target/37454
35879         * configure.ac: Modify -rdynamic check.
35880         * configure: Regenerate.
35881
35882 2010-01-08  DJ Delorie  <dj@redhat.com>
35883
35884         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
35885         register popping order.
35886
35887 2010-01-08  Richard Guenther  <rguenther@suse.de>
35888
35889         PR lto/42528
35890         * c.opt (fsigned-char): Also let LTO handle this option.
35891         (funsigned-char): Likewise.
35892
35893 2010-01-07  Richard Guenther  <rguenther@suse.de>
35894
35895         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
35896         (gimple_op): Likewise.
35897         (gimple_op_ptr): Likewise.
35898         (gimple_assign_set_lhs): Remove gcc_assert.
35899         (gimple_assign_set_rhs1): Likewise.
35900         (gimple_assign_set_rhs2): Likewise.
35901         (gimple_call_set_lhs): Likewise.
35902         (gimple_call_set_fn): Likewise.
35903         (gimple_call_set_fndecl): Likewise.
35904         (gimple_call_fndecl): Likewise.
35905         (gimple_call_return_type): Likewise.
35906         (gimple_call_set_chain): Likewise.
35907         (gimple_call_num_args): Likewise.
35908         (gimple_call_set_arg): Likewise.
35909         (gimple_cond_set_code): Likewise.
35910         (gimple_cond_set_lhs): Likewise.
35911         (gimple_cond_set_rhs): Likewise.
35912         (gimple_cond_set_true_label): Likewise.
35913         (gimple_cond_set_false_label): Likewise.
35914         (gimple_label_set_label): Likewise.
35915         (gimple_goto_set_dest): Likewise.
35916         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
35917         (gimple_debug_bind_get_value): Likewise.
35918         (gimple_debug_bind_get_value_ptr): Likewise.
35919         (gimple_debug_bind_set_var): Likewise.
35920         (gimple_debug_bind_set_value): Likewise.
35921         (gimple_debug_bind_reset_value): Likewise.
35922         (gimple_debug_bind_has_value_p): Likewise.
35923         (gimple_return_retval_ptr): Remove gcc_assert.
35924         (gimple_return_retval): Likewise.
35925         (gimple_return_set_retval): Likewise.
35926         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
35927         (safe_referenced_var_iterator): Remove.
35928         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
35929         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
35930         (fill_referenced_var_vec): Remove.
35931         (first_readonly_imm_use): Remove redundant gcc_assert.
35932         (phi_arg_index_from_use): Combine gcc_asserts.
35933         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
35934         (first_imm_use_stmt): Remove redundant gcc_assert.
35935         * tree-cfg.c (verify_gimple_call): Verify function and chain
35936         operands.  Verify arguments.
35937         (verify_types_in_gimple_stmt): Verify condition code and labels.
35938
35939 2010-01-07  Richard Guenther  <rguenther@suse.de>
35940
35941         PR tree-optimization/42641
35942         * sese.c (rename_map_elt_info): Use the SSA name version, do
35943         not hash pointers.
35944
35945 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
35946
35947         PR tree-optimization/42625
35948         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
35949         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
35950
35951 2010-01-07  Duncan Sands  <baldrick@free.fr>
35952
35953         * Makefile.in (PLUGIN_HEADERS): Add version.h.
35954
35955 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
35956
35957         PR target/42511
35958         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
35959         note itself is not function_invariant_p.
35960
35961 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
35962
35963         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
35964         Do not add the DF_NOTE problem.
35965         * store-motion.c (execute_rtl_store_motion): Likewise.
35966
35967 2010-01-07  Martin Jambor  <mjambor@suse.cz>
35968
35969         PR tree-optimization/42157
35970         * tree-sra.c (compare_access_positions): Stabilize sort if both
35971         accesses have integer types, return zero immediately if they are the
35972         same.
35973
35974 2010-01-06  Richard Henderson  <rth@redhat.com>
35975
35976         PR middle-end/41883
35977         * haifa-sched.c (add_to_note_list): Merge into ...
35978         (concat_note_lists): ... here, and ...
35979         (unlink_other_notes, rm_other_notes): Merge into...
35980         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
35981         NOTE_INSN_EPILOGUE_BEG.
35982
35983 2010-01-06  Richard Guenther  <rguenther@suse.de>
35984
35985         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
35986         not inline regular functions into always-inline functions.
35987
35988 2010-01-06  Nick Clifton  <nickc@redhat.com>
35989
35990         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
35991         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
35992         used together.
35993         (OVERRIDE_OPTIONS): Delete.
35994         (OPTIMIZATION_OPTIONS): Define.
35995         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
35996         * config/rx/rx.c (rx_handle_option): Issue an error message if
35997         -mcpu=rx200 and -fpu are used together.
35998         (rx_set_optimization_options): New function.  Issue an error
35999         message if an optimization attribute attempts to reset the FPU/
36000         math optimization pairing.
36001         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
36002         * config/rx/rx.opt: Set the default to 32-bit doubles.
36003         * config/rx/t-rx: Add multilibs for -nofpu option.
36004         * doc/invoke.texi: Update documentation of RX options.
36005
36006 2010-01-06  Richard Guenther  <rguenther@suse.de>
36007
36008         * tree-ssa-pre.c (name_to_id): New global.
36009         (alloc_expression_id): Simplify SSA name handling.
36010         (lookup_expression_id): Likewise.
36011         (init_pre): Zero name_to_id.
36012         (fini_pre): Free it.
36013
36014 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
36015
36016         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
36017
36018 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
36019
36020         PR target/42542
36021         * config/i386/sse.md (smaxv2di3): New.
36022         (umaxv2di3): Likewise.
36023         (sminv2di3): Likewise.
36024         (uminv2di3): Likewise.
36025
36026 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
36027
36028         PR target/42564
36029         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
36030         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
36031         (legitimize_tls_address): Likewise.
36032         (sparc_tls_referenced_p): Likewise.
36033         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
36034         and adjust calls to legitimize_pic_address.
36035         (legitimate_constant_p) Use sparc_tls_referenced_p.
36036         (legitimate_pic_operand_p): Likewise.
36037         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
36038         (sparc_tls_symbol_ref_1): Delete.
36039         (sparc_tls_referenced_p): Make static, recognize specific patterns.
36040         (legitimize_tls_address): Make static, handle CONST patterns.
36041         (legitimize_pic_address): Make static, remove unused parameter and
36042         adjust recursive calls.
36043         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
36044         and adjust call to legitimize_pic_address.
36045         (sparc_output_mi_thunk): Likewise.
36046
36047 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
36048             H.J. Lu  <hongjiu.lu@intel.com>
36049
36050         PR target/42542
36051         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
36052         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
36053         operands to make them signed.
36054
36055         Revert:
36056         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36057
36058         PR target/42542
36059         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
36060         GTU to GT for V4SI and V2DI.
36061
36062         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
36063         (umin<mode>3): Removed.
36064         (uminv8hi3): New.
36065         (uminv4si3): Likewise.
36066
36067 2010-01-05  Martin Jambor  <mjambor@suse.cz>
36068
36069         PR tree-optimization/42462
36070         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
36071         current_function_decl to helper functions and macros.
36072
36073 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36074
36075         PR bootstrap/41771
36076         * flags.h: Don't include real.h.
36077         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
36078         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
36079         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
36080         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
36081         * dominance.c: Update copyright.
36082         * gimple.c (walk_gimple_op): Remove inline.
36083         * tree-ssa-reassoc.c: Include real.h.
36084         * Makefile.in (FLAGS_H): Remove $(REAL_H).
36085         (tree-ssa-reassoc.o): Depend on $(REAL_H).
36086
36087 2010-01-05  Nick Clifton  <nickc@redhat.com>
36088
36089         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
36090         register to push into the stack frame when the accumulator has to
36091         be saved during interrupts.
36092
36093 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
36094
36095         * doc/invoke.texi: Remove the documentation about option
36096         -Wunreachable-code.
36097         * common.opt (Wunreachable-code):  Preserved for backward
36098         compatibility.
36099         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
36100         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
36101         the backward compatibility flag section.
36102
36103 2010-01-05  Richard Guenther  <rguenther@suse.de>
36104
36105         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
36106
36107 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
36108
36109         PR other/42611
36110         * cfgexpand.c (expand_one_var): Diagnose too large variables.
36111
36112         PR tree-optimization/42508
36113         * tree-sra.c (convert_callers): Check for recursive call
36114         by comparing cgraph nodes instead of decls.
36115         (modify_function): Call ipa_modify_formal_parameters also
36116         on all same_body aliases.
36117
36118         * cgraphunit.c (cgraph_materialize_all_clones): Compare
36119         cgraph nodes when checking for same_body aliases.
36120
36121 2010-01-05  Richard Guenther  <rguenther@suse.de>
36122
36123         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
36124         allocation and lookup.
36125         (get_or_alloc_expr_for_constant): Likewise.
36126         (phi_translate): Sink allocation.
36127
36128 2010-01-04  Richard Guenther  <rguenther@suse.de>
36129
36130         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
36131         a new entry only if needed.
36132         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
36133         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
36134         hashtable lookup.
36135         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
36136         the result array.
36137         (phi_translate): Handle CONSTANTs early.
36138
36139 2010-01-04  Martin Jambor  <mjambor@suse.cz>
36140
36141         PR tree-optimization/42398
36142         * tree-sra.c (struct access): Removed flag grp_different_types.
36143         (dump_access): Do not dump the removed flag.
36144         (sort_and_splice_var_accesses): Do not set the removed flag.
36145         (sra_modify_expr): Check for type compatibility directly.
36146
36147 2010-01-04  Martin Jambor  <mjambor@suse.cz>
36148
36149         PR tree-optimization/42366
36150         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
36151         edges with variable number of parameters.
36152         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
36153         flag instead of asserting it.
36154         (ipa_read_node_info): Read uses_analysis_done flag.
36155
36156 2010-01-04  Richard Guenther  <rguenther@suse.de>
36157
36158         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
36159         iterative_hash_* as intended.
36160         (vn_reference_compute_hash): Likewise.  Simplify hashing
36161         SSA names.
36162         (vn_reference_lookup_2): Likewise.
36163         (vn_nary_op_compute_hash): Likewise.
36164         (vn_phi_compute_hash): Likewise.
36165         (expressions_equal_p): Remove strange code.
36166         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
36167         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
36168         (bitmap_insert_into_set_1): Take value-id as parameter.
36169         (add_to_value): Pass it.
36170         (bitmap_insert_into_set): Likewise.
36171         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
36172
36173 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
36174
36175         PR driver/42442
36176         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
36177         (do_self_spec): For switches with SWITCH_IGNORE set set also
36178         SWITCH_IGNORE_PERMANENTLY.
36179         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
36180         of SWITCH_IGNORE.
36181
36182 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
36183
36184         * lto-streamer-out.c (output_unreferenced_globals): Output the full
36185         tree of an unreferenced global var.
36186
36187 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36188
36189         PR target/42542
36190         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
36191         GTU to GT for V4SI and V2DI.
36192
36193         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
36194         (umin<mode>3): Removed.
36195         (uminv8hi3): New.
36196         (uminv4si3): Likewise.
36197
36198 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
36199
36200         PR lto/42581
36201         * collect2.c (main): Turn on trace in collect2 if -v is passed
36202         to gcc with LTO.
36203
36204 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
36205
36206         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
36207         description of expression operand.
36208
36209 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
36210
36211         * configure.ac: Add install-html to target_list for Make-hooks.
36212         * configure: Regenerate.
36213         * fortran/Make-lang.in (F95_HTMLFILES): New.
36214         (fortran.html): Use it.
36215         (fortran.install-html): New.
36216         * Makefile.in (install-html): Add lang.install-html.
36217         * java/Make-lang.in (JAVA_HTMLFILES): New.
36218         (java.html): Use it.
36219         (java.install-html): New.
36220         * objc/Make-lang.in (objc.install-html): New.
36221         * objcp/Make-lang.in (obj-c++.install-html): New.
36222         * cp/Make-lang.in (c++.install-html): New.
36223         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
36224         * lto/Make-lang.in (lto.install-html): New.
36225
36226 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36227
36228         PR lto/42520
36229         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
36230
36231 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
36232
36233         PR rtl-optimization/41862
36234         * store-motion.c (store_killed_in_insn, compute_store_table,
36235         remove_reachable_equiv_notes, replace_store_insn,
36236         build_store_vectors): Ignore all DEBUG_INSNs.
36237
36238 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
36239
36240         PR lto/41564
36241         * common.opt: Add dumpdir.
36242
36243         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
36244         isn't specified.
36245         (option_map): Add --dumpdir.
36246
36247         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
36248
36249         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
36250
36251         * opts.c (decode_options): Try dump_dir_name first if
36252         dump_base_name isn't an absolute path.
36253         (common_handle_option): Handle OPT_dumpdir.
36254
36255         * toplev.c (dump_dir_name): New.
36256         (print_switch_values): Also ignore -dumpdir.
36257
36258         * toplev.h (dump_dir_name): New.
36259
36260 2010-01-03  Richard Guenther  <rguenther@suse.de>
36261
36262         PR tree-optimization/42589
36263         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
36264         double-word expansion of bswap32.
36265
36266 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
36267
36268         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
36269         with BLOCK_FOR_INSN.
36270         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
36271         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
36272         noce_process_if_block): Likewise.
36273         * gcse.c (compute_local_properties, insert_expr_in_table,
36274         insert_set_in_table, canon_list_insert, find_avail_set,
36275         pre_insert_copy_insn): Likewise.
36276
36277         * basic-block.h (BLOCK_NUM): Move from here...
36278         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
36279
36280 2010-01-03  Richard Guenther  <rguenther@suse.de>
36281
36282         PR tree-optimization/42438
36283         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
36284         contains_may_not_return_call flag.
36285         (BB_MAY_NOTRETURN): New.
36286         (valid_in_sets): Trapping nary operations are not valid
36287         in blocks that may not return.
36288         (insert_into_preds_of_block): Remove check for trapping expressions.
36289         (compute_avail): Compute also BB_MAY_NOTRETURN.
36290
36291 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
36292
36293         * doc/invoke.texi: Add 2010 to copyright years.
36294
36295 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
36296
36297         * config/sparc/sparc.c: Fix formatting nits.
36298
36299 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
36300             Alexander Monakov  <amonakov@ispras.ru>
36301
36302         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
36303
36304 2010-01-02  Richard Guenther  <rguenther@suse.de>
36305
36306         PR middle-end/42577
36307         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
36308         (simplify_switch_using_ranges): Mark to be removed edges
36309         as non-executable.
36310
36311 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36312
36313         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
36314
36315         * collect2.c (scan_libraries): Add missing argument in call to
36316         scan_prog_file.
36317
36318 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
36319
36320         PR target/42448
36321         * config/alpha/predicates.md (aligned_memory_operand): Return false
36322         for CQImode.
36323         (unaligned_memory_operand): Return true for CQImode.
36324         * config/alpha/alpha.c (get_aligned_mem): Assert that location
36325         doesn not cross aligned SImode word boundary.
36326
36327 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
36328
36329         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
36330         Remove.
36331         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
36332         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
36333
36334 2010-01-02  Richard Guenther  <rguenther@suse.de>
36335
36336         PR lto/41597
36337         * toplev.c (compile_file): Emit LTO marker properly.  Change
36338         it to __gnu_lto_v1.
36339         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
36340
36341 2010-01-01  Richard Guenther  <rguenther@suse.de>
36342
36343         PR debug/42455
36344         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
36345
36346 2010-01-01  Richard Guenther  <rguenther@suse.de>
36347
36348         PR c/42570
36349         * c-decl.c (grokdeclarator): For zero-size arrays force
36350         structural equality checks as layout_type does.
36351
36352 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
36353
36354         * builtins.c: Update copyright to 2010.
36355
36356 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
36357
36358         PR lto/42531
36359         * lto-streamer-out.c (produce_asm): Revert the last change.
36360         (copy_function): Likewise.
36361
36362         * lto-streamer.c (lto_get_section_name): Skip any leading
36363         asterisk in name.
36364
36365 2010-01-01  Richard Guenther  <rguenther@suse.de>
36366
36367         PR middle-end/42559
36368         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
36369         for LABEL_DECLs.
36370
36371 \f
36372 Copyright (C) 2010 Free Software Foundation, Inc.
36373
36374 Copying and distribution of this file, with or without modification,
36375 are permitted in any medium without royalty provided the copyright
36376 notice and this notice are preserved.