OSDN Git Service

2008-08-28 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-08-28  Richard Guenther  <rguenther@suse.de>
2
3         PR middle-end/37005
4         * fold-const.c (maybe_canonicalize_comparison_1): Require
5         undefined overflow only for canonicalizing A +- CST cmp CST.
6         Make sure to not generate new constants that are not inside
7         their TYPE_MIN/MAX_VALUE range.
8         (maybe_canonicalize_comparison): Remove undefined overflow
9         checking from here.
10         (fold_binary): Remove now duplicate folding.
11
12 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
13
14         * c-typeck.c (convert_for_assignment): Adjust WARN_FOR_ASSIGNMENT
15         use not updated in the last change.
16
17 2008-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
18
19         * config/sh/sh.h (REG_CLASS_CONTENTS): Drop fr32 from FPUL_REGS.
20         (IRA_COVER_CLASSES): Add FPUL_REGS.
21
22 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
23
24         PR 37217
25         * c-common.c (conversion_warning): Check for null operands.
26
27 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
28
29         PR c/31673
30         * c-decl.c (check_for_loop_decls): Improve error message. Give
31         hint.
32
33 2008-08-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
34
35         PR c/37186
36         * c-typeck.c (WARN_FOR_ASSIGNMENT): Add OPT parameter.
37         (convert_for_assignment): Pass corrent OPT_W* parameter to
38         WARN_FOR_ASSIGNMENT.
39
40 2008-08-27  Paolo Carlini  <paolo.carlini@oracle.com>
41
42         PR c++/35321
43         * c-common.c (fold_offsetof_1): Handle TARGET_EXPR like CALL_EXPR.
44
45 2008-08-27  Paul Brook  <paul@codesourcery.com>
46
47         * config.gcc: Loosen checks for arm uclinux eabi targets.
48
49 2008-08-27  Paul Brook  <paul@codesourcery.com>
50
51         * config/arm/t-arm-coff (LIB1ASMFUNCS): Add missing undescrore on
52         _clzsi2.
53         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
54
55 2008-08-26  Douglas Gregor  <doug.gregor@gmail.com>
56
57         * c-common.c (do_switch_warnings): Look through the CONST_DECLs in
58         the enumerators of an ENUMERAL_TYPE.
59         * dbxout.c (dbxout_type): Ditto.
60
61 2008-08-26  Andrew Pinski  <andrew_pinski@playstation.sony.com>
62
63         PR rtl-opt/37219
64         * fwprop.c (fwprop): Check that the loop_father is the outer loop.
65         (fwprop_addr): Check that the loop_father is not the outer loop.
66
67 2008-08-26  Paul Brook  <paul@codesourcery.com>
68
69         * config/arm/vfp.md: Document fmul{s,d} and fmac{s,d} types.
70         Remove documentation entry for fmul type.
71         Use fmuls to annotate single-precision multiplication patterns,
72         fmuld to annotate double-precision multiplication patterns,
73         fmacs to annotate single-precision multiply-accumulate patterns
74         and fmacd to annotate double-precision multiply-accumulate patterns.
75         * config/arm/vfp11.md: Update reservations accordingly.
76         * config/arm/arm.md: Note that certain values of the "type"
77         attribute are documented in vfp.md.
78         * config/arm/arm1020e.md: Remove out of date duplicate comment.
79         (v10_cvt): Use new fmul types.
80
81 2008-08-26  Paul Brook   <paul@codesourcery.com>
82
83         * config/arm/vfp.md: Move pipeline description for VFP11 to...
84         * config/arm/vfp11.md: ...here.  New.
85         * config/arm/arm.md: Include vfp11.md.
86
87 2008-08-26  Hans-Peter Nilsson  <hp@axis.com>
88
89         * opts.c (decode_options) [!IRA_COVER_CLASSES]: Add missing
90         parameter to inform call.
91
92 2008-08-26  Jeff Law  <law@redhat.com>
93
94         * mn10300.md (movqi, movhi): Split i->d*a case into two cases to
95         avoid the possibility of getting DATA_OR_ADDRESS_REGS as the
96         preferred class when copying a constant into a partial word register.
97
98 2008-08-26  Ben Elliston  <bje@au.ibm.com>
99
100         * rtlanal.c: Fix uses of "it's" with "its" where appropriate.
101         * cp/typeck.c: Likewise.
102         * cp/tree.c: Likewise.
103         * gimple-low.c: Likewise.
104         * jump.c: Likewise.
105
106 2008-08-26  Vladimir Makarov  <vmakarov@redhat.com>
107
108         * ira-build.c, ira-color.c, ira-costs.c, ira.h, ira-lives.c,
109         ira.c, ira-conflicts.c, ira-emit.c, ira-int.h: New files.
110
111         * doc/passes.texi: Describe IRA.
112
113         * doc/tm.texi (IRA_COVER_CLASSES,
114         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Describe the new macros.
115
116         * doc/invoke.texi (ira-max-loops-num): Describe the new parameter.
117         (-fira, -fira-algorithm, -fira-coalesce, -fno-ira-move-spills,
118         -fira-propagate-cost, -fno-ira-share-save-slots,
119         -fno-ira-share-spill-slots, -fira-verbose): Describe new options.
120
121         * flags.h (ira_algorithm): New enumeration.
122         (flag_ira_algorithm, flag_ira_verbose): New external variable
123         declarations.
124
125         * postreload.c (gate_handle_postreload): Don't do post reload
126         optimizations unless the reload is completed.
127
128         * reload.c (push_reload, find_dummy_reload): Use DF_LR_OUT for
129         IRA.
130
131         * tree-pass.h (pass_ira): New external variable declaration.
132
133         * reload.h: Add 2008 to the Copyright.
134     
135         * cfgloopanal.c: Include params.h.
136         (estimate_reg_pressure_cost): Decrease cost for IRA optimization
137         mode.
138     
139         * params.h (IRA_MAX_LOOPS_NUM): New macro.
140
141         * toplev.c (ira.h): New include.
142         (flag_ira_algorithm, flag_ira_verbose): New external variables.
143         (backend_init_target): Call ira_init.
144         (backend_init): Call ira_init_once.
145         (finalize): Call finish_ira_once.
146
147         * toplev.h (flag_ira, flag_ira_coalesce, flag_ira_move_spills,
148         flag_ira_share_save_slots, flag_ira_share_spill_slots): New
149         external variables.
150
151         * regs.h (contains_reg_of_mode, move_cost, may_move_in_cost,
152         may_move_out_cost): New external variable declarations.
153         (move_table): New typedef.
154     
155         * caller-save.c: Include headers output.h and ira.h.
156         (no_caller_save_reg_set): New global variable.
157         (save_slots_num, save_slots): New variables.
158         (reg_save_code, reg_restore_code, add_stored_regs): Add
159         prototypes.
160         (init_caller_save): Set up no_caller_save_reg_set.
161         (init_save_areas): Reset save_slots_num.
162         (saved_hard_reg): New structure.
163         (hard_reg_map, saved_regs_num, all_saved_regs): New variables.
164         (initiate_saved_hard_regs, new_saved_hard_reg,
165         finish_saved_hard_regs, saved_hard_reg_compare_func): New
166         functions.
167         (setup_save_areas): Add code for sharing stack slots.
168         (all_blocks): New variable.
169         (save_call_clobbered_regs): Process pseudo-register too.
170         (mark_set_regs): Process pseudo-register too.
171         (insert_one_insn): Put the insn after bb note in a empty basic
172         block.  Add insn check.
173     
174         * global.c (eliminable_regset): Make it external.
175         (mark_elimination): Use DF_LR_IN for IRA.
176         (pseudo_for_reload_consideration_p): New.
177         (build_insn_chain): Make it external.  Don't ignore spilled
178         pseudos for IRA.  Use pseudo_for_reload_consideration_p.
179         (gate_handle_global_alloc): New function.
180         (pass_global_alloc): Add the gate function.
181
182         * opts.c (decode_options): Set up flag_ira.  Print the warning for
183         -fira.
184         (common_handle_option): Process -fira-algorithm and -fira-verbose.
185
186         * timevar.def (TV_IRA, TV_RELOAD): New passes.
187
188         * regmove.c (regmove_optimize): Don't do replacement of output for
189         IRA.
190
191         * hard-reg-set.h (no_caller_save_reg_set, reg_class_subclasses):
192         New external variable declarations.
193
194         * local-alloc.c (update_equiv_regs): Make it external.  Return
195         true if jump label rebuilding should be done.  Rescan new_insn for
196         notes.
197         (gate_handle_local_alloc): New function.
198         (pass_local_alloc): Add the gate function.
199
200         * alias.c (value_addr_p, stack_addr_p): New functions.
201         (nonoverlapping_memrefs_p): Use them for IRA.
202
203         * common.opt (fira, fira-algorithm, fira-coalesce,
204         fira-move-spills, fira-share-save-slots, fira-share-spill-slots,
205         fira-verbose): New options.
206
207         * regclass.c (reg_class_subclasses, contains_reg_of_mode,
208         move_cost, may_move_in_cost, may_move_out_cost): Make the
209         variables external.
210         (move_table): Remove typedef.
211         (init_move_cost): Make it external.
212         (allocate_reg_info, resize_reg_info, setup_reg_classes): New
213         functions.
214
215         * rtl.h (init_move_cost, allocate_reg_info, resize_reg_info,
216         setup_reg_classes): New function prototypes.
217         (eliminable_regset): New external variable declaration.
218         (build_insn_chain, update_equiv_regs): New function prototypes.
219     
220         * Makefile.in (IRA_INT_H): New definition.
221         (OBJS-common): Add ira.o, ira-build.o, ira-costs.o,
222         ira-conflicts.o, ira-color.o, ira-emit.o, and ira-lives.o.
223         (reload1.o, toplev.o): Add dependence on ira.h.
224         (cfgloopanal.o): Add PARAMS_H.
225         (caller-save.o): Add dependence on output.h and ira.h.
226         (ira.o, ira-build.o, ira-costs.o, ira-conflicts.o, ira-color.o,
227         ira-emit.o, ira-lives.o): New entries.
228
229         * passes.c (pass_ira): New pass.
230
231         * params.def (PARAM_IRA_MAX_LOOPS_NUM): New parameter.
232
233         * reload1.c (ira.h): Include the header.
234         (changed_allocation_pseudos): New bitmap.
235         (init_reload): Initiate the bitmap.
236         (compute_use_by_pseudos): Permits spilled registers in FROM.
237         (temp_pseudo_reg_arr): New variable.
238         (reload): Allocate and free temp_pseudo_reg_arr.  Sort pseudos for
239         IRA.  Call alter_reg with the additional parameter.  Don't clear
240         spilled_pseudos for IRA.  Restore original insn chain for IRA.
241         Clear changed_allocation_pseudos at the end of reload.
242         (calculate_needs_all_insns): Call IRA's mark_memory_move_deletion.
243         (hard_regno_to_pseudo_regno): New variable.
244         (count_pseudo): Check spilled pseudos.  Set up
245         hard_regno_to_pseudo_regno.
246         (count_spilled_pseudo): Check spilled pseudos. Update
247         hard_regno_to_pseudo_regno.
248         (find_reg): Use better_spill_reload_regno_p.  Check
249         hard_regno_to_pseudo_regno.
250         (alter_reg): Set up spilled_pseudos.  Add a new parameter.  Add
251         code for IRA.
252         (eliminate_regs_1): Use additional parameter for alter_reg.
253         (finish_spills): Set up pseudo_previous_regs only for spilled
254         pseudos.  Call reassign_pseudos once for all spilled pseudos, pass
255         more arguments.  Don't clear live_throughout and dead_or_set for
256         spilled pseudos.  Use additional parameter for alter_reg.  Call
257         mark_allocation_change.  Set up changed_allocation_pseudos.
258         Remove sanity check.
259         (emit_input_reload_insns, delete_output_reload): Use additional
260         parameter for alter_reg.  Call mark_allocation_change.
261         (substitute, gen_reload_chain_without_interm_reg_p): New
262         functions.
263         (reloads_conflict): Use gen_reload_chain_without_interm_reg_p.
264     
265         * testsuite/gcc.dg/20080410-1.c: New file.
266         
267         * config/s390/s390.h (IRA_COVER_CLASSES,
268         IRA_HARD_REGNO_ADD_COST_MULTIPLIER): Define.
269
270         * config/sparc/sparc.h (IRA_COVER_CLASSES): New macro.
271
272         * config/i386/i386.h (IRA_COVER_CLASSES): Ditto.
273
274         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
275
276         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Ditto.
277
278         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
279     
280         * config/alpha/alpha.h (IRA_COVER_CLASSES): Ditto.
281     
282         2008-08-24  Jeff Law  <law@redhat.com>
283         * ira.c (setup_reg_class_intersect_union): Prefer smallest class
284         when ignoring unavailable registers.
285
286         2008-08-24  Jeff Law  <law@redhat.com>
287         * ira-color.c (coalesced_pseudo_reg_slot_compare): Check
288         FRAME_GROWS_DOWNWARD and STACK_GROWS_DOWNWARD.
289         * ira.c (setup_eliminable_regset): Check stack_realign_needed.
290         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): New macro.
291
292         2008-06-03 Steve Chamberlain <steve.chamberlain@gmail.com>
293         * ira-build.c (allocno_range_compare_func): Stabilize sort.
294
295         2008-05-29 Andy Hutchinson <hutchinsonandy@aim.com>
296         * config/avr/avr.h (IRA_COVER_CLASSES): New macro.
297         * reload1.c (find_reg): Process registers in register allocation order.
298
299         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
300         * toplev.c (backend_init_target): Move ira_init call from
301         here...
302         (lang_dependent_init_target): ...to here.
303
304         2008-05-10 Richard Sandiford <rsandifo@nildram.co.uk>
305         * ira.c (setup_class_subset_and_memory_move_costs): Don't
306         calculate memory move costs for NO_REGS.
307
308         2008-05-05 Kaz Kojima <kkojima@gcc.gnu.org>
309         * ira-color.c (ira_fast_allocation): Use no_stack_reg_p only if
310         STACK_REGS is defined.
311
312         2008-04-08 Andrew Pinski <andrew_pinski@playstation.sony.com>
313         * config/spu/spu.h (IRA_COVER_CLASSES): New macro.
314
315         2008-04-04 Bernd Schmidt <bernd.schmidt@analog.com>
316         * config/bfin/bfin.h (IRA_COVER_CLASSES): New macro.
317
318         2008-04-04 Kaz Kojima <kkojima@gcc.gnu.org>
319         * config/sh/sh.h (IRA_COVER_CLASSES): Define.
320         * config/sh/sh.md (movsicc_true+3): Check if emit returns a
321         barrier.
322
323 2008-08-26  Victor Kaplansky  <victork@il.ibm.com>
324             Dorit Nuzman  <dorit@il.ibm.com>
325
326         * gcc/config/spu/spu.md (vec_extract_evenv4si,
327         vec_extract_evenv4sf, vec_extract_evenv8hi,
328         vec_extract_evenv16qi, vec_extract_oddv4si,
329         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
330         vec_interleave_highv4sf, vec_interleave_lowv4sf,
331         vec_interleave_highv4si, vec_interleave_lowv4si,
332         vec_interleave_highv8hi, vec_interleave_lowv8hi,
333         vec_interleave_highv16qi, vec_interleave_lowv16qi,
334         vec_pack_trunc_v8hi, vec_pack_trunc_v4si): Implement.S
335
336 2008-08-25  Janis Johnson  <janis187@us.ibm.com>
337
338         PR target/36756
339         * config/rs6000/rs6000.c (optimization_options): Don't default to
340         section anchors without toplevel reorder.
341
342 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
343
344         * config/spu/spu_mfcio.h (mfc_begin_critical_section): New function.
345         (mfc_end_critical_section): Likewise.
346
347 2008-08-25  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
348
349         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Propagate
350         all type qualifiers from element type to vector type.
351
352 2008-08-25  David Daney  <ddaney@avtrex.com>
353
354         * config/mips/mips.md (immediate_insn): Move up in file, fix
355         comment typo, reformat.
356         (fetchop_bit, atomic_hiqi_op memory_barrier,
357         sync_compare_and_swap<mode>, compare_and_swap_12, sync_add<mode>,
358         sync_<optab><mode>, sync_<optab>_12, sync_old_<optab><mode>,
359         sync_old_<optab>_12, sync_new_<optab><mode>, sync_new_<optab>_12,
360         sync_nand<mode>, sync_nand_12, sync_old_nand<mode>,
361         sync_old_nand_12, sync_new_nand<mode>, sync_new_nand_12,
362         sync_sub<mode>, sync_old_add<mode>, sync_old_sub<mode>,
363         sync_new_add<mode>, sync_new_sub<mode>, sync_<optab><mode>,
364         sync_old_<optab><mode>, sync_new_<optab><mode>, sync_nand<mode>,
365         sync_old_nand<mode>, sync_new_nand<mode>,
366         sync_lock_test_and_set<mode>, sync_lock_test_and_set<mode>,
367         test_and_set_12): Moved to sync.md.
368         (sync.md): Include.
369         * config/mips/sync.md: New file.
370
371 2008-08-25  Richard Henderson  <rth@redhat.com>
372
373         * dwarf2out.c (def_cfa_1): Don't scale by DWARF_CIE_DATA_ALIGNMENT.
374         (regsave): Likewise.
375         (lookup_cfa_1): Don't rescale by DWARF_CIE_DATA_ALIGNMENT.
376         (output_cfi_directive): Likewise.
377         (div_data_align): New.
378         (output_cfi): Use it.
379
380 2008-08-24  Adam Nemet  <anemet@caviumnetworks.com>
381
382         * config.gcc (mips64*-*-linux*): Handle mips64octeon*-*-linux*.
383         * config/mips/mips.h (enum processor_type): Add PROCESSOR_OCTEON.
384         (TARGET_OCTEON): New macro.
385         (TARGET_CPU_CPP_BUILTINS): Define __OCTEON__ for Octeon.
386         (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): Handle -march=octeon.
387         (ISA_HAS_POP): New macro.
388         * config/mips/driver-native.c (host_detect_local_cpu): Handle
389         Octeon.
390         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
391         Handle Octeon.
392         * config/mips/mips.md (cpu): Add octeon.
393         (type): Add pop attribute value.
394         (popcount<mode>2): New pattern.
395         * doc/invoke.texi (-march=@var{arch}): Add octeon.
396
397 2008-08-24  Jan Hubicka  <jh@suse.cz>
398
399         * doc/invoke.texi (-fipa-cp-clone): New option.
400         (-fipa-cp): Update docs.
401         (--param ipcp-unit-growth):New.
402         * ipa-cp.c: Include fibheap.h, params.h
403         (ipcp_initialize_node_lattices): When not cloning, all externally
404         visible functions are bottom.
405         (ipcp_need_redirect_p): Accept clones.
406         (ipcp_insert_stage): Use cost driven heuristics.
407         (max_count, dead_nodes): New static vars.
408         (ipcp_need_original_clone_p, ipcp_estimate_cloning_cost,
409         ipcp_const_param_count): New functions.
410         * common.opt (ipa-cp-clone): New command line option.
411         * params.def (ipcp-unit-growth): New.
412
413 2008-08-24  Jan Hubicka  <jh@suse.cz>
414
415         * tree-inline.c (tree_function_versioning): Look harder
416         for referenced vars.
417
418 2008-08-24  Razya Ladelsky  <razya@il.ibm.com>
419
420         PR tree-optimization/37185
421         * matrix-reorg.c (transform_access_sites): Update changed stmt.
422
423 2008-08-23  Jan Hubicka  <jh@suse.cz>
424
425         * ipa-cp.c (ipcp_analyze_node): New function.
426         (ipcp_update_cloned_node): Use it.
427         (ipcp_init_stage): Likewise.
428         * ipa-inline.c (function_insertion_hook_holder): New static var.
429         (analyze_function): Break out from ....
430         (inline_generate_summary): Here; register insertion hook.
431         (cgraph_decide_inlining): Remove hook.
432         (add_new_function): New function.
433
434 2008-08-23  Jan Hubicka  <jh@suse.cz>
435
436         * opts.c (decode_options): Revert accidental change enabling ipa-cp.
437
438 2008-08-23  Jan Hubicka  <jh@suse.cz>
439
440         * ipa-cp.c (constant_val_insert): Remove.
441         (ipcp_propagate_one_const): Remove.
442         (ipcp_create_replace_map): Always insert replacements to the map.
443         (ipcp_insert_stage): Do not try to insert statements by hand.
444         * tree-inline.c (insert_init_stmt): Break out from ...
445         (setup_one_parameter): ... here; allow NULL BB pointer.
446         (tree_function_versioning): Use setup_one_parameter to process
447         replacement map.
448
449 2008-08-23  Jan Hubicka  <jh@suse.cz>
450
451         * tree.c (decl_address_ip_invariant_p): New function.
452         * tree.h (decl_address_ip_invariant_p): Declare.
453         * gimple.c (strip_invariant_refs): Break out from ...
454         (is_gimple_invariant_address): ... here
455         (is_gimple_ip_invariant_address): New function.
456         (is_gimple_ip_invariant): New function.
457         * gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
458         Declare.
459
460         * ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
461         (ipcp_lat_is_insertable): All constants are insertable.
462         (ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
463         IPA_CONST_VALUE_REF.
464         (ipcp_initialize_node_lattices): Propagate all types of operands.
465         (build_const_val): Do not handle IPA_CONST_VALUE_REF.
466         (ipcp_create_replace_map): Reformat.
467         (ipcp_need_redirect_p): Simplify.
468         (ipcp_insert_stage): Check that argument is used before clonning.
469         * ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
470         (compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
471         (determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
472         (update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
473         * ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
474         (jump_func_type): Remove IPA_CONST_VALUE_REF.
475         * tree-inline.c (tree_function_versioning): Add variables referenced by
476         replacing trees.
477
478 2008-08-23  Jan Hubicka  <jh@suse.cz>
479
480         PR target/37094
481         * i386.c (standard_80387_constant_p): Use optimize_size.
482
483 2008-08-23  Ira Rosen  <irar@il.ibm.com>
484
485         PR tree-optimization/37161
486         * tree-vectorizer.h (vect_get_smallest_scalar_type): Declare.
487         * tree-vect-analyze.c (vect_get_smallest_scalar_type): New function.
488         (vect_determine_vectorization_factor): Move the scalar type
489         retrieval to vect_get_smallest_scalar_type.
490         (vect_build_slp_tree): Call vect_get_smallest_scalar_type to get
491         scalar type. Remove redundant computation.
492         * tree-vect-transform.c (vect_get_constant_vectors): Add argument.
493         (vect_get_slp_defs): Take the type of RHS into account if
494         necessary by calling vect_get_smallest_scalar_type. Call
495         vect_get_constant_vectors with additional argument.
496
497 2008-08-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
498
499         PR 35648
500         * doc/invoke.texi (Wwrite-strings): Clarify description.
501         
502 2008-08-23  Ira Rosen  <irar@il.ibm.com>
503
504         PR tree-optimization/37174
505         * tree-vect-analyze.c (vect_get_and_check_slp_defs): Check that the
506         def stmt is a part of the loop before accessing its stmt_vec_info.
507
508 2008-08-22  Anatoly Sokolov  <aesok@post.ru>
509
510         PR target/11259
511         * config/avr/avr.md (UNSPEC_SWAP): New constants.
512         (*swap): New insn pattern.
513         (*ashlqi3): Rename from ashlqi3 insn pattern.
514         (ashlqi3): New expanders.
515         (*lshrqi3): Rename from lshrqi3 insn pattern.
516         (lshrqi3): New expanders.       
517         (ashlqi3_const4, ashlqi3_const5, ashlqi3_const6, lshrqi3_const4,
518         lshrqi3_const5, lshrqi3_const6): New splitters.
519         (andi, ashlqi3_l_const4, ashlqi3_l_const5, ashlqi3_l_const6,
520         lshrqi3_l_const4, lshrqi3_l_const5, lshrqi3_l_const6): Define
521         peephole2 patterns.
522
523 2008-08-22  Richard Guenther  <rguenther@suse.de>
524
525         PR tree-optimization/37078
526         * tree-vrp.c (extract_range_from_unary_expr): Avoid generating
527         [+INF, +INF] ranges.
528
529 2008-08-22  Richard Guenther  <rguenther@suse.de>
530
531         PR tree-optimization/37143
532         * tree-vect-transform.c (vect_create_cond_for_align_checks): Build
533         a conversion statement instead of a copy.
534
535 2008-08-22  Uros Bizjak  <ubizjak@gmail.com>
536
537         PR target/37184
538         * config/i386/i386.c (ix86_match_ccmode): Handle CCAmode,
539         CCCmode, CCOmode and CCSmode destination modes.
540
541         PR target/37191
542         * config/i386/mmx.md (*vec_extractv2sf_0): Avoid combining registers
543         from different units in a single alternative.
544         (*vec_extractv2sf_1): Ditto.
545         (*vec_extractv2si_0): Ditto.
546         (*vec_extractv2si_1): Ditto.
547         * config/i386/sse.md (sse2_storehpd): Ditto.
548         (sse2_storelpd): Ditto.
549         (sse2_loadhpd): Ditto.
550         (sse2_loadlpd): Ditto.
551
552         PR target/37197
553         * config/i386/i386.md (clzsi2_abm): Fix operand 1 constraints.
554         (popcountsi2): Ditto.
555         (clzdi2_abm): Ditto.
556         (popcountdi2): Ditto.
557         (clzhi2_abm): Ditto.
558         (popcounthi2): Ditto.
559
560 2008-08-22  Richard Guenther  <rguenther@suse.de>
561
562         PR middle-end/36548
563         PR middle-end/37125
564         * fold-const.c (extract_muldiv_1): Optimize (X * C1) % C2 only
565         if the multiplication does not overflow.
566
567 2008-08-21  Nathan Sidwell  <nathan@codesourcery.com>
568
569         * c-ppoutput.c (init_pp_output): Initialize src_line to 1.
570
571 2008-08-21  Richard Henderson  <rth@redhat.com>
572
573         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Remove
574         spurrious comma from test.
575         * configure: Rebuild.
576
577 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
578
579         PR 30457
580         * builtins.c (fold_builtin_next_arg): Add warning about undefined
581         behaviour.
582         
583 2008-08-21  Aldy Hernandez  <aldyh@redhat.com>
584
585         * c-tree.h (grokfield): New argument.
586         * c-decl.c (grokfield): Handle new location argument.
587         * c-parser.c (c_parser_struct_declaration): Pass location to
588         grokfield.
589
590 2008-08-21  Richard Guenther  <rguenther@suse.de>
591
592         * tree-ssa-ccp.c (ccp_fold): Fold VIEW_CONVERT_EXPRs of constants.
593
594 2008-08-21  Jan Hubicka  <jh@suse.cz>
595
596         * cgraph.c (first_cgraph_function_insertion_hook): New variable.
597         (cgraph_add_function_insertion_hook,
598         cgraph_remove_function_insertion_hook,
599         cgraph_call_function_insertion_hooks): New functions.
600         * cgraph.h (cgraph_add_function_insertion_hook,
601         cgraph_remove_function_insertion_hook,
602         cgraph_call_function_insertion_hooks): Declare.
603         * ipa-reference.c (function_insertion_hook_holder): New variable.
604         (check_operand, look_for_address_of): When checking late, do not care
605         about module bitmaps.
606         (add_new_function): New function.
607         (generate_summary): Register hooks; zero module bitmaps.
608         (propagate): Unregister hooks.
609         * ipa-pure-const.c (function_insertion_hook_holder): New variable.
610         (add_new_function): New function.
611         (generate_summary): Register hook.
612         (propagate): Remove hook.
613
614         * ipa-cp.c (ipcp_need_redirect_p): Fix to not be constant 0.
615
616         * tree-pass.h (pass_ipa_cp): Make ipa_opt_pass.
617         * ipa-cp.c (ipcp_update_cloned_node): New function.
618         (build_const_val): Handle functions correctly; bring type logic
619         into sync with tree-inline.c
620         (ipcp_init_stage):  Take care of computing stuff needed by
621         indirect inlining; update clones.
622         (ipcp_generate_summary): Break out of ipcp_driver.
623         (ipcp_driver): Do only execution and transformation.
624         (pass_ipa_cp): Make IPA_PASS.
625         * tree-ssa-ccp.c (fold_stmt_r): Check type before trying to fold
626         offset to address.
627         * ipa-inline.c (inline_indirect_intraprocedural_analysis): When doing
628         ipcp, some info is already available.
629         * ipa-prop.c (ipa_count_arguments): Grow edge lists as needed.
630         * tree-inline.c (remap_ssa_name): Unshare expression.
631
632 2008-08-21  Richard Guenther  <rguenther@suse.de>
633
634         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
635         a PHI ask VN if it is already available.
636         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
637         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
638
639 2008-08-21  Richard Guenther  <rguenther@suse.de>
640
641         PR middle-end/36817
642         * tree-chrec.c (chrec_apply): Always call chrec_fold_plus which
643         makes sure to produce a result of the correct type.
644
645 2008-08-21  Jan Hubicka  <jh@suse.cz>
646         Backport from LTO branch:
647
648         2008-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>
649                     Jan Hubicka  <jh@suse.cz>
650         
651         * ipa-pure-const.c
652         (init_state, finish_state, set_function_state, generate_summary):
653         New functions.
654         (scan_stmt): Renamed from scan_function.  Changed to keep state in
655         local static vars rather than cgraph aux field.
656         (propagate): Renamed from static_execute. Changed to keep state in
657         local static vars rather than cgraph aux field.
658         (pass_ipa_pure_const): Changed from SIMPLE_IPA_PASS to IPA_PASS.
659         * tree-pass.h (pass_ipa_pure_const): Turn into IPA_PASS.
660
661         2008-07-15  Kenneth Zadeck <zadeck@naturalbridge.com>
662
663         * tree-pass.h (pass_ipa_reference): Make into ipa_opt_pass.
664         * ipa-reference.c (init_function_info, generate_summary, 
665         propagate): New functions.
666         (analyze_function):  Call init_function_info.
667         (static_execute): Stripped into generate_summary and propagate.
668         (pass_ipa_reference): Made into ipa_opt_pass.
669
670 2008-08-21  Richard Guenther  <rguenther@suse.de>
671
672         PR tree-optimization/37181
673         * tree-vrp.c (extract_range_from_binary_expr): Check for NULL
674         folding result.
675         (extract_range_from_unary_expr): Likewise.
676
677 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
678
679         * diagnostic.c (pedwarn_at): Rename as pedwarn.
680         (pedwarn): Delete.
681         * toplev.h (pedwarn_at): Likewise.
682         * builtins.c: Update all calls to pedwarn.
683         * c-lex.c: Likewise.
684         * toplev.c: Likewise.
685         * c-tree.h: Likewise.
686         * c-decl.c: Likewise.
687         * c-errors.c: Likewise.
688         * c-typeck.c: Likewise.
689         * c-common.c: Likewise.
690         * c-parser.c: Likewise.
691
692 2008-08-20  Joseph Myers  <joseph@codesourcery.com>
693
694         PR target/31070
695         * config/sparc/sparc.c (function_arg_slotno): Handle structure
696         with MODE_VECTOR_INT mode.
697
698 2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
699
700         PR middle-end/179
701         * tree-ssa.c (warn_uninit): Do not warn for variables that can be
702         initialized outside the current module.
703         (warn_uninitialized_var): Ignore left-hand side when walking the
704         trees. Ignore address expressions. Examine VUSE operands in gimple
705         statements with a variable declaration on the right-hand side.
706
707 2008-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
708
709         PR bootstrap/37155
710         * rtlanal.c (subreg_offset_representable_p): Revert last change.
711
712 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
713
714         PR 35701
715         * c-common.c (conversion_warning): Do not warn if applying bit-and
716         operator to unsigned constant that fits in the target type.
717
718 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
719
720         PR c++/35602
721         * c-common.c (conversion_warning): Do not warn for artificial
722         expressions.
723
724 2008-08-20  Richard Guenther  <rguenther@suse.de>
725
726         * tree-vrp.c (op_with_constant_singleton_value_range): New function.
727         (extract_range_from_binary_expr): Fall back to constant propagation.
728         (extract_range_from_unary_expr): Likewise.
729
730 2008-08-20  Richard Guenther  <rguenther@suse.de>
731
732         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Do not mess
733         with TREE_THIS_VOLATILE on shared nodes.
734         (fold_stmt_r): Likewise.
735
736 2008-08-20  Jakub Jelinek  <jakub@redhat.com>
737
738         PR c/37171
739         * c-parser.c (c_parser_attributes): For keywords use canonical
740         spelling for attr_name.
741
742 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
743
744         * value-prof.c (check_counter): Revert wrong call to error.
745         
746 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
747
748         * profile.c: Update calls to inform.
749         * value-prof.c: Update calls to inform.
750         
751 2008-08-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
752
753         * diagnostic.c (inform): Add an explicit location_t parameter.
754         * toplev.h (inform): Update declaration.
755         * builtins.c: Update all calls to inform.
756         * c-common.c: Likewise.
757         * c-decl.c: Likewise.
758         * c-opts.c: Likewise.
759         * c-pch.c: Likewise.
760         * c-pragma.c: Likewise.
761         * c-typeck.c: Likewise.
762         * coverage.c: Likewise.
763         * opts.c: Likewise.
764         * toplev.c: Likewise.
765         * tree-cfg.c: Likewise.
766         * tree-ssa.c: Likewise.
767
768 2008-08-20  H.J. Lu  <hongjiu.lu@intel.com>
769
770         PR target/37169
771         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): In
772         V2DI mode, for SSE4.1, use movq instead of vector set if the
773         second element is zero and inter-unit moves are OK.
774
775 2008-08-20  Richard Guenther  <rguenther@suse.de>
776
777         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): More
778         properly handle conversion/copy chains after tuplification.
779
780 2008-08-20  Richard Guenther  <rguenther@suse.de>
781
782         * passes.c (init_optimization_passes): Move the second
783         forwprop pass before alias computation.  Remove the second
784         DCE pass.  Remove the first dominator and phi copy/const
785         prop passes.
786
787 2008-08-20  Nick Clifton  <nickc@redhat.com>
788
789         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Always test for assembler
790         support of this feature.  Do not assume that a sufficiently new
791         assembler will support the feature regardless of the target type.
792         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
793         * configure: Regenerate.
794
795 2008-08-20  Richard Guenther  <rguenther@suse.de>
796
797         * tree-vrp.c (found_in_subgraph): Remove.
798         (live): New global static.
799         (live_on_edge): New function.
800         (blocks_visited): Remove.
801         (register_edge_assert_for_2): Use live_on_edge.
802         (find_conditional_asserts): Remove code dealing with
803         found_in_subgraph.  Do not walk the CFG.
804         (find_switch_asserts): Likewise.
805         (find_assert_locations_1): Renamed from find_assert_locations.
806         Move finding assert locations for conditional and switch
807         statements first.  Update live bitmap.  Do not walk the CFG.
808         (find_assert_locations): New function.
809         (insert_range_assertions): Remove entry of CFG walk.
810         Adjust call to find_assert_locations.
811         * tree-ssa-pre.c (do_regular_insertion): Ignore critical edges
812         that only can appear because of fake exit edges but assert we
813         never try to insert on those.
814         (fini_pre): Do not remove fake exit edges here...
815         (execute_pre): ...but here, before committing edge inserts.
816
817 2008-08-19  Richard Guenther  <rguenther@suse.de>
818
819         * passes.c (init_optimization_passes): Exchange store-ccp
820         with a ccp pass.
821
822 2008-08-19  Rafael Espindola  <espindola@google.com>
823
824         * varasm.c (weak_decls): Move earlier in the file.
825         (assemble_external): Add weak decls to the weak_decls list.
826         (declare_weak): Don't add decls to the weak_decls list.
827
828 2008-08-19  H.J. Lu  <hongjiu.lu@intel.com>
829
830         PR target/37157
831         * config/i386/sse.md (sse2_punpckhqdq, sse2_punpcklqdq): Moved
832         before (sse2_shufpd_<mode>).
833
834 2008-08-19  Jakub Jelinek  <jakub@redhat.com>
835
836         PR debug/37156
837         * pretty-print.c (pp_base_format): Deal with recursive BLOCK trees.
838         * tree.c (block_nonartificial_location): Likewise.
839
840 2008-08-19  Richard Guenther  <rguenther@suse.de>
841
842         PR tree-optimization/35972
843         PR tree-optimization/23094
844         * tree-ssa-sccvn.h (vn_reference_lookup_pieces): Add maywalk
845         parameter.
846         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
847         handle MISALIGNED_INDIRECT_REF.
848         (get_ref_from_reference_ops): New helper.
849         (vn_reference_lookup_pieces): Walk the use-def chain using the
850         alias-oracle if requested.
851         * tree-ssa-pre.c (phi_translate_1): Do reference lookup with
852         walking the use-def chain.
853         (compute_avail): But not here.
854         (create_component_ref_by_pieces_1): Properly handle
855         MISALIGNED_INDIRECT_REF.
856         (do_regular_insertion): Handle fully redundant
857         expressions after PHI-translation also for SSA_NAME values, not
858         only constants.  Correctly use edoubleprime for that.
859
860 2008-08-19  Ira Rosen  <irar@il.ibm.com>
861
862         * tree-vectorizer.c (supportable_widening_operation): Support
863         multi-step conversion, return the number of steps in such conversion
864         and the required intermediate types.
865         (supportable_narrowing_operation): Likewise.
866         * tree-vectorizer.h (vect_pow2): New function.
867         (supportable_widening_operation): Change argument types.
868         (supportable_narrowing_operation): Likewise.
869         (vectorizable_type_promotion): Add an argument.
870         (vectorizable_type_demotion): Likewise.
871         * tree-vect-analyze.c (vect_analyze_operations): Call 
872         vectorizable_type_promotion and vectorizable_type_demotion with
873         additional argument.
874         (vect_get_and_check_slp_defs): Detect patterns.
875         (vect_build_slp_tree): Add an argument, don't fail in case of multiple
876         types. 
877         (vect_analyze_slp_instance): Don't fail in case of multiple types. Call
878         vect_build_slp_tree with correct arguments. Calculate unrolling factor
879         according to the smallest type in the loop.
880         (vect_detect_hybrid_slp_stmts): Include statements from patterns.
881         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Call 
882         supportable_widening_operation with correct arguments. 
883         * tree-vect-transform.c (vect_get_slp_defs): Allocate output vector 
884         operands lists according to the number of vector statements in left
885         or right node, if exists.
886         (vect_gen_widened_results_half): Remove unused argument.
887         (vectorizable_conversion): Call supportable_widening_operation, 
888         supportable_narrowing_operation, and vect_gen_widened_results_half
889         with correct arguments. 
890         (vectorizable_assignment): Change documentation, support multiple
891         types in SLP. 
892         (vectorizable_operation): Likewise.
893         (vect_get_loop_based_defs): New function.
894         (vect_create_vectorized_demotion_stmts): Likewise.
895         (vectorizable_type_demotion): Support loop-aware SLP and general
896         multi-step conversion. Call vect_get_loop_based_defs and
897         vect_create_vectorized_demotion_stmts for transformation.
898         (vect_create_vectorized_promotion_stmts): New function.
899         (vectorizable_type_promotion): Support loop-aware SLP and general
900         multi-step conversion. Call vect_create_vectorized_promotion_stmts
901         for transformation.     
902         (vectorizable_store): Change documentation, support multiple
903         types in SLP. 
904         (vectorizable_load): Likewise.
905         (vect_transform_stmt): Pass SLP_NODE to 
906         vectorizable_type_promotion and vectorizable_type_demotion.
907         (vect_schedule_slp_instance): Move here the calculation of number
908         of vectorized statements for each node from...
909         (vect_schedule_slp): ... here.
910         (vect_transform_loop): Call vect_schedule_slp without the last
911         argument.
912
913 2008-08-19  Dorit Nuzman  <dorit@il.ibm.com>
914
915         PR bootstrap/37152
916         * tree-vect-transform.c (vect_create_epilog_for_reduction): Change = 
917         to == in assert statement.
918         (vectorizable_reduction): Fix typo.
919
920 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
921
922         PR bootstrap/37153
923         * value-prof.c (check_counter): Dereference pointer to overall
924         count when printing it.
925
926 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
927
928         * profile.h: Really add it.
929
930 2008-08-18  H.J. Lu  <hongjiu.lu@intel.com>
931
932         * mcf.c: Really add it.
933
934 2008-08-18  Paul Yuan  <yingbo.com@gmail.com>
935             Vinodha Ramasamy  <vinodha@google.com>
936
937         * cgraph.c (cgraph_edge): Handle inconsistent counts when setting
938         count_scale.
939         * value-prof.c (check_counter): Fix the counter if
940         flag_profile_correction is true.
941         (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
942         tree_mod_subtract_transform):
943         Follow check_counter parameter change.
944         * common.opt (fprofile-correction): New option.
945         * mcf.c: New file.
946         * profile.h: Likewise.
947         * profile.c (edge_info, EDGE_INFO): Moved to new file profile.h.
948         (sum_edge_counts, is_edge_inconsistent, correct_negative_edge_counts,
949         is_inconsistent, set_bb_counts, read_profile_edge_counts): New
950         functions.
951         (compute_branch_probabilities): Refactored. Invokes mcf_smooth_cfg if
952         flag_profile_correction is set.
953
954 2008-08-18  Richard Sandiford  <rdsandiford@googlemail.com>
955
956         * rtlanal.c (subreg_offset_representable_p): Check HARD_REGNO_MODE_OK.
957
958 2008-08-18  Tomas Bily  <tbily@suse.cz>
959
960         * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to CONVERT_EXPR_CODE_P.
961         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
962         CONVERT_EXPR_P.
963         * tree-data-ref.c (split_constant_offset_1): Likewise.
964         * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
965         * tree-sra.c (sra_walk_expr): Likewise.
966         * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
967         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
968         * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
969         * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
970         Likewise.
971         * gimple.c (gimple_assign_unary_nop_p): Likewise.
972         * tree-vect-transform.c (vectorizable_type_demotion)
973         (vectorizable_type_promotion): Likewise.
974         * tree-inline.c (expand_call_inline): 
975         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
976         (forward_propagate_addr_expr_1, forward_propagate_comparison)
977         (tree_ssa_forward_propagate_single_use_vars): Likewise.
978         * expr.c (expand_expr_real_1): Likewise.
979         * tree-ssa-dom.c (hashable_expr_equal_p, iterative_hash_hashable_expr)
980         (gimple_assign_unary_useless_conversion_p): Likewise.
981         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
982         * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
983         * fold-const.c (fold_unary): Likewise.
984         * tree.h (CONVERT_EXPR_P): Likewise.
985         * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
986         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
987         * tree-vrp.c: 
988         (register_edge_assert_for_2, extract_range_from_unary_expr)
989         (register_edge_assert_for_1): Likewise.
990         
991 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
992
993         * real.h (dconst_e, dconst_third, dconst_sqrt2, dconst_e_ptr,
994         dconst_third_ptr, dconst_sqrt2_ptr): Declare.
995         (enum real_value_const): Delete.
996         (get_real_const): Delete.
997         * real.c (get_real_const): Delete.
998         (dconst_e_ptr): Define.
999         (dconst_third_ptr): Define.
1000         (dconst_sqrt2_ptr): Define.
1001         * builtins.c: Update all callers.
1002
1003 2008-08-18  Richard Guenther  <rguenther@suse.de>
1004
1005         * tree-ssa-reassoc.c (reassociate_bb): Properly reset the
1006         statement iterator after statement removal.
1007
1008 2008-08-18  Andreas Tobler  <a.tobler@schweiz.org>
1009
1010         * config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.
1011         (detect_processor_freebsd): Likewise.
1012         (host_detect_local_cpu): Call newly added functions for FreeBSD.
1013
1014 2008-08-18  Richard Guenther  <rguenther@suse.de>
1015
1016         * tree-cfg.c (verify_types_in_gimple_assign): Verify copies
1017         and loads have the correct types.
1018
1019 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1020
1021         PR cpp/7263
1022         * c-opts.c (cpp_opts): Remove static.
1023         * c-parser.c (cpp_opts): Declare it extern.
1024         (disable_extension_diagnostics): Handle cpp options.
1025         (enable_extension_diagnostics): Likewise.
1026
1027 2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1028
1029         * diagnostics.c (permerror_at): Rename as permerror.
1030         (permerror): Delete.
1031         * toplev.h: Likewise.
1032
1033 2008-08-18  Richard Guenther  <rguenther@suse.de>
1034
1035         * passes.c (init_optimization_passes): Remove cleanup_cfg1,
1036         sdse1 and addressables2 passes.  Replace dce1 with cddce1.
1037         Move call_cdce before build_alias.  Move copyrename2,
1038         cunrolli and ccp2 beafore build_alias.  Re-add addressable2
1039         right after final inlining.
1040         * tree-cfg.c (build_gimple_cfg): Do not dump function here.
1041         (pass_build_cfg): But instead via TODO_dump_func.
1042
1043 2008-08-18  Richard Guenther  <rguenther@suse.de>
1044
1045         * tree-sra.c (generate_element_init_1): Deal with NULL constructor
1046         element index.
1047         (scalarize_init): If we failed to generate some initializers
1048         do not generate zeros for not instantiated members.  Instead
1049         rely on the copy out.
1050         * tree-ssa-operands.c (get_addr_dereference_operands): Warn
1051         about missing flow-sensitive alias info only if we have
1052         aliases computed.
1053
1054 2008-08-17  Nick Clifton  <nickc@redhat.com>
1055
1056         * doc/extend.texi (Function Attributes): Fix typo in description
1057         if hot function attribute.
1058
1059 2008-08-17  Daniel Jacobowitz  <dan@codesourcery.com>
1060             Richard Sandiford  <rdsandiford@googlemail.com>
1061
1062         * doc/install.texi (--with-mips-plt): Document.
1063         * doc/invoke.texi (-mplt, -mno-plt): Document.
1064         * config.gcc (mips*-*-*): Add mips-plt to supported_defaults
1065         and handle ${with_mips_plt}.
1066         * config/mips/mips.opt (mplt): New option.
1067         * config/mips/mips.h (TARGET_ABICALLS_PIC0): New macro.
1068         (TARGET_ABICALLS_PIC2): Likewise.
1069         (TARGET_GPWORD): Return false for TARGET_ABSOLUTE_ABICALLS.
1070         (OPTION_DEFAULT_SPECS): Add a mips-plt entry.
1071         (ASM_SPEC): Use !mabi=* instead of !mabi*.
1072         (MIPS_CALL): Use TARGET_ABICALLS_PIC2 instead of TARGET_ABICALLS
1073         to decide whether to output ".option picX" directives.
1074         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Remove -mabi=64 handling.
1075         Pass -call_nonpic rather than -KPIC for -mplt.
1076         (BASE_DRIVER_SELF_SPECS): Remove -mplt if -mno-shared is not present
1077         on the command line.  Also remove it when -mabi=64 is used without
1078         -msym32.
1079         * config/mips/linux64.h (SUBTARGET_ASM_SPEC): Delete.
1080         * config/mips/mips.c (mips_use_pic_fn_addr_reg_p): Handle
1081         TARGET_ABICALLS_PIC0.
1082         (mips_classify_symbol): Use TARGET_ABICALLS_PIC2 instead of
1083         TARGET_ABICALLS.
1084         (mips16_build_function_stub): Only output ".option pic" directives
1085         and PIC stubs if TARGET_ABICALLS_PIC2.  Call through $25 instead of $1.
1086         (mips16_build_call_stub): Fix comment and remove redundant
1087         ".set at"/"set .noat" directives.
1088         (mips_function_rodata_section): Use the default behaviour for
1089         TARGET_ABSOLUTE_ABICALLS.
1090         (mips_file_start): Emit ".option pic0" for TARGET_ABICALLS_PIC0.
1091         (mips_global_pointer): Handle TARGET_ABICALLS_PIC0.
1092         (mips_restore_gp): Do nothing if the current function doesn't use
1093         a global pointer.
1094         (mips_expand_prologue): Only save $gp if the current function uses it.
1095         Use a normal move for TARGET_ABICALLS_PIC0.
1096         (mips_override_options): Only set flag_pic if TARGET_ABICALLS_PIC2.
1097
1098 2008-08-17  Richard Sandiford  <rdsandiford@googlemail.com>
1099
1100         * config/mips/mips.c (mips_save_reg_p): Don't short-circuit rest
1101         of function when handling GLOBAL_POINTER_REGNUM.
1102
1103 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1104
1105         PR ada/20548
1106         * common.opt (-fstack-check): Do not declare the variable here.
1107         (-fstack-check=): New option variant.
1108         * doc/invoke.texi (Code Gen Options): Document it.
1109         * expr.h (STACK_OLD_CHECK_PROTECT): New macro.
1110         (STACK_CHECK_PROTECT): Bump to 3 pages if DWARF-2 EH is used.
1111         (STACK_CHECK_STATIC_BUILTIN): New macro.
1112         * doc/tm.texi (Stack Checking): Document STACK_CHECK_STATIC_BUILTIN.
1113         * opts.c: Include expr.h.
1114         (common_handle_option) <OPT_fold_stack_check_>: New case.
1115         <OPT_fstack_check>: Likewise.
1116         * calls.c (initialize_argument_information): Use TYPE_SIZE_UNIT
1117         consistently in the test for variable-sized types.  Adjust for
1118         new behaviour of flag_stack_check.
1119         * explow.c: Include except.h.
1120         (allocate_dynamic_stack_space): Do not take into account
1121         STACK_CHECK_MAX_FRAME_SIZE for static builtin stack checking.
1122         * function.c (gimplify_parameters): Use DECL_SIZE_UNIT in the test
1123         for variable-sized parameters.  Treat all parameters whose size is
1124         greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized if generic
1125         stack checking is enabled.
1126         * gimplify.c (gimplify_decl_expr): Treat non-static objects whose
1127         size is greater than STACK_CHECK_MAX_VAR_SIZE as variable-sized
1128         if generic stack checking is enabled.
1129         (expand_function_end): Adjust for new behaviour of flag_stack_check.
1130         * reload1.c (reload): Likewise.
1131         * stmt.c (expand_decl): Assert that all automatic variables have
1132         fixed size at this point and remove dead code.
1133         * flags.h (stack_check_type): New enumeration type.
1134         (flag_stack_check): Declare.
1135         * toplev.c (flag_stack_check): New global variable.
1136         * Makefile.in (opts.o): Add dependency on EXPR_H.
1137         (explow.o): Add dependency on except.h.
1138
1139 2008-08-16  Andy Hutchinson  <hutchinsonandy@aim.com>
1140
1141         * config/avr/avr.c (avr_override_options): Reduce value of 
1142         PARAM_INLINE_CALL_COST.
1143
1144 2008-08-15  Eric Botcazou  <ebotcazou@adacore.com>
1145
1146         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: When converting
1147         to BLKmode, try to fetch an inner memory reference.  Use 'mode' in
1148         lieu of TYPE_MODE (type) throughout.
1149
1150 2008-08-15  Joseph Myers  <joseph@codesourcery.com>
1151
1152         * config/arm/arm.c (add_minipool_backward_ref): Check for
1153         8-byte-aligned entries in second case of forcing insertion after a
1154         particular entry.  Change third case to avoid inserting
1155         non-8-byte-aligned entries before 8-byte-aligned ones.
1156
1157 2008-08-15  Richard Guenther  <rguenther@suse.de>
1158
1159         * tree-ssa-ccp.c (maybe_fold_offset_to_reference): Do not
1160         strip components for unknown size accesses.
1161
1162 2008-08-15  Wolfgang Gellerich  <gellerich@de.ibm.com>
1163
1164         * config/s390/2097.md New file.
1165         * config/s390/s390.md ("z10prop" attribute): Define none,
1166         z10_super, z10_super_E1, z10_super_A1, z10_super_c,
1167         z10_super_c_E1, z10_fwd, z10_fwd_A1, z10_fwd_A3, z10_fwd_E1,
1168         z10_rec, z10_fr, z10_fr_A3, z10_fr_E1, z10_c, and z10_cobra as
1169         possible values and apply them to insns as appropriate.
1170         ("type" attribute): Removed itof and added ftrunctf,ftruncdf,
1171         ftruncsd, ftruncdd, itoftf, itofdf, itofsf, itofdd, itoftd,
1172         fdivdd, fdivtd, floaddd, floadsd, fmuldd, fmultd, fsimpdd,
1173         fsimpsd, fsimptd, fstoredd, fstoresd, ftoidfp as possible
1174         values.
1175         ("bfp" mode attribute): Removed.  Every occurence replaced
1176         with <mode>.
1177         * config/s390/s390.c (struct "z10_cost"): Updated entries.
1178         * config/s390/2084.md (insn_reservation "x_itof"): Updated
1179           type attribute.
1180
1181 2008-08-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1182
1183         PR c/28152
1184         * c-parser.c (c_lex_one_token): Do not store the canonical spelling
1185         for keywords.
1186         
1187 2008-08-14  Dorit Nuzman  <dorit@il.ibm.com>
1188
1189         * tree-vect-transform.c (vect_create_epilog_for_reduction): Takes an
1190         additional argument. Support reduction when duplication is needed due
1191         to data-types of different sizes in the loop.
1192         (get_initial_def_for_induction): Fix printout.
1193         (vect_get_vec_def_for_stmt_copy): Support case where the
1194         vec_stmt_for_operand is a phi node.
1195         (vectorizable_reduction): Support reduction when duplication is needed 
1196         due to data-types of different sizes in the loop.
1197         (vectorizable_call): Remove restriction to not vectorize in case we 
1198         have data-types of different sizes in the loop.
1199         (vectorizable_conversion): Likewise.
1200         (vectorizable_operation): Likewise.
1201         (vectorizable_type_demotion): Likewise.
1202         (vectorizable_type_promotion): Likewise.
1203         (vectorizable_induction): Add restriction to not vectorize in case 
1204         we have data-types of different sizes in the loop.
1205
1206 2008-08-14  Christophe Saout  <christophe@saout.de>
1207             Uros Bizjak  <ubizjak@gmail.com>
1208
1209         PR target/37101
1210         * config/i386/sse.md (vec_concatv2di): Remove movlps alternative.
1211         (*vec_concatv2di_rex64_sse4_1): Ditto.
1212         (*vec_concatv2di_rex64_sse): Ditto.
1213
1214 2008-08-14  Jakub Jelinek  <jakub@redhat.com>
1215
1216         PR middle-end/37103
1217         * fold-const.c (fold_widened_comparison): Do not allow
1218         sign changes that change the result even if shorter type
1219         is wider than arg1_unw's type.
1220
1221 2008-08-13  Kazu Hirata  <kazu@codesourcery.com>
1222
1223         * gcc.dg/arm-g2.c, gcc.dg/arm-mmx-1.c, gcc.dg/arm-scd42-2.c:
1224         Skip if the multilib testing specifies -march that does not
1225         agree with the one specified in the testcase.
1226
1227 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
1228
1229         * config/sparc/sparc.c (emit_soft_tfmode_cvt): Explicitly sign or
1230         zero extend SImode values being converted to TFmode before passing
1231         to libcalls.
1232
1233 2008-08-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1234
1235         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
1236         __PPU__ when targeting the Cell/B.E. PPU processor.
1237
1238 2008-08-13  Eric Botcazou  <ebotcazou@adacore.com>
1239
1240         * gimple.h (gimple_call_set_chain): Accept SSA variables.
1241         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <CALL_EXPR>:
1242         Rematerialize the static chain, if any.
1243         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Also copy the
1244         static chain.
1245
1246 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
1247
1248         * dwarf2out.c (dwarf_stack_op_name): Remove prototype.
1249         (new_loc_descr): Likewise.
1250         (add_loc_descr): Likewise.
1251         (size_of_loc_descr): Likewise.
1252         (size_of_locs): Likewise.
1253         (output_loc_operands): Likewise.
1254         (output_loc_sequence): Likewise.
1255         (new_reg_loc_descr): New.
1256         (build_cfa_loc): Use it.
1257         (build_cfa_aligned_loc): Likewise.
1258         (one_reg_loc_descriptor): Likewise.
1259         (based_loc_descr): Likewise.
1260
1261 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1262
1263         PR 30551
1264         * doc/invoke.texi (Wmain): Update.
1265         * c-decl.c (start_decl): warn_main is only 0 or 1.
1266         (start_function): Likewise. Fix formatting.
1267         (finish_function): Delete redundant warning.
1268         * c.opt (Wmain): Add Var(warn_main) and Init(-1).
1269         * c-opts (c_common_handle_option): -Wall only has effect if
1270         warn_main is uninitialized. OPT_Wmain is automatically
1271         handled. -pedantic also enables Wmain.
1272         (c_common_post_options): Handle all logic for Wmain here.
1273         * c-common.c (warn_main): Delete.
1274         (check_main_parameter_types): Make pedwarns conditional on
1275         OPT_Wmain.
1276         * c-common.h (warn_main): Delete.
1277
1278 2008-08-13  H.J. Lu  <hongjiu.lu@intel.com>
1279
1280         PR middle-end/36701
1281         * expr.c (emit_group_store): Allocate stack temp with the
1282         largest alignment when copying from register to stack.
1283
1284 2008-08-13  Richard Guenther  <rguenther@suse.de>
1285
1286         * tree.h (maybe_fold_offset_to_address): Declare.
1287         * tree-ssa-ccp.c (surely_varying_stmt_p): Fix typo in last commit.
1288         (ccp_fold): Handle pointer conversions the same as fold_stmt.
1289         Likewise for POINTER_PLUS_EXPR.
1290         (maybe_fold_offset_to_reference): Enable disabled code.
1291         (maybe_fold_offset_to_address): New function.
1292         (fold_stmt_r): Use it.
1293         (fold_gimple_assign): Likewise.
1294         * gimplify.c (gimplify_conversion): Use maybe_fold_offset_to_address.
1295         (gimplify_expr): Likewise.
1296
1297 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1298
1299         * toplev.h (pedwarn_at): Fix declaration.
1300         
1301 2008-08-13  Joseph Myers  <joseph@codesourcery.com>
1302
1303         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1304         LINK_SPEC): Use %R in -Y P argument.
1305
1306 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1307
1308         PR c/15236
1309         * diagnostic.c (pedwarn_at): New.
1310         * toplev.h (pedwarn_at): Declare.
1311         * c-tree.h (build_enumerator): Update declaration.
1312         * c-decl.c (finish_enum): Update comment.
1313         (build_enumerator): Take a location parameter. Give a pedwarn but do
1314         not perform any conversion.
1315         * c-parser.c (c_parser_enum_specifier): Set correct location for
1316         enumerator.
1317
1318 2008-08-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1319
1320         PR 35635
1321         * c-common.c (conversion_warning): Use a switch. Ignore boolean
1322         expressions except for conversions to signed:1 bitfields. Handle
1323         COND_EXPR with constant operands.
1324         
1325 2008-08-13  Richard Guenther  <rguenther@suse.de>
1326
1327         PR tree-optimization/15255
1328         * tree-ssa-reassoc.c (linearize_expr_tree): Declare.
1329         (struct oecount_s): New struct and VEC types.
1330         (cvec): New global.
1331         (oecount_hash): New function.
1332         (oecount_eq): Likewise.
1333         (oecount_cmp): Likewise.
1334         (zero_one_operation): New function.
1335         (build_and_add_sum): Likewise.
1336         (undistribute_ops_list): Perform un-distribution of multiplication
1337         and division on the chain of summands.
1338         (should_break_up_subtract): Also break up subtracts for factors.
1339         (reassociate_bb): Delete dead visited statements.
1340         Call undistribute_ops_list.  Re-sort and optimize if it did something.
1341         * passes.c (init_optimization_passes): Move DSE before
1342         reassociation.
1343         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Correctly handle
1344         PHI nodes.
1345
1346 2008-08-12  Janis Johnson  <janis187@us.ibm.com>
1347
1348         * doc/invoke.texi (-fipa-pta): Say the option is experimental.
1349
1350         * doc/invoke.texi: Revert unintended checkin.
1351
1352 2008-08-12  Nathan Froyd  <froydnj@codesourcery.com>
1353
1354         PR libgomp/26165
1355         * gcc.c (include_spec_function): Tweak call to find_a_file.
1356
1357 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
1358
1359         PR middle-end/37014
1360         * expr.c (expand_expr_real_1): Handle TRUTH_ANDIF_EXPR
1361         and TRUTH_ORIF_EXPR.
1362         * dojump.c (do_jump): Likewise.
1363
1364         PR tree-optimization/37084
1365         * tree-inline.c (copy_bb): Call gimple_regimplify_operands
1366         if id->regimplify, don't assume stmt is a cast assignment.
1367
1368 2008-08-12  Anatoly Sokolov  <aesok@post.ru>
1369
1370         * final.c (final_scan_insn): Use app_enable/app_disable functions.
1371
1372 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1373
1374         PR bootstrap/37097
1375         * builtins.c (do_mpfr_bessel_n): Fix copy-and-paste bug introduced
1376         by last change.
1377
1378 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1379
1380         * defaults.h (TARGET_FLOAT_FORMAT): Remove.
1381         (UNKNOWN_FLOAT_FORMAT, IEEE_FLOAT_FORMAT, VAX_FLOAT_FORMAT): Remove.
1382
1383         * config/alpha/alpha.h (TARGET_FLOAT_FORMAT): Remove.
1384         * config/iq2000/iq2000.h (TARGET_FLOAT_FORMAT): Remove.
1385         * config/pdp11/pdp11.h (TARGET_FLOAT_FORMAT): Remove.
1386         * config/score/score.h (TARGET_FLOAT_FORMAT): Remove.
1387         * config/vax/vax.h (TARGET_FLOAT_FORMAT): Remove.
1388
1389         * doc/tm.texi (Storage Layout): Remove documentation for
1390         TARGET_FLOAT_FORMAT.
1391
1392         * simplify-rtx.c (simplify_binary_operation_1): Replace
1393         TARGET_FLOAT_FORMAT check by appropriate HONOR_... checks.
1394
1395 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1396
1397         * real.h (struct real_format): New member has_sign_dependent_rounding.
1398         * real.c (ieee_single_format, mips_single_format, motorola_single_format,
1399         spu_single_format, ieee_double_format, mips_double_format,
1400         motorola_double_format, ieee_extended_motorola_format,
1401         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
1402         ieee_extended_intel_96_round_53_format, ibm_extended_format,
1403         mips_extended_format, ieee_quad_format, mips_quad_format,
1404         vax_f_format, vax_d_format, vax_g_format): Initialize it.
1405         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
1406
1407         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
1408         MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
1409         * config/spu/spu.h (MODE_HAS_NANS, MODE_HAS_INFINITIES,
1410         MODE_HAS_SIGN_DEPENDENT_ROUNDING): Remove.
1411         (ROUND_TOWARDS_ZERO): Likewise.
1412
1413         * real.h (REAL_MODE_FORMAT): Protect MODE against macro expansion.
1414         (FLOAT_MODE_FORMAT): New macro.
1415         (REAL_MODE_FORMAT_COMPOSITE_P): Remove, replace by ...
1416         (MODE_COMPOSITE_P): ... this new macro.
1417         (MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
1418         MODE_HAS_SIGN_DEPENDENT_ROUNDING): New macros.
1419         * machmode.h (GET_MODE_INNER): Cast result to enum machine_mode.
1420
1421         * flags.h: Include "real.h".
1422
1423         * fold-const.c (const_binop): Use MODE_COMPOSITE_P instead of
1424         REAL_MODE_FORMAT_COMPOSITE_P.
1425         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
1426
1427         * doc/tm.texi (Storage Layout): Remove documentation of
1428         MODE_HAS_NANS, MODE_HAS_INFINITIES, MODE_HAS_SIGNED_ZEROS,
1429         MODE_HAS_SIGN_DEPENDENT_ROUNDING.  Update documentation of
1430         ROUND_TOWARDS_ZERO and LARGEST_EXPONENT_IS_NORMAL to clarify
1431         they only apply to libgcc2.a.
1432
1433 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1434
1435         * config/spu/float_disf.c: New file.
1436         * config/spu/float_unsdisf.c: New file.
1437         * config/spu/t-elf (LIB2FUNCS_STATIC_EXTRA): Add them.
1438         (LIB2FUNCS_EXCLUDE): Define.
1439
1440 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1441             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1442
1443         * real.h (struct real_format): New member round_towards_zero.
1444         * real.c (round_for_format): Respect fmt->round_towards_zero.
1445         (ieee_single_format, mips_single_format, motorola_single_format,
1446         spu_single_format, ieee_double_format, mips_double_format,
1447         motorola_double_format, ieee_extended_motorola_format,
1448         ieee_extended_intel_96_format, ieee_extended_intel_128_format,
1449         ieee_extended_intel_96_round_53_format, ibm_extended_format,
1450         mips_extended_format, ieee_quad_format, mips_quad_format,
1451         vax_f_format, vax_d_format, vax_g_format): Initialize it.
1452         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
1453
1454         * builtins.s (do_mpfr_arg1): Consider round_towards_zero member of
1455         real_format to choose rounding mode when calling MPFR functions.
1456         (do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Likewise.
1457         (do_mpfr_bessel_n, do_mpfr_remquo, do_mpfr_lgamma_r): Likewise.
1458
1459         * real.h (real_to_decimal_for_mode): Add prototype.
1460         * real.c (real_to_decimal_for_mode): Renames old real_to_decimal.
1461         Respect target rounding mode when generating decimal representation.
1462         (real_to_decimal): New stub for backwards compatibility.
1463         * c-cppbuiltin.c (builtin_define_with_hex_fp_value): Use
1464         real_to_decimal_for_mode instead of real_to_decimal.
1465
1466         * config/spu/spu.md ("floatdisf2", "floatunsdisf2"): New.
1467
1468 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1469             Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1470
1471         * real.c (spu_single_format): New variable.
1472         * real.h (spu_single_format): Declare.
1473
1474         * config/spu/spu.c (spu_override_options): Install SFmode format.
1475         (spu_split_immediate): Use integer mode to operate on pieces of
1476         floating-point values in all cases.
1477
1478         * config/spu/spu.md (UNSPEC_FLOAT_EXTEND, UNSPEC_FLOAT_TRUNCATE): New.
1479         ("extendsfdf2"): Use UNSPEC_FLOAT_EXTEND instead of FLOAT_EXTEND.
1480         ("truncdfsf2"): Use UNSPEC_FLOAT_TRUNCATE instead of FLOAT_TRUNCATE.
1481
1482 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1483
1484         * config/spu/spu.c (spu_safe_dma): Respect TARGET_SAFE_DMA.
1485
1486 2008-08-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1487
1488         * config/spu/spu.h (DWARF_FRAME_RETURN_COLUMN): Define.
1489
1490 2008-08-12  Jakub Jelinek  <jakub@redhat.com>
1491
1492         PR c++/36688
1493         * gimplify.c (gimplify_modify_expr_rhs): Test TREE_READONLY
1494         on the VAR_DECL instead of TYPE_READONLY on its type.
1495
1496 2008-08-12  Ira Rosen  <irar@il.ibm.com>
1497
1498         * tree-vectorizer.c: Depend on langhooks.h.
1499         (supportable_widening_operation): Add two arguments. Support double
1500         type conversions.
1501         (supportable_narrowing_operation): Likewise.
1502         * tree-vectorizer.h (supportable_widening_operation): Add two 
1503         arguments.
1504         (supportable_narrowing_operation): Likewise.
1505         * tree-vect-patterns.c (vect_recog_widen_mult_pattern) : Call
1506         supportable_widening_operation with correct arguments.
1507         * tree-vect-transform.c (vectorizable_conversion): Likewise.
1508         (vectorizable_type_demotion): Support double type conversions.
1509         (vectorizable_type_promotion): Likewise.
1510         * Makefile.in (tree-vectorizer.o): Depend on langhooks.h.
1511
1512 2008-08-11  Michael Matz  <matz@suse.de>
1513
1514         * i386/i386.c (override_options): Move initialisation from
1515         flag_schedule_insns_after_reload to here from ...
1516         (optimization_options): ... here.
1517
1518 2008-08-11  Jakub Jelinek  <jakub@redhat.com>
1519
1520         PR rtl-optimization/36998
1521         * dwarf2out.c (compute_barrier_args_size_1,
1522         compute_barrier_args_size): Temporarily remove assertions.
1523
1524 2008-08-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1525
1526         PR middle-end/20644
1527         * tree-ssa.c (struct walk_data): Add new flag
1528         warn_possibly_uninitialized.
1529         (warn_uninitialized_var): Use it.
1530         (warn_uninitialized_vars): New.
1531         (execute_early_warn_uninitialized): Call it.
1532         (execute_late_warn_uninitialized): Likewise.
1533
1534 2008-08-09  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1535
1536         PR middle-end/36238
1537         * reload1.c (gen_reload): Guard calls to get_secondary_mem
1538         for memory subregs.
1539
1540 2008-08-09  Jan Hubicka  <jh@suse.cz>
1541
1542         PR target/37055
1543         * optabs.c (maybe_emit_unop_insn): Remove produced code if
1544         expansion failed.
1545         (expand_fix): Be prepared for expansion to fail.
1546         (expand_sfix_optab): Remove instructions if expansion failed.
1547
1548 2008-08-09  Anatoly Sokolov  <aesok@post.ru>
1549
1550         * config/avr/avr.c (avr_mcu_types): Move the AT43USB320 device to
1551         avr31 architecture.
1552         * config/avr/avr.h (CRT_BINUTILS_SPECS): (Ditto.).
1553         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1554
1555 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1556
1557         * config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
1558         mips/t-libgcc-mips16 to tmake_file.
1559         * config/mips/mips-protos.h (mips_call_type): New enum.
1560         (mips_pic_base_register, mips_got_load): Declare.
1561         (mips_restore_gp): Take an rtx argument.
1562         (mips_use_pic_fn_addr_reg_p): Declare.
1563         (mips_expand_call): Replace the sibcall_p argument with
1564         a mips_call_type argument.  Add a lazy_p parameter.
1565         (mips_split_call): Declare.
1566         * config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
1567         (MIPS16_PIC_TEMP): Likewise.
1568         (reg_class): Delete M16_NA_REGS.
1569         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1570         (SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
1571         (mips_split_hi_p): Declare.
1572         * config/mips/mips.c (mips_split_hi_p): New array.
1573         (mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
1574         (mips_got_symbol_type_p): New function.
1575         (mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
1576         (mips16_stub_function_p): New function.
1577         (mips16_local_function_p): Likewise.
1578         (mips_use_pic_fn_addr_reg_p): Likewise.
1579         (mips_cannot_force_const_mem): Return false for HIGHs.
1580         Extend CONST_INT and symbolic handling to MIPS16, using
1581         mips_symbol_insns to check that the base symbol type is a
1582         legitimate constant.  Reject GOT-based constants if
1583         TARGET_MIPS16_PCREL_LOADS.
1584         (mips_const_insns): Check targetm.cannot_force_const_mem when
1585         decomposing a symbolic base and a large offset.
1586         (mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
1587         When calling a function that needs $25 from MIPS16 code,
1588         move the target address into $25 separately and add a USE
1589         to the call insn.
1590         (mips16_gp_pseudo_reg): Insert the initializer immediately
1591         before the first real insn.
1592         (mips_pic_base_register, mips_got_load): New functions.
1593         (mips_split_symbol): Generalize the name of the LO_SUM_OUT
1594         parameter to LOW_OUT.  Say that it can be any valid SET_SRC
1595         when splitting a load-address operation.  Split SYMBOL_GOT_DISP
1596         constants and highs of SYMBOL_GOT_PAGE_OFST constants.
1597         (mips_call_tls_get_addr): Update the call to mips_expand_call,
1598         also passing NULL_RTX rather than const0_rtx as the aux argument.
1599         (mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
1600         instead of TARGET_EXPLICIT_RELOCS.
1601         (mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
1602         (mips_load_call_address): Replace the sibcall_p argument with
1603         a mips_call_type argument.  Use mips_got_load.
1604         (mips16_local_alias): New structure.
1605         (mips16_local_aliases): New variable.
1606         (mips16_local_aliases_hash): New function.
1607         (mips16_local_aliases_eq): Likewise.
1608         (mips16_local_alias): Likewise.
1609         (mips16_stub_function): Likewise.
1610         (mips16_build_function_stub): Create a local alias for the target
1611         function.  Handle TARGET_ABICALLS.  For PIC abicalls, emit a
1612         .cpload directive and an R_MIPS_NONE relocation for the target
1613         function, then load the alias rather than the function itself.
1614         Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
1615         (mips16_copy_fpr_return_value): Use mips16_stub_function and
1616         mips_expand_call.  Set SYMBOL_REF_BIND_NOW on the symbol.
1617         (mips16_build_call_stub): Replace the FN parameter with an
1618         FN_PTR parameter.  Force the address into a register if it
1619         isn't a call_insn_operand; don't rely on the caller to do this.
1620         If a call to a locally-defined and locally-binding MIPS16
1621         function must be made indirectly, redirect the call to the
1622         function's local alias.  Use mips16_stub_function_p,
1623         mips16_stub_function, mips_expand_call and use_reg.
1624         Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
1625         Use explicit %hi and %lo accesses where possible.
1626         Use MIPS_CALL to generate the correct code form of a
1627         jal instruction.  Add clobbers of $18 instead of uses.
1628         Update the call to mips_emit_call_insn.
1629         (mips_expand_call): Replace the SIBCALL_P argument with a
1630         mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
1631         Take a LAZY_P parameter.  Call mips16_build_call_stub first,
1632         allowing it to modify the call address.  Update the calls to
1633         mips_load_call_address and mips_emit_call_insn.
1634         (mips_split_call): New function.
1635         (mips_init_relocs): Clear mips_split_hi_p.  Only use %gp_rel if
1636         !TARGET_MIPS16.  Split SYMBOL_GOT_DISP, and the high parts of
1637         SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
1638         (mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
1639         (mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
1640         if TARGET_MIPS16.
1641         (mips_cprestore_slot): New function.
1642         (mips_restore_gp): Take a TEMP parameter.  Handle TARGET_MIPS16
1643         and use mips_cprestore_slot.
1644         (mips_output_function_prologue): Handle TARGET_MIPS16 for
1645         LOADGP_OLDABI.
1646         (mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
1647         then use a copygp_mips16 instruction to set up $28.
1648         (mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
1649         (mips16_lay_out_constants): Call split_all_insns_noflow.
1650         (mips_reorg_process_insns): Explicitly set all_noreorder_p to
1651         false if TARGET_MIPS16.
1652         (mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
1653         (mips_output_mi_thunk): Use mips_got_symbol_type_p.  Use the
1654         mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
1655         (mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
1656         MIPS16 code.  Allow MIPS16 o32 PIC.
1657         (mips_override_options): Allow MIPS16 o32 PIC.
1658         * config/mips/mips.md: Lower CONST_GP_P moves into register moves
1659         after reload if TARGET_USE_GOT.
1660         (UNSPEC_COPYGP): New constant.
1661         (length): Use a default length of 8 for MIPS16 GOT loads.
1662         (*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
1663         (*got_page<mode>): Check mips_split_hi_p.
1664         (*got_disp<mode>, *got_page<mode>): Use mips_got_load.
1665         (unspec_got<mode>, unspec_call<mode>): New expanders.
1666         (load_got<mode>, load_call<mode>): Remove the length attributes.
1667         Use a got attribute instead of a type attribute.
1668         (copygp_mips16): New insn.
1669         (restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
1670         (load_call<mode>): Use a "d" constraint instead of an "r" constraint.
1671         (sibcall, sibcall_value, call, call_value): Update the calls
1672         to mips_expand_call.
1673         (call_internal, call_value_internal): Use mips_split_call.
1674         (call_value_multiple_internal): Likewise.
1675         (call_split): Move after call_internal (the insn it is split from).
1676         (call_internal_direct, call_value_internal_direct): Turn into
1677         define_insn_and_splits.  Split if TARGET_SPLIT_CALLS.
1678         (call_direct_split, call_value_direct_split): New patterns.
1679         * config/mips/constraints.md (c): Handle TARGET_MIPS16 first
1680         and use M16_REGS instead of M16_NA_REGS.
1681         * config/mips/predicates.md (const_call_insn_operand): Replace
1682         the TARGET_ABSOLUTE_ABICALLS-based check with a more general
1683         mips_use_pic_fn_addr_reg_p check.
1684         (move_operand): Reject HIGHs if mips_split_hi_p.
1685         * config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
1686         (__mips16_floatunsisf): Inline __mips16_floatsisf.
1687         (CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
1688         * config/mips/libgcc-mips16.ver: New file.
1689         * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
1690         $(srcdir)/config/mips/libgcc-mips16.ver.
1691
1692 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1693
1694         * config/mips/mips.c (mips_unspec_address_offset): Move earlier in file.
1695         (mips_unspec_address, mips_unspec_offset_high): Likewise.
1696         (mips_ok_for_lazy_binding_p, mips_load_call_address): Likewise.
1697         (mips16_cfun_returns_in_fpr_p): Likewise.
1698
1699 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1700
1701         * config/mips/mips.h (MASK_RETURN_ADDR): Expand commentary.
1702         * config/mips/linux-unwind.h (mips_fallback_frame_state): Add 2
1703         rather than 4 to PC.
1704
1705 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1706
1707         * config/mips/mips.h (STATIC_CHAIN_REGNUM): Remap to $15.
1708         (FUNCTION_PROFILER): Save the static chain pointer into $2
1709         beforehand and restore it aftewards.
1710         (TRAMPOLINE_TEMPLATE): Adjust accordingly.  Load the target
1711         address directly into $25 and call the function through $25;
1712         do not clobber $3.  Pad the DImode version to cover the space
1713         left by the deleted $25 <- $3 move.
1714         (TRAMPOLINE_SIZE): Adjust the size of the SImode version after
1715         the removal of the $25 <- $3 move.
1716         (INITIALIZE_TRAMPOLINE): Update offsets accordingly.
1717         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
1718
1719 2008-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
1720             Daniel Jacobowitz  <dan@codesourcery.com>
1721
1722         * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Delete.
1723         * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Delete.
1724         (ASM_DECLARE_FUNCTION_SIZE, FUNCTION_NAME_ALREADY_DECLARED): Delete.
1725         * config/mips/mips.c (mips_start_function_definition): New function.
1726         (mips_end_function_definition): Likewise.
1727         (mips_output_function_prologue): Use mips_start_function_definition.
1728         (mips_output_function_epilogue): Use mips_end_function_definition.
1729         (build_mips16_function_stub): Use mips_start_function_definition
1730         and mips_end_function_definition.
1731         (build_mips16_call_stub): Likewise.
1732
1733 2008-08-09  Richard Guenther  <rguenther@suse.de>
1734
1735         * gimple.c (gimple_build_call_1): Deal with FUNCTION_DECL fn.
1736         * gimple.h (gimple_call_fn): Adjust comment.
1737         (gimple_call_set_fndecl): New function.
1738         (gimple_call_fndecl): Adjust for GIMPLE_CALL no
1739         longer having bare FUNCTION_DECL operand.
1740         (gimple_call_return_type): Likewise.
1741         * tree-cfg.c (verify_stmt): Verify function operand of a GIMPLE_CALL.
1742
1743         * value-prof.c (gimple_divmod_fixed_value): Do not emit labels.
1744         (gimple_mod_pow2): Likewise.
1745         (gimple_mod_subtract): Likewise.
1746         (gimple_ic): Likewise.
1747         (gimple_stringop_fixed_value): Likewise.
1748         (gimple_indirect_call_to_profile): Fix for GIMPLE_CALL no
1749         longer having bare FUNCTION_DECL operand.
1750         * ipa-cp.c (ipcp_update_callgraph): Use gimple_call_set_fndecl.
1751         * omp-low.c (optimize_omp_library_calls): Likewise.
1752         * cgraphunit.c (update_call_expr): Likewise.
1753         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1754         (execute_convert_to_rsqrt): Likewise.
1755         * cfgexpand.c (gimple_to_tree): Simplify.
1756         (release_stmt_tree): Fix for GIMPLE_CALL no longer having
1757         bare FUNCTION_DECL operand.
1758         * tree-nested.c (init_tmp_var_with_call): Use gimple_call_return_type.
1759         (convert_gimple_call): Use gimple_call_fndecl.
1760         * c-common.c (c_warn_unused_result): Likewise.
1761
1762 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1763
1764         PR c/17880
1765         * c-typeck.c (digest_init): Call verify_sequence_points from here.
1766         (c_finish_return): Likewise.
1767         (c_start_case): Likewise.
1768         * c-common.c (warn_for_collisions_1): Use explicit location in
1769         warning.
1770         * c-parser.c (c_parser_condition): New. Call
1771         verify_sequence_points.
1772         (c_parser_paren_condition): Call c_parser_condition.
1773         (c_parser_for_statement): Call c_parser_condition.
1774
1775 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1776
1777         PR 36901
1778         * diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
1779         * diagnostic.c (pedantic_warning_kind, permissive_error_kind):
1780         Moved from diagnostic.h
1781         (diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
1782         DK_PERMERROR.
1783         (emit_diagnostic): New.
1784         (warning0, pedwarn0): Delete.
1785         (warning, warning_at, pedwarn, permerror): Return bool.  
1786         * diagnostic.h (pedantic_warning_kind, permissive_error_kind):
1787         Moved to diagnostic.c.
1788         (struct diagnostic_context): Use correct type for
1789         classify_diagnostic.
1790         (diagnostic_report_diagnostic): Update declaration.
1791         (emit_diagnostic): Declare.
1792         * errors.c (warning): Return bool.  
1793         * errors.h (warning): Update declaration.
1794         * toplev.h (warning0, pedwarn0): Delete.
1795         (warning, warning_at, pedwarn, permerror): Return bool.
1796         * c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
1797         * c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
1798         inform. Update all calls.
1799         (diagnose_mismatched_decls): Check return value of warning/pedwarn
1800         before giving informative note.
1801         (implicit_decl_warning): Likewise.  
1802         * c-typeck.c (build_function_call): Likewise.  
1803         * tree-sssa.c (warn_uninit): Likewise.  
1804         * builtins.c (gimplify_va_arg_expr): Likewise.
1805
1806 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1807
1808         PR 7651
1809         * doc/invoke.texi (-Wextra): Move warning from here...
1810         (-Wuninitialized): ... to here.
1811         
1812 2008-08-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1813
1814         PR 28875
1815         * flags.h (set_Wunused): Delete
1816         * toplev.c (process_options): Handle Wunused flags here.
1817         * opts.c (maybe_warn_unused_parameter): Delete.
1818         (common_handle_option): Replace set_Wunused by warn_unused.
1819         (set_Wextra): Do not handle Wunused-parameter here.
1820         (set_Wunused): Delete.
1821         * c-opts.c (c_common_handle_option): Replace set_Wunused by
1822         warn_unused.
1823         * common.opt (Wunused): Add Var and Init.
1824         (Wunused-function): Likewise.
1825         (Wunused-label): Likewise.
1826         (Wunused-parameter): Likewise.
1827         (Wunused-value): Likewise.
1828         (Wunused-variable): Likewise.
1829         
1830 2008-08-08  Peter Bergner  <bergner@vnet.ibm.com>
1831
1832         * doc/invoke.texi: Add cpu_type power7.
1833         * config.in (HAVE_AS_VSX): New.
1834         * config.gcc: Add cpu_type power7.
1835         * configure.ac (HAVE_AS_VSX): Check for assembler support of the
1836         VSX instructions.
1837         * configure: Regenerate.
1838         * config/rs6000/rs6000.c (rs6000_override_options): Alias power7 to
1839         power5.
1840         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Define.
1841         (ASM_CPU_SPEC): Pass %(asm_cpu_power7) for -mcpu=power7.
1842         (EXTRA_SPECS): Add asm_cpu_power7 spec string.
1843
1844 2008-08-08  Dorit Nuzman  <dorit@il.ibm.com>
1845
1846         * tree-vect-transform.c (vectorizable_conversion): Pass the integral
1847         type to vectorize.builtin_conversion.
1848         (vectorizable_conversion): Likewise.
1849         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Always takes
1850         integral type as input.
1851         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Add case for
1852         FIX_TRUNC_EXPR.
1853         (rs6000_expand_builtin): Add case for ALTIVEC_BUILTIN_VCTUXS
1854         and ALTIVEC_BUILTIN_VCTSXS.
1855         (rs6000_builtin_mul_widen_even. rs6000_builtin_mul_widen_odd): Fix
1856         formatting. 
1857
1858 2008-08-08  Richard Guenther  <rguenther@suse.de>
1859
1860         * tree-ssa-ccp.c (likely_value): Calls are not all varying.
1861         (surely_varying_stmt_p): Calls are varying only if they are
1862         non-builtin and not indirect or have no result.
1863         (ccp_fold): Re-instantiate code before the tuples merge.
1864
1865 2008-08-08  Richard Guenther  <rguenther@suse.de>
1866
1867         PR tree-optimization/37056
1868         * gimple.h (gimple_assign_rhs_class): New helper function.
1869         * tree-ssa-loop-niter.c (get_val_for): Fix tuplification, handle
1870         unary operations properly.
1871
1872 2008-08-07  Jan Hubicka  <jh@suse.cz>
1873
1874         * i386.h (ix86_size_cost): Declare.
1875         (ix86_cur_cost): New function macro.
1876         * i386.md (peepholes expanding size and splitters): Predicate by
1877         optimize_insn_for_speed_p.
1878         (peepholes reduce size and splitters): Predicate by
1879         optimize_insn_for_size_p.
1880         * i386.c (ix86_size_cost): Rename from ...
1881         (size_cost): This one.
1882         (override_options): Update.
1883         (decide_alg): Likewise.
1884         (ix86_expand_clear): Use RTL profile.
1885         (ix86_pad_returns): Use RTL profile.
1886
1887 2008-08-07  Jan Hubicka  <jh@suse.cz>
1888
1889         * recog.c (split_all_insns): Set RTL profile
1890         (peephole2_optimize): Likewise.
1891         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1892         * combine.c (combine_instructions): Likewise.
1893
1894 2008-08-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1895
1896         * c-common.c (c_common_reswords): Also warn about keyword "bool".
1897
1898 2008-08-07  Bob Wilson  <bob.wilson@acm.org>
1899         
1900         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Copy incoming
1901         value in a6 after the set_frame_ptr insn.
1902         
1903 2008-08-07  Richard Henderson  <rth@redhat.com>
1904
1905         PR debug/37033
1906         * gcc.c (cpp_options): Pass along -g*.
1907
1908 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
1909
1910         * config/arm/arm.c (output_move_neon): Update comment describing
1911         big-endian vector layout.
1912         (arm_assemble_integer): Do not handle big-endian NEON vectors
1913         specially.
1914         * config/arm/neon.md (vec_set<mode>_internal, vec_extract<mode>,
1915         neon_vget_lane<mode>_sext_internal,
1916         neon_vget_lane<mode>_zext_internal, neon_vget_lane<mode>): Adjust
1917         element indices for big-endian.
1918
1919 2008-08-07  Richard Henderson  <rth@redhat.com>
1920
1921         * configure.ac (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): New.
1922         * configure, config.in: Rebuild.
1923         * debug.h (dwarf2out_do_cfi_asm): Declare.
1924         * c-cppbuiltin.c (c_cpp_builtins): Use it.
1925         * dwarf2out.c (dwarf2out_do_cfi_asm): New.
1926         (dwarf2out_cfi_label, add_fde_cfi, output_call_frame_info,
1927         dwarf2out_begin_prologue, dwarf2out_end_epilogue): Use it.
1928
1929 2008-08-07  Joseph Myers  <joseph@codesourcery.com>
1930
1931         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1932         movv2si_internal): Combine into mov<mode>_internal.
1933         (movv2si_internal_2): Remove.
1934
1935 2008-08-07  Jan Hubicka  <jh@suse.cz>
1936
1937         PR target/37048
1938         * i386.md (single stringop patterns): Enable unconditionally. 
1939
1940 2008-08-07  H.J. Lu  <hongjiu.lu@intel.com>
1941
1942         PR target/36992
1943         * config/i386/emmintrin.h (_mm_move_epi64): Use
1944         __builtin_ia32_movq128.
1945
1946         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVQ128.
1947         (bdesc_args): Add IX86_BUILTIN_MOVQ128.
1948
1949         * config/i386/sse.md (sse2_movq128): New.
1950
1951         * doc/extend.texi: Document __builtin_ia32_movq128.
1952
1953 2008-08-07  Richard Guenther  <rguenther@suse.de>
1954
1955         PR middle-end/37042
1956         * tree-ssa-alias-warnings.c (nonstandard_alias_p): Ref-all
1957         pointers can access anything.
1958
1959 2008-08-06  Jan Hubicka  <jh@suse.cz>
1960
1961         * optabs.c (emit_unop_insn): Break out to ...
1962         (maybe_emit_unop_insn): ... this one.
1963         (expand_sfix_optab): Use maybe variant.
1964         * optabs.h (maybe_emit_unop_insn): Declare.
1965
1966         * i386.md (mov0 patterns): Enable by default.
1967         (FP conversion expanders): Disable expansion of code expanding
1968         sequences when instruction should be optimized for size.
1969         (single strinop patterns): Enable when optimizing for size.
1970         (string expanders): Disable expanding of code expanding sequences
1971         when optimizning instruction for size.
1972         * i386.c (ix86_expand_vector_move_misalign): Do code size optimization
1973         per BB basis.
1974         (ix86_fp_comparison_sahf_cost): Likewise.
1975         (ix86_expand_branch): Likewise.
1976         (ix86_expand_ashl_const): Likewise.
1977         (ix86_split_ashl): Likewise.
1978         (ix86_expand_strlen): Likewise.
1979         (ix86_emit_fp_unordered_jump): Likewie.
1980
1981 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1982
1983         * c-common.c: Fix typo.
1984         (c_common_reswords): Activate more C++ keyword warnings.
1985
1986         * matrix-reorg.c (compute_offset): Avoid C++ keywords.
1987
1988 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1989
1990         PR 26785
1991         * diagnostic.c (permerror_at): New.
1992         * toplev.h (permerror_at): Declare.
1993         
1994 2008-08-06  Victor Kaplansky  <victork@il.ibm.com>
1995             Ira Rosen  <irar@il.ibm.com>
1996
1997         * tree-vect-transform.c (vect_model_simple_cost): Return
1998         immediately if stmt is pure SLP.
1999         (vect_model_store_cost): Ditto.
2000         (vect_model_load_cost): Ditto.
2001         (vectorizable_store): Remove PURE_SLP check before call
2002         to vect_model_store_cost.
2003         (vect_model_store_cost): When checking whether stmt describe
2004         strided access, add a check that it is not slp_node.
2005
2006 2008-08-06  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2007
2008         PR 8715
2009         * c-common.c (warn_for_sign_compare): New. Handle separately the
2010         case that 'constant' is zero.
2011         * c-typeck.c (build_binary_op): Move code to c-common.c
2012         
2013 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2014
2015         * config/alpha/alpha.c (alpha_preferred_reload_class,
2016         alpha_secondary_reload, alpha_emit_set_const_1, function_value,
2017         alpha_output_mi_thunk_osf): Avoid C++ keywords.
2018         * config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
2019         * config/arm/arm.md: Likewise.
2020         * config/avr/avr-protos.h (preferred_reload_class,
2021         test_hard_reg_class, avr_simplify_comparison_p,
2022         out_shift_with_cnt, class_max_nregs): Likewise.
2023         * config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
2024         output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
2025         preferred_reload_class, test_hard_reg_class): Likewise.
2026         * config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
2027         bfin_memory_move_cost, bfin_secondary_reload,
2028         bfin_output_mi_thunk): Likewise.
2029         * config/crx/crx.c (crx_secondary_reload_class,
2030         crx_memory_move_cost): Likewise.
2031         * config/frv/frv-protos.h (frv_secondary_reload_class,
2032         frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
2033         * config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
2034         frv_secondary_reload_class, frv_class_likely_spilled_p,
2035         frv_class_max_nregs): Likewise.
2036         * config/h8300/h8300.c (h8300_classify_operand,
2037         h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
2038         Likewise.
2039         * config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
2040         * config/ia64/ia64.c (ia64_preferred_reload_class,
2041         ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
2042         * config/iq2000/iq2000.c (gen_int_relational): Likewise.
2043         * config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
2044         Likewise.
2045         * config/m68hc11/m68hc11.c (preferred_reload_class,
2046         m68hc11_memory_move_cost): Likewise.
2047         * config/mcore/mcore.c (mcore_secondary_reload_class,
2048         mcore_reload_class): Likewise.
2049         * config/mips/mips.c (mips_hard_regno_mode_ok_p,
2050         mips_class_max_nregs, mips_cannot_change_mode_class,
2051         mips_preferred_reload_class, mips_secondary_reload_class,
2052         mips_output_mi_thunk): Likewise.
2053         * config/mmix/mmix.c (mmix_preferred_reload_class,
2054         mmix_preferred_output_reload_class, mmix_secondary_reload_class):
2055         Likewise.
2056         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
2057         Likewise.
2058         * config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
2059         pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
2060         * config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2061         * config/rs6000/rs6000.c (paired_expand_vector_init,
2062         rs6000_secondary_reload_class, rs6000_output_mi_thunk,
2063         compare_section_name, rs6000_memory_move_cost): Likewise.
2064         * config/s390/s390.c (s390_emit_compare_and_swap,
2065         s390_preferred_reload_class, s390_secondary_reload,
2066         legitimize_pic_address, legitimize_tls_address,
2067         legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
2068         s390_class_max_nregs): Likewise.
2069         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2070         * config/s390/s390.md: Likewise.
2071         * config/score/score-protos.h (score_secondary_reload_class,
2072         score_preferred_reload_class): Likewise.
2073         * config/score/score.c (score_preferred_reload_class,
2074         score_secondary_reload_class): Likewise.
2075         * config/score/score3.c (score3_output_mi_thunk,
2076         score3_preferred_reload_class, score3_secondary_reload_class,
2077         score3_hard_regno_mode_ok): Likewise.
2078         * config/score/score3.h (score3_preferred_reload_class,
2079         score3_secondary_reload_class): Likewise.
2080         * config/score/score7.c (score7_output_mi_thunk,
2081         score7_preferred_reload_class, score7_secondary_reload_class,
2082         score7_hard_regno_mode_ok): Likewise.
2083         * config/score/score7.h (score7_preferred_reload_class,
2084         score7_secondary_reload_class): Likewise.
2085         * config/sh/sh.c (prepare_move_operands, output_far_jump,
2086         output_branchy_insn, add_constant, gen_block_redirect,
2087         sh_insn_length_adjustment, sh_cannot_change_mode_class,
2088         sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
2089         Likewise.
2090         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2091         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
2092         xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
2093         xstormy16_preferred_reload_class): Likewise.
2094         * config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
2095         xtensa_expand_atomic, override_options,
2096         xtensa_preferred_reload_class, xtensa_secondary_reload_class):
2097         Likewise.
2098         * reorg.c (try_merge_delay_insns): Likewise.
2099         * tree.c (merge_dllimport_decl_attributes): Likewise.
2100
2101         * config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
2102
2103 2008-08-06  Michael Matz  <matz@suse.de>
2104
2105         * Makefile.in (write_entries_to_file): Quote words.
2106         * gengtype.c: (read_input_line): Skip over leading white-space.
2107
2108 2008-08-06  Marc Gauthier  <marc@tensilica.com>
2109
2110         * config.gcc: Match more processor names for Xtensa.
2111         * configure.ac: Likewise.
2112         * doc/install.texi (Specific): Likewise.
2113         * configure: Regenerate.
2114
2115 2008-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2116
2117         * builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
2118         * calls.c (avoid_likely_spilled_reg): Likewise.
2119         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
2120         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
2121         * config/i386/i386.c (ix86_expand_special_args_builtin,
2122         ix86_secondary_reload): Likewise.
2123         * except.c (struct eh_region, gen_eh_region_catch,
2124         remove_unreachable_regions, duplicate_eh_regions,
2125         assign_filter_values, build_post_landing_pads,
2126         sjlj_find_directly_reachable_regions, remove_eh_handler,
2127         reachable_next_level, foreach_reachable_handler,
2128         can_throw_internal_1, can_throw_external_1,
2129         collect_one_action_chain): Likewise.
2130         * expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
2131         * fold-const.c (twoval_comparison_p, eval_subst): Likewise.
2132         * function.c (update_temp_slot_address, instantiate_new_reg,
2133         instantiate_virtual_regs_in_rtx,
2134         instantiate_virtual_regs_in_insn): Likewise.
2135         * gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
2136         * gimplify.c (gimplify_call_expr, gimplify_init_constructor,
2137         gimplify_cleanup_point_expr): Likewise.
2138         * ipa-cp.c (ipcp_lattice_changed): Likewise.
2139         * passes.c (next_pass_1): Likewise.
2140         * print-tree.c (print_node_brief, print_node): Likewise.
2141         * profile.c (branch_prob): Likewise.
2142         * tree-dump.c (dump_register): Likewise.
2143         * tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
2144         Likewise.
2145         * tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
2146         copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
2147         copy_edges_for_bb, copy_cfg_body, copy_tree_r,
2148         copy_arguments_for_versioning, copy_static_chain): Likewise.
2149         * tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
2150         add_new_name_mapping, register_new_name_mapping): Likewise.
2151         * tree-mudflap.c (mf_xform_derefs): Likewise.
2152         * tree-predcom.c (struct chain, dump_chain, replace_ref_with,
2153         get_init_expr, combine_chains): Likewise.
2154         * tree-pretty-print.c (dump_generic_node): Likewise.
2155         * tree-ssa-structalias.c (create_variable_info_for): Likewise.
2156         * tree-vrp.c (simplify_cond_using_ranges): Likewise.
2157         * tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
2158         * value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
2159
2160 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
2161
2162         PR middle-end/37010
2163         * calls.c (expand_call): Use the biggest preferred stack
2164         boundary.
2165
2166 2008-08-06  Michael Matz  <matz@suse.de>
2167
2168         PR target/36613
2169         * reload.c (push_reload): Merge in,out,in_reg,out_reg members
2170         for reused reload, instead of overwriting them.
2171
2172 2008-08-06  H.J. Lu  <hongjiu.lu@intel.com>
2173
2174         PR middle-end/37009
2175         * cfgexpand.c (expand_stack_alignment): Check parm_stack_boundary
2176         for incoming stack boundary.
2177
2178         * function.c (assign_parm_find_entry_rtl): Update
2179         parm_stack_boundary.
2180
2181         * function.h (rtl_data): Add parm_stack_boundary.
2182
2183         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Check
2184         parm_stack_boundary for incoming stack boundary.
2185
2186 2008-08-06  Joseph Myers  <joseph@codesourcery.com>
2187
2188         * jump.c (rtx_renumbered_equal_p): Do not call subreg_regno_offset
2189         for unrepresentable subregs or treat them as equal to other regs
2190         or subregs with the same register number.
2191
2192 2008-08-06  Aldy Hernandez  <aldyh@redhat.com>
2193
2194         PR middle-end/35432
2195         * gimplify.c (gimplify_modify_expr): Do not optimize zero-sized types
2196         if want_value.
2197
2198 2008-08-06  Jan Hubicka  <jh@suse.cz>
2199
2200         * predict.c (maybe_hot_frequency_p): When profile is absent, all
2201         frequencies might be hot.
2202
2203 2008-08-06  Andreas Krebbel  <krebbel1@de.ibm.com>
2204
2205         * reload.c (find_reloads): Force constants into literal pool
2206         also if they are wrapped in a SUBREG.
2207
2208 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2209
2210         PR target/35659
2211         * haifa-sched.c (sched_insn_is_legitimate_for_speculation_p): Move ...
2212         * sched-deps.c (sched_insn_is_legitimate_for_speculation_p): ... here.
2213         Don't allow predicated instructions for data speculation.
2214         * sched-int.h (sched_insn_is_legitimate_for_speculation_p): Move
2215         declaration.
2216
2217 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2218
2219         * haifa-sched.c (extend_global): Split to extend_global_data and
2220         extend_region_data.  Update all uses.
2221         (extend_all): Rename to extend_block_data.
2222
2223 2008-08-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2224
2225         * sched-rgn.c (new_ready): Check if instruction can be
2226         speculatively scheduled before attempting speculation.
2227         (debug_rgn_dependencies): Remove wrongful assert.
2228
2229 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
2230
2231         * config/xtensa/t-xtensa: Remove dependency for gt-xtensa.h.
2232         
2233 2008-08-05  Bob Wilson  <bob.wilson@acm.org>
2234         
2235         * config/xtensa/xtensa.c (xtensa_va_start): Unshare valist.
2236         (xtensa_gimplify_va_arg_expr): Unshare valist, orig_ndx, ndx, array,
2237         va_size, and type_size.
2238         
2239 2008-08-04  Jason Merrill  <jason@redhat.com>
2240
2241         PR c++/37016
2242         * tree-ssa.c (useless_type_conversion_p_1): Call langhook
2243         if TYPE_STRUCTURAL_EQUALITY_P is true for both types.
2244
2245 2008-08-05  Richard Henderson  <rth@redhat.com>
2246
2247         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Check .cfi_personality.
2248         * configure: Rebuild.
2249
2250 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2251
2252         PR tree-opt/37024
2253         * tree-tailcall.c (process_assignment): Use gimple_assign_cast_p
2254         instead of IS_CONVERT_EXPR_CODE_P for seeing if the assignment
2255         is a conversion.
2256
2257 2008-08-05  Richard Henderson  <rth@redhat.com>
2258
2259         * Makefile.in (c-cppbuiltin.o): Depend on debug.h.
2260         * c-cppbuiltin.c (c_cpp_builtins): Define __GCC_HAVE_DWARF2_CFI_ASM.
2261         * doc/cpp.texi (__GCC_HAVE_DWARF2_CFI_ASM): Document it.
2262         * common.opt (fdwarf2-cfi-asm): New.
2263         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): New.
2264         * config.in, configure: Rebuild.
2265         * dwarf2asm.c (dw2_asm_output_data_raw): New.
2266         (dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_sleb128_raw): New.
2267         (dw2_force_const_mem): Externalize.
2268         * dwarf2asm.h: Update.
2269         * dwarf2out.c (dwarf2out_cfi_label): If flag_dwarf2_cfi_asm, don't
2270         generate a real label.
2271         (output_cfi_directive): New.
2272         (add_fde_cfi): If flag_dwarf2_cfi_asm, use it.
2273         (output_call_frame_info): Do nothing if flag_dwarf2_cfi_asm.
2274         (dwarf2out_begin_prologue): Emit .cfi_startproc, .cfi_personality,
2275         and .cfi_lsda.
2276         (dwarf2out_end_epilogue): Emit .cfi_endproc.
2277         (output_loc_operands_raw, output_loc_sequence_raw): New.
2278         (output_cfa_loc_raw): New.
2279         
2280 2008-08-05  Paul Brook  <paul@codesourcery.com>
2281
2282         * doc/invoke.texi: Document new ARM -mfpu= and -mcpu= options.
2283         * config/arm/arm.c (all_fpus): Add vfpv3 and vfpv3-d16.
2284         (fp_model_for_fpu): Add entry for FPUTYPE_VFP3D16.
2285         (arm_file_start): Add FPUTYPE_VFP3D16.  Rename vfp3 to vfpv3.
2286         * config/arm/arm.h (TARGET_VFPD32): Define.
2287         (TARGET_VFP3): Use TARGET_VFPD32.
2288         (fputype): Add FPUTYPE_VFP3D16.
2289         (LAST_VFP_REGNUM): Use TARGET_VFPD32.
2290         * config/arm/constraints.md ("w"): Use TARGET_VFPD32.
2291         * config/arm/arm-cores.def: Add cortex-r4f.
2292         * config/arm/arm-tune.md: Regenerate.
2293
2294 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2295
2296         * config/spu_spu_mfcio.h: Wrap in extern "C" if __cplusplus.
2297         Reword some comments throughout the file.
2298
2299         (MFC_MIN_DMA_LIST_ELEMENTS): New define.
2300         (MFC_MAX_DMA_LIST_ELEMENTS): Likewise.
2301         (MFC_MIN_DMA_LIST_SIZE): Redefine in terms of MFC_MIN_DMA_LIST_ELEMENTS.
2302         (MFC_MAX_DMA_LIST_SIZE): Redefine in terms of MFC_MAX_DMA_LIST_ELEMENTS.
2303
2304         (MFC_START_ENABLE): Remove PPU-only define.
2305         (MFC_PUTS_CMD, MFC_PUTFS_CMD, MFC_PUTBS_CMD): Likewise.
2306         (MFC_GETS_CMD, MFC_GETFS_CMD, MFC_GETBS_CMD): Likewise.
2307
2308         (MFC_PUTB_CMD, MFC_PUTF_CMD): Reimplement using symbolic constants.
2309         (MFC_PUTL_CMD, MFC_PUTLB_CMD, MFC_PUTLF_CMD): Likewise.
2310         (MFC_PUTR_CMD, MFC_PUTRB_CMD, MFC_PUTRF_CMD): Likewise.
2311         (MFC_PUTRL_CMD, MFC_PUTRLB_CMD, MFC_PUTRLF_CMD): Likewise.
2312         (MFC_GETB_CMD, MFC_GETF_CMD): Likewise.
2313         (MFC_GETL_CMD, MFC_GETLB_CMD, MFC_GETLF_CMD): Likewise.
2314         (MFC_SNDSIGB_CMD, MFC_SNDSIGF_CMD): Likewise.
2315
2316         (MFC_SDCRT_CMD, MFC_SDCRTST_CMD): New defines.
2317         (MFC_SDCRZ_CMD, MFC_SDCRST_CMD, MFC_SDCRF_CMD): Likewise.
2318         (mfc_sdcrt, mfc_sdcrtst): Likewise.
2319         (mfc_sdcrz, mfc_sdcrst, mfc_sdcrf): Likewise.
2320
2321         (spu_read_machine_status): Fix typo.
2322
2323 2008-08-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2324
2325         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Allow (multi)word-sized
2326         SUBREG of multi-word hard register.
2327         * config/spu/spu.c (valid_subreg): Likewise.
2328         (adjust_operand): Handle SUBREGs of multi-word hard registers.
2329
2330 2008-08-04  Richard Guenther  <rguenther@suse.de>
2331
2332         * tree-ssa-loop-ivopts.c (add_iv_value_candidates): Also add
2333         the candidate with the stripped base if that base is different
2334         from the original base even for offset zero.
2335
2336 2008-08-04  Richard Guenther  <rguenther@suse.de>
2337
2338         PR middle-end/36691
2339         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Correctly
2340         check for no_overflow.
2341
2342 2008-08-04  Richard Guenther  <rguenther@suse.de>
2343
2344         * tree-vect-transform.c (vectorizable_call): Fix tuplification.
2345
2346 2008-08-04  Paul Brook  <paul@codesourcery.com>
2347
2348         * cofig/arm/arm.c (thumb_core_reg_alloc_order): New.
2349         (arm_order_regs_for_local_alloc): New function.
2350         * config/arm/arm-protos.h (arm_order_regs_for_local_alloc): Add
2351         prototype.
2352         * config/arm/arm.h (ORDER_REGS_FOR_LOCAL_ALLOC): Define.
2353
2354 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
2355
2356         PR target/37012
2357         * config/i386/i386.c (ix86_expand_prologue): Use UNITS_PER_WORD
2358         instead of STACK_BOUNDARY / BITS_PER_UNIT to align stack.
2359         (ix86_expand_epilogue): Likewise.
2360
2361 2008-08-04  H.J. Lu  <hongjiu.lu@intel.com>
2362
2363         * config/i386/i386.c (ix86_compute_frame_layout): Fix a typo
2364         in comments.
2365
2366 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
2367
2368         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use Yi instead of x
2369         to avoid inter-unit moves for !TARGET_INTER_UNIT_MOVES.
2370         (*movv2sf_internal_rex64): Ditto.
2371
2372 2008-08-03  Jan Hubicka  <jh@suse.cz>
2373
2374         * optabs.c (expand_binop, expand_builtin_pow, expand_builtin_powi,
2375         expand_builtin_strcat): Upse optimize_insn_for_speed predicate.
2376         * expmed.c (expand_smod_pow2): Likewise.
2377
2378 2008-08-03  Uros Bizjak  <ubizjak@gmail.com>
2379
2380         PR target/36992
2381         * config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
2382         alternative 0 of operand 1.
2383         (*vec_concatv2di_rex64_sse): Ditto.
2384         (*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
2385         of operand 1.
2386         (*sse2_storeq_rex64): Penalize allocation of "r" registers.
2387         * config/i386/mmx.md (*mov<mode>_internal_rex64): Penalize allocation
2388         of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
2389         (*movv2sf_internal_rex64): Ditto.
2390
2391 2008-08-02  Richard Guenther  <rguenther@suse.de>
2392
2393         PR target/35252
2394         * config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
2395         (ssedoublesizemode): New mode attribute.
2396         (sse_shufps): Call gen_sse_shufps_v4sf.
2397         (sse_shufps_1): Macroize.
2398         (sse2_shufpd): Call gen_Sse_shufpd_v2df.
2399         (sse2_shufpd_1): Macroize.
2400         (vec_extract_odd, vec_extract_even): New expanders.
2401         (vec_interleave_highv4sf, vec_interleave_lowv4sf,
2402         vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
2403         * i386.c (ix86_expand_vector_init_one_nonzero): Call
2404         gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
2405         (ix86_expand_vector_set): Likewise.
2406         (ix86_expand_reduc_v4sf): Likewise.
2407
2408 2008-08-01  Doug Kwan  <dougkwan@google.com>
2409
2410         * matrix-reorg.c: Re-enable all code.
2411         (struct malloc_call_data): Change CALL_STMT to gimple type.
2412         (collect_data_for_malloc_call): Tuplify.
2413         (struct access_site_info): Change STMT to gimple type.
2414         (struct matrix_info): Change MIN_INDIRECT_LEVEL_ESCAPE_STMT,
2415         and MALLOC_FOR_LEVEL to gimple and gimple pointer type.
2416         (struct free_info): Change STMT to gimple type.
2417         (struct matrix_access_phi_node):  Change PHI to gimple type.
2418         (get_inner_of_cast_expr): Remove.
2419         (may_flatten_matrices_1): Tuplify.
2420         (may_flatten_matrices): Ditto.
2421         (mark_min_matrix_escape_level): Ditto.
2422         (ssa_accessed_in_tree): Refactor statement RHS related code into ...
2423         (ssa_accessed_in_call_rhs): New
2424         (ssa_accessed_in_assign_rhs): New
2425         (record_access_alloc_site_info): Tuplify.
2426         (add_allocation_site): Ditto.
2427         (analyze_matrix_allocation_site): Ditto.
2428         (analyze_transpose): Ditto.
2429         (get_index_from_offset): Ditto.
2430         (update_type_size): Ditto.
2431         (analyze_accesses_for_call_expr): Tuplify and renamed into ...
2432         (analyze_accesses_for_call_stmt): New. Also handle LHS of a call.
2433         (analyze_accesses_for_phi_node): Tuplify.
2434         (analyze_accesses_for_modify_stmt): Tuplify and renamed into ...
2435         (analyze_accesses_for_assign_stmt): Remove code for handling call LHS.
2436         (analyze_matrix_accesses): Tuplify.
2437         (check_var_data): New call-back type for check_var_notmodified_p.
2438         (check_var_notmodified_p): Tuplify and use call-back struct to
2439         return statement found.
2440         (can_calculate_expr_before_stmt): Factor out statement related code
2441         into ...
2442         (can_calculate_stmt_before_stmt): New.
2443         (check_allocation_function): Tuplify.
2444         (find_sites_in_func): Ditto.
2445         (record_all_accesses_in_func): Ditto.
2446         (transform_access_sites): Ditto.
2447         (transform_allocation_sites): Ditto.
2448         (matrix_reorg): Re-enable.
2449         (gate_matrix_reorg): Re-enable.
2450
2451 2008-08-01  Jakub Jelinek  <jakub@redhat.com>
2452
2453         * dwarf2out.c (compute_barrier_args_size): Set barrier_args_size
2454         for labels for which it hasn't been set yet.  If it has been set,
2455         stop walking insns and continue with next worklist item.
2456         (dwarf2out_stack_adjust): Don't call compute_barrier_args_size
2457         if the only BARRIER is at the very end of a function.
2458
2459 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2460
2461         * cfgexpand.c (expand_stack_alignment): Assert that
2462         stack_realign_drap and drap_rtx must match.
2463
2464         * function.c (instantiate_new_reg): If DRAP is used to realign
2465         stack, replace virtual_incoming_args_rtx with internal arg
2466         pointer.
2467
2468 2008-08-01  Richard Guenther  <rguenther@suse.de>
2469
2470         * tree-ssa-pre.c (fini_pre): Take in_fre parameter.  Free
2471         loop information only if we initialized it.
2472         (execute_pre): Call fini_pre with in_fre.
2473         * tree-ssa-loop-ivcanon (try_unroll_loop_completely): Dump
2474         if we do not unroll because we hit max-completely-peeled-insns.
2475         Use our estimation for consistency, do allow shrinking.
2476
2477 2008-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2478
2479         * config/i386/i386.c (override_options): Replace ABI_STACK_BOUNDARY
2480         with MIN_STACK_BOUNDARY.
2481         (ix86_update_stack_boundary): Likewise.
2482         (ix86_expand_prologue): Assert MIN_STACK_BOUNDARY instead of
2483         STACK_BOUNDARY.
2484
2485         * config/i386/i386.h (ABI_STACK_BOUNDARY): Renamed to ...
2486         (MIN_STACK_BOUNDARY): This.
2487
2488 2008-08-01  Richard Guenther  <rguenther@suse.de>
2489
2490         PR middle-end/36997
2491         * gimplify.c (gimplify_call_expr): Set error_mark_node on GS_ERROR.
2492
2493 2008-08-01  Richard Guenther  <rguenther@suse.de>
2494
2495         PR tree-optimization/36988
2496         * tree-ssa-ccp.c (ccp_fold): Conversions of constants only
2497         do not matter if that doesn't change volatile qualification.
2498
2499 2008-08-01  Paolo Bonzini  <bonzini@gnu.org>
2500
2501         * configure.ac: Do not generate libada-mk.  Do not subst
2502         host_cc_for_libada.
2503         * libada-mk.in: Remove.
2504         * Makefile.in: Pass TARGET_LIBGCC2_CFLAGS to libgcc.mvars.
2505         * configure: Regenerate.
2506
2507 2008-08-01  Basile Starynkevitch  <basile@starynkevitch.net>
2508
2509         * tree-pass.h: Added comment about not dumping passes with name
2510         starting with star in struct opt_pass.
2511         * passes.c (register_dump_files_1): Don't do dump for a pass with
2512         name starting with star.
2513         * doc/passes.texi (Pass manager): Mention pass names and special
2514         meaning of star prefix to avoid dump.
2515
2516 2008-07-31  Adam Nemet  <anemet@caviumnetworks.com>
2517
2518         * config.gcc (mipsisa64r2*-*-linux*): New configuration.  Set ISA
2519         to MIPS64r2.
2520         * config/mips/mips.h (GENERATE_MIPS16E): Update comment.
2521         (ISA_MIPS64R2): New macro.
2522         (TARGET_CPU_CPP_BUILTINS, MULTILIB_ISA_DEFAULT): Handle it.
2523         (ISA_HAS_64BIT_REGS, ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE,
2524         ISA_HAS_8CC, ISA_HAS_FP4, ISA_HAS_PAIRED_SINGLE,
2525         ISA_HAS_MADD_MSUB, ISA_HAS_NMADD4_NMSUB4, ISA_HAS_CLZ_CLO,
2526         ISA_HAS_ROR, ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX, ISA_HAS_SEB_SEH,
2527         ISA_HAS_EXT_INS, ISA_HAS_MXHC1, ISA_HAS_HILO_INTERLOCKS,
2528         ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Return true for ISA_MIPS64R2.
2529         (MIPS_ISA_LEVEL_SPEC, ASM_SPEC, LINK_SPEC): Handle -mips64r2.
2530         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF):
2531         Move up to keep list alphabetically sorted.
2532         (TUNE_20KC, TUNE_24K, TUNE_74K, TUNE_LOONGSON_2EF): Likewise.
2533         * config/mips/mips.c (mips_cpu_info_table): Add default MIPS64r2
2534         processor.
2535         * doc/invoke.texi (MIPS Options): Add -mips64r2.
2536         (-march=@var{arch}): Add mips64r2.
2537
2538 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2539
2540         * config/i386/darwin.h (MAIN_STACK_BOUNDARY): Define to 128.
2541
2542 2008-07-31  Steve Ellcey  <sje@cup.hp.com>
2543
2544         * expr.c (expand_assignment): Check for complete type.
2545
2546 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2547
2548         PR debug/36977
2549         * cfgexpand.c (expand_stack_alignment): Set stack_realign_tried.
2550
2551         * dwarf2out.c (based_loc_descr): Check crtl->stack_realign_tried
2552         for stack alignment.
2553
2554         * function.h (rtl_data): Add stack_realign_tried.  Update comments.
2555
2556 2008-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2557
2558         * config/sh/sh.c (sh_canonical_va_list_type): Remove.
2559         (TARGET_CANONICAL_VA_LIST_TYPE): Remove.
2560
2561 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
2562
2563         PR rtl-optimization/36419
2564         * dwarf2out.c (barrier_args_size): New variable.
2565         (compute_barrier_args_size, compute_barrier_args_size_1): New
2566         functions.
2567         (dwarf2out_stack_adjust): For BARRIERs call compute_barrier_args_size
2568         if not called yet in the current function, use barrier_args_size
2569         array to find the new args_size value.
2570         (dwarf2out_frame_debug): Free and clear barrier_args_size.
2571
2572 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2573
2574         PR debug/36980
2575         * dwarf2out.c (dwarf2out_frame_debug_expr): Move rule 17 before
2576         rule 19.
2577
2578 2008-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2579
2580         PR debug/36976
2581         * dwarf2out.c (dwarf2out_args_size_adjust): New.
2582         (dwarf2out_stack_adjust): Use it.
2583         (dwarf2out_frame_debug_expr): Likewise.
2584
2585 2008-07-31  Richard Guenther  <rguenther@suse.de>
2586
2587         PR tree-optimization/36978
2588         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Do not fold
2589         the generated condition.
2590
2591 2008-07-31  Richard Guenther  <rguenther@suse.de>
2592
2593         * passes.c (init_optimization_passes): Always call
2594         pass_early_warn_uninitialized.
2595         * opts.c (decode_options): Do not warn about -Wuninitialized at -O0.
2596         * doc/invoke.texi (-Wuninitialized): Correct for enabling at -O0.
2597         * doc/passes.texi (Warn for uninitialized variables): Adjust.
2598
2599 2008-07-31  Jakub Jelinek  <jakub@redhat.com>
2600
2601         PR c/36970
2602         * builtins.c (maybe_emit_free_warning): New function.
2603         (expand_builtin): Process BUILT_IN_FREE even at -O0.  Call
2604         maybe_emit_free_warning for BUILT_IN_FREE.
2605
2606         PR debug/36278
2607         * dwarf2out.c (get_context_die): New function.
2608         (force_decl_die, force_type_die): Use it.
2609         (dwarf2out_imported_module_or_decl): Likewise.  If base_type_die
2610         returns NULL, force generation of DW_TAG_typedef and put that into
2611         DW_AT_import.
2612
2613         PR preprocessor/36649
2614         * c-pch.c (c_common_read_pch): Save and restore
2615         line_table->trace_includes across PCH restore.
2616
2617 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
2618
2619         PR ada/36554
2620         * dwarf2out.c (is_subrange_type): Deal with BOOLEAN_TYPE.
2621
2622 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
2623
2624         PR 36974
2625         * final.c (call_from_call_insn): Handle COND_EXEC.
2626
2627 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2628
2629         * builtins.c (std_gimplify_va_arg_expr): Replace
2630         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
2631         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
2632
2633 2008-07-30  Joey Ye  <joey.ye@intel.com>
2634             H.J. Lu  <hongjiu.lu@intel.com>
2635
2636         * builtins.c (expand_builtin_setjmp_receiver): Replace
2637         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
2638         (expand_builtin_apply_args_1): Likewise.
2639         (expand_builtin_longjmp): Need DRAP for stack alignment.
2640         (expand_builtin_apply): Likewise.
2641
2642         * caller-save.c (setup_save_areas): Call assign_stack_local_1
2643         instead of assign_stack_local to allow alignment reduction.
2644
2645         * calls.c (emit_call_1): Need DRAP for stack alignment if
2646         return pops.
2647         (expand_call): Replace virtual_incoming_args_rtx with
2648         crtl->args.internal_arg_pointer.
2649         * stmt.c (expand_nl_goto_receiver): Likewise.
2650
2651         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
2652         alignment and store to stack_alignment_estimated and
2653         max_used_stack_slot_alignment.
2654         (expand_one_var): Likewise.
2655         (expand_stack_alignment): New function.
2656         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
2657         and stack_alignment_estimated fields in rtl_data.  Call
2658         expand_stack_alignment at end.
2659
2660         * defaults.h (INCOMING_STACK_BOUNDARY): New.
2661         (MAX_STACK_ALIGNMENT): Likewise.
2662         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
2663         (SUPPORTS_STACK_ALIGNMENT): Likewise.
2664
2665         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
2666         stack alignment when generating virtual registers.
2667
2668         * function.c (assign_stack_local): Renamed to ...
2669         (assign_stack_local_1): This.  Add a parameter to indicate
2670         if it is OK to reduce alignment.
2671         (assign_stack_local): Use it.
2672         (instantiate_new_reg): Instantiate virtual incoming args rtx
2673         to vDRAP if stack realignment and DRAP is needed.
2674         (assign_parms): Collect parameter/return type alignment and
2675         contribute to stack_alignment_estimated.
2676         (locate_and_pad_parm): Likewise.
2677         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
2678         with crtl->args.internal_arg_pointer.
2679
2680         * function.h (rtl_data): Add new field drap_reg,
2681         max_used_stack_slot_alignment, stack_alignment_estimated,
2682         stack_realign_needed, need_drap, stack_realign_processed and
2683         stack_realign_finalized.
2684         (stack_realign_fp): New macro.
2685         (stack_realign_drap): Likewise.
2686
2687         * global.c (compute_regsets): Frame pointer is needed when
2688         stack is realigned.  Can eliminate frame pointer when stack is
2689         realigned and dynamic realigned argument pointer isn't used.
2690
2691         * reload1.c (update_eliminables):  Frame pointer is needed
2692         when stack is realigned.
2693         (init_elim_table): Can eliminate frame pointer when stack is
2694         realigned and dynamic realigned argument pointer isn't used.
2695
2696         * rtl.h (assign_stack_local_1): Declare new funtion.
2697
2698         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
2699         (TARGET_GET_DRAP_RTX): Likewise.
2700         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
2701         TARGET_GET_DRAP_RTX.
2702
2703         * target.h (gcc_target): Add update_stack_boundary and get_drap_rtx.
2704
2705         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
2706         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
2707
2708 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
2709             H.J. Lu  <hongjiu.lu@intel.com>
2710
2711         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
2712         vdrap_reg, stack_realign and drap_reg_saved.
2713         (add_cfi): Don't allow redefining CFA when DRAP is used.
2714         (reg_save): Handle stack alignment.
2715         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
2716         alignment.  Don't generate DWARF information for (set fp sp)
2717         when DRAP is used.
2718         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
2719         to INVALID_REGNUM.
2720         (int_loc_descriptor): Move prototype forward.  Also define if
2721         DWARF2_UNWIND_INFO is true.
2722         (output_cfa_loc): Handle DW_CFA_expression.
2723         (build_cfa_aligned_loc): New.
2724         (based_loc_descr): Update assert for stack realign.  For local
2725         variables, use sp+offset when stack is aligned without drap and
2726         fp+offset when stack is aligned with drap.  For arguments, use
2727         cfa+offset when drap is used to align stack.
2728
2729 2008-07-30  Joey Ye  <joey.ye@intel.com>
2730             H.J. Lu  <hongjiu.lu@intel.com>
2731
2732         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
2733         Break long line.
2734         (ix86_gen_andsp): New.
2735         (ix86_user_incoming_stack_boundary): Likewise.
2736         (ix86_default_incoming_stack_boundary): Likewise.
2737         (ix86_incoming_stack_boundary): Likewise.
2738         (ix86_can_eliminate): Likewise.
2739         (find_drap_reg): Likewise.
2740         (ix86_update_stack_boundary): Likewise.
2741         (ix86_get_drap_rtx): Likewise.
2742         (ix86_finalize_stack_realign_flags): Likewise.
2743         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
2744         (TARGET_GET_DRAP_RTX): Likewise.
2745         (override_options): Overide option value for new options.
2746         (ix86_function_ok_for_sibcall): Remove check for
2747         force_align_arg_pointer.
2748         (ix86_handle_cconv_attribute): Likewise.
2749         (ix86_function_regparm): Likewise.
2750         (setup_incoming_varargs_64): Don't set stack_alignment_needed here.
2751         (ix86_va_start): Replace virtual_incoming_args_rtx with
2752         crtl->args.internal_arg_pointer.
2753         (ix86_select_alt_pic_regnum): Check DRAP register.
2754         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
2755         (ix86_compute_frame_layout): Compute frame layout wrt stack
2756         realignment.
2757         (ix86_internal_arg_pointer): Just return virtual_incoming_args_rtx.
2758         (ix86_expand_prologue): Decide if stack realignment is needed
2759         and generate prologue code accordingly.
2760         (ix86_expand_epilogue): Generate epilogue code wrt stack
2761         realignment is really needed or not.
2762         
2763         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
2764         (ABI_STACK_BOUNDARY): Likewise.
2765         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
2766         (STACK_REALIGN_DEFAULT): Likewise.
2767         (INCOMING_STACK_BOUNDARY): Likewise.
2768         (MAX_STACK_ALIGNMENT): Likewise.
2769         (ix86_incoming_stack_boundary): Likewise.
2770         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
2771         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
2772         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
2773         (machine_function): Remove force_align_arg_pointer.
2774
2775         * config/i386/i386.md (BX_REG): New.
2776         (R13_REG): Likewise.
2777
2778         * config/i386/i386.opt (mforce_drap): New.
2779         (mincoming-stack-boundary): Likewise.
2780         (mstackrealign): Add Init(-1).
2781
2782         * config/i386/i386-protos.h (ix86_can_eliminate): New
2783
2784 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2785
2786         * doc/extend.texi: Update force_align_arg_pointer.
2787
2788         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
2789         -mstackrealign.
2790
2791         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
2792         (INCOMING_STACK_BOUNDARY): Likewise.
2793         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
2794         (TARGET_GET_DRAP_RTX): Likewise.
2795
2796 2008-07-30  Andreas Schwab  <schwab@suse.de>
2797
2798         PR rtl-optimization/36929
2799         * dse.c (replace_inc_dec): Use emit_insn_before instead of
2800         add_insn_before and fix argument order.
2801         (replace_inc_dec_mem): Handle NULL rtx.
2802
2803 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
2804
2805         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
2806         function.
2807         (arm_compute_initial_elimination_offset): Use it.
2808         (arm_compute_save_reg_mask): Include static chain save slot when
2809         calculating alignment.
2810         (arm_get_frame_offsets): Ditto.
2811         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
2812         that we can use to decrement the stack when the stack decrement
2813         could be too big for an immediate value in a single insn.
2814         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
2815
2816 2008-07-30  Richard Guenther  <rguenther@suse.de>
2817
2818         PR tree-optimization/36967
2819         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
2820         Release defs of statements we remove.
2821
2822 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
2823
2824         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
2825         instead of NULL_RTVEC.
2826
2827 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
2828
2829         PR target/35866
2830
2831         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
2832         vector modes.
2833
2834 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
2835
2836         * final.c (call_from_call_insn): New.
2837         (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
2838
2839 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
2840
2841         * configure.ac: Substitute ADA_CFLAGS.
2842         * configure: Regenerate.
2843         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
2844         * Makefile.in: Remove mention of X_* variables.
2845         * config/pa/x-ada-hpux10: Remove.
2846         * config/pa/x-ada: Remove.
2847
2848         * doc/fragments.texi: Update.
2849
2850 2008-07-30  Olivier Hainque  <hainque@adacore.com>
2851
2852         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
2853         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
2854         __dso_handle explicitly here.
2855
2856 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2857
2858         PR 34389
2859         * c-typeck.c (build_binary_op): Encapsulate code into...
2860         * c-common.c (shorten_binary_op): ...this new function.
2861         (conversion_warning): Use the new function. Handle non-negative
2862         constant in bitwise-and.
2863         * c-common.h (shorten_binary_op): Declare.
2864
2865 2008-07-30  Olivier Hainque  <hainque@adacore.com>
2866
2867         * scan.c (make_sstring_space): Add explicit conversions of
2868         allocator's return value.
2869         * fix-header.c (recognized_function): Likewise.
2870
2871 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2872
2873         * doc/cpp.texi: Update to GFDL 1.2.
2874         * doc/gcc.texi: Do not list GPL as Invariant Section.
2875         * doc/gccint.texi: Likewise.  Update copyright years.
2876         * doc/install.texi: Update copyright years.
2877
2878 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
2879
2880         PR target/36955
2881         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
2882         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
2883
2884 2008-07-29  Jan Hubicka  <jh@suse.cz>
2885
2886         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
2887         (grokdeclarator): Likewise.
2888         * langhooks.c (lhd_warn_unused_global_decl): Use
2889         DECL_DECLARED_INLINE_P.
2890         * print-tree.c (print_node): Remove DECL_INLINE check.
2891
2892 2008-07-29  Richard Guenther  <rguenther@suse.de>
2893
2894         PR tree-optimization/36945
2895         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
2896         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
2897         Record invariant addresses un-decomposed.
2898         (copy_reference_ops_from_call): Record reference call
2899         arguments properly.  Simplify.
2900         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
2901         helper split out from ...
2902         (create_component_ref_by_pieces): ... here.  Simplify.
2903         Prepare for recursive invocation for call arguments.
2904         (create_expression_by_pieces): Adjust call to
2905         create_component_ref_by_pieces.
2906         (compute_avail): Process operand 2 of reference ops.
2907
2908 2008-07-29  Richard Guenther  <rguenther@suse.de>
2909
2910         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for OBJ_TYPE_REF.
2911
2912 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
2913
2914         * c-format.c (check_format_types): Revert unwanted checkin.
2915
2916 2008-07-29  Jan Hubicka  <jh@suse.cz>
2917
2918         * flags.h (flag_really_no_inline): Remove.
2919         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
2920         * toplev.c (flag_really_no_inline): Remove.
2921         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
2922         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
2923         (cgraph_decide_inlining_incrementally): Likewise.
2924         (compute_inline_parameters): Likewise.
2925         * opts.c (decode_options): Simplify.
2926         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
2927         * common.opt (finline): Initialize to 1.
2928         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
2929
2930 2008-07-29  Jan Hubicka  <jh@suse.cz>
2931
2932         * predict.c (always_optimize_for_size_p): New function.
2933         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2934         optimize_edge_for_size_p, optimize_edge_for_speed_p,
2935         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
2936         functions.
2937         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
2938         * function.c (prepare_function_start): Set default profile.
2939         * function.h (rtl_data): Add maybe_hot_insn_p.
2940         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
2941         (construct_exit_block): Likewise.
2942         (tree_expand_cfg): Likewise.
2943         * basic-block.h
2944         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
2945         optimize_edge_for_size_p, optimize_edge_for_speed_p,
2946         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
2947         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
2948         Declare.
2949
2950 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2951
2952         PR 34985
2953         * c-decl.c (merge_decls): Merge USED flags.
2954
2955 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2956
2957         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
2958         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
2959         next_stack, lab_false and lab_over trees.
2960
2961 2008-07-28  Richard Guenther  <rguenther@suse.de>
2962
2963         PR tree-optimization/36957
2964         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
2965         (useless_type_conversion_p): Remove.
2966         (types_compatible_p): Remove.
2967         * gimple.h (tree_ssa_useless_type_conversion): Declare.
2968         (useless_type_conversion_p): Declare.
2969         (types_compatible_p): Declare.
2970         (gimple_expr_type): Return the base type only if it is
2971         trivially convertible to the subtype.
2972
2973 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
2974
2975         * configure.ac: Use the m4_do macro to concatenate the warnings into
2976         one string in ACX_PROG_CC_WARNING_OPTS,
2977         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
2978         * configure: Regenerate.
2979
2980 2008-07-28  Richard Guenther  <rguenther@suse.de>
2981
2982         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
2983         (insert_fake_stores): Remove.
2984         (realify_fake_stores): Likewise.
2985         (execute_pre): Remove dead code.
2986         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary case.
2987         (find_func_aliases): Deal with it here instead.
2988         Re-enable gcc_unreachable call.
2989
2990 2008-07-28  Richard Guenther  <rguenther@suse.de>
2991
2992         Merge from gimple-tuples-branch.
2993
2994         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
2995         * gimple.def: New file.
2996         * gsstruct.def: Likewise.
2997         * gimple-iterator.c: Likewise.
2998         * gimple-pretty-print.c: Likewise.
2999         * tree-gimple.c: Removed.  Merged into ...
3000         * gimple.c: ... here.  New file.
3001         * tree-gimple.h: Removed.  Merged into ...
3002         * gimple.h: ... here.  New file.
3003
3004         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
3005         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
3006         --enable-checking=gimple flag.
3007         * config.in: Likewise.
3008         * configure: Regenerated.
3009
3010         * tree-ssa-operands.h: Tuplified.
3011         * tree-vrp.c: Likewise.
3012         * tree-loop-linear.c: Likewise.
3013         * tree-into-ssa.c: Likewise.
3014         * tree-ssa-loop-im.c: Likewise.
3015         * tree-dump.c: Likewise.
3016         * tree-complex.c: Likewise.
3017         * cgraphbuild.c: Likewise.
3018         * tree-ssa-threadupdate.c: Likewise.
3019         * tree-ssa-loop-niter.c: Likewise.
3020         * tree-pretty-print.c: Likewise.
3021         * tracer.c: Likewise.
3022         * gengtype.c: Likewise.
3023         * tree-loop-distribution.c: Likewise.
3024         * tree-ssa-loop-unswitch.c: Likewise.
3025         * cgraph.c: Likewise.
3026         * cgraph.h: Likewise.
3027         * tree-ssa-loop-manip.c: Likewise.
3028         * value-prof.c: Likewise.
3029         * tree-ssa-loop-ch.c: Likewise.
3030         * tree-tailcall.c: Likewise.
3031         * value-prof.h: Likewise.
3032         * tree.c: Likewise.
3033         * tree.h: Likewise.
3034         * tree-pass.h: Likewise.
3035         * ipa-cp.c: Likewise.
3036         * tree-scalar-evolution.c: Likewise.
3037         * tree-scalar-evolution.h: Likewise.
3038         * target.h: Likewise.
3039         * lambda-mat.c: Likewise.
3040         * tree-phinodes.c: Likewise.
3041         * diagnostic.h: Likewise.
3042         * builtins.c: Likewise.
3043         * tree-ssa-alias-warnings.c: Likewise.
3044         * cfghooks.c: Likewise.
3045         * fold-const.c: Likewise.
3046         * cfghooks.h: Likewise.
3047         * omp-low.c: Likewise.
3048         * tree-ssa-dse.c: Likewise.
3049         * ipa-reference.c: Likewise.
3050         * tree-ssa-uncprop.c: Likewise.
3051         * toplev.c: Likewise.
3052         * tree-gimple.c: Likewise.
3053         * tree-gimple.h: Likewise.
3054         * tree-chrec.c: Likewise.
3055         * tree-chrec.h: Likewise.
3056         * tree-ssa-sccvn.c: Likewise.
3057         * tree-ssa-sccvn.h: Likewise.
3058         * cgraphunit.c: Likewise.
3059         * tree-ssa-copyrename.c: Likewise.
3060         * tree-ssa-ccp.c: Likewise.
3061         * tree-ssa-loop-ivopts.c: Likewise.
3062         * tree-nomudflap.c: Likewise.
3063         * tree-call-cdce.c: Likewise.
3064         * ipa-pure-const.c: Likewise.
3065         * c-format.c: Likewise.
3066         * tree-stdarg.c: Likewise.
3067         * tree-ssa-math-opts.c: Likewise.
3068         * tree-ssa-dom.c: Likewise.
3069         * tree-nrv.c: Likewise.
3070         * tree-ssa-propagate.c: Likewise.
3071         * ipa-utils.c: Likewise.
3072         * tree-ssa-propagate.h: Likewise.
3073         * tree-ssa-alias.c: Likewise.
3074         * gimple-low.c: Likewise.
3075         * tree-ssa-sink.c: Likewise.
3076         * ipa-inline.c: Likewise.
3077         * c-semantics.c: Likewise.
3078         * dwarf2out.c: Likewise.
3079         * expr.c: Likewise.
3080         * tree-ssa-loop-ivcanon.c: Likewise.
3081         * predict.c: Likewise.
3082         * tree-ssa-loop.c: Likewise.
3083         * tree-parloops.c: Likewise.
3084         * tree-ssa-address.c: Likewise.
3085         * tree-ssa-ifcombine.c: Likewise.
3086         * matrix-reorg.c: Likewise.
3087         * c-decl.c: Likewise.
3088         * tree-eh.c: Likewise.
3089         * c-pretty-print.c: Likewise.
3090         * lambda-trans.c: Likewise.
3091         * function.c: Likewise.
3092         * langhooks.c: Likewise.
3093         * ebitmap.h: Likewise.
3094         * tree-vectorizer.c: Likewise.
3095         * function.h: Likewise.
3096         * langhooks.h: Likewise.
3097         * tree-vectorizer.h: Likewise.
3098         * ipa-type-escape.c: Likewise.
3099         * ipa-type-escape.h: Likewise.
3100         * domwalk.c: Likewise.
3101         * tree-if-conv.c: Likewise.
3102         * profile.c: Likewise.
3103         * domwalk.h: Likewise.
3104         * tree-data-ref.c: Likewise.
3105         * tree-data-ref.h: Likewise.
3106         * tree-flow-inline.h: Likewise.
3107         * tree-affine.c: Likewise.
3108         * tree-vect-analyze.c: Likewise.
3109         * c-typeck.c: Likewise.
3110         * gimplify.c: Likewise.
3111         * coretypes.h: Likewise.
3112         * tree-ssa-phiopt.c: Likewise.
3113         * calls.c: Likewise.
3114         * tree-ssa-coalesce.c: Likewise.
3115         * tree.def: Likewise.
3116         * tree-dfa.c: Likewise.
3117         * except.c: Likewise.
3118         * except.h: Likewise.
3119         * cfgexpand.c: Likewise.
3120         * tree-cfgcleanup.c: Likewise.
3121         * tree-ssa-pre.c: Likewise.
3122         * tree-ssa-live.c: Likewise.
3123         * tree-sra.c: Likewise.
3124         * tree-ssa-live.h: Likewise.
3125         * tree-predcom.c: Likewise.
3126         * lambda.h: Likewise.
3127         * tree-mudflap.c: Likewise.
3128         * ipa-prop.c: Likewise.
3129         * print-tree.c: Likewise.
3130         * tree-ssa-copy.c: Likewise.
3131         * ipa-prop.h: Likewise.
3132         * tree-ssa-forwprop.c: Likewise.
3133         * ggc-page.c: Likewise.
3134         * c-omp.c: Likewise.
3135         * tree-ssa-dce.c: Likewise.
3136         * tree-vect-patterns.c: Likewise.
3137         * tree-ssa-ter.c: Likewise.
3138         * tree-nested.c: Likewise.
3139         * tree-ssa.c: Likewise.
3140         * lambda-code.c: Likewise.
3141         * tree-ssa-loop-prefetch.c: Likewise.
3142         * tree-inline.c: Likewise.
3143         * tree-inline.h: Likewise.
3144         * tree-iterator.c: Likewise.
3145         * tree-optimize.c: Likewise.
3146         * tree-ssa-phiprop.c: Likewise.
3147         * tree-vect-transform.c: Likewise.
3148         * tree-object-size.c: Likewise.
3149         * tree-outof-ssa.c: Likewise.
3150         * cfgloop.c: Likewise.
3151         * system.h: Likewise.
3152         * tree-profile.c: Likewise.
3153         * cfgloop.h: Likewise.
3154         * c-gimplify.c: Likewise.
3155         * c-common.c: Likewise.
3156         * tree-vect-generic.c: Likewise.
3157         * tree-flow.h: Likewise.
3158         * c-common.h: Likewise.
3159         * basic-block.h: Likewise.
3160         * tree-ssa-structalias.c: Likewise.
3161         * tree-switch-conversion.c: Likewise.
3162         * tree-ssa-structalias.h: Likewise.
3163         * tree-cfg.c: Likewise.
3164         * passes.c: Likewise.
3165         * ipa-struct-reorg.c: Likewise.
3166         * ipa-struct-reorg.h: Likewise.
3167         * tree-ssa-reassoc.c: Likewise.
3168         * cfgrtl.c: Likewise.
3169         * varpool.c: Likewise.
3170         * stmt.c: Likewise.
3171         * tree-ssanames.c: Likewise.
3172         * tree-ssa-threadedge.c: Likewise.
3173         * langhooks-def.h: Likewise.
3174         * tree-ssa-operands.c: Likewise.
3175         * config/alpha/alpha.c: Likewise.
3176         * config/frv/frv.c: Likewise.
3177         * config/s390/s390.c: Likewise.
3178         * config/m32c/m32c.c: Likewise.
3179         * config/m32c/m32c-protos.h: Likewise.
3180         * config/spu/spu.c: Likewise.
3181         * config/sparc/sparc.c: Likewise.
3182         * config/i386/i386.c: Likewise.
3183         * config/sh/sh.c: Likewise.
3184         * config/xtensa/xtensa.c: Likewise.
3185         * config/stormy16/stormy16.c: Likewise.
3186         * config/ia64/ia64.c: Likewise.
3187         * config/rs6000/rs6000.c: Likewise.
3188         * config/pa/pa.c: Likewise.
3189         * config/mips/mips.c: Likewise.
3190
3191 2008-07-28  Simon Baldwin  <simonb@google.com>
3192
3193         * c-pragma.c (handle_pragma_message): New function.
3194         (init_pragma): Register handle_pragma_message.
3195         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
3196         documentation.
3197
3198 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
3199
3200         PR tree-optimization/35252
3201         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
3202         REALPART_EXPR to be considered as same load operation.
3203
3204 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
3205
3206         PR tree-optimization/36830
3207         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
3208         (expressions_equal_p): Return false if only one operand is null.
3209
3210 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
3211
3212         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
3213         version requirements.
3214
3215 2008-07-26  Olivier Hainque  <hainque@adacore.com>
3216
3217         * collect2.c (symkind): New enum.  Symbol kinds we care about.
3218         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
3219         code and head comment accordingly.
3220         (scan_prog_file): Use symkind names instead of bare integers.
3221
3222 2008-07-25  Jan Hubicka  <jh@suse.cz>
3223
3224         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on
3225         DECL_INLINE.
3226         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
3227         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
3228         * dojump.c (clear_pending_stack_adjust): Likewise.
3229         * print-tree.c (print_node): Ignore DECL_INLINE.
3230         * tree-inline.c (inlinable_function_p): Likewise.
3231
3232 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
3233
3234         * doc/extend.texi (hot attribute): Document that the hot attribute
3235         turns on -O3 for some ports.
3236         (cold attribute): Document that the cold attribute turns on -Os
3237         for some ports
3238
3239         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
3240         reflect function specific option support.
3241
3242         * target.h (struct target_option_hooks): Add fields to say whether
3243         the cold attribute implies -Os and the hot attribute implies -O3.
3244
3245         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
3246         By default, do not turn on -Os for cold functions.
3247         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
3248         not turn on -O3 for hot functions.
3249
3250         * c-common.c (handle_hot_attribute): Use target hook to determine
3251         if hot functions should enable -O3.
3252         (handle_cold_attribute): Use target hook to determine if cold
3253         functions should enable -Os.
3254
3255         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
3256         (override_options): Move disable scheduling to
3257         optimization_options.
3258         (optimization_options): Disable scheduling here, not
3259         override_options.
3260         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
3261         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
3262
3263         * config/ia64/ia64.c (ia64_override_options): Move setting
3264         scheduling flags to ia64_optimization_options.
3265         (ia64_optimization_options): Disable scheduling options here, and
3266         not in ia64_override_options.
3267         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
3268         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
3269
3270 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
3271
3272         PR target/36936
3273         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
3274
3275 2008-07-25  Martin Jambor  <mjambor@suse.cz>
3276
3277         PR tree-optimization/36926
3278         * ipa-prop.c (ipa_analyze_call_uses): Call
3279         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
3280
3281 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
3282
3283         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
3284         movv2si_internal): Add mem = reg alternative.
3285
3286 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
3287
3288         PR bootstrap/36918
3289         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
3290         DEFAULT_PCC_STRUCT_RETURN to 127.
3291
3292 2008-07-24  Jan Hubicka  <jh@suse.cz>
3293
3294         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
3295         (build_cgraph_edges): Likewise.
3296         * cgraph.c (cgraph_node): Do not update assembler hash.
3297         (cgraph_remove_node): Drop non-unit-at-a-time code.
3298         * tree-pass.h (pass_O0_always_inline): Remove.
3299         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
3300         * toplev.c (process_options): Flag unit-at-a-time does not imply
3301         no section anchors.
3302         * cgraphunit.c: Update comments.
3303         (decide_is_function_needed): Drop non-unit-at-a-time mode.
3304         (cgraph_assemble_pending_functions): Remove.
3305         (cgraph_reset_node): Drop non-unit-at-a-time code.
3306         (cgraph_finalize_function): Likewise.
3307         (cgraph_analyze_function): Likewise.
3308         (cgraph_finalize_compilation_unit): Likewise.
3309         (cgraph_expand_function): Likewise.
3310         (cgraph_optimize): Likesise.
3311         (save_inline_function_body): Likewise.
3312         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
3313         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
3314         * ipa-inline.c: Update comments.
3315         (enum inlining_mode): remove INLINE_SPEED.
3316         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
3317         (cgraph_mark_inline_edge): Likewise.
3318         (try_inline): Likewise.
3319         (cgraph_decide_inlining_incrementally): Likewise.
3320         (cgraph_gate_inlining): Remove.
3321         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
3322         (cgraph_gate_early_inlining): Likewise.
3323         (gate_inline_passes): Remove.
3324         (pass_inline_parameters, pass_ipa_inline): Remove gates.
3325         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
3326         pass_O0_always_inline): Remove.
3327         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
3328         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
3329         * opts.c (no_unit_at_a_time_default): Remove.
3330         (decode_options): Remove flag_unit_at_a_time reset and warning.
3331         * opts.h (no_unit_at_a_time_default): Remove.
3332         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
3333         early in GNU dialect.
3334         (merge_decls): Update comment; drop unit-at-a-time check.
3335         (finish_decl): Likewise.
3336         (grok_declaration): Remove flag_inline_trees code.
3337         (finish_functions): Return on function returning non-void on all
3338         statics.
3339         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
3340         * cfgexpand.c (expand_one_static_var): Remove.
3341         (expand_one_var): Remove expand_one_static_var call.
3342         (expand_used_vars_for_block): Remove flag_unit_a_time check.
3343         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
3344         and flag_unit_at_a-time compatibility checks.
3345         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
3346         * tree-inline.c (flag_inline_trees): Remove.
3347         (inlinable_function_p): Don't check it.
3348         (expand_call_inline): Remove non-unit-at-a-time code.
3349         * tree-inline.h (flag_inline_trees): Remove.
3350         * tree-optimize.c (execute_early_local_optimizations): Remove
3351         unit-at-a-time checks.
3352         (tree_rest_of_compilation): Likewise.
3353         * combine.c (setup_incoming_promotions): Likewise.
3354         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
3355         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
3356         * passes.c (pass_inline_parameters): Update comments; remove
3357         O0_alwaysinline pass.
3358         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
3359         (execute_one_pass): Likewise.
3360         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
3361         (ix86_function_sseregparm): Likewise.
3362         * arm.c (arm_function_in_section_p): Likewise.
3363         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
3364         * varpool.c: Update comments.
3365         (decide_is_variable_needed): Remove unit-at-a-time checks.
3366         (varpool_finalize_decl): Likewise.
3367
3368 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3369
3370         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
3371         to 2 instead of -1.
3372         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal to 2.
3373
3374 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
3375
3376         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
3377         imp symbol extension.
3378
3379         2008-07-23  Ian Lance Taylor  <iant@google.com>
3380
3381         * tree-vrp.c (infer_value_range): Ignore asm statements when
3382         looking for memory accesses for -fdelete-null-pointer-checks.
3383
3384 2008-07-24  Ben Elliston  <bje@au.ibm.com>
3385
3386         * config/spu/spu-c.c (__vector_keyword): New variable.
3387         (vector_keyword): Likewise.
3388         (spu_categorize_keyword): New function.
3389         (spu_macro_to_expand): Likewise.
3390         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
3391         compiling an ISO C dialect.
3392
3393 2008-07-24  Ben Elliston  <bje@au.ibm.com>
3394
3395         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
3396         conventional usage.
3397
3398 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3399
3400         * configure: Regenerate.
3401         * configure.ac: Require texinfo 4.7.
3402         * doc/install.texi: Document texinfo 4.7 requirement.
3403
3404 2008-07-23  Martin Jambor  <mjambor@suse.cz>
3405
3406         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
3407         rather than for DECL_SAVED_TREE.
3408         * ipa-prop.c: Include diagnostic.h.
3409         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
3410         thoroughly.
3411         (ipa_detect_param_modifications): Function rewritten from scratch.
3412         (ipa_compute_jump_functions): Changed accesses to modification flags.
3413         (ipa_free_node_params_substructures): Update flags destruction.
3414         (ipa_node_duplication_hook): Update flags duplication.
3415         (ipa_print_all_params_modified): Updated flag access.
3416         * ipa-prop.h (struct ipa_param_flags): New structure.
3417         (struct ipa_node_params): New field modification_analysis_done,
3418         modified_flags changed into param_flags.
3419         (ipa_is_ith_param_modified): Changed to use new flags.
3420         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.