OSDN Git Service

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