OSDN Git Service

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