OSDN Git Service

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