OSDN Git Service

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