OSDN Git Service

2008-07-30 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * builtins.c (std_gimplify_va_arg_expr): Replace
4         PREFERRED_STACK_BOUNDARY with MAX_SUPPORTED_STACK_ALIGNMENT.
5         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
6
7 2008-07-30  Joey Ye  <joey.ye@intel.com>
8             H.J. Lu  <hongjiu.lu@intel.com>
9
10         * builtins.c (expand_builtin_setjmp_receiver): Replace
11         virtual_incoming_args_rtx with crtl->args.internal_arg_pointer.
12         (expand_builtin_apply_args_1): Likewise.
13         (expand_builtin_longjmp): Need DRAP for stack alignment.
14         (expand_builtin_apply): Likewise.
15
16         * caller-save.c (setup_save_areas): Call assign_stack_local_1
17         instead of assign_stack_local to allow alignment reduction.
18
19         * calls.c (emit_call_1): Need DRAP for stack alignment if
20         return pops.
21         (expand_call): Replace virtual_incoming_args_rtx with
22         crtl->args.internal_arg_pointer.
23         * stmt.c (expand_nl_goto_receiver): Likewise.
24
25         * cfgexpand.c (get_decl_align_unit): Estimate stack variable
26         alignment and store to stack_alignment_estimated and
27         max_used_stack_slot_alignment.
28         (expand_one_var): Likewise.
29         (expand_stack_alignment): New function.
30         (tree_expand_cfg): Initialize max_used_stack_slot_alignment
31         and stack_alignment_estimated fields in rtl_data.  Call
32         expand_stack_alignment at end.
33
34         * defaults.h (INCOMING_STACK_BOUNDARY): New.
35         (MAX_STACK_ALIGNMENT): Likewise.
36         (MAX_SUPPORTED_STACK_ALIGNMENT): Likewise.
37         (SUPPORTS_STACK_ALIGNMENT): Likewise.
38
39         * emit-rtl.c (gen_reg_rtx): Estimate stack alignment for
40         stack alignment when generating virtual registers.
41
42         * function.c (assign_stack_local): Renamed to ...
43         (assign_stack_local_1): This.  Add a parameter to indicate
44         if it is OK to reduce alignment.
45         (assign_stack_local): Use it.
46         (instantiate_new_reg): Instantiate virtual incoming args rtx
47         to vDRAP if stack realignment and DRAP is needed.
48         (assign_parms): Collect parameter/return type alignment and
49         contribute to stack_alignment_estimated.
50         (locate_and_pad_parm): Likewise.
51         (get_arg_pointer_save_area): Replace virtual_incoming_args_rtx
52         with crtl->args.internal_arg_pointer.
53
54         * function.h (rtl_data): Add new field drap_reg,
55         max_used_stack_slot_alignment, stack_alignment_estimated,
56         stack_realign_needed, need_drap, stack_realign_processed and
57         stack_realign_finalized.
58         (stack_realign_fp): New macro.
59         (stack_realign_drap): Likewise.
60
61         * global.c (compute_regsets): Frame pointer is needed when
62         stack is realigned.  Can eliminate frame pointer when stack is
63         realigned and dynamic realigned argument pointer isn't used.
64
65         * reload1.c (update_eliminables):  Frame pointer is needed
66         when stack is realigned.
67         (init_elim_table): Can eliminate frame pointer when stack is
68         realigned and dynamic realigned argument pointer isn't used.
69
70         * rtl.h (assign_stack_local_1): Declare new funtion.
71
72         * target-def.h (TARGET_UPDATE_STACK_BOUNDARY): New.
73         (TARGET_GET_DRAP_RTX): Likewise.
74         (TARGET_CALLS): Add TARGET_UPDATE_STACK_BOUNDARY and
75         TARGET_GET_DRAP_RTX.
76
77         * target.h (gcc_target): Add update_stack_boundary and
78         get_drap_rtx.
79
80         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
81         STACK_BOUNDARY with MAX_STACK_ALIGNMENT.
82
83 2008-07-30  Xuepeng Guo  <xuepeng.guo@intel.com>
84             H.J. Lu  <hongjiu.lu@intel.com>
85
86         * dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
87         vdrap_reg, stack_realign and drap_reg_saved.
88         (add_cfi): Don't allow redefining CFA when DRAP is used.
89         (reg_save): Handle stack alignment.
90         (dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
91         alignment.  Don't generate DWARF information for (set fp sp)
92         when DRAP is used.
93         (dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
94         to INVALID_REGNUM.
95         (int_loc_descriptor): Move prototype forward.  Also define if
96         DWARF2_UNWIND_INFO is true.
97         (output_cfa_loc): Handle DW_CFA_expression.
98         (build_cfa_aligned_loc): New.
99         (based_loc_descr): Update assert for stack realign.  For local
100         variables, use sp+offset when stack is aligned without drap and
101         fp+offset when stack is aligned with drap.  For arguments, use
102         cfa+offset when drap is used to align stack.
103
104 2008-07-30  Joey Ye  <joey.ye@intel.com>
105             H.J. Lu  <hongjiu.lu@intel.com>
106
107         * config/i386/i386.c (ix86_force_align_arg_pointer_string):
108         Break long line.
109         (ix86_gen_andsp): New.
110         (ix86_user_incoming_stack_boundary): Likewise.
111         (ix86_default_incoming_stack_boundary): Likewise.
112         (ix86_incoming_stack_boundary): Likewise.
113         (ix86_can_eliminate): Likewise.
114         (find_drap_reg): Likewise.
115         (ix86_update_stack_boundary): Likewise.
116         (ix86_get_drap_rtx): Likewise.
117         (ix86_finalize_stack_realign_flags): Likewise.
118         (TARGET_UPDATE_STACK_BOUNDARY): Likewise.
119         (TARGET_GET_DRAP_RTX): Likewise.
120         (override_options): Overide option value for new options.
121         (ix86_function_ok_for_sibcall): Remove check for
122         force_align_arg_pointer.
123         (ix86_handle_cconv_attribute): Likewise.
124         (ix86_function_regparm): Likewise.
125         (setup_incoming_varargs_64): Don't set stack_alignment_needed
126         here.
127         (ix86_va_start): Replace virtual_incoming_args_rtx with
128         crtl->args.internal_arg_pointer.
129         (ix86_select_alt_pic_regnum): Check DRAP register.
130         (ix86_save_reg): Replace force_align_arg_pointer with drap_reg.
131         (ix86_compute_frame_layout): Compute frame layout wrt stack
132         realignment.
133         (ix86_internal_arg_pointer): Just return
134         virtual_incoming_args_rtx.
135         (ix86_expand_prologue): Decide if stack realignment is needed
136         and generate prologue code accordingly.
137         (ix86_expand_epilogue): Generate epilogue code wrt stack
138         realignment is really needed or not.
139         
140         * config/i386/i386.h (MAIN_STACK_BOUNDARY): New.
141         (ABI_STACK_BOUNDARY): Likewise.
142         (PREFERRED_STACK_BOUNDARY_DEFAULT): Likewise.
143         (STACK_REALIGN_DEFAULT): Likewise.
144         (INCOMING_STACK_BOUNDARY): Likewise.
145         (MAX_STACK_ALIGNMENT): Likewise.
146         (ix86_incoming_stack_boundary): Likewise.
147         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Removed.
148         (REAL_PIC_OFFSET_TABLE_REGNUM): Updated to use BX_REG.
149         (CAN_ELIMINATE): Defined with ix86_can_eliminate.
150         (machine_function): Remove force_align_arg_pointer.
151
152         * config/i386/i386.md (BX_REG): New.
153         (R13_REG): Likewise.
154
155         * config/i386/i386.opt (mforce_drap): New.
156         (mincoming-stack-boundary): Likewise.
157         (mstackrealign): Add Init(-1).
158
159         * config/i386/i386-protos.h (ix86_can_eliminate): New
160
161 2008-07-30  H.J. Lu  <hongjiu.lu@intel.com>
162
163         * doc/extend.texi: Update force_align_arg_pointer.
164
165         * doc/invoke.texi: Document -mincoming-stack-boundary.  Update
166         -mstackrealign.
167
168         * doc/tm.texi (MAX_STACK_ALIGNMENT): Add macro.
169         (INCOMING_STACK_BOUNDARY): Likewise.
170         (TARGET_UPDATE_STACK_BOUNDARY): New target hook.
171         (TARGET_GET_DRAP_RTX): Likewise.
172
173 2008-07-30  Andreas Schwab  <schwab@suse.de>
174
175         PR rtl-optimization/36929
176         * dse.c (replace_inc_dec): Use emit_insn_before instead of
177         add_insn_before and fix argument order.
178         (replace_inc_dec_mem): Handle NULL rtx.
179
180 2008-07-30  Andrew Jenner  <andrew@codesourcery.com>
181
182         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): New
183         function.
184         (arm_compute_initial_elimination_offset): Use it.
185         (arm_compute_save_reg_mask): Include static chain save slot when
186         calculating alignment.
187         (arm_get_frame_offsets): Ditto.
188         (thumb1_compute_save_reg_mask): Ensure we have a low register saved
189         that we can use to decrement the stack when the stack decrement
190         could be too big for an immediate value in a single insn.
191         (thumb1_expand_prologue): Avoid using r12 for stack decrement.
192
193 2008-07-30  Richard Guenther  <rguenther@suse.de>
194
195         PR tree-optimization/36967
196         * tree-predcom.c (remove_stmt): Use gimple_assign_ssa_name_copy_p.
197         Release defs of statements we remove.
198
199 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
200
201         * config/arm/arm.c (arm_expand_prologue): Use 0-length rtvec
202         instead of NULL_RTVEC.
203
204 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
205
206         PR target/35866
207
208         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
209         vector modes.
210
211 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
212
213        * final.c (call_from_call_insn): New.
214        (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
215
216 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
217
218         * configure.ac: Substitute ADA_CFLAGS.
219         * configure: Regenerate.
220         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
221         * Makefile.in: Remove mention of X_* variables.
222         * config/pa/x-ada-hpux10: Remove.
223         * config/pa/x-ada: Remove.
224
225         * doc/fragments.texi: Update.
226
227 2008-07-30  Olivier Hainque  <hainque@adacore.com>
228
229         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
230         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
231         __dso_handle explicitly here.
232
233 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
234
235         PR 34389
236         * c-typeck.c (build_binary_op): Encapsulate code into...
237         * c-common.c (shorten_binary_op): ...this new function.
238         (conversion_warning): Use the new function. Handle non-negative
239         constant in bitwise-and.
240         * c-common.h (shorten_binary_op): Declare.
241
242 2008-07-30  Olivier Hainque  <hainque@adacore.com>
243
244         * scan.c (make_sstring_space): Add explicit conversions of
245         allocator's return value.
246         * fix-header.c (recognized_function): Likewise.
247
248 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
249
250         * doc/cpp.texi: Update to GFDL 1.2.
251         * doc/gcc.texi: Do not list GPL as Invariant Section.
252         * doc/gccint.texi: Likewise.  Update copyright years.
253         * doc/install.texi: Update copyright years.
254
255 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
256
257         PR target/36955
258         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
259         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
260
261 2008-07-29  Jan Hubicka  <jh@suse.cz>
262
263         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
264         (grokdeclarator): Likewise.
265         * langhooks.c (lhd_warn_unused_global_decl): Use
266         DECL_DECLARED_INLINE_P.
267         * print-tree.c (print_node): Remove DECL_INLINE check.
268
269 2008-07-29  Richard Guenther  <rguenther@suse.de>
270
271         PR tree-optimization/36945
272         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
273         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
274         Record invariant addresses un-decomposed.
275         (copy_reference_ops_from_call): Record reference call
276         arguments properly.  Simplify.
277         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
278         helper split out from ...
279         (create_component_ref_by_pieces): ... here.  Simplify.
280         Prepare for recursive invocation for call arguments.
281         (create_expression_by_pieces): Adjust call to
282         create_component_ref_by_pieces.
283         (compute_avail): Process operand 2 of reference ops.
284
285 2008-07-29  Richard Guenther  <rguenther@suse.de>
286
287         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for
288         OBJ_TYPE_REF.
289
290 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
291
292         * c-format.c (check_format_types): Revert unwanted checkin.
293
294 2008-07-29  Jan Hubicka  <jh@suse.cz>
295
296         * flags.h (flag_really_no_inline): Remove.
297         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
298         * toplev.c (flag_really_no_inline): Remove.
299         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
300         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
301         (cgraph_decide_inlining_incrementally): Likewise.
302         (compute_inline_parameters): Likewise.
303         * opts.c (decode_options): Simplify.
304         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
305         * common.opt (finline): Initialize to 1.
306         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
307
308 2008-07-29  Jan Hubicka  <jh@suse.cz>
309
310         * predict.c (always_optimize_for_size_p): New function.
311         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
312         optimize_edge_for_size_p, optimize_edge_for_speed_p,
313         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
314         functions.
315         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
316         * function.c (prepare_function_start): Set default profile.
317         * function.h (rtl_data): Add maybe_hot_insn_p.
318         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
319         (construct_exit_block): Likewise.
320         (tree_expand_cfg): Likewise.
321         * basic-block.h
322         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
323         optimize_edge_for_size_p, optimize_edge_for_speed_p,
324         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
325         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
326         Declare.
327
328 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
329
330         PR 34985
331         * c-decl.c (merge_decls): Merge USED flags.
332
333 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
334
335         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
336         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
337         next_stack, lab_false and lab_over trees.
338
339 2008-07-28  Richard Guenther  <rguenther@suse.de>
340
341         PR tree-optimization/36957
342         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
343         (useless_type_conversion_p): Remove.
344         (types_compatible_p): Remove.
345         * gimple.h (tree_ssa_useless_type_conversion): Declare.
346         (useless_type_conversion_p): Declare.
347         (types_compatible_p): Declare.
348         (gimple_expr_type): Return the base type only if it is
349         trivially convertible to the subtype.
350
351 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
352
353         * configure.ac: Use the m4_do macro to concatenate the warnings into
354         one string in ACX_PROG_CC_WARNING_OPTS,
355         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
356         * configure: Regenerate.
357
358 2008-07-28  Richard Guenther  <rguenther@suse.de>
359
360         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
361         (insert_fake_stores): Remove.
362         (realify_fake_stores): Likewise.
363         (execute_pre): Remove dead code.
364         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary
365         case.
366         (find_func_aliases): Deal with it here instead.
367         Re-enable gcc_unreachable call.
368
369 2008-07-28  Richard Guenther  <rguenther@suse.de>
370
371         Merge from gimple-tuples-branch.
372
373         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
374         * gimple.def: New file.
375         * gsstruct.def: Likewise.
376         * gimple-iterator.c: Likewise.
377         * gimple-pretty-print.c: Likewise.
378         * tree-gimple.c: Removed.  Merged into ...
379         * gimple.c: ... here.  New file.
380         * tree-gimple.h: Removed.  Merged into ...
381         * gimple.h: ... here.  New file.
382
383         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
384         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
385         --enable-checking=gimple flag.
386         * config.in: Likewise.
387         * configure: Regenerated.
388
389         * tree-ssa-operands.h: Tuplified.
390         * tree-vrp.c: Likewise.
391         * tree-loop-linear.c: Likewise.
392         * tree-into-ssa.c: Likewise.
393         * tree-ssa-loop-im.c: Likewise.
394         * tree-dump.c: Likewise.
395         * tree-complex.c: Likewise.
396         * cgraphbuild.c: Likewise.
397         * tree-ssa-threadupdate.c: Likewise.
398         * tree-ssa-loop-niter.c: Likewise.
399         * tree-pretty-print.c: Likewise.
400         * tracer.c: Likewise.
401         * gengtype.c: Likewise.
402         * tree-loop-distribution.c: Likewise.
403         * tree-ssa-loop-unswitch.c: Likewise.
404         * cgraph.c: Likewise.
405         * cgraph.h: Likewise.
406         * tree-ssa-loop-manip.c: Likewise.
407         * value-prof.c: Likewise.
408         * tree-ssa-loop-ch.c: Likewise.
409         * tree-tailcall.c: Likewise.
410         * value-prof.h: Likewise.
411         * tree.c: Likewise.
412         * tree.h: Likewise.
413         * tree-pass.h: Likewise.
414         * ipa-cp.c: Likewise.
415         * tree-scalar-evolution.c: Likewise.
416         * tree-scalar-evolution.h: Likewise.
417         * target.h: Likewise.
418         * lambda-mat.c: Likewise.
419         * tree-phinodes.c: Likewise.
420         * diagnostic.h: Likewise.
421         * builtins.c: Likewise.
422         * tree-ssa-alias-warnings.c: Likewise.
423         * cfghooks.c: Likewise.
424         * fold-const.c: Likewise.
425         * cfghooks.h: Likewise.
426         * omp-low.c: Likewise.
427         * tree-ssa-dse.c: Likewise.
428         * ipa-reference.c: Likewise.
429         * tree-ssa-uncprop.c: Likewise.
430         * toplev.c: Likewise.
431         * tree-gimple.c: Likewise.
432         * tree-gimple.h: Likewise.
433         * tree-chrec.c: Likewise.
434         * tree-chrec.h: Likewise.
435         * tree-ssa-sccvn.c: Likewise.
436         * tree-ssa-sccvn.h: Likewise.
437         * cgraphunit.c: Likewise.
438         * tree-ssa-copyrename.c: Likewise.
439         * tree-ssa-ccp.c: Likewise.
440         * tree-ssa-loop-ivopts.c: Likewise.
441         * tree-nomudflap.c: Likewise.
442         * tree-call-cdce.c: Likewise.
443         * ipa-pure-const.c: Likewise.
444         * c-format.c: Likewise.
445         * tree-stdarg.c: Likewise.
446         * tree-ssa-math-opts.c: Likewise.
447         * tree-ssa-dom.c: Likewise.
448         * tree-nrv.c: Likewise.
449         * tree-ssa-propagate.c: Likewise.
450         * ipa-utils.c: Likewise.
451         * tree-ssa-propagate.h: Likewise.
452         * tree-ssa-alias.c: Likewise.
453         * gimple-low.c: Likewise.
454         * tree-ssa-sink.c: Likewise.
455         * ipa-inline.c: Likewise.
456         * c-semantics.c: Likewise.
457         * dwarf2out.c: Likewise.
458         * expr.c: Likewise.
459         * tree-ssa-loop-ivcanon.c: Likewise.
460         * predict.c: Likewise.
461         * tree-ssa-loop.c: Likewise.
462         * tree-parloops.c: Likewise.
463         * tree-ssa-address.c: Likewise.
464         * tree-ssa-ifcombine.c: Likewise.
465         * matrix-reorg.c: Likewise.
466         * c-decl.c: Likewise.
467         * tree-eh.c: Likewise.
468         * c-pretty-print.c: Likewise.
469         * lambda-trans.c: Likewise.
470         * function.c: Likewise.
471         * langhooks.c: Likewise.
472         * ebitmap.h: Likewise.
473         * tree-vectorizer.c: Likewise.
474         * function.h: Likewise.
475         * langhooks.h: Likewise.
476         * tree-vectorizer.h: Likewise.
477         * ipa-type-escape.c: Likewise.
478         * ipa-type-escape.h: Likewise.
479         * domwalk.c: Likewise.
480         * tree-if-conv.c: Likewise.
481         * profile.c: Likewise.
482         * domwalk.h: Likewise.
483         * tree-data-ref.c: Likewise.
484         * tree-data-ref.h: Likewise.
485         * tree-flow-inline.h: Likewise.
486         * tree-affine.c: Likewise.
487         * tree-vect-analyze.c: Likewise.
488         * c-typeck.c: Likewise.
489         * gimplify.c: Likewise.
490         * coretypes.h: Likewise.
491         * tree-ssa-phiopt.c: Likewise.
492         * calls.c: Likewise.
493         * tree-ssa-coalesce.c: Likewise.
494         * tree.def: Likewise.
495         * tree-dfa.c: Likewise.
496         * except.c: Likewise.
497         * except.h: Likewise.
498         * cfgexpand.c: Likewise.
499         * tree-cfgcleanup.c: Likewise.
500         * tree-ssa-pre.c: Likewise.
501         * tree-ssa-live.c: Likewise.
502         * tree-sra.c: Likewise.
503         * tree-ssa-live.h: Likewise.
504         * tree-predcom.c: Likewise.
505         * lambda.h: Likewise.
506         * tree-mudflap.c: Likewise.
507         * ipa-prop.c: Likewise.
508         * print-tree.c: Likewise.
509         * tree-ssa-copy.c: Likewise.
510         * ipa-prop.h: Likewise.
511         * tree-ssa-forwprop.c: Likewise.
512         * ggc-page.c: Likewise.
513         * c-omp.c: Likewise.
514         * tree-ssa-dce.c: Likewise.
515         * tree-vect-patterns.c: Likewise.
516         * tree-ssa-ter.c: Likewise.
517         * tree-nested.c: Likewise.
518         * tree-ssa.c: Likewise.
519         * lambda-code.c: Likewise.
520         * tree-ssa-loop-prefetch.c: Likewise.
521         * tree-inline.c: Likewise.
522         * tree-inline.h: Likewise.
523         * tree-iterator.c: Likewise.
524         * tree-optimize.c: Likewise.
525         * tree-ssa-phiprop.c: Likewise.
526         * tree-vect-transform.c: Likewise.
527         * tree-object-size.c: Likewise.
528         * tree-outof-ssa.c: Likewise.
529         * cfgloop.c: Likewise.
530         * system.h: Likewise.
531         * tree-profile.c: Likewise.
532         * cfgloop.h: Likewise.
533         * c-gimplify.c: Likewise.
534         * c-common.c: Likewise.
535         * tree-vect-generic.c: Likewise.
536         * tree-flow.h: Likewise.
537         * c-common.h: Likewise.
538         * basic-block.h: Likewise.
539         * tree-ssa-structalias.c: Likewise.
540         * tree-switch-conversion.c: Likewise.
541         * tree-ssa-structalias.h: Likewise.
542         * tree-cfg.c: Likewise.
543         * passes.c: Likewise.
544         * ipa-struct-reorg.c: Likewise.
545         * ipa-struct-reorg.h: Likewise.
546         * tree-ssa-reassoc.c: Likewise.
547         * cfgrtl.c: Likewise.
548         * varpool.c: Likewise.
549         * stmt.c: Likewise.
550         * tree-ssanames.c: Likewise.
551         * tree-ssa-threadedge.c: Likewise.
552         * langhooks-def.h: Likewise.
553         * tree-ssa-operands.c: Likewise.
554         * config/alpha/alpha.c: Likewise.
555         * config/frv/frv.c: Likewise.
556         * config/s390/s390.c: Likewise.
557         * config/m32c/m32c.c: Likewise.
558         * config/m32c/m32c-protos.h: Likewise.
559         * config/spu/spu.c: Likewise.
560         * config/sparc/sparc.c: Likewise.
561         * config/i386/i386.c: Likewise.
562         * config/sh/sh.c: Likewise.
563         * config/xtensa/xtensa.c: Likewise.
564         * config/stormy16/stormy16.c: Likewise.
565         * config/ia64/ia64.c: Likewise.
566         * config/rs6000/rs6000.c: Likewise.
567         * config/pa/pa.c: Likewise.
568         * config/mips/mips.c: Likewise.
569
570 2008-07-28  Simon Baldwin  <simonb@google.com>
571
572         * c-pragma.c (handle_pragma_message): New function.
573         (init_pragma): Register handle_pragma_message.
574         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
575         documentation.
576
577 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
578
579         PR tree-optimization/35252
580         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
581         REALPART_EXPR to be considered as same load operation.
582
583 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
584
585         PR tree-optimization/36830
586         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
587         (expressions_equal_p): Return false if only one operand is null.
588
589 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
590
591         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
592         version requirements.
593
594 2008-07-26  Olivier Hainque  <hainque@adacore.com>
595
596         * collect2.c (symkind): New enum.  Symbol kinds we care about.
597         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
598         code and head comment accordingly.
599         (scan_prog_file): Use symkind names instead of bare integers.
600
601 2008-07-25  Jan Hubicka  <jh@suse.cz>
602
603         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE.
604         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
605         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
606         * dojump.c (clear_pending_stack_adjust): Likewise.
607         * print-tree.c (print_node): Ignore DECL_INLINE.
608         * tree-inline.c (inlinable_function_p): Likewise.
609
610 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
611
612         * doc/extend.texi (hot attribute): Document that the hot attribute
613         turns on -O3 for some ports.
614         (cold attribute): Document that the cold attribute turns on -Os
615         for some ports
616
617         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
618         reflect function specific option support.
619
620         * target.h (struct target_option_hooks): Add fields to say whether
621         the cold attribute implies -Os and the hot attribute implies -O3.
622
623         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
624         By default, do not turn on -Os for cold functions.
625         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
626         not turn on -O3 for hot functions.
627
628         * c-common.c (handle_hot_attribute): Use target hook to determine
629         if hot functions should enable -O3.
630         (handle_cold_attribute): Use target hook to determine if cold
631         functions should enable -Os.
632
633         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
634         (override_options): Move disable scheduling to
635         optimization_options.
636         (optimization_options): Disable scheduling here, not
637         override_options.
638         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
639         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
640
641         * config/ia64/ia64.c (ia64_override_options): Move setting
642         scheduling flags to ia64_optimization_options.
643         (ia64_optimization_options): Disable scheduling options here, and
644         not in ia64_override_options.
645         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
646         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
647
648 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
649
650         PR target/36936
651         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
652
653 2008-07-25  Martin Jambor  <mjambor@suse.cz>
654
655         PR tree-optimization/36926
656         * ipa-prop.c (ipa_analyze_call_uses): Call
657         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
658
659 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
660
661         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
662         movv2si_internal): Add mem = reg alternative.
663
664 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
665
666         PR bootstrap/36918
667         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
668         DEFAULT_PCC_STRUCT_RETURN to 127.
669
670 2008-07-24  Jan Hubicka  <jh@suse.cz>
671
672         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
673         (build_cgraph_edges): Likewise.
674         * cgraph.c (cgraph_node): Do not update assembler hash.
675         (cgraph_remove_node): Drop non-unit-at-a-time code.
676         * tree-pass.h (pass_O0_always_inline): Remove.
677         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
678         * toplev.c (process_options): Flag unit-at-a-time does not imply
679         no section anchors.
680         * cgraphunit.c: Update comments.
681         (decide_is_function_needed): Drop non-unit-at-a-time mode.
682         (cgraph_assemble_pending_functions): Remove.
683         (cgraph_reset_node): Drop non-unit-at-a-time code.
684         (cgraph_finalize_function): Likewise.
685         (cgraph_analyze_function): Likewise.
686         (cgraph_finalize_compilation_unit): Likewise.
687         (cgraph_expand_function): Likewise.
688         (cgraph_optimize): Likesise.
689         (save_inline_function_body): Likewise.
690         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
691         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
692         * ipa-inline.c: Update comments.
693         (enum inlining_mode): remove INLINE_SPEED.
694         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
695         (cgraph_mark_inline_edge): Likewise.
696         (try_inline): Likewise.
697         (cgraph_decide_inlining_incrementally): Likewise.
698         (cgraph_gate_inlining): Remove.
699         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
700         (cgraph_gate_early_inlining): Likewise.
701         (gate_inline_passes): Remove.
702         (pass_inline_parameters, pass_ipa_inline): Remove gates.
703         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
704         pass_O0_always_inline): Remove.
705         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
706         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
707         * opts.c (no_unit_at_a_time_default): Remove.
708         (decode_options): Remove flag_unit_at_a_time reset and warning.
709         * opts.h (no_unit_at_a_time_default): Remove.
710         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
711         early in GNU dialect.
712         (merge_decls): Update comment; drop unit-at-a-time check.
713         (finish_decl): Likewise.
714         (grok_declaration): Remove flag_inline_trees code.
715         (finish_functions): Return on function returning non-void on all
716         statics.
717         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
718         * cfgexpand.c (expand_one_static_var): Remove.
719         (expand_one_var): Remove expand_one_static_var call.
720         (expand_used_vars_for_block): Remove flag_unit_a_time check.
721         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
722         and flag_unit_at_a-time compatibility checks.
723         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
724         * tree-inline.c (flag_inline_trees): Remove.
725         (inlinable_function_p): Don't check it.
726         (expand_call_inline): Remove non-unit-at-a-time code.
727         * tree-inline.h (flag_inline_trees): Remove.
728         * tree-optimize.c (execute_early_local_optimizations): Remove
729         unit-at-a-time checks.
730         (tree_rest_of_compilation): Likewise.
731         * combine.c (setup_incoming_promotions): Likewise.
732         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
733         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
734         * passes.c (pass_inline_parameters): Update comments; remove
735         O0_alwaysinline pass.
736         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
737         (execute_one_pass): Likewise.
738         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
739         (ix86_function_sseregparm): Likewise.
740         * arm.c (arm_function_in_section_p): Likewise.
741         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
742         * varpool.c: Update comments.
743         (decide_is_variable_needed): Remove unit-at-a-time checks.
744         (varpool_finalize_decl): Likewise.
745
746 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
747
748         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
749         to 2 instead of -1.
750         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal
751         to 2.
752
753 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
754
755         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
756         imp symbol extension.
757
758         2008-07-23  Ian Lance Taylor  <iant@google.com>
759
760         * tree-vrp.c (infer_value_range): Ignore asm statements when
761         looking for memory accesses for -fdelete-null-pointer-checks.
762
763 2008-07-24  Ben Elliston  <bje@au.ibm.com>
764
765         * config/spu/spu-c.c (__vector_keyword): New variable.
766         (vector_keyword): Likewise.
767         (spu_categorize_keyword): New function.
768         (spu_macro_to_expand): Likewise.
769         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
770         compiling an ISO C dialect.
771
772 2008-07-24  Ben Elliston  <bje@au.ibm.com>
773
774         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
775         conventional usage.
776
777 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
778
779         * configure: Regenerate.
780         * configure.ac: Require texinfo 4.7.
781         * doc/install.texi: Document texinfo 4.7 requirement.
782
783 2008-07-23  Martin Jambor  <mjambor@suse.cz>
784
785         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
786         rather than for DECL_SAVED_TREE.
787         * ipa-prop.c: Include diagnostic.h.
788         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
789         thoroughly.
790         (ipa_detect_param_modifications): Function rewritten from scratch.
791         (ipa_compute_jump_functions): Changed accesses to modification flags.
792         (ipa_free_node_params_substructures): Update flags destruction.
793         (ipa_node_duplication_hook): Update flags duplication.
794         (ipa_print_all_params_modified): Updated flag access.
795         * ipa-prop.h (struct ipa_param_flags): New structure.
796         (struct ipa_node_params): New field modification_analysis_done,
797         modified_flags changed into param_flags.
798         (ipa_is_ith_param_modified): Changed to use new flags.
799         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
800
801         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
802         ipa-cp.c and split into two functions.
803         (ipa_print_node_jump_functions): New function.
804         (compute_scalar_jump_functions): New function.
805         (type_like_member_ptr_p): New function.
806         (compute_pass_through_member_ptrs): New function.
807         (fill_member_ptr_cst_jump_function): New function.
808         (determine_cst_member_ptr): New function.
809         (compute_cst_member_ptr_arguments): New function.
810         (ipa_compute_jump_functions): Complete rewrite.
811         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
812         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
813         (struct ipa_member_ptr_cst): New structure.
814         (union jump_func_value): New field member_cst.
815         * ipa-cp.c (ipcp_lat_is_insertable): New function.
816         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
817         jump function types.
818         (ipcp_print_all_lattices): Slight fprintf rearrangement.
819         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
820         instead of ipcp_print_all_jump_functions.
821         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
822         only for replacable scalars.
823
824         * doc/invoke.texi (Optimize options): Add description of
825         -findirect-inlining.
826         * common.opt (flag_indirect_inlining): New flag.
827         * opts.c (decode_options): Set flag_indirect_inlining when
828         optimize >= 3.
829
830         * ipa-inline.c: Include ipa-prop.h.
831         (inline_indirect_intraprocedural_analysis): New function.
832         (inline_generate_summary): Allocate parameter and argument info
833         structures, call inline_indirect_intraprocedural_analysis on each
834         node when doing indirect inlining and deallocate indirect inlining
835         data structures in the end.
836         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
837         (free_all_ipa_structures_after_iinln): New function.
838         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be
839         done.
840         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
841
842         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
843         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
844         of computing the frequency separately.
845         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
846         of computing the frequency separately.
847         * ipa-cp.c (ipcp_print_all_structures): Replace a call to
848         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
849         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
850         (ipa_get_stmt_member_ptr_load_param): New function.
851         (ipa_is_ssa_with_stmt_def): New function.
852         (ipa_note_param_call): New function.
853         (ipa_analyze_call_uses): New function.
854         (ipa_analyze_stmt_uses): New function.
855         (ipa_analyze_params_uses): New function.
856         (ipa_free_node_params_substructures): Also free the param_calls linked
857         list.
858         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
859         (ipa_print_node_param_flags): New function.
860         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
861         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
862         * ipa-prop.h (struct ipa_param_flags): New field called.
863         (struct ipa_param_call_note): New structure.
864         (struct ipa_node_params): New fields param_calls and
865         uses_analysis_done.
866         (ipa_is_ith_param_called): New function.
867         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
868         ipa_analyze_params_uses and dump parameter flags.
869
870         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
871         ipa_propagate_indirect_call_infos if performing indirect inlining,
872         pass a new parameter new_edges to it.
873         (add_new_edges_to_heap): New fucntion.
874         (cgraph_decide_inlining_of_small_functions): New vector
875         new_indirect_edges for newly found indirect edges , call
876         ipa_propagate_indirect_call_infos after inlining.
877         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
878         inlining if performing indirect inlining.  Call
879         free_all_ipa_structures_after_iinln when doing so too.
880         (inline_generate_summary): Do not call
881         free_all_ipa_structures_after_iinln here.
882         * ipa-prop.c (update_jump_functions_after_inlining): New function.
883         (print_edge_addition_message): New function.
884         (update_call_notes_after_inlining): New function.
885         (propagate_info_to_inlined_callees): New function.
886         (ipa_propagate_indirect_call_infos): New function.
887         * ipa-prop.h: Include cgraph.h
888         (struct ipa_param_call_note): Fields reordered, new field processed.
889         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
890         flag indirect_call.
891         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
892         rediscovered call statements.
893         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
894         (dump_cgraph_node): Dump also the indirect_call flag.
895         (cgraph_clone_edge): Copy also the indirect_call flag.
896         * tree-inline.c (copy_bb): Do not check for fndecls from call
897         expressions, check for edge availability when moving clones.
898         (get_indirect_callee_fndecl): New function.
899         (expand_call_inline): If callee declaration is not apprent from
900         the statement, try calling get_indirect_callee_fndecl.  Do not
901         issue warnings or call sorry when not inlinings an indirect edge.
902         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
903
904         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
905         bit more frandly to matching.
906         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
907         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
908         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
909
910 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
911
912         PR 36907
913         * opth-gen.awk: Suppress function specific features when building
914         target libraries.
915         * optc-gen.awk: Ditto.
916
917 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
918
919         PR 35058
920         * diagnostic.c (pedwarn): Add opt parameter.
921         (pedwarn0): New.
922         * c-tree.h (pedwarn_init): Add opt parameter.
923         (pedwarn_c90): Likewise.
924         (pedwarn_c99): Likewise.
925         * c-errors.c (pedwarn_c99): Likewise.
926         (pedwarn_c90): Likewise.
927         * toplev.h (pedwarn): Update declaration.
928         (pedwarn0): Declare.
929         * c-lex.c: All calls to pedwarn changed.
930         * builtins.c: All calls to pedwarn changed.
931         * toplev.c: All calls to pedwarn changed.
932         * c-decl.c: All calls to pedwarn changed.
933         * c-typeck.c: All calls to pedwarn changed.
934         * c-common.c: All calls to pedwarn changed.
935         * c-parser.c: All calls to pedwarn changed.
936
937 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
938             Karthik Kumar  <karthikkumar@gmail.com>
939
940         * attribs.c (file scope): Include c-common.h.
941         (decl_attributes): Add support for #pragma GCC optimize and
942         #pragma GCC option.
943
944         * targhooks.c (default_can_inline_p): New function that is the
945         default for the TARGET_CAN_INLINE_P target hook.
946
947         * targhooks.h (default_can_inline_p): Add declaration.
948
949         * tree.c (cl_optimization_node): New static tree for building
950         OPTIMIZATION_NODE tree.
951         (cl_target_option_node): New static tree for building
952         TARGET_OPTION_NODE tree.
953         (cl_option_hash_table): New hash table for hashing
954         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
955         (cl_option_hash_hash): New function to provide the hash value for
956         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
957         (cl_option_hash_eq): New function to provide an equality test for
958         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
959         (tree_code_size): Add support for OPTIMIZATION_NODE and
960         TARGET_OPTION_NODE trees.
961         (tree_code_structure): Add support for OPTIMIZATION_NODE and
962         TARGET_OPTION_NODE trees.
963         (build_optimization_node): Build a tree that has all of the
964         current optimization options.
965         (build_target_option_node): Build a tree that has the target
966         options that might be changed on a per function basis.
967
968         * tree.h (file scope): Include options.h.
969         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
970         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
971         (TREE_OPTIMIZATION): Ditto.
972         (TREE_TARGET_SPECIFIC): Ditto.
973         (struct tree_function_decl): Add fields for remembering the
974         current optimization options and target specific options.
975         (struct tree_optimization_option): New tree variant that remembers
976         the optimization options.
977         (struct tree_target_option): New tree variant that remembers the
978         target specific flags that might change for compiling a particular
979         function.
980         (union tree_node): Include tree_optimization_option and
981         tree_target_option fields.
982         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
983         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
984         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
985         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
986         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
987         optimization and target options.
988         (optimization_default_node): New macro to refer to global_trees
989         field.
990         (optimization_current_node): Ditto.
991         (optimization_cold_node): Ditto.
992         (optimization_hot_node): Ditto.
993         (target_option_default_node): Ditto.
994         (target_option_current_node): Ditto.
995         (current_option_pragma): Ditto.
996         (current_optimize_pragma): Ditto.
997
998         * target.h (struct gcc_target): Add valid_option_attribute_p,
999         target_option_save, target_option_restore, target_option_print,
1000         target_option_pragma_parse, and can_inline_p hooks.
1001
1002         * toplev.h (parse_optimize_options): Add declaration.
1003         (fast_math_flags_struct_set_p): Ditto.
1004
1005         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
1006         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
1007         optimize is used.
1008
1009         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
1010         tree_can_inline_p hook to see if one function can inline another.
1011         (cgraph_decide_inlining): Ditto.
1012         (cgraph_decide_inlining_incrementally): Ditto.
1013
1014         * opts.c (decode_options): Add support for running multiple times
1015         to allow functions with different target or optimization options
1016         than was specified on the command line.
1017         (fast_math_flags_struct_set_p): New function that is similar to
1018         fast_math_flags_set_p, except it uses the values in the
1019         cl_optimization structure instead of global variables.
1020
1021         * optc-gen.awk: Add support for TargetSave to allow a back end to
1022         declare new fields that need to be saved when using function
1023         specific options.  Include flags.h and target.h in the options.c
1024         source.  Add support for Save to indicate which options can be set
1025         for individual functions.  Generate cl_optimize_save,
1026         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
1027         cl_target_option_restore, cl_target_option_print functions to
1028         allow functions to use different optimization or target options.
1029
1030         * opt-functions.awk (var_type_struct): Return the type used for
1031         storing the field in a structure.
1032
1033         * opth-gen.awk: Add support for TargetSave to allow a back end to
1034         declare new fields that need to be saved when using function
1035         specific options.  Add support for Save to indicate which options
1036         can be set for individual functions.  Only generate one extern for
1037         Mask fields.  Generate cl_optimization and cl_target_option
1038         structures to remember optimization and target options.
1039
1040         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
1041         collecting new tree nodes.
1042         (TS_TARGET_OPTION): Ditto.
1043
1044         * c-decl.c (merge_decls): Merge function specific target and
1045         optimization options.
1046
1047         * function.c (invoke_set_current_function_hook): If the function
1048         uses different optimization options, change the global variables
1049         to reflect this.
1050
1051         * coretypes.h (struct cl_optimization): Add forward reference.
1052         (struct cl_target_option): Ditto.
1053
1054         * c-pragma.c (option_stack): New static vector to remember the
1055         current #pragma GCC option stack.
1056         (handle_pragma_option): New function to support #pragma GCC option
1057         to change target options.
1058         (optimize_stack): New static vector to remember the current
1059         #pragma GCC optimize stack.
1060         (handle_pragma_optimize): New function to support #pragma GCC
1061         optimize to change optimization options.
1062         (init_pragma): Add support for #pragma GCC optimize and #pragma
1063         GCC option.
1064
1065         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
1066         optimization options.
1067         (TARGET_OPTION_NODE): New tree code for remembering certain target
1068         options.
1069
1070         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
1071         TARGET_OPTION_NODE trees.
1072
1073         * common.opt (-O): Add Optimization flag.
1074         (-Os): Ditto.
1075         (-fmath-errno): Ditto.
1076         (-falign-functions): Add UInteger flag to make sure flag gets full
1077         int in cl_optimization structure.
1078         (-falign-jumps): Ditto.
1079         (-falign-labels): Ditto.
1080         (-falign-loops): Ditto.
1081         (-fsched-stalled-insns): Ditto.
1082         (-fsched-stalled-insns-dep): Ditto.
1083
1084         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
1085         definition.
1086         (TARGET_OPTION_SAVE): Ditto.
1087         (TARGET_OPTION_RESTORE): Ditto.
1088         (TARGET_OPTION_PRINT): Ditto.
1089         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
1090         (TARGET_CAN_INLINE_P): Ditto.
1091         (TARGET_INITIALIZER): Add new hooks.
1092
1093         * tree-inline.c (tree_can_inline_p): New function to determine
1094         whether one function can inline another.  Check if the functions
1095         use compatible optimization options, and also call the backend
1096         can_inline_p hook.
1097
1098         * tree-inline.h (tree_can_inline_p): Add declaration.
1099
1100         * c-common.c (c_common_attribute): Add support for option and
1101         optimize attributes.
1102         (handle_option_attribute): Add support for the option attribute to
1103         allow the user to specify different target options for compiling a
1104         specific function.
1105         (handle_optimize_attribute): Add support for the optimize
1106         attribute to allow the user to specify different optimization
1107         options for compiling a specific function.
1108         (handle_hot_attribute): Turn on -O3 optimization for this one
1109         function if it isn't the default optimization level.
1110         (handle_cold_attribute): Turn on -Os optimization for this one
1111         function if it insn't the default optimization.
1112         (const_char_p): New const char * typedef.
1113         (optimize_args): New static vector to remember the optimization
1114         arguments.
1115         (parse_optimize_options): New function to set up the optimization
1116         arguments from either the optimize attribute or #pragma GCC
1117         optimize.
1118
1119         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
1120         (builtin_define_std): Ditto.
1121
1122         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
1123         Add t-i386 Makefile fragment to add i386-c.o and i386.o
1124         dependencies.
1125         (x86_64-*-*): Ditto.
1126
1127         * Makefile.in (TREE_H): Add options.h.
1128         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
1129
1130         * doc/extend.texi (option attribute): Document new attribute.
1131         (optimize attribute): Ditto.
1132         (hot attribute): Document hot attribute sets -O3.
1133         (cold attribute): Document cold attribute sets -Os.
1134         (#pragma GCC option): Document new pragma.
1135         (#pragma GCC optimize): Ditto.
1136
1137         * doc/options.texi (TargetSave): Document TargetSave syntax.
1138         (UInteger): Document UInteger must be used for certain flags.
1139         (Save): Document Save option to create target specific options
1140         that can be saved/restored on a function specific context.
1141
1142         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new
1143         macro.
1144         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
1145
1146         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new
1147         hook.
1148         (TARGET_OPTION_SAVE): Ditto.
1149         (TARGET_OPTION_RESTORE): Ditto.
1150         (TARGET_OPTION_PRINT): Ditto.
1151         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
1152         (TARGET_CAN_INLINE_P): Ditto.
1153
1154         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
1155         -mfpmath=sse,387.
1156         (-mfpmath=both): Ditto.
1157
1158 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
1159             Karthik Kumar  <karthikkumar@gmail.com>
1160
1161         * config/i386/i386.h (TARGET_ABM): Move switch into
1162         ix86_isa_flags.
1163         (TARGET_POPCNT): Ditto.
1164         (TARGET_SAHF): Ditto.
1165         (TARGET_AES): Ditto.
1166         (TARGET_PCLMUL): Ditto.
1167         (TARGET_CMPXCHG16B): Ditto.
1168         (TARGET_RECIP): Move switch into target_flags.
1169         (TARGET_FUSED_MADD): Ditto.
1170         (ix86_arch_features): Make an unsigned char type.
1171         (ix86_tune_features): Ditto.
1172         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
1173         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
1174         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
1175
1176         * config/i386/i386.opt (arch): New TargetSave field to define
1177         fields that need to be saved for function specific option
1178         support.
1179         (tune): Ditto.
1180         (fpmath): Ditto.
1181         (branch_cost): Ditto.
1182         (ix86_isa_flags_explicit): Ditto.
1183         (tune_defaulted): Ditto.
1184         (arch_specified): Ditto.
1185         (-m128-long-double): Add Save flag to save option for target
1186         specific option support.
1187         (-m80387): Ditto.
1188         (-maccumulate-outgoing-args): Ditto.
1189         (-malign-double): Ditto.
1190         (-malign-stringops): Ditto.
1191         (-mfancy-math-387): Ditto.
1192         (-mhard-float): Ditto.
1193         (-mieee-fp): Ditto.
1194         (-minline-all-stringops): Ditto.
1195         (-minline-stringops-dynamically): Ditto.
1196         (-mms-bitfields): Ditto.
1197         (-mno-align-stringops): Ditto.
1198         (-mno-fancy-math-387): Ditto.
1199         (-mno-push-args): Ditto.
1200         (-mno-red-zone): Ditto.
1201         (-mpush-args): Ditto.
1202         (-mred-zone): Ditto.
1203         (-mrtd): Ditto.
1204         (-msseregparm): Ditto.
1205         (-mstack-arg-probe): Ditto.
1206         (-m32): Ditto.
1207         (-m64): Ditto.
1208         (-mmmx): Ditto.
1209         (-m3dnow): Ditto.
1210         (-m3dnowa): Ditto.
1211         (-msse): Ditto.
1212         (-msse2): Ditto.
1213         (-msse3): Ditto.
1214         (-msse4.1): Ditto.
1215         (-msse4.2): Ditto.
1216         (-msse4): Ditto.
1217         (-mno-sse4): Ditto.
1218         (-msse4a): Ditto.
1219         (-msse5): Ditto.
1220         (-mrecip): Move flag into target_flags.
1221         (-mcld): Ditto.
1222         (-mno-fused-madd): Ditto.
1223         (-mfused-madd): Ditto.
1224         (-mabm): Move flag into ix86_isa_flags.
1225         (-mcx16): Ditto.
1226         (-mpopcnt): Ditto.
1227         (-msahf): Ditto.
1228         (-maes): Ditto.
1229         (-mpclmul): Ditto.
1230
1231         * config/i386/i386-c.c: New file for #pragma support.
1232         (ix86_target_macros_internal): New function to #define or #undef
1233         target macros based when the user uses the #pragma GCC option to
1234         change target options.
1235         (ix86_pragma_option_parse): New function to add #pragma GCC option
1236         support.
1237         (ix86_target_macros): Move defining the target macros here from
1238         TARGET_CPU_CPP_BUILTINS in i386.h.
1239         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
1240         defined, initialize any subtarget #pragmas.
1241
1242         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
1243         REGISTER_TARGET_PRAGMAS.
1244
1245         * config/i386/t-i386: New file for x86 dependencies.
1246         (i386.o): Make dependencies mirror the include files used.
1247         (i386-c.o): New file, add dependencies.
1248
1249         * config/i386/i386-protos.h (override_options): Add bool
1250         argument.
1251         (ix86_valid_option_attribute_tree): Add declaration.
1252         (ix86_target_macros): Ditto.
1253         (ix86_register_macros): Ditto.
1254
1255         * config/i386/i386.c (ix86_tune_features): Move initialization of
1256         the target masks to initial_ix86_tune_features to allow functions
1257         to have different target options.  Make type unsigned char,
1258         instead of unsigned int.
1259         (initial_ix86_tune_features): New static vector to hold processor
1260         masks for the tune variables.
1261         (ix86_arch_features): Move initialization of the target masks to
1262         initial_ix86_arch_features to allow functions to have different
1263         target options.  Make type unsigned char, instead of unsigned
1264         int.
1265         (initial_ix86_arch_features): New static vector to hold processor
1266         masks for the arch variables.
1267         (enum ix86_function_specific_strings): New enum to describe the
1268         string options used for attribute((option(...))).
1269         (ix86_target_string): New function to return a string that
1270         describes the target options.
1271         (ix86_debug_options): New function to print the current options in
1272         the debugger.
1273         (ix86_function_specific_save): New function hook to save the
1274         function specific global variables in the cl_target_option
1275         structure.
1276         (ix86_function_specific_restore): New function hook to restore the
1277         function specific variables from the cl_target_option structure to
1278         the global variables.
1279         (ix86_function_specific_print): New function hook to print the
1280         target specific options in the cl_target_option structure.
1281         (ix86_valid_option_attribute_p): New function hook to validate
1282         attribute((option(...))) arguments.
1283         (ix86_valid_option_attribute_tree): New function that is common
1284         code between attribute((option(...))) and #pragma GCC option
1285         support that parses the options and returns a tree holding the
1286         options.
1287         (ix86_valid_option_attribute_inner_p): New helper function for
1288         ix86_valid_option_attribute_tree.
1289         (ix86_can_inline_p): New function hook to decide if one function
1290         can inline another on a target specific basis.
1291         (ix86_set_current_function); New function hook to switch target
1292         options if the user used attribute((option(...))) or #pragma GCC
1293         option.
1294         (ix86_tune_defaulted): Move to static file scope from
1295         override_options.
1296         (ix86_arch_specified): Ditto.
1297         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
1298         ix86_isa_flags.
1299         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
1300         (OPTION_MASK_ISA_ABM_SET): Ditto.
1301         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
1302         (OPTION_MASK_ISA_CX16_SET): Ditto.
1303         (OPTION_MASK_ISA_SAHF_SET): Ditto.
1304         (OPTION_MASK_ISA_AES_UNSET): Ditto.
1305         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
1306         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
1307         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
1308         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
1309         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
1310         (struct ptt): Move to static file scope from override_options.
1311         (processor_target_table): Ditto.
1312         (cpu_names): Ditto.
1313         (ix86_handle_option): Add support for options that are now isa
1314         options.
1315         (override_options): Add support for declaring functions that
1316         support different target options than were specified on the
1317         command line.  Move struct ptt, processor_target_table, cpu_names,
1318         ix86_tune_defaulted, ix86_arch_specified to static file scope.
1319         Add bool argument.  Fix up error messages so the appropriate error
1320         is given for either command line or attribute.
1321         (ix86_previous_fndecl): New static to remember previous function
1322         declaration to see if we need to change target options.
1323         (ix86_builtins_isa): New array to record the ISA of each builtin
1324         function.
1325         (def_builtin): Always create the builtin function, even if the
1326         current ISA doesn't support it.
1327         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
1328         tests for those builtins.
1329         (ix86_init_builtins): Remove TARGET_MMX test for calling
1330         ix86_init_mmx_sse_builtins.
1331         (ix86_expand_builtin): If the current ISA doesn't support a given
1332         builtin, signal an error.
1333         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
1334         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1335         (TARGET_OPTION_SAVE): Ditto.
1336         (TARGET_OPTION_RESTORE): Ditto.
1337         (TARGET_OPTION_PRINT): Ditto.
1338         (TARGET_CAN_INLINE_P): Ditto.
1339
1340 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
1341
1342        * c-typeck.c (build_external_ref): Don't call assemble_external.
1343        * final.c (output_operand): Call assemble_external.
1344
1345 2008-07-21  DJ Delorie  <dj@redhat.com>
1346
1347         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
1348         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1349
1350 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1351
1352         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
1353         original insn and splitter contents into ...
1354         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
1355         flag_unsafe_math_optimizations.  Add dummy scratch register.
1356         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
1357         !flag_unsafe_math_optimizations.  Returns number with next
1358         highest magnitude if this is still less or equal to the true
1359         quotient in magnitude.
1360
1361 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
1362
1363         * Makefile.in: Replace toplev.h with TOPLEV_H.
1364         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
1365         * c-lex.c (fe_file_change): Don't set in_system_header.
1366         * c-parser.c (c_token): Remove in_system_header.
1367         (c_lex_one_token): Don't set in_system_header.
1368         (c_parser_set_source_position_from_token): Don't set in_system_header.
1369         * diagnostic.c (diagnostic_report_diagnostic): Use location from
1370         diagnostic_info.
1371         (warning_at): New.
1372         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
1373         * flags.h (in_system_header): Remove.
1374         * function.c (saved_in_system_header): Remove.
1375         (push_cfun): Don't set in_system_header.
1376         (pop_cfun): Don't set in_system_header.
1377         (push_struct_function): Don't set in_system_header.
1378         * input.h (expanded_location): Add sysp.
1379         (in_system_header_at): New.
1380         (in_system_header): New.
1381         * toplev.c (in_system_header): Remove.
1382         * toplev.h: Include input.h
1383         (warning_at): New.
1384         * tree-cfg.c (execute_warn_function_return): Call warning_at.
1385         * tree-ssa.c (warn_uninit): Call warning_at.
1386         (warn_uninitialized_var): Update calls to warn_uninit.
1387         (warn_uninitialized_phi): Update calls to warn_uninit.
1388         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
1389         (expand_location): Initialize xloc.sysp.
1390         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
1391         (tree_decl_with_vis): Remove in_system_header_flag.
1392
1393 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
1394
1395         PR target/36822
1396         * recog.c (asm_operand_ok): Change the order of the extra
1397         memory constraint checks.
1398
1399 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1400
1401         PR tree-opt/36879
1402         * tree-switch-conversion.c (build_one_array): Call
1403         varpool_mark_needed_node and varpool_finalize_decl
1404         instead of assemble_variable.
1405
1406 2008-07-19  Jan Hubicka  <jh@suse.cz>
1407
1408         * cgraph.c (cgraph_add_new_function): Do early local passes.
1409         * tree-nrv.c (gate_pass_return_slot): New gate.
1410         (pass_nrv): Add the gate.
1411         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
1412         functions.
1413         (coalesce_ssa_name): Coalesce SSA names.
1414         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
1415         not optimizing so unused user vars remains visible.
1416         * common.opt (flag_tree_ter): Always enable by default.
1417         * tree-ssa-ter.c: Include flags.h
1418         (is_replaceable_p): Check that locations match; when aliasing is missing
1419         be conservative about loads.
1420         * tree-optimize.c (gate_init_datastructures): Remove.
1421         (pass_init_datastructures): New.
1422         * passes.c: Reorder passes so we always go into SSA.
1423
1424 2008-07-19  Jan Hubicka  <jh@suse.cz>
1425
1426         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
1427         * doc/invoke.texi (--combine): Likewise.
1428         (-finline-functions-called-once): Update levels when enabled.
1429         (-funit-at-a-time): Document new behaviour.
1430         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
1431         -fno-section-anchors when disabled explicitly.
1432         (inline params): They are not ignored now.
1433         (precompiled headers): Remove unit-at-a-time as being incompatible.
1434         * opts.c (decode_options): Handle unit-at-a-time as alias;
1435         imply -fno-section-anchors when toplevel reorder is disabled
1436         explicitly.
1437         * common.opt (ftoplevel-reorder): Set default value to 2.
1438         (funit-at-a-time): Set default value to 1.
1439         * config/rs6000/rs6000.c (optimization_options): Set section anchors
1440         to 2.
1441
1442 2008-07-19  Jan Hubicka  <jh@suse.cz>
1443
1444         * builtins.c (expand_builtin_int_roundingfn,
1445         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
1446         it is not useful.
1447
1448 2008-07-19  Richard Guenther  <rguenther@suse.de>
1449
1450         PR bootstrap/36864
1451         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
1452         * tree-ssa-sccvn.c (get_constant_value_id): New function.
1453         * tree-ssa-pre.c (get_expr_value_id): For newly created
1454         constant value-ids make sure to add the expression to its
1455         expression-set.
1456
1457 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
1458
1459         PR middle-end/36877
1460         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
1461         return value of the builtin is ignored.
1462
1463 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1464
1465         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
1466         bits, a C conformant malloc implementation has to provide.
1467         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
1468
1469 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
1470
1471         PR target/36780
1472         PR target/36827
1473         * reload.c (find_reloads_subreg_address): Only reload address if
1474         reloaded == 0, not for reloaded != 1.
1475
1476         Revert:
1477         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1478         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1479         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1480         m32c_legitimize_reload_address.
1481
1482         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1483         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1484         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1485
1486 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1487
1488         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
1489         argument, saying whether nested array are to be collapsed
1490         into a single array type DIE with multiple subscripts.
1491         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
1492         issues, centralize the nested array types collapsing control and
1493         disable the transformation for Ada.
1494
1495 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
1496
1497         PR target/36786
1498         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
1499         x86_64_shift_adj.
1500         (x86_64_shift_adj_2): New expander.
1501         (x86_64_shift_adj_3): Ditto.
1502         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
1503         to split TImode operands.
1504         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
1505         (ix86_split_lshr): Ditto.
1506
1507 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
1508
1509         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
1510         and __CHAR32_TYPE__.
1511         * c-typeck.c (digest_init): Support char16_t and char32_t.
1512         (set_nonincremental_init_from_string): Idem.
1513
1514 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1515
1516         PR middle-end/36859
1517         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
1518         PREFERRED_STACK_BOUNDARY.
1519         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1520
1521 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1522
1523         PR middle-end/36858
1524         * function.c (locate_and_pad_parm): Cap boundary earlier.
1525
1526 2008-07-17  Julian Brown  <julian@codesourcery.com>
1527
1528         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
1529         no-op for targets which don't use DLLs.
1530
1531 2008-07-17  Martin Jambor  <mjambor@suse.cz>
1532
1533         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
1534         that nodes are relevant by examining the node->analyzed flag.
1535         (ipcp_init_stage): Check which nodes are relevant, assert that the
1536         relevant ones are also required.
1537         (ipcp_propagate_stage): Check on the side arrays are properly
1538         allocated.
1539         (ipcp_print_all_jump_functions): Make sure not to touch any node
1540         that is not analyzed or an edge that does not have a corresponding
1541         entry in the on-the-side vectors.
1542         (ipcp_function_scale_print): Likewise.
1543         (ipcp_update_callgraph): Check that the node is relevant.
1544         (ipcp_insert_stage): Check that the node is relevant.  Check there is
1545         an info for every node and edge.
1546         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
1547         (ipa_print_all_tree_maps): Likewise and a new variable info.
1548         (ipa_print_all_params_modified): Likewise.
1549         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
1550
1551 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
1552
1553         PR target/25343
1554         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
1555
1556 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
1557
1558         PR rtl-optimization/36753
1559         * fwprop.c (use_killed_between): Don't shortcut
1560         single-definition global registers.
1561
1562 2008-07-16  Jan Hubicka  <jh@suse.cz>
1563
1564         * cgraph.h (varpool_empty_needed_queue): Declare.
1565         * cgraphunit.c (output_in_order): Mark all variables as needed;
1566         empty the queue.
1567         * varpool.c (varpool_assemble_node): Update debug queue.
1568         (varpool_assemble_pending_decls): Don't do it here.
1569         (varpool_empty_needed_queue):  New function.
1570
1571 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1572
1573         * recog.c (peephole2_optimize): Fix formatting.
1574
1575 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1576
1577         * c-pch.c (get_ident): Avoid C++ keywords.
1578         * combine-stack-adj.c (single_set_for_csa): Likewise.
1579         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
1580         output_asm_insn): Likewise.
1581         * reload.c (push_secondary_reload, find_reusable_reload,
1582         push_reload, combine_reloads, find_reloads,
1583         debug_reload_to_stream): Likewise.
1584         * reload.h (struct reload): Likewise.
1585         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
1586         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
1587         emit_output_reload_insns): Likewise.
1588         * targhooks.c (default_secondary_reload): Likewise.
1589         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
1590
1591 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1592
1593         * recog.c (validate_change_1, validate_change,
1594         validate_unshare_change, validate_replace_rtx_1, struct
1595         funny_match, constrain_operands, peephole2_optimize): Avoid C++
1596         keywords.
1597         * reload.c (push_secondary_reload, secondary_reload_class,
1598         scratch_reload_class, find_valid_class, find_reusable_reload,
1599         push_reload, find_dummy_reload, find_reloads_address_1,
1600         find_reloads_address_part, find_equiv_reg): Likewise.
1601         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
1602         choose_reload_regs): Likewise.
1603         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
1604         Likewise.
1605         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
1606         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
1607         * sched-rgn.c (concat_INSN_LIST): Likewise.
1608         * stor-layout.c (mode_for_size, mode_for_size_tree,
1609         smallest_mode_for_size): Likewise.
1610
1611 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1612
1613         * cfg.c (dump_reg_info): Avoid C++ keywords.
1614         * dwarf2asm.c (dw2_force_const_mem,
1615         dw2_asm_output_encoded_addr_rtx): Likewise.
1616         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
1617         * expmed.c (expand_shift): Likewise.
1618         * global.c (find_reg): Likewise.
1619         * graph.c (draw_edge): Likewise.
1620         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
1621         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
1622         widen_clz, widen_bswap, expand_parity, expand_unop,
1623         emit_cmp_and_jump_insn_1): Likewise.
1624         * postreload.c (reload_cse_simplify_operands): Likewise.
1625         * ra.h (add_neighbor): Likewise.
1626         * reg-stack.c (remove_regno_note, change_stack): Likewise.
1627         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
1628         record_reg_classes, copy_cost, record_address_regs,
1629         invalid_mode_change_p): Likewise.
1630         * regrename.c (regrename_optimize, scan_rtx_reg,
1631         dump_def_use_chain, find_oldest_value_reg,
1632         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
1633
1634 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1635
1636         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
1637         MASK_POWERPC64 for power4 in previous commit.
1638
1639 2008-07-16  Olivier Hainque  <hainque@adacore.com>
1640
1641         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
1642         instead of bare conversion to cast const-ness away.
1643
1644 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
1645
1646         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
1647         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
1648         * config/xtensa/xtensa.c (xtensa_function_value): New function.
1649         (TARGET_FUNCTION_VALUE): Define.
1650
1651 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1652
1653         * config/rs6000/rs6000.c (processor_target_table): Add
1654         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
1655
1656 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1657
1658         PR target/36827
1659         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1660         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1661         m32c_legitimize_reload_address.
1662
1663 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
1664
1665        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
1666        DECL_IN_SYSTEM_HEADER in sync.
1667
1668 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
1669
1670         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
1671         * tree-ssa-pre.c (pre_expr_eq): Ditto
1672         (get_constant_for_value_id): Take a type as an argument.
1673         (fully_constant_expression): Pass in type.
1674         (find_or_generate_expression): Short circuit constant case.
1675         (create_expression_by_pieces): Remove special casing of
1676         pointer_plus.
1677         (do_regular_insertion): Short circuit constant case.
1678         (do_partial_partial_insertion): Ditto.
1679
1680 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1681
1682         PR target/36782
1683         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
1684
1685 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
1686
1687         * config/xtensa/libgcc-xtensa.ver: New file.
1688         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
1689
1690 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1691
1692         * df-problems.c (df_set_note): Avoid C++ keywords.
1693         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
1694         * dse.c (record_store, remove_useless_values): Likewise.
1695         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
1696         gen_reg_rtx_offset, operand_subword, change_address_1,
1697         change_address, adjust_address_1, offset_address,
1698         widen_memory_access, emit_copy_of_insn_after): Likewise.
1699         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
1700         * fwprop.c (should_replace_address, propagate_rtx_1,
1701         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
1702         Likewise.
1703         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
1704         gcse_emit_move_after, update_ld_motion_stores): Likewise.
1705         * lcm.c (compute_insert_delete, pre_edge_lcm,
1706         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
1707         * lower-subreg.c (resolve_reg_notes): Likewise.
1708         * mode-switching.c (optimize_mode_switching): Likewise.
1709
1710 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1711
1712         * bt-load.c (add_btr_def, migrate_btr_def,
1713         branch_target_load_optimize): Avoid C++ keywords.
1714         * caller-save.c (insert_restore, insert_save, insert_one_insn):
1715         Likewise.
1716         * combine.c (subst, simplify_set, make_extraction,
1717         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
1718         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
1719         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
1720
1721 2008-07-15  Richard Guenther  <rguenther@suse.de>
1722
1723         PR middle-end/36369
1724         * c-common.c (strict_aliasing_warning): Do not warn for
1725         TYPE_REF_CAN_ALIAS_ALL pointers.
1726         (c_common_get_alias_set): may_alias types are not special.
1727         * tree.c (build_pointer_type_for_mode): Look up the may_alias
1728         attribute and set can_ref_all accordingly.
1729         (build_reference_type_for_mode): Likewise.
1730         * doc/extend.texi (may_alias): Clarify.
1731
1732 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1733
1734         PR target/36780
1735         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1736         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1737
1738 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1739
1740         PR target/31568
1741         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
1742         gcc_assert, instead call output_operand_lossage.
1743
1744 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
1745
1746         * builtins.c (std_canonical_va_list): Treat structure based
1747         va_list types.
1748
1749 2008-07-15  Ben Elliston  <bje@au.ibm.com>
1750
1751         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
1752
1753 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
1754
1755         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
1756         is set.
1757
1758 2008-07-14  Jan Hubicka  <jh@suse.cz>
1759
1760         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
1761         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
1762         fix predicates and constraints.
1763         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
1764         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
1765
1766 2008-07-14  Doug Kwan  <dougkwan@google.com>
1767
1768         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
1769         additional option file arm/eabi.opt.
1770         * config/arm/eabi.h (File): New configuration file for EABI targets.
1771         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
1772         SUBSUBTARGET_EXTRA_SPECS.
1773         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
1774         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
1775         from STARTFILE_SPEC so that it can be referenced in an override.
1776         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
1777         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
1778         can be referenced in an override.
1779         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
1780         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
1781         so that it can be referenced in an override.
1782         (LINK_SPEC): Use BPABI_LINK_SPEC.
1783         * config/arm/eabi.opt (File): New.
1784
1785 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1786
1787         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
1788         (FIXED_VALUE_H): New variable.
1789         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
1790         input.h, fixed-value.h.
1791         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
1792         (BASIC_BLOCK_H): Use $(BITMAP_H).
1793         (FUNCTION_H): Add varray.h.
1794         (IPA_REFERENCE_H): Use $(BITMAP_H).
1795         (CGRAPH_H): Add $(BASIC_BLOCK_H).
1796         (DF_H): Use $(BITMAP_H).
1797         (GGC_H): Add statistics.h.
1798         (INSN_ADDR_H): New.
1799         (INSN_ATTR_H): Use it.
1800         (SYSTEM_H): Add safe-ctype.h, filenames.h.
1801         (INPUT_H): New.
1802         (SYMTAB_H): Add $(OBSTACK_H).
1803         (CPP_INTERNAL_H): New.
1804         (TREE_DUMP_H): Add tree-pass.h.
1805         (TREE_FLOW_H): Use $(BITMAP_H)
1806         (PRETTY_PRINT_H): Use $(INPUT_H).
1807         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
1808         (GSTAB_H): New.
1809         (BITMAP_H): New.
1810         (many object files): Fix lots of header dependencies throughout.
1811
1812 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1813
1814         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
1815         New macros.
1816         (s-gtyp-input): Use them to write tmp-gi.list.
1817         (echo_to_gi.list): Remove.
1818
1819 2008-07-14  Richard Guenther  <rguenther@suse.de>
1820
1821         * tree-ssa-sccvn.c (pre_info): Remove.
1822         (switch_to_PRE_table): Likewise.
1823         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
1824         (set_hashtable_value_ids): Do not create value-ids for the
1825         optimistic tables.
1826         (run_scc_vn): Remove double test.  Remove bogus special-case
1827         in value-number printing.
1828         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
1829         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
1830         SSA_NAME_VALUE.
1831         * tree-flow-inline.h (get_value_handle): Remove.
1832         * tree-flow.h (get_value_handle): Remove.
1833
1834 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1835
1836         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
1837         in which we generate arithmetics is not a subrange.
1838
1839 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1840
1841         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
1842
1843 2008-07-14  Richard Guenther  <rguenther@suse.de>
1844
1845         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
1846
1847 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1848
1849         PR target/36745
1850         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
1851         reload for symbol refs moved to r0 with -fPIC.
1852         (legitimize_pic_address): Use the target register as temporary
1853         reg if possible.
1854         (emit_symbolic_move): Adjust comment.
1855         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
1856         New expanders.
1857
1858 2008-07-14  Ben Elliston  <bje@au.ibm.com>
1859
1860         * c-common.h (C_CPP_HASHNODE): New macro.
1861         * coretypes.h (struct cpp_token): Forward declare.
1862         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1863         the context-sensitive keyword method.
1864         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
1865         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
1866         expand_bool_pixel): New.
1867         (altivec_categorize_keyword): New function.
1868         (init_vector_keywords): New function.
1869         (rs6000_macro_to_expand): Likewise.
1870         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
1871         compiling an ISO C dialect.
1872
1873 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
1874
1875         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
1876         (create_expression_by_pieces): Fix typo.
1877         (do_regular_insertion): Use debug counter here too.
1878
1879 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
1880
1881         PR target/35492.
1882         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
1883         CONST_OK_FOR_LETTER_P.  All port-local users changed.
1884         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
1885         implement Kp matching power-of-two.
1886         (CONSTRAINT_LEN): Define to match.
1887         * config/cris/cris.md: Replace all use of constraint K with Kc.
1888         ("*btst*): Use Kp for operand 0 of last alternative.
1889
1890 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1891
1892         PR testsuite/36440
1893         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
1894         and quad formats.
1895
1896 2008-07-13  Jan Hubicka  <jh@suse.cz>
1897
1898         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
1899         to be mangled too.
1900
1901 2008-07-13  Richard Guenther  <rguenther@suse.de>
1902
1903         PR middle-end/36811
1904         * langhooks.c (lhd_print_error_function): Deal with recursive
1905         BLOCK trees.
1906
1907 2008-07-12  Jan Hubicka  <jh@suse.cz>
1908
1909         * cgraph.c (assembler_name_hash): New static var.
1910         (hash_node_by_assembler_name, eq_assembler_name): New.
1911         (cgraph_node_for_asm): Use hashtable.
1912         (cgraph_remove_node): Maintain hashtable.
1913         (change_decl_assembler_name): Sanity check that names are not changing
1914         after aliasing was processed.
1915         * cgraph.h (varpoon_node): Add next GGC marker.
1916         * tree.c (decl_assembler_name_equal): Constify.
1917         (decl_assembler_name_hash): New.
1918         * tree.h (decl_assembler_name_equal): Constify.
1919         (decl_assembler_name_hash): Update.
1920
1921 2008-07-12  David Daney  <ddaney@avtrex.com>
1922
1923         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1924         sb1 and r5000 cpus.
1925
1926 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1927
1928         * doc/md.texi: Document the MIPS "v" constraint.
1929         * config/mips/mips.h (reg_class): Revert last change.
1930         (REG_CLASS_NAMES): Likewise.
1931         (REG_CLASS_CONTENTS): Likewise.
1932         * config/mips/mips.c (mips_regno_to_class): Likewise.
1933         * config/mips/constraints.md (v): Likewise, but add documentation.
1934         Add a comment to say that this constraint should not be used in
1935         gcc code.
1936
1937 2008-07-11  DJ Delorie  <dj@redhat.com>
1938
1939         * config/h8300/h8300.md (length): Fix branch offset limit.
1940
1941 2008-07-11  Anatoly Sokolov  <aesok@post.ru>
1942
1943         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
1944         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
1945         (avr_hard_regno_scratch_ok): New function.
1946         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1947         * config/avr/avr.md (all peepholes that request a scratch register):
1948         Remove avr_peep2_scratch_safe use.
1949
1950 2008-07-11  Tom Tromey  <tromey@redhat.com>
1951             Ian Lance Taylor  <iant@google.com>
1952
1953         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
1954         (struct c_common_resword): Define.
1955         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
1956         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
1957         (c_common_reswords, num_c_common_reswords): Declare.
1958         * c-common.c (c_common_reswords): New global const array.
1959         (num_c_common_reswords): New const int.
1960         * c-parser.c (struct resword, reswords): Don't define.
1961         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
1962         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
1963         than reswords.  If warning about C++ keywords, give them a special
1964         RID code.
1965         (c_lex_one_token): Warn about C++ keywords.  Call
1966         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
1967         (c_parser_external_declaration): Look for RID_xxx rather than
1968         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
1969         (c_parser_statement_after_labels): Likewise.
1970         (c_parser_objc_class_instance_variables): Likewise.
1971         (c_parser_objc_class_declaration): Likewise.
1972         (c_parser_objc_try_catch_statement): Likewise.
1973         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
1974         (declspecs_add_type): Likewise.
1975
1976 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
1977
1978         * ggc-page.c (alloc_page):
1979         Substituting xmalloc, xcalloc with
1980         XNEWVEC and XCNEWVAR macros which add the
1981         needed casts.
1982
1983 2008-07-11  Richard Guenther  <rguenther@suse.de>
1984
1985         PR tree-optimization/36765
1986         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1987         aliases from HEAP vars to SMTs.
1988
1989 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1990
1991         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
1992         * configure.ac (loose_warn): Move -Wc++-compat from here...
1993         (strict_warn): ...to here.
1994         * configure: Regenerate.
1995
1996 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
1997
1998         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
1999         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
2000         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
2001         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
2002         excluding more specific h8300-*-* and sh-*-* targets.
2003
2004 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
2005
2006         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
2007         (eliminate): Ditto.
2008         (execute_pre): Call loop_optimizer_finalize in early exit.
2009
2010 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
2011
2012         PR middle-end/36790
2013         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
2014         uids in the bitmap, not just VAR_DECL uids.
2015
2016         PR rtl-optimization/36419
2017         * combine-stack-adj.c (adjust_frame_related_expr): New function.
2018         (combine_stack_adjustments_for_block): Call it if needed.  Delete
2019         correct insn.
2020         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
2021         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
2022         prologue sp adjustment.
2023
2024 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
2025
2026         PR other/28322
2027         * opts.c (print_ignored_options): Report postponed diagnostics for
2028         unknown -Wno-* options as warnings, not errors.
2029         (postpone_unknown_option_error): Renamed to...
2030         (postpone_unknown_option_warning): ... this.
2031
2032 2008-07-09  Doug Kwan  <dougkwan@google.com>
2033
2034         Revert:
2035         2008-07-08  Doug Kwan  <dougkwan@google.com>
2036
2037         * config/arm/arm.opt (mandroid): New option.
2038         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
2039         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
2040         (CC1_SPEC): Same.
2041         (CC1PLUS_SPEC): Same.
2042         (LIB_SPEC): Same.
2043         (STARTFILE_SPEC): Same.
2044         (ENDFILE_SPEC): Same.
2045         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
2046         used.
2047
2048 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
2049
2050         PR target/35802
2051         * config/mips/mips.h (reg_class): Remove V1_REG.
2052         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
2053         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
2054         instead of V1_REGS.
2055         (mips_get_tp): New function.
2056         (mips_legitimize_tls_address): Use it.
2057         * config/mips/constraints.md (v): Delete.
2058         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
2059         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
2060         After reload, split into a move and ...
2061         (*tls_get_tp_<mode>_split): ...this new instruction.
2062
2063 2008-07-09  David Daney  <ddaney@avtrex.com>
2064
2065         * config/mips/driver-native.c: Include coretypes.h and tm.h.
2066
2067 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
2068
2069         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
2070         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
2071         Add c argument.
2072         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
2073         htab_delete should be called.  Don't free c.
2074         (lookup_tmp_var): Create temp_htab lazily.
2075         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
2076         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
2077         callers.
2078         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
2079         lower_omp_ordered, lower_omp_critical, lower_omp_for,
2080         create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
2081         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
2082         * tree-sra.c (generate_element_init): Likewise.
2083         * tree-mudflap.c (execute_mudflap_function_ops,
2084         execute_mudflap_function_decls): Likewise.
2085         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
2086         * tree-gimple.h (struct gimplify_ctx): New type.
2087         (push_gimplify_context): Adjust prototype.
2088
2089 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
2090
2091         * tree-ssa-pre.c (phi_translate_1): Update placement of
2092         add_to_value calls.
2093
2094 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
2095
2096         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
2097         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
2098         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
2099         * targhooks.c (default_hard_regno_scratch_ok): New function.
2100         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
2101         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
2102         * recog.c:  Include "target.h".
2103         (peep2_find_free_register): Add check for global regs. Add target
2104         specific check.
2105         * Makefile.in (recog.o): Depend on target.h.
2106
2107 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2108
2109         * config/sh/sh.c (sh_canonical_va_list_type): New.
2110         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
2111
2112 2008-07-09  Raksit Ashok <raksit@google.com>
2113
2114         * doc/invoke.texi (Option Summary): Mention new option
2115         -Wdisallowed-function-list=...
2116         (Warning Options): Document -Wdisallowed-function-list=...
2117         * common.opt (Wdisallowed-function-list=): New flag.
2118         * flags.h (warn_disallowed_functions): External definition of new
2119         boolean warning flag.
2120         (warn_if_disallowed_function_p): Declare new function.
2121         * opts.c (warning_disallowed_functions): New static variable.
2122         (warn_disallowed_functions): New boolean warning flag.
2123         (warn_if_disallowed_function_p): New function.
2124         (add_comma_separated_to_vector): Rename
2125         add_instrument_functions_exclude_list to this.
2126         (common_handle_option): Handle new option. Rename calls to
2127         add_instrument_functions_exclude_list into calls to
2128         add_comma_separated_to_vector.
2129         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
2130         based on flag warn_disallowed_functions.
2131
2132 2008-07-09  Christian Bruel  <christian.bruel@st.com>
2133
2134         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
2135          instead of get_attr_length.
2136
2137 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2138
2139         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
2140         keywords.
2141         * genemit.c (gen_insn): Likewise.
2142         * gengtype.c (note_def_vec): Likewise.
2143         * gengtype.h (note_def_vec): Likewise.
2144         * genoutput.c (struct data, output_insn_data, process_template,
2145         gen_expand, gen_split, note_constraint): Likewise.
2146         * genrecog.c (new_decision, add_to_sequence, factor_tests,
2147         make_insn_sequence): Likewise.
2148         * gensupport.c (record_insn_name): Likewise.
2149
2150 2008-07-08  Doug Kwan  <dougkwan@google.com>
2151
2152         * config/arm/arm.opt (mandroid): New option.
2153         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
2154         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
2155         (CC1_SPEC): Same.
2156         (CC1PLUS_SPEC): Same.
2157         (LIB_SPEC): Same.
2158         (STARTFILE_SPEC): Same.
2159         (ENDFILE_SPEC): Same.
2160         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
2161         used.
2162
2163 2008-07-08  Raksit Ashok  <raksit@google.com>
2164
2165         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
2166         (set_storage_via_setmem): Fix expected_align parameter.
2167         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
2168         missing from the list.
2169         * doc/md.texi (movmem): Explicitly state that expected alignment is
2170         to be expressed in bytes.
2171         (setmem): Explicitly state that expected alignment is to be expressed
2172         in bytes.
2173
2174 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
2175
2176         * reload.c (find_reloads_subreg_address): Do not require validity
2177         of address in original mode before reloading address.
2178
2179 2008-07-07  Tianwei Sheng  <tianweis@google.com>
2180
2181         * df-core.c (df_remove_problem): Adjust the access to avoid out of
2182         bounds array access.
2183
2184 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
2185
2186         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
2187
2188 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
2189
2190         Fix PR tree-optimization/23455
2191         Fix PR tree-optimization/35286
2192         Fix PR tree-optimization/35287
2193         * Makefile.in (OBJS-common): Remove tree-vn.o.
2194         (tree-vn.o): Remove.
2195         * dbgcnt.def: Add treepre_insert debug counter.
2196         * gcc/tree-flow.h (add_to_value): Updated for other changes.
2197         (debug_value_expressions): Ditto.
2198         (print_value_expressions): Ditto.
2199         * tree-pretty-print.c (dump_generic_node): Updated for
2200         VALUE_HANDLE removal.
2201         * tree-ssa-dom.c (record_equality): Ditto.
2202         (cprop_operand): Ditto.
2203         (lookup_avail_expr): Ditto.
2204         * tree-ssa-threadedge.c
2205         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
2206         (simplify_control_stmt_condition): Ditto.
2207         * tree.c (tree_code_size): Ditto.
2208         (tree_node_structure): Ditto.
2209         (iterative_hash_expr): Ditto.
2210         * tree.def: Ditto.
2211         * tree.h (VALUE_HANDLE_ID): Ditto.
2212         (VALUE_HANDLE_EXPR_SET): Ditto.
2213         (struct tree_value_handle): Ditto.
2214         (union tree_node): Ditto.
2215         * treestruct.def: Ditto.
2216         * tree-vn.c: Removed.
2217         * tree-ssa-pre.c: Rewritten entirely.
2218         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
2219         (constant_value_ids): Ditto.
2220         (vn_nary_op_t): Moved to header.
2221         (vn_phi_t): Ditto.
2222         (vn_reference_op_t): Ditto
2223         (vn_reference_t): Ditto.
2224         (next_value_id): New variable.
2225         (VN_INFO): Add an assert.
2226         (vn_constant_eq): New function.
2227         (vn_constant_hash): Ditto.
2228         (get_or_alloc_constant_value_id): Ditto.
2229         (value_id_constant_p): Ditto.
2230         (vn_reference_compute_hash): De-staticify.
2231         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
2232         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
2233         (valueize_refs): Update opcode if it changes from ssa name to constant.
2234         (vn_reference_lookup_1): Add new argument.
2235         (vn_reference_lookup):  Ditto.
2236         (vn_reference_lookup_pieces): New function.
2237         (vn_reference_insert): Add return type. Modify to deal with value ids.
2238         (vn_reference_insert_pieces):  New function.
2239         (vn_nary_op_compute_hash): De-staticify.
2240         (vn_nary_op_eq): Ditto.
2241         (vn_nary_op_lookup_pieces): New function.
2242         (vn_nary_op_lookup): Add new argument.
2243         (vn_nary_op_insert_pieces): New function.
2244         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
2245         (vn_phi_insert): Ditto.
2246         (visit_unary_op): Update for callee changes.
2247         (visit_binary_op): Ditto.
2248         (visit_reference_op_load): Ditto.
2249         (visit_reference_op_store): Ditto.
2250         (init_scc_vn): Init next_value_id, constant_to_value_id and
2251         constant_value_ids.
2252         (free_scc_vn): Free them.
2253         (set_hashtable_value_ids): New function.
2254         (run_scc_vn): Use it.
2255         (get_max_value_id): New function.
2256         (get_next_value_id): Ditto.
2257         (expressions_equal_p): Moved from tree-vn.c
2258         (sort_vuses): Ditto.
2259         (sort_vuses_heap): Ditto.
2260         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
2261         above).
2262         * tree.c (iterative_hash_hashval_t): Made non-static
2263         * tree.h (iterative_hash_hashval_t): Declare it.
2264
2265 2008-07-08  Martin Jambor  <mjambor@suse.cz>
2266
2267         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
2268         instead of ipa_create_node_params.
2269         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
2270         ipa_check_create_edge_args, free them with
2271         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
2272
2273         * ipa-prop.c: Include flags.h and tree-inline.h.
2274         (ipa_node_params_vector): New variable.
2275         (ipa_edge_args_vector): New variable.
2276         (edge_removal_hook_holder): New variable.
2277         (node_removal_hook_holder): New variable.
2278         (edge_duplication_hook_holder): New variable.
2279         (node_duplication_hook_holder): New variable.
2280         (ipa_detect_param_modifications): Check for presence of modified flags.
2281         (ipa_compute_jump_functions): Check for presence of jump functions.
2282         (ipa_free_edge_args_substructures): New function.
2283         (ipa_create_node_params): Removed.
2284         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
2285         (ipa_free_node_params_substructures): New function.
2286         (ipa_free_all_node_params): Changed to deallocate the on-the-side
2287         vector.
2288         (ipa_edge_removal_hook): New function.
2289         (ipa_node_removal_hook): New function.
2290         (duplicate_array): New function.
2291         (ipa_edge_duplication_hook): New function.
2292         (ipa_node_duplication_hook): New function.
2293         (ipa_register_cgraph_hooks): New function.
2294         (ipa_unregister_cgraph_hooks): New function.
2295         (free_all_ipa_structures_after_ipa_cp): New function.
2296
2297         * ipa-prop.h: Include vec.h.
2298         (ipa_node_params_t): New typedef with vector types for it.
2299         (ipa_edge_args_t):  New typedef with vector types for it.
2300         (IPA_NODE_REF): Changed to access an on-the-side vector.
2301         (IPA_EDGE_REF): Changed to access an on-the-side vector.
2302         (ipa_check_create_node_params): New function.
2303         (ipa_check_create_edge_args): New function.
2304
2305         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
2306         all users.
2307
2308 2008-07-07  Tom Tromey  <tromey@redhat.com>
2309
2310         * configure, config.in: Rebuilt.
2311         * configure.ac: Don't check for scandir or alphasort.
2312
2313 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
2314
2315         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
2316         types immediately after creating them.
2317
2318 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
2319
2320         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
2321
2322 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
2323
2324         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
2325         dump_constraint_graph.
2326         (dump_constraint_edge): New function.
2327         (dump_constraint_graph): New function.
2328         (debug_constraint_graph): New function.
2329         (dump_constraint): Removed useless comparison.
2330         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
2331         (dump_constraint_graph): Declare.
2332         (debug_constraint_graph): Declare.
2333         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
2334
2335 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
2336
2337         * config/i386/i386.c (is_va_list_char_pointer): New.
2338         (ix86_va_start): Replace compare with ms_va_list_type_node
2339         by is_va_list_char_pointer.
2340         (ix86_gimplify_va_arg): Likewise.
2341
2342 2008-07-07  Martin Jambor  <mjambor@suse.cz>
2343
2344         * cgraph.c (cgraph_edge_max_uid): New variable.
2345         (struct cgraph_edge_hook_list): New type.
2346         (struct cgraph_node_hook_list): New type.
2347         (struct cgraph_2edge_hook_list): New type.
2348         (struct cgraph_2node_hook_list): New type.
2349         (first_cgraph_edge_removal_hook): New variable.
2350         (first_cgraph_node_removal_hook): New variable.
2351         (first_cgraph_edge_duplicated_hook): New variable.
2352         (first_cgraph_node_duplicated_hook): New variable.
2353         (cgraph_add_edge_removal_hook): New function.
2354         (cgraph_remove_edge_removal_hook): New function.
2355         (cgraph_call_edge_removal_hooks):  New function.
2356         (cgraph_add_node_removal_hook):  New function.
2357         (cgraph_remove_node_removal_hook):  New function.
2358         (cgraph_call_node_removal_hooks):  New function.
2359         (cgraph_add_edge_duplication_hook):  New function.
2360         (cgraph_remove_edge_duplication_hook):  New function.
2361         (cgraph_call_edge_duplication_hooks):  New function.
2362         (cgraph_add_node_duplication_hook):  New function.
2363         (cgraph_remove_node_duplication_hook):  New function.
2364         (cgraph_call_node_duplication_hooks):  New function.
2365         (cgraph_create_edge): Assign to edge uid.
2366         (cgraph_remove_edge): Call edge removal hooks.
2367         (cgraph_node_remove_callees): Call edge removal hooks.
2368         (cgraph_node_remove_callers): Call edge removal hooks.
2369         (cgraph_remove_node): Call node removal hooks.
2370         (cgraph_clone_edge): Call edge duplication hooks.
2371         (cgraph_clone_node): Call node duplication hooks.
2372
2373         * cgraph.h (cgraph_edge): New field uid.
2374         (cgraph_edge_hook): New type.
2375         (cgraph_node_hook): New type.
2376         (cgraph_2edge_hook): New type.
2377         (cgraph_2node_hook): New type.
2378
2379 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
2380
2381         * config.in: Regenerate.
2382
2383 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
2384
2385         * gcc.c (print_sysroot): New.
2386         (option_map, display_help, process_command): Handle the
2387         -print-sysroot option.
2388         (main): Print the sysroot if requested.
2389         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
2390
2391 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2392
2393         PR target/34780
2394         * unwind-pe.h (size_of_encoded_value): add attribute unused.
2395
2396 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
2397
2398         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
2399         (assign_parm_setup_block_p): Also check mode of entry_parm.
2400
2401 2008-07-07  Richard Guenther  <rguenther@suse.de>
2402
2403         * tree-ssa-structalias.h (set_used_smts): Remove.
2404         * tree-ssa-structalias.c (used_smts): Likewise.
2405         (set_used_smts): Likewise.
2406         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
2407         call to set_used_smts.
2408
2409 2008-07-07  Richard Guenther  <rguenther@suse.de>
2410
2411         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
2412         (new_var_info): Set it to false.
2413         (solution_set_add): Correctly handle pointers outside a var and
2414         inside a field.
2415         (type_safe): Treat variables with is_full_var properly.
2416         (do_sd_constraint): Likewise.
2417         (do_ds_constraint): Likewise.
2418         (process_constraint): Remove zeroing offset for !use_field_sensitive.
2419         (get_constraint_for_ptr_offset): New function.
2420         (get_constraint_for_component_ref): For addresses at least include
2421         the last field of the variable.  Handle is_full_vars properly.
2422         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
2423         (handle_ptr_arith): Remove.
2424         (find_func_aliases): Simplify assignment handling.
2425         (create_function_info_for): For parameter and result varinfos set
2426         is_full_var flag.
2427         (create_variable_info_for): Set is_full_var flag whenever we
2428         just created a single varinfo for a decl.
2429         (init_alias_vars): Initialize use_field_sensitive from
2430         max-fields-for-field-sensitive parameter.
2431
2432 2008-07-07  Richard Guenther  <rguenther@suse.de>
2433
2434         PR tree-optimization/36713
2435         * tree-flow-inline.h (is_call_used): New function.
2436         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
2437         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2438         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
2439
2440 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2441
2442         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
2443
2444 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
2445
2446         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
2447
2448 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2449             Nathan Sidwell  <nathan@codesourcery.com>
2450
2451         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
2452         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
2453         tmake_file.
2454         * config/m68k/t-linux: New.
2455         * doc/install.texi: Document m68k-*-linux is now multilibbed by
2456         default.
2457
2458 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
2459
2460         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
2461         * config/m68k/m68k-devices.def: Remove multilibs that only differ
2462         by MAC/EMAC.
2463
2464 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2465
2466         * gcc.c (execute): Fix -Wc++-compat warning.
2467
2468 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2469
2470         PR target/36720
2471         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
2472         constant for little endian.
2473
2474 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
2475
2476         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
2477         mips_base_mips16 instead of TARGET_MIPS16.
2478         (mips_base_mips16): Declare.
2479         * config/mips/mips.c (mips_base_mips16): Make global.
2480         (was_mips16_p): Remove GTY marker.
2481         (was_mips16_pch_p): New variable.
2482         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
2483         (mips_override_options): Force to non-MIPS16 mode initially.
2484         Do not complain about MIPS16 PIC incompatibilities here.
2485         Only allow -mgpopt if -mexplicit-relocs is in force for
2486         non-MIPS16 code.
2487
2488 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
2489
2490         * configure.ac: Check for caddr_t, define to char * if not defined.
2491         * configure: Regenerate.
2492         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
2493         (mmap_gt_pch_use_address): Likewise.
2494         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
2495
2496 2008-07-06  Richard Guenther  <rguenther@suse.de>
2497
2498         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
2499         (new_var_info): Deal with it.
2500         (solution_set_add): Likewise.
2501         (bitpos_of_field): Make signed, fix.
2502         (struct fieldoff): Remove type and decl fields.  Make size field
2503         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
2504         flags.
2505         (fieldoff_compare): Deal with it.
2506         (push_fields_onto_fieldstack): Remove has_union argument, glob
2507         adjacent non-pointer fields together.
2508         (create_function_info_for): Do not set has_union.
2509         (create_variable_info_for): Simplify.
2510
2511 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
2512
2513         * config.gcc (extra_headers): Add cross-stdarg.h for target
2514         x86_64-*-* and i?86-*-*.
2515         * config/i386/cross-stdarg.h: New.
2516         * builtins.c (std_fn_abi_va_list): New.
2517         (std_canonical_va_list_type): New.
2518         (stabilize_va_list): Replace va_list_type_node use by
2519         mtarget.canonical_va_list_type.
2520         (gimplify_va_arg_expr): Likewise.
2521         (expand_builtin_va_copy): Replace va_list_type_node use by
2522         mtarget.fn_abi_va_list.
2523         * tree-sra.c (is_va_list_type): New helper.
2524         (decl_can_be_decomposed_p): Replace
2525         va_list_type_node use by is_va_list_type.
2526         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
2527         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2528         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
2529         * config/i386/i386-protos.h (ix86_get_valist_type): New.
2530         (ix86_enum_va_list): New.
2531         * config/i386/i386.c (sysv_va_list_type_node): New.
2532         (ms_va_list_type_node): New.
2533         (ix86_function_type_abi): Remove sorry.
2534         (ix86_build_builtin_va_list_abi): New.
2535         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
2536         for 64-bit targets.
2537         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
2538         (ix86_init_builtins_va_builtins_abi): New.
2539         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
2540         for 64-bit targets.
2541         (ix86_handle_abi_attribute): New.
2542         (attribute_spec): Add sysv_abi and ms_abi.
2543         (ix86_fn_abi_va_list): New.
2544         (ix86_canonical_va_list_type): New.
2545         (ix86_enum_va_list): New.
2546         (TARGET_FN_ABI_VA_LIST): New.
2547         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2548         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
2549         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
2550         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2551         (TARGET_ENUM_VA_LIST): New.
2552         * expr.h (std_fn_abi_va_list): New.
2553         (std_canonical_va_list_type): New.
2554         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
2555         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2556         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
2557         TARGET_CANONICAL_VA_LIST_TYPE.
2558         * target.h (struct gcc_target): Add fn_abi_va_list hook
2559         and canonical_va_list_type hook.
2560
2561 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2562
2563         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
2564         integral and pointer types.
2565
2566 2008-07-04  Roger Sayle  <roger@eyesopen.com>
2567
2568         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
2569         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
2570
2571 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2572
2573         PR target/36684
2574         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
2575
2576 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
2577
2578         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
2579         build_gimple_modify_stmt.
2580         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
2581         gimple operand.  Use fold_build* instead of build*.
2582
2583 2008-07-04  Richard Guenther  <rguenther@suse.de>
2584
2585         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
2586         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
2587         properly to compute the reachability set if we do field-sensitive PTA.
2588         * invoke.texi (max-fields-for-field-sensitive): Document default.
2589         * opts.c (decode_options): Set max-fields-for-field-sensitive to
2590         100 for optimize >= 2.
2591
2592 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2593
2594         * ggc-zone.c (lookup_page_table_if_allocated,
2595         set_page_table_entry, zone_find_object_size, alloc_small_page,
2596         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
2597         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
2598         -Wc++-compat and/or -Wcast-qual warnings.
2599
2600 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
2601
2602         PR target/36634
2603         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
2604         pic_offset_table_rtx to be marked as used here.
2605         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
2606         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
2607         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
2608         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
2609         !TARGET_SECURE_PLT.
2610
2611 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2612
2613         * alloc-pool.c (hash_descriptor, eq_descriptor,
2614         alloc_pool_descriptor): Fix -Wc++-compat warnings.
2615         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
2616         Likewise.
2617         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
2618         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
2619         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
2620         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
2621         Likewise.
2622
2623 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2624
2625         * tree-flow.h (loop_only_exit_p): Declare.
2626         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
2627         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
2628         the number of iterations if it is constant.  Otherwise, if this is the
2629         only possible exit of the loop, use the conservative estimate on the
2630         number of iterations of the entire loop if available.
2631
2632 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
2633
2634         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
2635         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
2636         Add synchronization functions.
2637         * config/sync.c: New file.
2638         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
2639         (LIBGCC_SYNC_CFLAGS): Likewise.
2640
2641 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
2642
2643         PR target/36710
2644         * config/i386/i386.md (mode): Add TF to "mode" attribute.
2645         (*pushtf_sse): New insn pattern.
2646         (pushtf splitters): New splitters.
2647
2648 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
2649
2650         PR middle-end/35736
2651         * predict.c (build_predict_expr): Use void_type_node for the tree
2652         type, instead of NULL_TREE.
2653
2654 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2655
2656         * config/i386/i386.c (contains_aligned_value_p): Return true
2657         for TCmode.
2658         (ix86_data_alignment): Align TCmode to 128bits.
2659         (ix86_local_alignment): Likewise.
2660
2661 2008-07-03  Andrew Haley  <aph@redhat.com>
2662
2663         PR bootstrap/33304
2664         * vec.h (VEC_TA): New.
2665         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
2666         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
2667         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
2668         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
2669         (C_COMMON_FIXED_TYPES): Remove first arg.
2670         (C_COMMON_FIXED_MODE_TYPES): Likewise.
2671         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
2672         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
2673         not to use empty macro arguments.
2674
2675 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
2676
2677         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
2678         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
2679         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
2680         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
2681         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
2682         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
2683         config/ia64/crtn.asm, config/m68hc11/larith.asm,
2684         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
2685         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
2686         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2687         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2688         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2689         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
2690         config/rs6000/e500crtres64gpr.asm,
2691         config/rs6000/e500crtres64gprctr.asm,
2692         config/rs6000/e500crtrest32gpr.asm,
2693         config/rs6000/e500crtrest64gpr.asm,
2694         config/rs6000/e500crtresx32gpr.asm,
2695         config/rs6000/e500crtresx64gpr.asm,
2696         config/rs6000/e500crtsav32gpr.asm,
2697         config/rs6000/e500crtsav64gpr.asm,
2698         config/rs6000/e500crtsav64gprctr.asm,
2699         config/rs6000/e500crtsavg32gpr.asm,
2700         config/rs6000/e500crtsavg64gpr.asm,
2701         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
2702         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
2703         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
2704         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
2705         config/sparc/sol2-cn.asm: Remove .file directives.
2706
2707 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
2708
2709         * resource.c (mark_referenced_resources): Look inside
2710         UNSPEC_VOLATILEs and ASM_INPUTs.
2711
2712 2008-07-02  Ian Lance Taylor  <iant@google.com>
2713
2714         * rtlanal.c (add_reg_note): New function.
2715         * rtl.h (add_reg_note): Declare.
2716         * auto-inc-dec.c (attempt_change): Use add_reg_note.
2717         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
2718         * builtins.c (expand_builtin_longjmp): Likewise.
2719         (expand_builtin_nonlocal_goto): Likewise.
2720         * calls.c (emit_call_1, expand_call): Likewise.
2721         * cfgexpand.c (add_reg_br_prob_note): Likewise.
2722         * cfglayout.c (fixup_reorder_chain): Likewise.
2723         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2724         (commit_one_edge_insertion): Likewise.
2725         * combine.c (move_deaths, distribute_notes): Likewise.
2726         * df-problems.c (df_set_note): Likewise.
2727         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
2728         (set_unique_reg_note): Likewise.
2729         (emit_copy_of_insn_after): Likewise.
2730         * expr.c (expand_expr_real): Likewise.
2731         * gcse.c (add_label_notes): Likewise.
2732         * haifa-sched.c (create_check_block_twin): Likewise.
2733         * jump.c (mark_jump_label_1): Likewise.
2734         * loop-doloop.c (add_test, doloop_modify): Likewise.
2735         * loop-unswitch.c (compare_and_jump_seq): Likewise.
2736         * lower-subreg.c (move_eh_region_note): Likewise.
2737         * optabs.c (emit_libcall_block): Likewise.
2738         * predict.c (predict_insn): Likewise.
2739         (combine_predictions_for_insn): Likewise.
2740         * recog.c (peephole2_optimize): Likewise.
2741         * regmove.c (try_auto_increment): Likewise.
2742         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
2743         * reload.c (find_reloads): Likewise.
2744         * reload1.c (fixup_eh_region_note): Likewise.
2745         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
2746         * reorg.c (delete_prior_computation): Likewise.
2747         (delete_computation, dbr_schedule): Likewise.
2748         * config/pa/pa.c (legitimize_pic_address): Likewise.
2749         * config/sh/sh.c (sh_reorg): Likewise.
2750
2751 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2752
2753         PR target/36669
2754         * config/libgcc-glibc.ver: Add %exclude.
2755         * config/m32r/libgcc-glibc.ver: Likwise.
2756         * config/s390/libgcc-glibc.ver: Likwise.
2757         * config/sh/libgcc-glibc.ver: Likwise.
2758         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
2759
2760         * config/i386/libgcc-glibc.ver: New.
2761
2762         * config/i386/libgcc-x86_64-glibc.ver: Removed.
2763
2764 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2765
2766         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
2767         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
2768         i[34567]86-*-linux*, x86_64-*-linux*.  Add
2769         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
2770         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
2771         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
2772         i[34567]86-*-linux*, x86_64-*-linux*.
2773
2774         * libgcc-std.ver: Add empty GCC_4.4.0.
2775
2776         * mkmap-symver.awk: Support multiple versions per symbol.
2777
2778         * config/i386/i386.c (ix86_init_builtins): Always define
2779         __builtin_fabsq and __builtin_copysignq with fallbacks.
2780         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
2781         and __builtin_copysignq if SSE2 isn't available.
2782
2783         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
2784         (LIBGCC2_TF_CEXT): Likwise.
2785         (TF_SIZE): Likwise.
2786
2787         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
2788
2789         * config/i386/sfp-machine.h: Moved to libgcc.
2790
2791         * config/i386/sfp-machine.h: New.
2792         * config/i386/t-linux: Likwise.
2793
2794         * config/i386/t-darwin: Remove softfp_wrap_start and
2795         softfp_wrap_end.
2796         * config/i386/t-darwin64: Likewise.
2797
2798         * config/i386/t-fprules-softfp64: Renamed to ...
2799         * config/i386/t-fprules-softfp: This.
2800
2801         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
2802         and softfp_wrap_end.
2803
2804 2008-07-02  Jason Merrill  <jason@redhat.com>
2805
2806         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
2807
2808         * tree.c (ctor_to_list): New fn.
2809         * tree.h: Declare it.
2810         (CONSTRUCTOR_ELT): New macro.
2811         (CONSTRUCTOR_NELTS): New macro.
2812
2813 2008-07-02  Richard Guenther  <rguenther@suse.de>
2814
2815         * tree-ssa-structalias.c (struct variable_info): Reorder
2816         to fill padding on 64bit hosts.  Make collapsed_to an int.
2817         (get_varinfo_fc): Deal with that.
2818         (new_var_info): Likewise.
2819         (collapse_rest_of_var): Likewise.
2820
2821 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
2822
2823         * doc/install.texi (--enable-java-home): Document.
2824         (--enable-aot-compile-rpm): Likewise.
2825         (--with-arch-directory): Likewise.
2826         (--with-os-directory): Likewise.
2827         (--with-origin-name): Likewise.
2828         (--with-arch-suffix): Likewise.
2829         (--with-jvm-root-dir): Likewise.
2830         (--with-jvm-jar-dir): Likewise.
2831         (--with-python-dir): Likewise.
2832
2833 2008-07-02  Richard Guenther  <rguenther@suse.de>
2834
2835         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
2836         from decls explicitly.  Merge operand checking from tuples.
2837
2838 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2839
2840         * tree-switch-conversion.c: Included timevar.h which I forgot before.
2841
2842 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2843
2844         * tree-switch-conversion.c: Included timevar.h
2845         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
2846
2847         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
2848
2849 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2850
2851         * tree-switch-conversion.c: Corrected various comments and
2852         whitespace issues
2853         (build_constructors): Fixed minor formatting mistakes.
2854
2855         * invoke.texi (Optimize Options): Corrected the
2856         switch-conversion-max-branch-ratio parameter.
2857
2858 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
2859
2860         * final.c (asm_insn_count): Return zero for an empty asm body.
2861
2862 2008-07-02  Richard Guenther  <rguenther@suse.de>
2863
2864         * bitmap.h (bitmap_set_bit): Return bool.
2865         (bitmap_clear_bit): Likewise.
2866         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
2867         write to the bitmap if it would.
2868         (bitmap_clear_bit): Likewise.
2869         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
2870         bitmap_set_bit return value.
2871         (add_pred_graph_edge): Likewise.
2872         (add_graph_edge): Likewise.
2873         (do_sd_constraint): Likewise.
2874         (do_ds_constraint): Likewise.
2875
2876 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2877
2878         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
2879         Fix -Wc++-compat and/or -Wcast-qual warnings.
2880         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
2881         gen_regparm_prefix): Likewise.
2882         * vmsdbgout.c (write_modbeg, lookup_filename,
2883         vmsdbgout_source_line, vmsdbgout_init): Likewise.
2884
2885 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
2886
2887         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
2888         defaults.h definition apply.
2889
2890 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2891
2892         * function.c (assign_parm_remove_parallels): New.
2893         (assign_parm_setup_block_p): Do not return true for non-BLKmode
2894         PARALLELs.
2895         (assign_parm_setup_block): Do not handle them.
2896         (assign_parm_setup_reg, assign_parm_setup_stack): Call
2897         assign_parm_remove_parallels.
2898
2899 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2900
2901         * c-typeck.c (convert_for_assignment): Use
2902         vector_targets_convertible_p.
2903         * c-common.c (vector_targets_convertible_p): New.
2904         * c-common.h (vector_targets_convertible_p): New prototype.
2905         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
2906         opaque_p_V2SI_type_node.
2907
2908 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
2909
2910         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
2911         RFmode constants.
2912
2913 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
2914
2915         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
2916         TFmode constants via two element DImode vector for hosts with
2917         HOST_BITS_PER_WIDE_INT < 64.
2918         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
2919         also for HOST_BITS_PER_WIDE_INT < 64.
2920
2921 2008-07-01  Richard Guenther  <rguenther@suse.de>
2922
2923         PR tree-optimization/36666
2924         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
2925         (get_constraint_exp_from_ssa_var): Split into ...
2926         (get_constraint_exp_for_temp): ... this ...
2927         (get_constraint_for_ssa_var): ... and that.
2928         Return constraint expressions for all touched sub-fields
2929         if the results address is not taken.
2930         (process_constraint): Remove assertion that aggregate
2931         assignments do not happen at this place.
2932         (get_constraint_for_component_ref): Add address_p argument.
2933         Return constraint expressions for all touched sub-fields
2934         if the results address is not taken.
2935         (do_deref): Use get_constraint_exp_for_temp.
2936         (get_constraint_for_1): Rename from ...
2937         (get_constraint_for): ... this.  Add the old function as wrapper.
2938         (do_structure_copy): Use get_constraint_for_1.
2939
2940 2008-07-01  Martin Jambor  <mjambor@suse.cz>
2941
2942         * Makefile.in (tree-switch-conversion.o): Add.
2943         (OBJS-common): Add tree-swtch-conversion.o.
2944         * passes.c (init_optimization_passes): Add pass_convert_switch.
2945         * tree-pass.h: (pass_convert_switch): Add.
2946         * tree-switch-conversion.c: New file.
2947         * gcc.dg/tree-ssa/cswtch.c: New testcase.
2948         * common.opt (ftree-cswtch): New option.
2949         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2950         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2951         * opts.c (decode_options): Set flag_tree_switch_conversion when
2952         optimization level is >= 2.
2953         * doc/invoke.texi (Optimize Options): Added description of
2954         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
2955
2956 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2957
2958         * config/darwin-driver.c (darwin_default_min_version): Fix
2959         -Wc++-compat warnings.
2960
2961 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
2962
2963         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
2964         of operand 0.
2965
2966 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2967
2968         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
2969
2970 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2971
2972         PR rtl-optimization/34744
2973         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
2974         (df_scan_free_internal): Free data structures not
2975         allocated in storage pools.
2976         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
2977         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
2978         df_scan_free_mws_vec.
2979         * dse.c (dse_step6): Free offset_map_p and offset_map_n
2980         unconditionally.
2981
2982 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2983
2984         * config/i386/i386.c (contains_aligned_value_p): Return true
2985         for __float128.
2986         (ix86_function_arg_boundary): Return its natural boundary
2987         for __float128.
2988         (return_in_memory_32): Don't check TDmode.
2989         (ix86_split_to_parts): Support splitting into 4 parts and
2990         support TFmode for 32bit target.
2991         (ix86_split_long_move): Support splitting into 4 parts.
2992         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
2993         for SSE2.
2994         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
2995         (ix86_init_builtins): Here.
2996         (ix86_scalar_mode_supported_p): Always return true for TFmode.
2997         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
2998         'q' and 'w', respectively.
2999
3000         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
3001         TARGET_64BIT.
3002         (movtf_internal): Likewise.
3003         (<code>tf2): Likewise.
3004         (*absnegtf2_sse): Likewise.
3005         (copysign<mode>3): Likewise.
3006         (copysign<mode>3_const): Likewise.
3007         (copysign<mode>3_var): Likewise.
3008         (define_split UNSPEC_COPYSIGN): Likewise.
3009         * config/i386/sse.md (*nandtf3): Likewise.
3010         (<code>tf3): Likewise.
3011         (*<code>tf3): Likewise.
3012
3013 2008-06-30  Joey Ye  <joey.ye@intel.com>
3014             H.J. Lu  <hongjiu.lu@intel.com>
3015
3016         * global.c (compute_regsets): Set frame_pointer_needed here.
3017         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
3018
3019 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3020
3021         * doc/install.texi (specific): Expand Windows build notes.
3022
3023 2008-06-30  Ira Rosen  <irar@il.ibm.com>
3024
3025         PR tree-optimization/36648
3026         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
3027         number of prolog iterations by step. Fix the comment.
3028
3029 2008-06-30  Richard Guenther  <rguenther@suse.de>
3030
3031         PR middle-end/36671
3032         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
3033         handle calls from ECF_MALLOC functions.
3034         (handle_pure_call): ECF_MALLOC functions do not return
3035         call-used memory.
3036         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
3037
3038 2008-06-29  Andreas Schwab  <schwab@suse.de>
3039
3040         * config/m68k/m68k.c (print_operand): Always print a float
3041         constant in hex.
3042         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
3043         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
3044         Remove macros.
3045
3046         * config/rs6000/x-linux64: Remove never used file.
3047
3048 2008-06-29  Richard Guenther  <rguenther@suse.de>
3049
3050         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
3051         prototype.
3052         (struct alias_info): Move ...
3053         * tree-ssa-alias.c: ... here.
3054         (update_alias_info): Declare.
3055         (compute_may_aliases): Call it.
3056         (update_alias_info): New function.
3057         * tree-ssa-structalias.c (update_alias_info): Move ...
3058         * tree-ssa-alias.c (update_alias_info_1): ... here.
3059         * tree-ssa-structalias.c (process_constraint_1): Remove
3060         unused from_call argument.  Rename to ...
3061         (process_constraint): ... this.  Delete old wrapper.
3062         (make_constraint_to): Adjust callers.
3063         (handle_const_call): Likewise.
3064         (handle_pure_call): Likewise.
3065         (init_base_vars): Likewise.
3066         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
3067         (find_func_aliases): We don't need structure copies for
3068         complex types.
3069         (make_constraint_from_anything): Remove.
3070         (create_variable_info_for): For globals make constraints
3071         from escaped, not from anything.
3072         (compute_points_to_sets): Do not call update_alias_info.
3073         (ipa_pta_execute): Use make_constraint_from.
3074
3075 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3076
3077         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
3078         (bitmap.o-warn, dominance.o-warn): New.
3079         * configure.ac (cxx_compat_warn): Delete.
3080         (loose_warn): Add -Wcast-qual and -Wc++-compat.
3081         * system.h: Remove #pragma diagnostic for -Wcast-qual and
3082         -Wc++-compat.
3083         * configure: Regenerate.
3084
3085         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
3086         warnings.
3087
3088 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3089
3090         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
3091         * df-scan.c (df_notes_rescan): Likewise.
3092         * ggc-page.c (set_page_table_entry): Likewise.
3093         * intl.c (gcc_gettext_width): Likewise.
3094         * varasm.c (get_unnamed_section, get_noswitch_section,
3095         get_section): Likewise.
3096
3097 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
3098
3099         * regrename.c (build_def_use): Don't copy RTX.
3100
3101 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
3102
3103         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
3104         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
3105         punctuation.  Use @ref instead of @xref.
3106         (Function Names): Remove stray @display/@end display.
3107         (C++ Attributes): Use @ref instead of @xref.
3108         (Deprecated Features): Fix punctuation around @xref.
3109         (Backwards Compatibility): Likewise.
3110         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
3111
3112 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
3113
3114         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
3115         constants for E500 double.
3116
3117 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3118
3119         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
3120         element type of const_vector.
3121
3122 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
3123
3124         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
3125         Remove FLAGS_REG clobber from expander pattern.
3126         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
3127         (anddi3, andsi3, andhi3, andqi3): Ditto.
3128         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
3129         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
3130         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
3131         (ashlsi3, ashlhi3, ashlqi3): Ditto.
3132         (ashrsi3, ashrhi3, ashrqi3): Ditto.
3133         (lshrsi3, lshrhi3, lshrqi3): Ditto.
3134         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
3135         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
3136
3137 2008-06-28  Richard Guenther  <rguenther@suse.de>
3138
3139         * tree-ssa-structalias.c (callused_id, var_callused,
3140         callused_tree): Add.
3141         (handle_pure_call): New function.
3142         (find_func_aliases): Call it.
3143         (find_what_p_points_to): Handle the call-used set.
3144         (clobber_what_escaped): Likewise.
3145         (compute_call_used_vars): New function.
3146         (init_base_vars): Init the call-used variable.
3147         (do_sd_constraint): Do not propagate the solution from CALLUSED
3148         but use CALLUSED as a placeholder.
3149         (solve_graph): Likewise.
3150         * tree-flow-inline.h (gimple_call_used_vars): New function.
3151         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
3152         (compute_call_used_vars): Declare.
3153         * tree-ssa-alias.c (set_initial_properties): Call
3154         compute_call_used_vars.
3155         (reset_alias_info): Clear call-used variables.
3156         (add_call_clobber_ops): Assert we are not called for const/pure
3157         functions.  Remove handling of them.
3158         (add_call_read_ops): Handle pure functions by adding the
3159         call-used set of variables as VUSEs.
3160         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
3161         (delete_tree_ssa): Free it.
3162         * tree-dfa.c (remove_referenced_var): Clear the var from the
3163         call-used bitmap.
3164
3165 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
3166
3167         * tree.c (build_varargs_function_type_list): New.
3168         (build_function_type_list_1): New.
3169         (build_function_type_list): Use build_function_type_list_1.
3170         * tree.h (build_varargs_function_type_list): New.
3171
3172 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3173
3174         PR target/34856
3175         * config/spu/spu.c (spu_builtin_splats): Do not generate
3176         invalid CONST_VECTOR expressions.
3177         (spu_expand_vector_init): Likewise.
3178
3179 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
3180
3181         * optabs.c (libfunc_decls): New variable.
3182         (libfunc_decl_hash, libfunc_decl_eq): New functions.
3183         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
3184         for the same function twice.
3185
3186 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
3187
3188         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
3189         ix86_expand_binary_operator directly.
3190         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
3191         for operand 2.
3192         (*ashrti3_1): Ditto.
3193         (*lshrti3_1): Ditto.
3194         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
3195         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
3196         using only one splitter.  Conditionaly execute splitter before or
3197         after peephole2 pass.
3198         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
3199         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
3200         Use only one alternative in asm template.
3201         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
3202         in asm template.
3203         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
3204         "J" operand constraint for operand 2.
3205         (*ashldi3_cconly_rex64): Ditto.
3206         (*ashrdi3_cmp_rex64): Ditto.
3207         (*ashrdi3_cconly_rex64): Ditto.
3208         (*lshrdi3_cmp_rex64): Ditto.
3209         (*lshrdi3_cconly_rex64): Ditto.
3210         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
3211         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
3212         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
3213         gen_x86_shrd_1.
3214
3215 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
3216
3217         * gimplify.c (omp_is_private): Don't return true if decl is not
3218         already private on #pragma omp for or #pragma omp parallel for.
3219
3220         PR debug/36617
3221         * tree-cfg.c (struct move_stmt_d): Replace block field with
3222         orig_block and new_block fields.
3223         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
3224         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
3225         (move_block_to_fn): Replace vars_map and new_label_map arguments
3226         with struct move_stmt_d pointer.
3227         (replace_block_vars_by_duplicates): New function.
3228         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
3229         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
3230         all subblocks of ORIG_BLOCK to the new function.  Call
3231         replace_block_vars_by_duplicates.
3232         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
3233         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
3234         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
3235         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
3236         (expand_omp): Temporarily set input_location to the location of
3237         region's controlling stmt.
3238         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
3239         BIND_EXPR, push ctx->block_vars and gimplification vars into
3240         the BIND_EXPR and its block's BLOCK_VARS instead of directly
3241         into dest function.
3242         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
3243         there are any BLOCK_VARS.
3244         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
3245         OMP_PARALLEL or OMP_TASK stmt.
3246         (lower_omp): Save and restore input_location around the lower_omp_1
3247         call.
3248
3249 2008-06-27  Richard Guenther  <rguenther@suse.de>
3250
3251         PR tree-optimization/36400
3252         PR tree-optimization/36373
3253         PR tree-optimization/36344
3254         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
3255         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
3256         (update_alias_info): Remove call clobbering code.
3257         (make_constraint_to): New helper function.
3258         (make_escape_constraint): Likewise.
3259         (handle_rhs_call): Use it on all pointer containing arguments.
3260         Also mark the static chain escaped.
3261         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
3262         instead of ANYTHING.
3263         (make_constraint_from): New helper split out from ...
3264         (make_constraint_from_anything): ... here.
3265         (find_func_aliases): Add constraints for escape sites.
3266         (intra_create_variable_infos): Make constraints from NONLOCAL
3267         for parameters.
3268         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
3269         as ANYTHING.
3270         (clobber_what_p_points_to): Remove.
3271         (clobber_what_escaped): New function.
3272         (init_base_vars): Init NONLOCAL and ESCAPED.
3273         (do_sd_constraint): Do not propagate the solution from ESCAPED
3274         but use ESCAPED as a placeholder.
3275         (solve_graph): Likewise.
3276         * tree-flow.h (clobber_what_p_points_to): Remove.
3277         (clobber_what_escaped): Declare.
3278         * tree-ssa-alias.c (set_initial_properties): Call it.
3279         Remove code clobbering escaped pointers.
3280
3281 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
3282
3283         * function.c (allocate_struct_function): Only allocate a unique
3284         funcdef_no if the decl is nonzero.
3285
3286 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
3287
3288         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
3289         * config/mips/mips.c (mips_split_const_insns): New function.
3290         * config/mips/mips.md (move_type): New attribute.
3291         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
3292         (dword_mode): New attribute.
3293         (type): Avoid long line.  Map "move_type"s to "type"s,
3294         choosing "multi" for doubleword moves if appropriate.
3295         Swap MTC/MFC comments to match their declaration order.
3296         (extended_mips16): Default to "yes" if "move_type" is "sll0",
3297         "type" is "branch" or "jal" is "direct".
3298         (length): Handle "extended_mips16" first.  Make the default
3299         "0" for "ghost" instructions.  Set the length from "move_type".
3300         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
3301         of "type", with "sll0" for the register alternative.  Remove the
3302         "extended_mips16" attribute.
3303         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
3304         of "type", with "shift_shift" for the register alternative.
3305         Remove the "length" attribute.
3306         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
3307         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
3308         of "type", with "andi" for the register alternative.
3309         (*zero_extendqihi2): Likewise.
3310         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
3311         of "andi" instead of a "type" of "arith".
3312         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
3313         instead of "type".
3314         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
3315         (mov_<store>r, *mov<mode>_ra): Likewise.
3316         (extendsidi2): Use "move_type" instead of "type", with "move"
3317         for the register alternative.
3318         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
3319         of "type", with "signext" for the register alternative.
3320         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
3321         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
3322         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
3323         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
3324         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
3325         (unnamed branch insn): Likewise.
3326         (*movdi_gp32_fp64): Fold into...
3327         (*movdi_32bit): ...here.
3328         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
3329         (*movdf_hardfloat): ...this new pattern.
3330         (*movdf_softfloat): Remove redundant FPR alternatives.
3331         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
3332         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
3333         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
3334         the "move" attribute.
3335         (*movdi_32bit): Use "move_type" instead of "type" and remove the
3336         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
3337         and "store" for COP loads and stores.
3338         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
3339         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
3340         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
3341         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
3342         (*movtf_mips16, *movv2sf): Likewise.
3343         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
3344         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
3345         (mfhc1<mode>): Use "move_type" instead of "move".
3346         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
3347         (loadgp_blockage): Remove the "length" attribute.
3348         (blockage, set_got_version, update_got_version): Likewise.
3349         (call_internal): Remove the "extended_mips16" attribute.
3350         (call_value_internal, call_value_multiple_internal): Likewise.
3351         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
3352         instead of "move".
3353         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
3354         the "length" attribute.
3355
3356 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3357
3358         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
3359         -Wcast-qual warnings.
3360         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
3361         handle_pragma_pop_macro): Likewise.
3362         * collect2.c (resolve_lib_name): Likewise.
3363         * config/arc/arc.c (arc_init): Likewise.
3364         * config/arm/arm.c (neon_builtin_compare,
3365         locate_neon_builtin_icode): Likewise.
3366         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
3367         * config/bfin/bfin.c (bfin_init_machine_status,
3368         bfin_optimize_loop): Likewise.
3369         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3370         * config/cris/cris.c (cris_init_expanders): Likewise.
3371         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
3372         * config/darwin.c (machopic_indirection_eq,
3373         machopic_indirection_name, machopic_output_indirection): Likewise.
3374         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
3375         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
3376         frv_optimize_membar): Likewise.
3377         * config/i386/cygwin.h (mingw_scan,
3378         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
3379         * config/i386/cygwin1.c (mingw_scan): Likewise.
3380         * config/i386/i386.c (machopic_output_stub): Likewise.
3381         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
3382         i386_pe_unique_section): Likewise.
3383         * config/ia64/ia64.c (ia64_init_machine_status,
3384         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
3385         Likewise.
3386         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
3387         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
3388         * config/m68k/m68k.c (m68k_handle_option,
3389         m68k_sched_md_init_global): Likewise.
3390         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
3391         mcore_unique_section): Likewise.
3392         * config/mips/mips.c (mips_block_move_straight,
3393         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
3394         Likewise.
3395         * config/mmix/mmix.c (mmix_init_machine_status,
3396         mmix_encode_section_info): Likewise.
3397       &