OSDN Git Service

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