OSDN Git Service

PR target/35866
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-30  Nathan Froyd  <froydnj@codesourcery.com>
2
3         PR target/35866
4
5         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Add clause for
6         vector modes.
7
8 2008-07-30  Rafael Avila de Espindola  <espindola@google.com>
9
10        * final.c (call_from_call_insn): New.
11        (final_scan_insn): Call assemble_external on FUNCTION_DECLs.
12
13 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
14
15         * configure.ac: Substitute ADA_CFLAGS.
16         * configure: Regenerate.
17         * config.host: Remove mention of pa/x-ada and pa/x-ada-hpux10 files.
18         * Makefile.in: Remove mention of X_* variables.
19         * config/pa/x-ada-hpux10: Remove.
20         * config/pa/x-ada: Remove.
21
22         * doc/fragments.texi: Update.
23
24 2008-07-30  Olivier Hainque  <hainque@adacore.com>
25
26         * config/mips/irix-crti.asm: .hide __gcc_init and __gcc_fini.
27         * config/mips/iris6.h (IRIX_SUBTARGET_LINK_SPEC, irix ld): Hide
28         __dso_handle explicitly here.
29
30 2008-07-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
31
32         PR 34389
33         * c-typeck.c (build_binary_op): Encapsulate code into...
34         * c-common.c (shorten_binary_op): ...this new function.
35         (conversion_warning): Use the new function. Handle non-negative
36         constant in bitwise-and.
37         * c-common.h (shorten_binary_op): Declare.
38         
39 2008-07-30  Olivier Hainque  <hainque@adacore.com>
40
41         * scan.c (make_sstring_space): Add explicit conversions of
42         allocator's return value.
43         * fix-header.c (recognized_function): Likewise.
44
45 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
46
47         * doc/cpp.texi: Update to GFDL 1.2.
48         * doc/gcc.texi: Do not list GPL as Invariant Section.
49         * doc/gccint.texi: Likewise.  Update copyright years.
50         * doc/install.texi: Update copyright years.
51
52 2008-07-30  Alan Modra  <amodra@bigpond.net.au>
53
54         PR target/36955
55         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add
56         a use of pic_offset_table_rtx for -msecure-plt __tls_get_addr calls.
57
58 2008-07-29  Jan Hubicka  <jh@suse.cz>
59
60         * c-decl.c (merge_decls): Do not handle DECL_INLINE.
61         (grokdeclarator): Likewise.
62         * langhooks.c (lhd_warn_unused_global_decl): Use
63         DECL_DECLARED_INLINE_P.
64         * print-tree.c (print_node): Remove DECL_INLINE check.
65
66 2008-07-29  Richard Guenther  <rguenther@suse.de>
67
68         PR tree-optimization/36945
69         * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare.
70         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Export.
71         Record invariant addresses un-decomposed.
72         (copy_reference_ops_from_call): Record reference call
73         arguments properly.  Simplify.
74         * tree-ssa-pre.c (create_component_ref_by_pieces_1): New
75         helper split out from ...
76         (create_component_ref_by_pieces): ... here.  Simplify.
77         Prepare for recursive invocation for call arguments.
78         (create_expression_by_pieces): Adjust call to
79         create_component_ref_by_pieces.
80         (compute_avail): Process operand 2 of reference ops.
81
82 2008-07-29  Richard Guenther  <rguenther@suse.de>
83
84         * gimplify.c (gimplify_expr): Clear TREE_SIDE_EFFECTS for
85         OBJ_TYPE_REF.
86
87 2008-07-29  Jakub Jelinek  <jakub@redhat.com>
88
89         * c-format.c (check_format_types): Revert unwanted checkin.
90
91 2008-07-29  Jan Hubicka  <jh@suse.cz>
92
93         * flags.h (flag_really_no_inline): Remove.
94         * cgraph.c (cgraph_function_possibly_inlined_p): Simplify.
95         * toplev.c (flag_really_no_inline): Remove.
96         * c-cppbuiltin.c (c_cpp_builtins): Use flag_no_inline.
97         * ipa-inline.c (cgraph_decide_inlining): Do not check flag_no_inline.
98         (cgraph_decide_inlining_incrementally): Likewise.
99         (compute_inline_parameters): Likewise.
100         * opts.c (decode_options): Simplify.
101         * c-opts.c (c_common_post_options): Do not set flag_no_inline.
102         * common.opt (finline): Initialize to 1.
103         * tree-inline.c (inlinable_function_p): Check flag_no_inline.
104
105 2008-07-29  Jan Hubicka  <jh@suse.cz>
106
107         * predict.c (always_optimize_for_size_p): New function.
108         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
109         optimize_edge_for_size_p, optimize_edge_for_speed_p,
110         optimize_insn_for_size_p, optimize_insn_for_speed_p): New global
111         functions.
112         (rtl_profile_for_bb, rtl_profile_for_edge, rtl_default_profile): New.
113         * function.c (prepare_function_start): Set default profile.
114         * function.h (rtl_data): Add maybe_hot_insn_p.
115         * cfgexpand.c (expand_gimple_basic_block): Set RTL profile.
116         (construct_exit_block): Likewise.
117         (tree_expand_cfg): Likewise.
118         * basic-block.h
119         (optimize_bb_for_size_p, optimize_bb_for_speed_p,
120         optimize_edge_for_size_p, optimize_edge_for_speed_p,
121         optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
122         (rtl_profile_for_bb, rtl_profile_for_edge, default_rtl_profile):
123         Declare.
124
125 2008-07-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
126
127         PR 34985
128         * c-decl.c (merge_decls): Merge USED flags.
129         
130 2008-07-29  Kaz Kojima  <kkojima@gcc.gnu.org>
131
132         * config/sh/sh.c (sh_gimplify_va_arg_expr): Unshare the addr,
133         valist, next_fp, next_fp_tmp, next_fp_limit, next_o, next_o_limit,
134         next_stack, lab_false and lab_over trees.
135
136 2008-07-28  Richard Guenther  <rguenther@suse.de>
137
138         PR tree-optimization/36957
139         * tree-flow.h (tree_ssa_useless_type_conversion): Remove.
140         (useless_type_conversion_p): Remove.
141         (types_compatible_p): Remove.
142         * gimple.h (tree_ssa_useless_type_conversion): Declare.
143         (useless_type_conversion_p): Declare.
144         (types_compatible_p): Declare.
145         (gimple_expr_type): Return the base type only if it is
146         trivially convertible to the subtype.
147
148 2008-07-28  Andreas Tobler  <a.tobler@schweiz.org>
149
150         * configure.ac: Use the m4_do macro to concatenate the warnings into
151         one string in ACX_PROG_CC_WARNING_OPTS,
152         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC and ACX_PROG_CC_WARNINGS_ARE_ERRORS.
153         * configure: Regenerate.
154
155 2008-07-28  Richard Guenther  <rguenther@suse.de>
156
157         * tree-ssa-pre.c (insert_into_preds_of_block): Remove dead code.
158         (insert_fake_stores): Remove.
159         (realify_fake_stores): Likewise.
160         (execute_pre): Remove dead code.
161         * tree-ssa-structalias.c (get_constraint_for_1): Remove tcc_unary
162         case.
163         (find_func_aliases): Deal with it here instead.
164         Re-enable gcc_unreachable call.
165
166 2008-07-28  Richard Guenther  <rguenther@suse.de>
167
168         Merge from gimple-tuples-branch.
169
170         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
171         * gimple.def: New file.
172         * gsstruct.def: Likewise.
173         * gimple-iterator.c: Likewise.
174         * gimple-pretty-print.c: Likewise.
175         * tree-gimple.c: Removed.  Merged into ...
176         * gimple.c: ... here.  New file.
177         * tree-gimple.h: Removed.  Merged into ...
178         * gimple.h: ... here.  New file.
179
180         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
181         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
182         --enable-checking=gimple flag.
183         * config.in: Likewise.
184         * configure: Regenerated.
185
186         * tree-ssa-operands.h: Tuplified.
187         * tree-vrp.c: Likewise.
188         * tree-loop-linear.c: Likewise.
189         * tree-into-ssa.c: Likewise.
190         * tree-ssa-loop-im.c: Likewise.
191         * tree-dump.c: Likewise.
192         * tree-complex.c: Likewise.
193         * cgraphbuild.c: Likewise.
194         * tree-ssa-threadupdate.c: Likewise.
195         * tree-ssa-loop-niter.c: Likewise.
196         * tree-pretty-print.c: Likewise.
197         * tracer.c: Likewise.
198         * gengtype.c: Likewise.
199         * tree-loop-distribution.c: Likewise.
200         * tree-ssa-loop-unswitch.c: Likewise.
201         * cgraph.c: Likewise.
202         * cgraph.h: Likewise.
203         * tree-ssa-loop-manip.c: Likewise.
204         * value-prof.c: Likewise.
205         * tree-ssa-loop-ch.c: Likewise.
206         * tree-tailcall.c: Likewise.
207         * value-prof.h: Likewise.
208         * tree.c: Likewise.
209         * tree.h: Likewise.
210         * tree-pass.h: Likewise.
211         * ipa-cp.c: Likewise.
212         * tree-scalar-evolution.c: Likewise.
213         * tree-scalar-evolution.h: Likewise.
214         * target.h: Likewise.
215         * lambda-mat.c: Likewise.
216         * tree-phinodes.c: Likewise.
217         * diagnostic.h: Likewise.
218         * builtins.c: Likewise.
219         * tree-ssa-alias-warnings.c: Likewise.
220         * cfghooks.c: Likewise.
221         * fold-const.c: Likewise.
222         * cfghooks.h: Likewise.
223         * omp-low.c: Likewise.
224         * tree-ssa-dse.c: Likewise.
225         * ipa-reference.c: Likewise.
226         * tree-ssa-uncprop.c: Likewise.
227         * toplev.c: Likewise.
228         * tree-gimple.c: Likewise.
229         * tree-gimple.h: Likewise.
230         * tree-chrec.c: Likewise.
231         * tree-chrec.h: Likewise.
232         * tree-ssa-sccvn.c: Likewise.
233         * tree-ssa-sccvn.h: Likewise.
234         * cgraphunit.c: Likewise.
235         * tree-ssa-copyrename.c: Likewise.
236         * tree-ssa-ccp.c: Likewise.
237         * tree-ssa-loop-ivopts.c: Likewise.
238         * tree-nomudflap.c: Likewise.
239         * tree-call-cdce.c: Likewise.
240         * ipa-pure-const.c: Likewise.
241         * c-format.c: Likewise.
242         * tree-stdarg.c: Likewise.
243         * tree-ssa-math-opts.c: Likewise.
244         * tree-ssa-dom.c: Likewise.
245         * tree-nrv.c: Likewise.
246         * tree-ssa-propagate.c: Likewise.
247         * ipa-utils.c: Likewise.
248         * tree-ssa-propagate.h: Likewise.
249         * tree-ssa-alias.c: Likewise.
250         * gimple-low.c: Likewise.
251         * tree-ssa-sink.c: Likewise.
252         * ipa-inline.c: Likewise.
253         * c-semantics.c: Likewise.
254         * dwarf2out.c: Likewise.
255         * expr.c: Likewise.
256         * tree-ssa-loop-ivcanon.c: Likewise.
257         * predict.c: Likewise.
258         * tree-ssa-loop.c: Likewise.
259         * tree-parloops.c: Likewise.
260         * tree-ssa-address.c: Likewise.
261         * tree-ssa-ifcombine.c: Likewise.
262         * matrix-reorg.c: Likewise.
263         * c-decl.c: Likewise.
264         * tree-eh.c: Likewise.
265         * c-pretty-print.c: Likewise.
266         * lambda-trans.c: Likewise.
267         * function.c: Likewise.
268         * langhooks.c: Likewise.
269         * ebitmap.h: Likewise.
270         * tree-vectorizer.c: Likewise.
271         * function.h: Likewise.
272         * langhooks.h: Likewise.
273         * tree-vectorizer.h: Likewise.
274         * ipa-type-escape.c: Likewise.
275         * ipa-type-escape.h: Likewise.
276         * domwalk.c: Likewise.
277         * tree-if-conv.c: Likewise.
278         * profile.c: Likewise.
279         * domwalk.h: Likewise.
280         * tree-data-ref.c: Likewise.
281         * tree-data-ref.h: Likewise.
282         * tree-flow-inline.h: Likewise.
283         * tree-affine.c: Likewise.
284         * tree-vect-analyze.c: Likewise.
285         * c-typeck.c: Likewise.
286         * gimplify.c: Likewise.
287         * coretypes.h: Likewise.
288         * tree-ssa-phiopt.c: Likewise.
289         * calls.c: Likewise.
290         * tree-ssa-coalesce.c: Likewise.
291         * tree.def: Likewise.
292         * tree-dfa.c: Likewise.
293         * except.c: Likewise.
294         * except.h: Likewise.
295         * cfgexpand.c: Likewise.
296         * tree-cfgcleanup.c: Likewise.
297         * tree-ssa-pre.c: Likewise.
298         * tree-ssa-live.c: Likewise.
299         * tree-sra.c: Likewise.
300         * tree-ssa-live.h: Likewise.
301         * tree-predcom.c: Likewise.
302         * lambda.h: Likewise.
303         * tree-mudflap.c: Likewise.
304         * ipa-prop.c: Likewise.
305         * print-tree.c: Likewise.
306         * tree-ssa-copy.c: Likewise.
307         * ipa-prop.h: Likewise.
308         * tree-ssa-forwprop.c: Likewise.
309         * ggc-page.c: Likewise.
310         * c-omp.c: Likewise.
311         * tree-ssa-dce.c: Likewise.
312         * tree-vect-patterns.c: Likewise.
313         * tree-ssa-ter.c: Likewise.
314         * tree-nested.c: Likewise.
315         * tree-ssa.c: Likewise.
316         * lambda-code.c: Likewise.
317         * tree-ssa-loop-prefetch.c: Likewise.
318         * tree-inline.c: Likewise.
319         * tree-inline.h: Likewise.
320         * tree-iterator.c: Likewise.
321         * tree-optimize.c: Likewise.
322         * tree-ssa-phiprop.c: Likewise.
323         * tree-vect-transform.c: Likewise.
324         * tree-object-size.c: Likewise.
325         * tree-outof-ssa.c: Likewise.
326         * cfgloop.c: Likewise.
327         * system.h: Likewise.
328         * tree-profile.c: Likewise.
329         * cfgloop.h: Likewise.
330         * c-gimplify.c: Likewise.
331         * c-common.c: Likewise.
332         * tree-vect-generic.c: Likewise.
333         * tree-flow.h: Likewise.
334         * c-common.h: Likewise.
335         * basic-block.h: Likewise.
336         * tree-ssa-structalias.c: Likewise.
337         * tree-switch-conversion.c: Likewise.
338         * tree-ssa-structalias.h: Likewise.
339         * tree-cfg.c: Likewise.
340         * passes.c: Likewise.
341         * ipa-struct-reorg.c: Likewise.
342         * ipa-struct-reorg.h: Likewise.
343         * tree-ssa-reassoc.c: Likewise.
344         * cfgrtl.c: Likewise.
345         * varpool.c: Likewise.
346         * stmt.c: Likewise.
347         * tree-ssanames.c: Likewise.
348         * tree-ssa-threadedge.c: Likewise.
349         * langhooks-def.h: Likewise.
350         * tree-ssa-operands.c: Likewise.
351         * config/alpha/alpha.c: Likewise.
352         * config/frv/frv.c: Likewise.
353         * config/s390/s390.c: Likewise.
354         * config/m32c/m32c.c: Likewise.
355         * config/m32c/m32c-protos.h: Likewise.
356         * config/spu/spu.c: Likewise.
357         * config/sparc/sparc.c: Likewise.
358         * config/i386/i386.c: Likewise.
359         * config/sh/sh.c: Likewise.
360         * config/xtensa/xtensa.c: Likewise.
361         * config/stormy16/stormy16.c: Likewise.
362         * config/ia64/ia64.c: Likewise.
363         * config/rs6000/rs6000.c: Likewise.
364         * config/pa/pa.c: Likewise.
365         * config/mips/mips.c: Likewise.
366
367 2008-07-28  Simon Baldwin  <simonb@google.com>
368
369         * c-pragma.c (handle_pragma_message): New function.
370         (init_pragma): Register handle_pragma_message.
371         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
372         documentation.
373
374 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
375
376         PR tree-optimization/35252
377         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
378         REALPART_EXPR to be considered as same load operation.
379
380 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
381
382         PR tree-optimization/36830
383         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
384         (expressions_equal_p): Return false if only one operand is null.
385
386 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
387
388         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
389         version requirements.
390
391 2008-07-26  Olivier Hainque  <hainque@adacore.com>
392
393         * collect2.c (symkind): New enum.  Symbol kinds we care about.
394         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
395         code and head comment accordingly.
396         (scan_prog_file): Use symkind names instead of bare integers.
397         
398 2008-07-25  Jan Hubicka  <jh@suse.cz>
399
400         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE.
401         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
402         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
403         * dojump.c (clear_pending_stack_adjust): Likewise.
404         * print-tree.c (print_node): Ignore DECL_INLINE.
405         * tree-inline.c (inlinable_function_p): Likewise.
406         
407 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
408
409         * doc/extend.texi (hot attribute): Document that the hot attribute
410         turns on -O3 for some ports.
411         (cold attribute): Document that the cold attribute turns on -Os
412         for some ports
413
414         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
415         reflect function specific option support.
416
417         * target.h (struct target_option_hooks): Add fields to say whether
418         the cold attribute implies -Os and the hot attribute implies -O3.
419
420         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
421         By default, do not turn on -Os for cold functions.
422         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
423         not turn on -O3 for hot functions.
424
425         * c-common.c (handle_hot_attribute): Use target hook to determine
426         if hot functions should enable -O3.
427         (handle_cold_attribute): Use target hook to determine if cold
428         functions should enable -Os.
429
430         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
431         (override_options): Move disable scheduling to
432         optimization_options.
433         (optimization_options): Disable scheduling here, not
434         override_options.
435         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
436         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
437
438         * config/ia64/ia64.c (ia64_override_options): Move setting
439         scheduling flags to ia64_optimization_options.
440         (ia64_optimization_options): Disable scheduling options here, and
441         not in ia64_override_options.
442         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
443         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
444
445 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
446
447         PR target/36936
448         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
449
450 2008-07-25  Martin Jambor  <mjambor@suse.cz>
451
452         PR tree-optimization/36926
453         * ipa-prop.c (ipa_analyze_call_uses): Call
454         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
455
456 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
457
458         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
459         movv2si_internal): Add mem = reg alternative.
460
461 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
462
463         PR bootstrap/36918
464         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
465         DEFAULT_PCC_STRUCT_RETURN to 127.
466
467 2008-07-24  Jan Hubicka  <jh@suse.cz>
468
469         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
470         (build_cgraph_edges): Likewise.
471         * cgraph.c (cgraph_node): Do not update assembler hash.
472         (cgraph_remove_node): Drop non-unit-at-a-time code.
473         * tree-pass.h (pass_O0_always_inline): Remove.
474         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
475         * toplev.c (process_options): Flag unit-at-a-time does not imply
476         no section anchors.
477         * cgraphunit.c: Update comments.
478         (decide_is_function_needed): Drop non-unit-at-a-time mode.
479         (cgraph_assemble_pending_functions): Remove.
480         (cgraph_reset_node): Drop non-unit-at-a-time code.
481         (cgraph_finalize_function): Likewise.
482         (cgraph_analyze_function): Likewise.
483         (cgraph_finalize_compilation_unit): Likewise.
484         (cgraph_expand_function): Likewise.
485         (cgraph_optimize): Likesise.
486         (save_inline_function_body): Likewise.
487         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
488         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
489         * ipa-inline.c: Update comments.
490         (enum inlining_mode): remove INLINE_SPEED.
491         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
492         (cgraph_mark_inline_edge): Likewise.
493         (try_inline): Likewise.
494         (cgraph_decide_inlining_incrementally): Likewise.
495         (cgraph_gate_inlining): Remove.
496         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
497         (cgraph_gate_early_inlining): Likewise.
498         (gate_inline_passes): Remove.
499         (pass_inline_parameters, pass_ipa_inline): Remove gates.
500         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, 
501         pass_O0_always_inline): Remove.
502         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
503         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
504         * opts.c (no_unit_at_a_time_default): Remove.
505         (decode_options): Remove flag_unit_at_a_time reset and warning.
506         * opts.h (no_unit_at_a_time_default): Remove.
507         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
508         early in GNU dialect.
509         (merge_decls): Update comment; drop unit-at-a-time check.
510         (finish_decl): Likewise.
511         (grok_declaration): Remove flag_inline_trees code.
512         (finish_functions): Return on function returning non-void on all
513         statics.
514         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
515         * cfgexpand.c (expand_one_static_var): Remove.
516         (expand_one_var): Remove expand_one_static_var call.
517         (expand_used_vars_for_block): Remove flag_unit_a_time check.
518         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
519         and flag_unit_at_a-time compatibility checks.
520         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
521         * tree-inline.c (flag_inline_trees): Remove.
522         (inlinable_function_p): Don't check it.
523         (expand_call_inline): Remove non-unit-at-a-time code.
524         * tree-inline.h (flag_inline_trees): Remove.
525         * tree-optimize.c (execute_early_local_optimizations): Remove
526         unit-at-a-time checks.
527         (tree_rest_of_compilation): Likewise.
528         * combine.c (setup_incoming_promotions): Likewise.
529         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
530         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
531         * passes.c (pass_inline_parameters): Update comments; remove
532         O0_alwaysinline pass.
533         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
534         (execute_one_pass): Likewise.
535         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
536         (ix86_function_sseregparm): Likewise.
537         * arm.c (arm_function_in_section_p): Likewise.
538         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
539         * varpool.c: Update comments.
540         (decide_is_variable_needed): Remove unit-at-a-time checks.
541         (varpool_finalize_decl): Likewise.
542
543 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
544
545         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
546         to 2 instead of -1.
547         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal
548         to 2.
549
550 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
551
552         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
553         imp symbol extension.
554
555         2008-07-23  Ian Lance Taylor  <iant@google.com>
556
557         * tree-vrp.c (infer_value_range): Ignore asm statements when
558         looking for memory accesses for -fdelete-null-pointer-checks.
559
560 2008-07-24  Ben Elliston  <bje@au.ibm.com>
561
562         * config/spu/spu-c.c (__vector_keyword): New variable.
563         (vector_keyword): Likewise.
564         (spu_categorize_keyword): New function.
565         (spu_macro_to_expand): Likewise.
566         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
567         compiling an ISO C dialect.
568
569 2008-07-24  Ben Elliston  <bje@au.ibm.com>
570
571         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
572         conventional usage.
573
574 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
575
576         * configure: Regenerate.
577         * configure.ac: Require texinfo 4.7.
578         * doc/install.texi: Document texinfo 4.7 requirement.
579
580 2008-07-23  Martin Jambor  <mjambor@suse.cz>
581
582         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
583         rather than for DECL_SAVED_TREE.
584         * ipa-prop.c: Include diagnostic.h.
585         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
586         thoroughly.
587         (ipa_detect_param_modifications): Function rewritten from scratch.
588         (ipa_compute_jump_functions): Changed accesses to modification flags.
589         (ipa_free_node_params_substructures): Update flags destruction.
590         (ipa_node_duplication_hook): Update flags duplication.
591         (ipa_print_all_params_modified): Updated flag access.
592         * ipa-prop.h (struct ipa_param_flags): New structure.
593         (struct ipa_node_params): New field modification_analysis_done,
594         modified_flags changed into param_flags.
595         (ipa_is_ith_param_modified): Changed to use new flags.
596         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
597
598         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
599         ipa-cp.c and split into two functions.
600         (ipa_print_node_jump_functions): New function.
601         (compute_scalar_jump_functions): New function.
602         (type_like_member_ptr_p): New function.
603         (compute_pass_through_member_ptrs): New function.
604         (fill_member_ptr_cst_jump_function): New function.
605         (determine_cst_member_ptr): New function.
606         (compute_cst_member_ptr_arguments): New function.
607         (ipa_compute_jump_functions): Complete rewrite.
608         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
609         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
610         (struct ipa_member_ptr_cst): New structure.
611         (union jump_func_value): New field member_cst.
612         * ipa-cp.c (ipcp_lat_is_insertable): New function.
613         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
614         jump function types.
615         (ipcp_print_all_lattices): Slight fprintf rearrangement.
616         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
617         instead of ipcp_print_all_jump_functions.
618         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
619         only for replacable scalars.
620
621         * doc/invoke.texi (Optimize options): Add description of
622         -findirect-inlining.
623         * common.opt (flag_indirect_inlining): New flag.
624         * opts.c (decode_options): Set flag_indirect_inlining when 
625         optimize >= 3.
626
627         * ipa-inline.c: Include ipa-prop.h.
628         (inline_indirect_intraprocedural_analysis): New function.
629         (inline_generate_summary): Allocate parameter and argument info
630         structures, call inline_indirect_intraprocedural_analysis on each
631         node when doing indirect inlining and deallocate indirect inlining 
632         data structures in the end.
633         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
634         (free_all_ipa_structures_after_iinln): New function.
635         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be 
636         done.
637         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
638
639         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
640         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
641         of computing the frequency separately.
642         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
643         of computing the frequency separately.
644         * ipa-cp.c (ipcp_print_all_structures): Replace a call to 
645         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
646         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
647         (ipa_get_stmt_member_ptr_load_param): New function.
648         (ipa_is_ssa_with_stmt_def): New function.
649         (ipa_note_param_call): New function.
650         (ipa_analyze_call_uses): New function.
651         (ipa_analyze_stmt_uses): New function.
652         (ipa_analyze_params_uses): New function.
653         (ipa_free_node_params_substructures): Also free the param_calls linked
654         list.
655         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
656         (ipa_print_node_param_flags): New function.
657         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
658         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
659         * ipa-prop.h (struct ipa_param_flags): New field called.
660         (struct ipa_param_call_note): New structure.
661         (struct ipa_node_params): New fields param_calls and
662         uses_analysis_done.
663         (ipa_is_ith_param_called): New function.
664         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
665         ipa_analyze_params_uses and dump parameter flags.
666
667         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
668         ipa_propagate_indirect_call_infos if performing indirect inlining,
669         pass a new parameter new_edges to it.
670         (add_new_edges_to_heap): New fucntion.
671         (cgraph_decide_inlining_of_small_functions): New vector
672         new_indirect_edges for newly found indirect edges , call
673         ipa_propagate_indirect_call_infos after inlining.
674         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
675         inlining if performing indirect inlining.  Call
676         free_all_ipa_structures_after_iinln when doing so too.
677         (inline_generate_summary): Do not call
678         free_all_ipa_structures_after_iinln here.
679         * ipa-prop.c (update_jump_functions_after_inlining): New function.
680         (print_edge_addition_message): New function.
681         (update_call_notes_after_inlining): New function.
682         (propagate_info_to_inlined_callees): New function.
683         (ipa_propagate_indirect_call_infos): New function.
684         * ipa-prop.h: Include cgraph.h
685         (struct ipa_param_call_note): Fields reordered, new field processed.
686         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
687         flag indirect_call.
688         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
689         rediscovered call statements.
690         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
691         (dump_cgraph_node): Dump also the indirect_call flag.
692         (cgraph_clone_edge): Copy also the indirect_call flag.
693         * tree-inline.c (copy_bb): Do not check for fndecls from call
694         expressions, check for edge availability when moving clones.
695         (get_indirect_callee_fndecl): New function.
696         (expand_call_inline): If callee declaration is not apprent from
697         the statement, try calling get_indirect_callee_fndecl.  Do not
698         issue warnings or call sorry when not inlinings an indirect edge.
699         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
700
701         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
702         bit more frandly to matching.
703         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
704         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
705         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
706         
707 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
708
709         PR 36907
710         * opth-gen.awk: Suppress function specific features when building
711         target libraries.
712         * optc-gen.awk: Ditto.
713
714 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
715
716         PR 35058
717         * diagnostic.c (pedwarn): Add opt parameter.
718         (pedwarn0): New.
719         * c-tree.h (pedwarn_init): Add opt parameter.
720         (pedwarn_c90): Likewise.
721         (pedwarn_c99): Likewise.
722         * c-errors.c (pedwarn_c99): Likewise.
723         (pedwarn_c90): Likewise.
724         * toplev.h (pedwarn): Update declaration.
725         (pedwarn0): Declare.
726         * c-lex.c: All calls to pedwarn changed.
727         * builtins.c: All calls to pedwarn changed.
728         * toplev.c: All calls to pedwarn changed.
729         * c-decl.c: All calls to pedwarn changed.
730         * c-typeck.c: All calls to pedwarn changed.
731         * c-common.c: All calls to pedwarn changed.
732         * c-parser.c: All calls to pedwarn changed.
733         
734 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
735             Karthik Kumar  <karthikkumar@gmail.com>
736
737         * attribs.c (file scope): Include c-common.h.
738         (decl_attributes): Add support for #pragma GCC optimize and
739         #pragma GCC option.
740
741         * targhooks.c (default_can_inline_p): New function that is the
742         default for the TARGET_CAN_INLINE_P target hook.
743
744         * targhooks.h (default_can_inline_p): Add declaration.
745
746         * tree.c (cl_optimization_node): New static tree for building
747         OPTIMIZATION_NODE tree.
748         (cl_target_option_node): New static tree for building
749         TARGET_OPTION_NODE tree.
750         (cl_option_hash_table): New hash table for hashing
751         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
752         (cl_option_hash_hash): New function to provide the hash value for
753         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
754         (cl_option_hash_eq): New function to provide an equality test for
755         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
756         (tree_code_size): Add support for OPTIMIZATION_NODE and
757         TARGET_OPTION_NODE trees.
758         (tree_code_structure): Add support for OPTIMIZATION_NODE and
759         TARGET_OPTION_NODE trees.
760         (build_optimization_node): Build a tree that has all of the
761         current optimization options.
762         (build_target_option_node): Build a tree that has the target
763         options that might be changed on a per function basis.
764
765         * tree.h (file scope): Include options.h.
766         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
767         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
768         (TREE_OPTIMIZATION): Ditto.
769         (TREE_TARGET_SPECIFIC): Ditto.
770         (struct tree_function_decl): Add fields for remembering the
771         current optimization options and target specific options.
772         (struct tree_optimization_option): New tree variant that remembers
773         the optimization options.
774         (struct tree_target_option): New tree variant that remembers the
775         target specific flags that might change for compiling a particular
776         function.
777         (union tree_node): Include tree_optimization_option and
778         tree_target_option fields.
779         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
780         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
781         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
782         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
783         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
784         optimization and target options.
785         (optimization_default_node): New macro to refer to global_trees
786         field.
787         (optimization_current_node): Ditto.
788         (optimization_cold_node): Ditto.
789         (optimization_hot_node): Ditto.
790         (target_option_default_node): Ditto.
791         (target_option_current_node): Ditto.
792         (current_option_pragma): Ditto.
793         (current_optimize_pragma): Ditto.
794
795         * target.h (struct gcc_target): Add valid_option_attribute_p,
796         target_option_save, target_option_restore, target_option_print,
797         target_option_pragma_parse, and can_inline_p hooks.
798
799         * toplev.h (parse_optimize_options): Add declaration.
800         (fast_math_flags_struct_set_p): Ditto.
801
802         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
803         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
804         optimize is used.
805
806         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
807         tree_can_inline_p hook to see if one function can inline another.
808         (cgraph_decide_inlining): Ditto.
809         (cgraph_decide_inlining_incrementally): Ditto.
810
811         * opts.c (decode_options): Add support for running multiple times
812         to allow functions with different target or optimization options
813         than was specified on the command line.
814         (fast_math_flags_struct_set_p): New function that is similar to
815         fast_math_flags_set_p, except it uses the values in the
816         cl_optimization structure instead of global variables.
817
818         * optc-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.  Include flags.h and target.h in the options.c
821         source.  Add support for Save to indicate which options can be set
822         for individual functions.  Generate cl_optimize_save,
823         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
824         cl_target_option_restore, cl_target_option_print functions to
825         allow functions to use different optimization or target options.
826
827         * opt-functions.awk (var_type_struct): Return the type used for
828         storing the field in a structure.
829
830         * opth-gen.awk: Add support for TargetSave to allow a back end to
831         declare new fields that need to be saved when using function
832         specific options.  Add support for Save to indicate which options
833         can be set for individual functions.  Only generate one extern for
834         Mask fields.  Generate cl_optimization and cl_target_option
835         structures to remember optimization and target options.
836
837         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
838         collecting new tree nodes.
839         (TS_TARGET_OPTION): Ditto.
840
841         * c-decl.c (merge_decls): Merge function specific target and
842         optimization options.
843
844         * function.c (invoke_set_current_function_hook): If the function
845         uses different optimization options, change the global variables
846         to reflect this.
847
848         * coretypes.h (struct cl_optimization): Add forward reference.
849         (struct cl_target_option): Ditto.
850
851         * c-pragma.c (option_stack): New static vector to remember the
852         current #pragma GCC option stack.
853         (handle_pragma_option): New function to support #pragma GCC option
854         to change target options.
855         (optimize_stack): New static vector to remember the current
856         #pragma GCC optimize stack.
857         (handle_pragma_optimize): New function to support #pragma GCC
858         optimize to change optimization options.
859         (init_pragma): Add support for #pragma GCC optimize and #pragma
860         GCC option.
861
862         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
863         optimization options.
864         (TARGET_OPTION_NODE): New tree code for remembering certain target
865         options.
866
867         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
868         TARGET_OPTION_NODE trees.
869
870         * common.opt (-O): Add Optimization flag.
871         (-Os): Ditto.
872         (-fmath-errno): Ditto.
873         (-falign-functions): Add UInteger flag to make sure flag gets full
874         int in cl_optimization structure.
875         (-falign-jumps): Ditto.
876         (-falign-labels): Ditto.
877         (-falign-loops): Ditto.
878         (-fsched-stalled-insns): Ditto.
879         (-fsched-stalled-insns-dep): Ditto.
880
881         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
882         definition.
883         (TARGET_OPTION_SAVE): Ditto.
884         (TARGET_OPTION_RESTORE): Ditto.
885         (TARGET_OPTION_PRINT): Ditto.
886         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
887         (TARGET_CAN_INLINE_P): Ditto.
888         (TARGET_INITIALIZER): Add new hooks.
889
890         * tree-inline.c (tree_can_inline_p): New function to determine
891         whether one function can inline another.  Check if the functions
892         use compatible optimization options, and also call the backend
893         can_inline_p hook.
894
895         * tree-inline.h (tree_can_inline_p): Add declaration.
896
897         * c-common.c (c_common_attribute): Add support for option and
898         optimize attributes.
899         (handle_option_attribute): Add support for the option attribute to
900         allow the user to specify different target options for compiling a
901         specific function.
902         (handle_optimize_attribute): Add support for the optimize
903         attribute to allow the user to specify different optimization
904         options for compiling a specific function.
905         (handle_hot_attribute): Turn on -O3 optimization for this one
906         function if it isn't the default optimization level.
907         (handle_cold_attribute): Turn on -Os optimization for this one
908         function if it insn't the default optimization.
909         (const_char_p): New const char * typedef.
910         (optimize_args): New static vector to remember the optimization
911         arguments.
912         (parse_optimize_options): New function to set up the optimization
913         arguments from either the optimize attribute or #pragma GCC
914         optimize.
915
916         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
917         (builtin_define_std): Ditto.
918
919         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
920         Add t-i386 Makefile fragment to add i386-c.o and i386.o
921         dependencies.
922         (x86_64-*-*): Ditto.
923
924         * Makefile.in (TREE_H): Add options.h.
925         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
926
927         * doc/extend.texi (option attribute): Document new attribute.
928         (optimize attribute): Ditto.
929         (hot attribute): Document hot attribute sets -O3.
930         (cold attribute): Document cold attribute sets -Os.
931         (#pragma GCC option): Document new pragma.
932         (#pragma GCC optimize): Ditto.
933
934         * doc/options.texi (TargetSave): Document TargetSave syntax.
935         (UInteger): Document UInteger must be used for certain flags.
936         (Save): Document Save option to create target specific options
937         that can be saved/restored on a function specific context.
938
939         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new
940         macro.
941         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
942
943         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new
944         hook.
945         (TARGET_OPTION_SAVE): Ditto.
946         (TARGET_OPTION_RESTORE): Ditto.
947         (TARGET_OPTION_PRINT): Ditto.
948         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
949         (TARGET_CAN_INLINE_P): Ditto.
950
951         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
952         -mfpmath=sse,387.
953         (-mfpmath=both): Ditto.
954
955 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
956             Karthik Kumar  <karthikkumar@gmail.com>
957
958         * config/i386/i386.h (TARGET_ABM): Move switch into
959         ix86_isa_flags.
960         (TARGET_POPCNT): Ditto.
961         (TARGET_SAHF): Ditto.
962         (TARGET_AES): Ditto.
963         (TARGET_PCLMUL): Ditto.
964         (TARGET_CMPXCHG16B): Ditto.
965         (TARGET_RECIP): Move switch into target_flags.
966         (TARGET_FUSED_MADD): Ditto.
967         (ix86_arch_features): Make an unsigned char type.
968         (ix86_tune_features): Ditto.
969         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
970         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
971         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
972
973         * config/i386/i386.opt (arch): New TargetSave field to define
974         fields that need to be saved for function specific option
975         support.
976         (tune): Ditto.
977         (fpmath): Ditto.
978         (branch_cost): Ditto.
979         (ix86_isa_flags_explicit): Ditto.
980         (tune_defaulted): Ditto.
981         (arch_specified): Ditto.
982         (-m128-long-double): Add Save flag to save option for target
983         specific option support.
984         (-m80387): Ditto.
985         (-maccumulate-outgoing-args): Ditto.
986         (-malign-double): Ditto.
987         (-malign-stringops): Ditto.
988         (-mfancy-math-387): Ditto.
989         (-mhard-float): Ditto.
990         (-mieee-fp): Ditto.
991         (-minline-all-stringops): Ditto.
992         (-minline-stringops-dynamically): Ditto.
993         (-mms-bitfields): Ditto.
994         (-mno-align-stringops): Ditto.
995         (-mno-fancy-math-387): Ditto.
996         (-mno-push-args): Ditto.
997         (-mno-red-zone): Ditto.
998         (-mpush-args): Ditto.
999         (-mred-zone): Ditto.
1000         (-mrtd): Ditto.
1001         (-msseregparm): Ditto.
1002         (-mstack-arg-probe): Ditto.
1003         (-m32): Ditto.
1004         (-m64): Ditto.
1005         (-mmmx): Ditto.
1006         (-m3dnow): Ditto.
1007         (-m3dnowa): Ditto.
1008         (-msse): Ditto.
1009         (-msse2): Ditto.
1010         (-msse3): Ditto.
1011         (-msse4.1): Ditto.
1012         (-msse4.2): Ditto.
1013         (-msse4): Ditto.
1014         (-mno-sse4): Ditto.
1015         (-msse4a): Ditto.
1016         (-msse5): Ditto.
1017         (-mrecip): Move flag into target_flags.
1018         (-mcld): Ditto.
1019         (-mno-fused-madd): Ditto.
1020         (-mfused-madd): Ditto.
1021         (-mabm): Move flag into ix86_isa_flags.
1022         (-mcx16): Ditto.
1023         (-mpopcnt): Ditto.
1024         (-msahf): Ditto.
1025         (-maes): Ditto.
1026         (-mpclmul): Ditto.
1027
1028         * config/i386/i386-c.c: New file for #pragma support.
1029         (ix86_target_macros_internal): New function to #define or #undef
1030         target macros based when the user uses the #pragma GCC option to
1031         change target options.
1032         (ix86_pragma_option_parse): New function to add #pragma GCC option
1033         support.
1034         (ix86_target_macros): Move defining the target macros here from
1035         TARGET_CPU_CPP_BUILTINS in i386.h.
1036         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
1037         defined, initialize any subtarget #pragmas.
1038
1039         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
1040         REGISTER_TARGET_PRAGMAS.
1041
1042         * config/i386/t-i386: New file for x86 dependencies.
1043         (i386.o): Make dependencies mirror the include files used.
1044         (i386-c.o): New file, add dependencies.
1045
1046         * config/i386/i386-protos.h (override_options): Add bool
1047         argument.
1048         (ix86_valid_option_attribute_tree): Add declaration.
1049         (ix86_target_macros): Ditto.
1050         (ix86_register_macros): Ditto.
1051
1052         * config/i386/i386.c (ix86_tune_features): Move initialization of
1053         the target masks to initial_ix86_tune_features to allow functions
1054         to have different target options.  Make type unsigned char,
1055         instead of unsigned int.
1056         (initial_ix86_tune_features): New static vector to hold processor
1057         masks for the tune variables.
1058         (ix86_arch_features): Move initialization of the target masks to
1059         initial_ix86_arch_features to allow functions to have different
1060         target options.  Make type unsigned char, instead of unsigned
1061         int.
1062         (initial_ix86_arch_features): New static vector to hold processor
1063         masks for the arch variables.
1064         (enum ix86_function_specific_strings): New enum to describe the
1065         string options used for attribute((option(...))).
1066         (ix86_target_string): New function to return a string that
1067         describes the target options.
1068         (ix86_debug_options): New function to print the current options in
1069         the debugger.
1070         (ix86_function_specific_save): New function hook to save the
1071         function specific global variables in the cl_target_option
1072         structure.
1073         (ix86_function_specific_restore): New function hook to restore the
1074         function specific variables from the cl_target_option structure to
1075         the global variables.
1076         (ix86_function_specific_print): New function hook to print the
1077         target specific options in the cl_target_option structure.
1078         (ix86_valid_option_attribute_p): New function hook to validate
1079         attribute((option(...))) arguments.
1080         (ix86_valid_option_attribute_tree): New function that is common
1081         code between attribute((option(...))) and #pragma GCC option
1082         support that parses the options and returns a tree holding the
1083         options.
1084         (ix86_valid_option_attribute_inner_p): New helper function for
1085         ix86_valid_option_attribute_tree.
1086         (ix86_can_inline_p): New function hook to decide if one function
1087         can inline another on a target specific basis.
1088         (ix86_set_current_function); New function hook to switch target
1089         options if the user used attribute((option(...))) or #pragma GCC
1090         option.
1091         (ix86_tune_defaulted): Move to static file scope from
1092         override_options.
1093         (ix86_arch_specified): Ditto.
1094         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
1095         ix86_isa_flags.
1096         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
1097         (OPTION_MASK_ISA_ABM_SET): Ditto.
1098         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
1099         (OPTION_MASK_ISA_CX16_SET): Ditto.
1100         (OPTION_MASK_ISA_SAHF_SET): Ditto.
1101         (OPTION_MASK_ISA_AES_UNSET): Ditto.
1102         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
1103         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
1104         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
1105         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
1106         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
1107         (struct ptt): Move to static file scope from override_options.
1108         (processor_target_table): Ditto.
1109         (cpu_names): Ditto.
1110         (ix86_handle_option): Add support for options that are now isa
1111         options.
1112         (override_options): Add support for declaring functions that
1113         support different target options than were specified on the
1114         command line.  Move struct ptt, processor_target_table, cpu_names,
1115         ix86_tune_defaulted, ix86_arch_specified to static file scope.
1116         Add bool argument.  Fix up error messages so the appropriate error
1117         is given for either command line or attribute.
1118         (ix86_previous_fndecl): New static to remember previous function
1119         declaration to see if we need to change target options.
1120         (ix86_builtins_isa): New array to record the ISA of each builtin
1121         function.
1122         (def_builtin): Always create the builtin function, even if the
1123         current ISA doesn't support it.
1124         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
1125         tests for those builtins.
1126         (ix86_init_builtins): Remove TARGET_MMX test for calling
1127         ix86_init_mmx_sse_builtins.
1128         (ix86_expand_builtin): If the current ISA doesn't support a given
1129         builtin, signal an error.
1130         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
1131         (TARGET_SET_CURRENT_FUNCTION): Ditto.
1132         (TARGET_OPTION_SAVE): Ditto.
1133         (TARGET_OPTION_RESTORE): Ditto.
1134         (TARGET_OPTION_PRINT): Ditto.
1135         (TARGET_CAN_INLINE_P): Ditto.
1136
1137 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
1138
1139        * c-typeck.c (build_external_ref): Don't call assemble_external.
1140        * final.c (output_operand): Call assemble_external.
1141
1142 2008-07-21  DJ Delorie  <dj@redhat.com>
1143
1144         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
1145         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1146
1147 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1148
1149         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
1150         original insn and splitter contents into ...
1151         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
1152         flag_unsafe_math_optimizations.  Add dummy scratch register.
1153         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
1154         !flag_unsafe_math_optimizations.  Returns number with next
1155         highest magnitude if this is still less or equal to the true
1156         quotient in magnitude.
1157
1158 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
1159
1160         * Makefile.in: Replace toplev.h with TOPLEV_H.
1161         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
1162         * c-lex.c (fe_file_change): Don't set in_system_header.
1163         * c-parser.c (c_token): Remove in_system_header.
1164         (c_lex_one_token): Don't set in_system_header.
1165         (c_parser_set_source_position_from_token): Don't set in_system_header.
1166         * diagnostic.c (diagnostic_report_diagnostic): Use location from
1167         diagnostic_info.
1168         (warning_at): New.
1169         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
1170         * flags.h (in_system_header): Remove.
1171         * function.c (saved_in_system_header): Remove.
1172         (push_cfun): Don't set in_system_header.
1173         (pop_cfun): Don't set in_system_header.
1174         (push_struct_function): Don't set in_system_header.
1175         * input.h (expanded_location): Add sysp.
1176         (in_system_header_at): New.
1177         (in_system_header): New.
1178         * toplev.c (in_system_header): Remove.
1179         * toplev.h: Include input.h
1180         (warning_at): New.
1181         * tree-cfg.c (execute_warn_function_return): Call warning_at.
1182         * tree-ssa.c (warn_uninit): Call warning_at.
1183         (warn_uninitialized_var): Update calls to warn_uninit.
1184         (warn_uninitialized_phi): Update calls to warn_uninit.
1185         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
1186         (expand_location): Initialize xloc.sysp.
1187         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
1188         (tree_decl_with_vis): Remove in_system_header_flag.
1189
1190 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
1191
1192         PR target/36822
1193         * recog.c (asm_operand_ok): Change the order of the extra
1194         memory constraint checks.
1195
1196 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1197
1198         PR tree-opt/36879
1199         * tree-switch-conversion.c (build_one_array): Call
1200         varpool_mark_needed_node and varpool_finalize_decl 
1201         instead of assemble_variable.
1202
1203 2008-07-19  Jan Hubicka  <jh@suse.cz>
1204
1205         * cgraph.c (cgraph_add_new_function): Do early local passes.
1206         * tree-nrv.c (gate_pass_return_slot): New gate.
1207         (pass_nrv): Add the gate.
1208         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
1209         functions.
1210         (coalesce_ssa_name): Coalesce SSA names.
1211         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
1212         not optimizing so unused user vars remains visible.
1213         * common.opt (flag_tree_ter): Always enable by default.
1214         * tree-ssa-ter.c: Include flags.h
1215         (is_replaceable_p): Check that locations match; when aliasing is missing
1216         be conservative about loads.
1217         * tree-optimize.c (gate_init_datastructures): Remove.
1218         (pass_init_datastructures): New.
1219         * passes.c: Reorder passes so we always go into SSA.
1220
1221 2008-07-19  Jan Hubicka  <jh@suse.cz>
1222
1223         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
1224         * doc/invoke.texi (--combine): Likewise.
1225         (-finline-functions-called-once): Update levels when enabled.
1226         (-funit-at-a-time): Document new behaviour.
1227         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
1228         -fno-section-anchors when disabled explicitly.
1229         (inline params): They are not ignored now.
1230         (precompiled headers): Remove unit-at-a-time as being incompatible.
1231         * opts.c (decode_options): Handle unit-at-a-time as alias;
1232         imply -fno-section-anchors when toplevel reorder is disabled
1233         explicitly.
1234         * common.opt (ftoplevel-reorder): Set default value to 2.
1235         (funit-at-a-time): Set default value to 1.
1236         * config/rs6000/rs6000.c (optimization_options): Set section anchors
1237         to 2.
1238
1239 2008-07-19  Jan Hubicka  <jh@suse.cz>
1240
1241         * builtins.c (expand_builtin_int_roundingfn,
1242         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
1243         it is not useful.
1244
1245 2008-07-19  Richard Guenther  <rguenther@suse.de>
1246
1247         PR bootstrap/36864
1248         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
1249         * tree-ssa-sccvn.c (get_constant_value_id): New function.
1250         * tree-ssa-pre.c (get_expr_value_id): For newly created
1251         constant value-ids make sure to add the expression to its
1252         expression-set.
1253
1254 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
1255
1256         PR middle-end/36877
1257         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
1258         return value of the builtin is ignored.
1259
1260 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1261
1262         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
1263         bits, a C conformant malloc implementation has to provide.
1264         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
1265
1266 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
1267
1268         PR target/36780
1269         PR target/36827
1270         * reload.c (find_reloads_subreg_address): Only reload address if
1271         reloaded == 0, not for reloaded != 1.
1272
1273         Revert:
1274         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1275         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1276         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1277         m32c_legitimize_reload_address.
1278
1279         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1280         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1281         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1282
1283 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1284
1285         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
1286         argument, saying whether nested array are to be collapsed
1287         into a single array type DIE with multiple subscripts.
1288         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
1289         issues, centralize the nested array types collapsing control and
1290         disable the transformation for Ada.
1291         
1292 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
1293
1294         PR target/36786
1295         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
1296         x86_64_shift_adj.
1297         (x86_64_shift_adj_2): New expander.
1298         (x86_64_shift_adj_3): Ditto.
1299         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
1300         to split TImode operands.
1301         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
1302         (ix86_split_lshr): Ditto.
1303
1304 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
1305
1306         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
1307         and __CHAR32_TYPE__.
1308         * c-typeck.c (digest_init): Support char16_t and char32_t.
1309         (set_nonincremental_init_from_string): Idem.
1310
1311 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1312
1313         PR middle-end/36859
1314         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
1315         PREFERRED_STACK_BOUNDARY.
1316         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1317
1318 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1319
1320         PR middle-end/36858
1321         * function.c (locate_and_pad_parm): Cap boundary earlier.
1322
1323 2008-07-17  Julian Brown  <julian@codesourcery.com>
1324
1325         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
1326         no-op for targets which don't use DLLs.
1327
1328 2008-07-17  Martin Jambor  <mjambor@suse.cz>
1329
1330         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
1331         that nodes are relevant by examining the node->analyzed flag.
1332         (ipcp_init_stage): Check which nodes are relevant, assert that the
1333         relevant ones are also required.
1334         (ipcp_propagate_stage): Check on the side arrays are properly
1335         allocated.
1336         (ipcp_print_all_jump_functions): Make sure not to touch any node
1337         that is not analyzed or an edge that does not have a corresponding
1338         entry in the on-the-side vectors.
1339         (ipcp_function_scale_print): Likewise.
1340         (ipcp_update_callgraph): Check that the node is relevant.
1341         (ipcp_insert_stage): Check that the node is relevant.  Check there is
1342         an info for every node and edge.
1343         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
1344         (ipa_print_all_tree_maps): Likewise and a new variable info.
1345         (ipa_print_all_params_modified): Likewise.
1346         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
1347
1348 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
1349
1350         PR target/25343
1351         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
1352
1353 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
1354
1355         PR rtl-optimization/36753
1356         * fwprop.c (use_killed_between): Don't shortcut
1357         single-definition global registers.
1358
1359 2008-07-16  Jan Hubicka  <jh@suse.cz>
1360
1361         * cgraph.h (varpool_empty_needed_queue): Declare.
1362         * cgraphunit.c (output_in_order): Mark all variables as needed;
1363         empty the queue.
1364         * varpool.c (varpool_assemble_node): Update debug queue.
1365         (varpool_assemble_pending_decls): Don't do it here.
1366         (varpool_empty_needed_queue):  New function.
1367
1368 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1369
1370         * recog.c (peephole2_optimize): Fix formatting.
1371
1372 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1373
1374         * c-pch.c (get_ident): Avoid C++ keywords.
1375         * combine-stack-adj.c (single_set_for_csa): Likewise.
1376         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
1377         output_asm_insn): Likewise.
1378         * reload.c (push_secondary_reload, find_reusable_reload,
1379         push_reload, combine_reloads, find_reloads,
1380         debug_reload_to_stream): Likewise.
1381         * reload.h (struct reload): Likewise.
1382         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
1383         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
1384         emit_output_reload_insns): Likewise.
1385         * targhooks.c (default_secondary_reload): Likewise.
1386         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
1387
1388 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1389
1390         * recog.c (validate_change_1, validate_change,
1391         validate_unshare_change, validate_replace_rtx_1, struct
1392         funny_match, constrain_operands, peephole2_optimize): Avoid C++
1393         keywords.
1394         * reload.c (push_secondary_reload, secondary_reload_class,
1395         scratch_reload_class, find_valid_class, find_reusable_reload,
1396         push_reload, find_dummy_reload, find_reloads_address_1,
1397         find_reloads_address_part, find_equiv_reg): Likewise.
1398         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
1399         choose_reload_regs): Likewise.
1400         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
1401         Likewise.
1402         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
1403         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
1404         * sched-rgn.c (concat_INSN_LIST): Likewise.
1405         * stor-layout.c (mode_for_size, mode_for_size_tree,
1406         smallest_mode_for_size): Likewise.
1407
1408 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1409
1410         * cfg.c (dump_reg_info): Avoid C++ keywords.
1411         * dwarf2asm.c (dw2_force_const_mem,
1412         dw2_asm_output_encoded_addr_rtx): Likewise.
1413         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
1414         * expmed.c (expand_shift): Likewise.
1415         * global.c (find_reg): Likewise.
1416         * graph.c (draw_edge): Likewise.
1417         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
1418         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
1419         widen_clz, widen_bswap, expand_parity, expand_unop,
1420         emit_cmp_and_jump_insn_1): Likewise.
1421         * postreload.c (reload_cse_simplify_operands): Likewise.
1422         * ra.h (add_neighbor): Likewise.
1423         * reg-stack.c (remove_regno_note, change_stack): Likewise.
1424         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
1425         record_reg_classes, copy_cost, record_address_regs,
1426         invalid_mode_change_p): Likewise.
1427         * regrename.c (regrename_optimize, scan_rtx_reg,
1428         dump_def_use_chain, find_oldest_value_reg,
1429         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
1430
1431 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1432
1433         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
1434         MASK_POWERPC64 for power4 in previous commit.
1435
1436 2008-07-16  Olivier Hainque  <hainque@adacore.com>
1437
1438         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
1439         instead of bare conversion to cast const-ness away.
1440
1441 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
1442
1443         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
1444         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
1445         * config/xtensa/xtensa.c (xtensa_function_value): New function.
1446         (TARGET_FUNCTION_VALUE): Define.
1447
1448 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1449
1450         * config/rs6000/rs6000.c (processor_target_table): Add
1451         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
1452
1453 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1454
1455         PR target/36827
1456         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1457         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1458         m32c_legitimize_reload_address.
1459
1460 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
1461
1462        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
1463        DECL_IN_SYSTEM_HEADER in sync.
1464
1465 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
1466
1467         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
1468         * tree-ssa-pre.c (pre_expr_eq): Ditto
1469         (get_constant_for_value_id): Take a type as an argument.
1470         (fully_constant_expression): Pass in type.
1471         (find_or_generate_expression): Short circuit constant case.
1472         (create_expression_by_pieces): Remove special casing of
1473         pointer_plus.
1474         (do_regular_insertion): Short circuit constant case.
1475         (do_partial_partial_insertion): Ditto.
1476
1477 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1478
1479         PR target/36782
1480         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
1481
1482 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
1483         
1484         * config/xtensa/libgcc-xtensa.ver: New file.
1485         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
1486         
1487 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1488
1489         * df-problems.c (df_set_note): Avoid C++ keywords.
1490         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
1491         * dse.c (record_store, remove_useless_values): Likewise.
1492         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
1493         gen_reg_rtx_offset, operand_subword, change_address_1,
1494         change_address, adjust_address_1, offset_address,
1495         widen_memory_access, emit_copy_of_insn_after): Likewise.
1496         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
1497         * fwprop.c (should_replace_address, propagate_rtx_1,
1498         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
1499         Likewise.
1500         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
1501         gcse_emit_move_after, update_ld_motion_stores): Likewise.
1502         * lcm.c (compute_insert_delete, pre_edge_lcm,
1503         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
1504         * lower-subreg.c (resolve_reg_notes): Likewise.
1505         * mode-switching.c (optimize_mode_switching): Likewise.
1506
1507 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1508
1509         * bt-load.c (add_btr_def, migrate_btr_def,
1510         branch_target_load_optimize): Avoid C++ keywords.
1511         * caller-save.c (insert_restore, insert_save, insert_one_insn):
1512         Likewise.
1513         * combine.c (subst, simplify_set, make_extraction,
1514         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
1515         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
1516         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
1517
1518 2008-07-15  Richard Guenther  <rguenther@suse.de>
1519
1520         PR middle-end/36369
1521         * c-common.c (strict_aliasing_warning): Do not warn for
1522         TYPE_REF_CAN_ALIAS_ALL pointers.
1523         (c_common_get_alias_set): may_alias types are not special.
1524         * tree.c (build_pointer_type_for_mode): Look up the may_alias
1525         attribute and set can_ref_all accordingly.
1526         (build_reference_type_for_mode): Likewise.
1527         * doc/extend.texi (may_alias): Clarify.
1528
1529 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1530
1531         PR target/36780
1532         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1533         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1534
1535 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1536
1537         PR target/31568
1538         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
1539         gcc_assert, instead call output_operand_lossage.
1540
1541 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
1542
1543         * builtins.c (std_canonical_va_list): Treat structure based
1544         va_list types.
1545
1546 2008-07-15  Ben Elliston  <bje@au.ibm.com>
1547
1548         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
1549
1550 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
1551
1552         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
1553         is set.
1554
1555 2008-07-14  Jan Hubicka  <jh@suse.cz>
1556
1557         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
1558         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
1559         fix predicates and constraints.
1560         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
1561         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
1562
1563 2008-07-14  Doug Kwan  <dougkwan@google.com>
1564
1565         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
1566         additional option file arm/eabi.opt.
1567         * config/arm/eabi.h (File): New configuration file for EABI targets.
1568         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
1569         SUBSUBTARGET_EXTRA_SPECS.
1570         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
1571         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
1572         from STARTFILE_SPEC so that it can be referenced in an override.
1573         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
1574         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
1575         can be referenced in an override.
1576         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
1577         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
1578         so that it can be referenced in an override.
1579         (LINK_SPEC): Use BPABI_LINK_SPEC.
1580         * config/arm/eabi.opt (File): New.
1581
1582 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1583
1584         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
1585         (FIXED_VALUE_H): New variable.
1586         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
1587         input.h, fixed-value.h.
1588         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
1589         (BASIC_BLOCK_H): Use $(BITMAP_H).
1590         (FUNCTION_H): Add varray.h.
1591         (IPA_REFERENCE_H): Use $(BITMAP_H).
1592         (CGRAPH_H): Add $(BASIC_BLOCK_H).
1593         (DF_H): Use $(BITMAP_H).
1594         (GGC_H): Add statistics.h.
1595         (INSN_ADDR_H): New.
1596         (INSN_ATTR_H): Use it.
1597         (SYSTEM_H): Add safe-ctype.h, filenames.h.
1598         (INPUT_H): New.
1599         (SYMTAB_H): Add $(OBSTACK_H).
1600         (CPP_INTERNAL_H): New.
1601         (TREE_DUMP_H): Add tree-pass.h.
1602         (TREE_FLOW_H): Use $(BITMAP_H)
1603         (PRETTY_PRINT_H): Use $(INPUT_H).
1604         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
1605         (GSTAB_H): New.
1606         (BITMAP_H): New.
1607         (many object files): Fix lots of header dependencies throughout.
1608
1609 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1610
1611         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
1612         New macros.
1613         (s-gtyp-input): Use them to write tmp-gi.list.
1614         (echo_to_gi.list): Remove.
1615
1616 2008-07-14  Richard Guenther  <rguenther@suse.de>
1617
1618         * tree-ssa-sccvn.c (pre_info): Remove.
1619         (switch_to_PRE_table): Likewise.
1620         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
1621         (set_hashtable_value_ids): Do not create value-ids for the
1622         optimistic tables.
1623         (run_scc_vn): Remove double test.  Remove bogus special-case
1624         in value-number printing.
1625         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
1626         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
1627         SSA_NAME_VALUE.
1628         * tree-flow-inline.h (get_value_handle): Remove.
1629         * tree-flow.h (get_value_handle): Remove.
1630
1631 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1632
1633         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
1634         in which we generate arithmetics is not a subrange.
1635
1636 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1637
1638         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
1639
1640 2008-07-14  Richard Guenther  <rguenther@suse.de>
1641
1642         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
1643
1644 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1645
1646         PR target/36745
1647         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
1648         reload for symbol refs moved to r0 with -fPIC.
1649         (legitimize_pic_address): Use the target register as temporary
1650         reg if possible.
1651         (emit_symbolic_move): Adjust comment.
1652         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
1653         New expanders.
1654
1655 2008-07-14  Ben Elliston  <bje@au.ibm.com>
1656
1657         * c-common.h (C_CPP_HASHNODE): New macro.
1658         * coretypes.h (struct cpp_token): Forward declare.
1659         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1660         the context-sensitive keyword method.
1661         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
1662         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
1663         expand_bool_pixel): New.
1664         (altivec_categorize_keyword): New function.
1665         (init_vector_keywords): New function.
1666         (rs6000_macro_to_expand): Likewise.
1667         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
1668         compiling an ISO C dialect.
1669
1670 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
1671
1672         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
1673         (create_expression_by_pieces): Fix typo.
1674         (do_regular_insertion): Use debug counter here too.
1675
1676 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
1677
1678         PR target/35492.
1679         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
1680         CONST_OK_FOR_LETTER_P.  All port-local users changed.
1681         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
1682         implement Kp matching power-of-two.
1683         (CONSTRAINT_LEN): Define to match.
1684         * config/cris/cris.md: Replace all use of constraint K with Kc.
1685         ("*btst*): Use Kp for operand 0 of last alternative.
1686
1687 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1688
1689         PR testsuite/36440
1690         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
1691         and quad formats.
1692
1693 2008-07-13  Jan Hubicka  <jh@suse.cz>
1694
1695         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
1696         to be mangled too.
1697
1698 2008-07-13  Richard Guenther  <rguenther@suse.de>
1699
1700         PR middle-end/36811
1701         * langhooks.c (lhd_print_error_function): Deal with recursive
1702         BLOCK trees.
1703
1704 2008-07-12  Jan Hubicka  <jh@suse.cz>
1705
1706         * cgraph.c (assembler_name_hash): New static var.
1707         (hash_node_by_assembler_name, eq_assembler_name): New.
1708         (cgraph_node_for_asm): Use hashtable.
1709         (cgraph_remove_node): Maintain hashtable.
1710         (change_decl_assembler_name): Sanity check that names are not changing
1711         after aliasing was processed.
1712         * cgraph.h (varpoon_node): Add next GGC marker.
1713         * tree.c (decl_assembler_name_equal): Constify.
1714         (decl_assembler_name_hash): New.
1715         * tree.h (decl_assembler_name_equal): Constify.
1716         (decl_assembler_name_hash): Update.
1717
1718 2008-07-12  David Daney  <ddaney@avtrex.com>
1719
1720         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1721         sb1 and r5000 cpus.
1722
1723 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1724
1725         * doc/md.texi: Document the MIPS "v" constraint.
1726         * config/mips/mips.h (reg_class): Revert last change.
1727         (REG_CLASS_NAMES): Likewise.
1728         (REG_CLASS_CONTENTS): Likewise.
1729         * config/mips/mips.c (mips_regno_to_class): Likewise.
1730         * config/mips/constraints.md (v): Likewise, but add documentation.
1731         Add a comment to say that this constraint should not be used in
1732         gcc code.
1733
1734 2008-07-11  DJ Delorie  <dj@redhat.com>
1735
1736         * config/h8300/h8300.md (length): Fix branch offset limit.
1737
1738 2008-07-11  Anatoly Sokolov  <aesok@post.ru>    
1739
1740         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
1741         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
1742         (avr_hard_regno_scratch_ok): New function.
1743         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1744         * config/avr/avr.md (all peepholes that request a scratch register):
1745         Remove avr_peep2_scratch_safe use.
1746
1747 2008-07-11  Tom Tromey  <tromey@redhat.com>
1748             Ian Lance Taylor  <iant@google.com>
1749
1750         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
1751         (struct c_common_resword): Define.
1752         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
1753         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
1754         (c_common_reswords, num_c_common_reswords): Declare.
1755         * c-common.c (c_common_reswords): New global const array.
1756         (num_c_common_reswords): New const int.
1757         * c-parser.c (struct resword, reswords): Don't define.
1758         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
1759         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
1760         than reswords.  If warning about C++ keywords, give them a special
1761         RID code.
1762         (c_lex_one_token): Warn about C++ keywords.  Call
1763         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
1764         (c_parser_external_declaration): Look for RID_xxx rather than
1765         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
1766         (c_parser_statement_after_labels): Likewise.
1767         (c_parser_objc_class_instance_variables): Likewise.
1768         (c_parser_objc_class_declaration): Likewise.
1769         (c_parser_objc_try_catch_statement): Likewise.
1770         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
1771         (declspecs_add_type): Likewise.
1772
1773 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
1774
1775         * ggc-page.c (alloc_page):
1776         Substituting xmalloc, xcalloc with
1777         XNEWVEC and XCNEWVAR macros which add the
1778         needed casts.
1779
1780 2008-07-11  Richard Guenther  <rguenther@suse.de>
1781
1782         PR tree-optimization/36765
1783         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1784         aliases from HEAP vars to SMTs.
1785
1786 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1787
1788         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
1789         * configure.ac (loose_warn): Move -Wc++-compat from here...
1790         (strict_warn): ...to here.
1791         * configure: Regenerate.
1792
1793 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
1794
1795         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
1796         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
1797         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
1798         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
1799         excluding more specific h8300-*-* and sh-*-* targets.
1800
1801 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
1802
1803         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
1804         (eliminate): Ditto.
1805         (execute_pre): Call loop_optimizer_finalize in early exit.
1806
1807 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
1808
1809         PR middle-end/36790
1810         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
1811         uids in the bitmap, not just VAR_DECL uids.
1812
1813         PR rtl-optimization/36419
1814         * combine-stack-adj.c (adjust_frame_related_expr): New function.
1815         (combine_stack_adjustments_for_block): Call it if needed.  Delete
1816         correct insn.
1817         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
1818         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
1819         prologue sp adjustment.
1820
1821 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
1822
1823         PR other/28322
1824         * opts.c (print_ignored_options): Report postponed diagnostics for
1825         unknown -Wno-* options as warnings, not errors.
1826         (postpone_unknown_option_error): Renamed to...
1827         (postpone_unknown_option_warning): ... this.
1828
1829 2008-07-09  Doug Kwan  <dougkwan@google.com>
1830
1831         Revert:
1832         2008-07-08  Doug Kwan  <dougkwan@google.com>
1833
1834         * config/arm/arm.opt (mandroid): New option.
1835         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1836         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1837         (CC1_SPEC): Same.
1838         (CC1PLUS_SPEC): Same.
1839         (LIB_SPEC): Same.
1840         (STARTFILE_SPEC): Same.
1841         (ENDFILE_SPEC): Same.
1842         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1843         used.
1844
1845 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
1846
1847         PR target/35802
1848         * config/mips/mips.h (reg_class): Remove V1_REG.
1849         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1850         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
1851         instead of V1_REGS.
1852         (mips_get_tp): New function.
1853         (mips_legitimize_tls_address): Use it.
1854         * config/mips/constraints.md (v): Delete.
1855         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
1856         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
1857         After reload, split into a move and ...
1858         (*tls_get_tp_<mode>_split): ...this new instruction.
1859
1860 2008-07-09  David Daney  <ddaney@avtrex.com>
1861
1862         * config/mips/driver-native.c: Include coretypes.h and tm.h.
1863
1864 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
1865
1866         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
1867         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
1868         Add c argument.
1869         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
1870         htab_delete should be called.  Don't free c.
1871         (lookup_tmp_var): Create temp_htab lazily.
1872         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
1873         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
1874         callers.
1875         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
1876         lower_omp_ordered, lower_omp_critical, lower_omp_for,
1877         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
1878         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
1879         * tree-sra.c (generate_element_init): Likewise.
1880         * tree-mudflap.c (execute_mudflap_function_ops,
1881         execute_mudflap_function_decls): Likewise.
1882         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
1883         * tree-gimple.h (struct gimplify_ctx): New type.
1884         (push_gimplify_context): Adjust prototype.
1885
1886 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
1887
1888         * tree-ssa-pre.c (phi_translate_1): Update placement of
1889         add_to_value calls.
1890
1891 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
1892
1893         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
1894         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
1895         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
1896         * targhooks.c (default_hard_regno_scratch_ok): New function.
1897         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
1898         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
1899         * recog.c:  Include "target.h".
1900         (peep2_find_free_register): Add check for global regs. Add target
1901         specific check.
1902         * Makefile.in (recog.o): Depend on target.h.
1903
1904 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1905
1906         * config/sh/sh.c (sh_canonical_va_list_type): New.
1907         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
1908
1909 2008-07-09  Raksit Ashok <raksit@google.com>
1910
1911         * doc/invoke.texi (Option Summary): Mention new option
1912         -Wdisallowed-function-list=...
1913         (Warning Options): Document -Wdisallowed-function-list=...
1914         * common.opt (Wdisallowed-function-list=): New flag.
1915         * flags.h (warn_disallowed_functions): External definition of new
1916         boolean warning flag.
1917         (warn_if_disallowed_function_p): Declare new function.
1918         * opts.c (warning_disallowed_functions): New static variable.
1919         (warn_disallowed_functions): New boolean warning flag.
1920         (warn_if_disallowed_function_p): New function.
1921         (add_comma_separated_to_vector): Rename
1922         add_instrument_functions_exclude_list to this.
1923         (common_handle_option): Handle new option. Rename calls to
1924         add_instrument_functions_exclude_list into calls to
1925         add_comma_separated_to_vector.
1926         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
1927         based on flag warn_disallowed_functions.
1928
1929 2008-07-09  Christian Bruel  <christian.bruel@st.com>
1930
1931         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
1932          instead of get_attr_length.
1933
1934 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1935
1936         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
1937         keywords.
1938         * genemit.c (gen_insn): Likewise.
1939         * gengtype.c (note_def_vec): Likewise.
1940         * gengtype.h (note_def_vec): Likewise.
1941         * genoutput.c (struct data, output_insn_data, process_template,
1942         gen_expand, gen_split, note_constraint): Likewise.
1943         * genrecog.c (new_decision, add_to_sequence, factor_tests,
1944         make_insn_sequence): Likewise.
1945         * gensupport.c (record_insn_name): Likewise.
1946
1947 2008-07-08  Doug Kwan  <dougkwan@google.com>
1948
1949         * config/arm/arm.opt (mandroid): New option.
1950         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1951         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1952         (CC1_SPEC): Same.
1953         (CC1PLUS_SPEC): Same.
1954         (LIB_SPEC): Same.
1955         (STARTFILE_SPEC): Same.
1956         (ENDFILE_SPEC): Same.
1957         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1958         used.
1959
1960 2008-07-08  Raksit Ashok  <raksit@google.com>
1961
1962         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
1963         (set_storage_via_setmem): Fix expected_align parameter.
1964         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
1965         missing from the list.
1966         * doc/md.texi (movmem): Explicitly state that expected alignment is
1967         to be expressed in bytes.
1968         (setmem): Explicitly state that expected alignment is to be expressed
1969         in bytes.
1970
1971 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
1972
1973         * reload.c (find_reloads_subreg_address): Do not require validity
1974         of address in original mode before reloading address.
1975
1976 2008-07-07  Tianwei Sheng  <tianweis@google.com>
1977
1978         * df-core.c (df_remove_problem): Adjust the access to avoid out of
1979         bounds array access.
1980
1981 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
1982
1983         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
1984
1985 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
1986         
1987         Fix PR tree-optimization/23455
1988         Fix PR tree-optimization/35286
1989         Fix PR tree-optimization/35287
1990         * Makefile.in (OBJS-common): Remove tree-vn.o.
1991         (tree-vn.o): Remove.
1992         * dbgcnt.def: Add treepre_insert debug counter.
1993         * gcc/tree-flow.h (add_to_value): Updated for other changes.
1994         (debug_value_expressions): Ditto.
1995         (print_value_expressions): Ditto.
1996         * tree-pretty-print.c (dump_generic_node): Updated for
1997         VALUE_HANDLE removal.
1998         * tree-ssa-dom.c (record_equality): Ditto.
1999         (cprop_operand): Ditto.
2000         (lookup_avail_expr): Ditto.
2001         * tree-ssa-threadedge.c
2002         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
2003         (simplify_control_stmt_condition): Ditto.
2004         * tree.c (tree_code_size): Ditto.
2005         (tree_node_structure): Ditto.
2006         (iterative_hash_expr): Ditto.
2007         * tree.def: Ditto.
2008         * tree.h (VALUE_HANDLE_ID): Ditto.
2009         (VALUE_HANDLE_EXPR_SET): Ditto.
2010         (struct tree_value_handle): Ditto.
2011         (union tree_node): Ditto.
2012         * treestruct.def: Ditto.
2013         * tree-vn.c: Removed.
2014         * tree-ssa-pre.c: Rewritten entirely.
2015         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
2016         (constant_value_ids): Ditto.
2017         (vn_nary_op_t): Moved to header.
2018         (vn_phi_t): Ditto.
2019         (vn_reference_op_t): Ditto
2020         (vn_reference_t): Ditto.
2021         (next_value_id): New variable.
2022         (VN_INFO): Add an assert.
2023         (vn_constant_eq): New function.
2024         (vn_constant_hash): Ditto.
2025         (get_or_alloc_constant_value_id): Ditto.
2026         (value_id_constant_p): Ditto.
2027         (vn_reference_compute_hash): De-staticify.
2028         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
2029         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
2030         (valueize_refs): Update opcode if it changes from ssa name to constant.
2031         (vn_reference_lookup_1): Add new argument.
2032         (vn_reference_lookup):  Ditto.
2033         (vn_reference_lookup_pieces): New function.
2034         (vn_reference_insert): Add return type. Modify to deal with value ids.
2035         (vn_reference_insert_pieces):  New function.
2036         (vn_nary_op_compute_hash): De-staticify.
2037         (vn_nary_op_eq): Ditto.
2038         (vn_nary_op_lookup_pieces): New function.
2039         (vn_nary_op_lookup): Add new argument.  
2040         (vn_nary_op_insert_pieces): New function.
2041         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
2042         (vn_phi_insert): Ditto.
2043         (visit_unary_op): Update for callee changes.
2044         (visit_binary_op): Ditto.
2045         (visit_reference_op_load): Ditto.
2046         (visit_reference_op_store): Ditto.
2047         (init_scc_vn): Init next_value_id, constant_to_value_id and
2048         constant_value_ids. 
2049         (free_scc_vn): Free them.
2050         (set_hashtable_value_ids): New function.
2051         (run_scc_vn): Use it.
2052         (get_max_value_id): New function.
2053         (get_next_value_id): Ditto.
2054         (expressions_equal_p): Moved from tree-vn.c
2055         (sort_vuses): Ditto.
2056         (sort_vuses_heap): Ditto.
2057         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
2058         above).
2059         * tree.c (iterative_hash_hashval_t): Made non-static
2060         * tree.h (iterative_hash_hashval_t): Declare it.
2061         
2062 2008-07-08  Martin Jambor  <mjambor@suse.cz>
2063
2064         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
2065         instead of ipa_create_node_params.
2066         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
2067         ipa_check_create_edge_args, free them with
2068         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
2069
2070         * ipa-prop.c: Include flags.h and tree-inline.h.
2071         (ipa_node_params_vector): New variable.
2072         (ipa_edge_args_vector): New variable.
2073         (edge_removal_hook_holder): New variable.
2074         (node_removal_hook_holder): New variable.
2075         (edge_duplication_hook_holder): New variable.
2076         (node_duplication_hook_holder): New variable.
2077         (ipa_detect_param_modifications): Check for presence of modified flags.
2078         (ipa_compute_jump_functions): Check for presence of jump functions.
2079         (ipa_free_edge_args_substructures): New function.
2080         (ipa_create_node_params): Removed.
2081         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
2082         (ipa_free_node_params_substructures): New function.
2083         (ipa_free_all_node_params): Changed to deallocate the on-the-side
2084         vector.
2085         (ipa_edge_removal_hook): New function.
2086         (ipa_node_removal_hook): New function.
2087         (duplicate_array): New function.
2088         (ipa_edge_duplication_hook): New function.
2089         (ipa_node_duplication_hook): New function.
2090         (ipa_register_cgraph_hooks): New function.
2091         (ipa_unregister_cgraph_hooks): New function.
2092         (free_all_ipa_structures_after_ipa_cp): New function.
2093         
2094         * ipa-prop.h: Include vec.h.
2095         (ipa_node_params_t): New typedef with vector types for it.
2096         (ipa_edge_args_t):  New typedef with vector types for it.
2097         (IPA_NODE_REF): Changed to access an on-the-side vector.
2098         (IPA_EDGE_REF): Changed to access an on-the-side vector.
2099         (ipa_check_create_node_params): New function.
2100         (ipa_check_create_edge_args): New function.
2101         
2102         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
2103         all users.
2104         
2105 2008-07-07  Tom Tromey  <tromey@redhat.com>
2106
2107         * configure, config.in: Rebuilt.
2108         * configure.ac: Don't check for scandir or alphasort.
2109
2110 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
2111
2112         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
2113         types immediately after creating them.
2114
2115 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
2116
2117         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
2118
2119 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
2120
2121         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
2122         dump_constraint_graph.
2123         (dump_constraint_edge): New function.
2124         (dump_constraint_graph): New function.
2125         (debug_constraint_graph): New function.
2126         (dump_constraint): Removed useless comparison.
2127         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
2128         (dump_constraint_graph): Declare.
2129         (debug_constraint_graph): Declare.
2130         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
2131
2132 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
2133
2134         * config/i386/i386.c (is_va_list_char_pointer): New.
2135         (ix86_va_start): Replace compare with ms_va_list_type_node
2136         by is_va_list_char_pointer.
2137         (ix86_gimplify_va_arg): Likewise.
2138
2139 2008-07-07  Martin Jambor  <mjambor@suse.cz>
2140
2141         * cgraph.c (cgraph_edge_max_uid): New variable.
2142         (struct cgraph_edge_hook_list): New type.
2143         (struct cgraph_node_hook_list): New type.
2144         (struct cgraph_2edge_hook_list): New type.
2145         (struct cgraph_2node_hook_list): New type.
2146         (first_cgraph_edge_removal_hook): New variable.
2147         (first_cgraph_node_removal_hook): New variable.
2148         (first_cgraph_edge_duplicated_hook): New variable.
2149         (first_cgraph_node_duplicated_hook): New variable.
2150         (cgraph_add_edge_removal_hook): New function.
2151         (cgraph_remove_edge_removal_hook): New function.
2152         (cgraph_call_edge_removal_hooks):  New function.
2153         (cgraph_add_node_removal_hook):  New function.
2154         (cgraph_remove_node_removal_hook):  New function.
2155         (cgraph_call_node_removal_hooks):  New function.
2156         (cgraph_add_edge_duplication_hook):  New function.
2157         (cgraph_remove_edge_duplication_hook):  New function.
2158         (cgraph_call_edge_duplication_hooks):  New function.
2159         (cgraph_add_node_duplication_hook):  New function.
2160         (cgraph_remove_node_duplication_hook):  New function.
2161         (cgraph_call_node_duplication_hooks):  New function.
2162         (cgraph_create_edge): Assign to edge uid.
2163         (cgraph_remove_edge): Call edge removal hooks.
2164         (cgraph_node_remove_callees): Call edge removal hooks.
2165         (cgraph_node_remove_callers): Call edge removal hooks.
2166         (cgraph_remove_node): Call node removal hooks.
2167         (cgraph_clone_edge): Call edge duplication hooks.
2168         (cgraph_clone_node): Call node duplication hooks.
2169
2170         * cgraph.h (cgraph_edge): New field uid.
2171         (cgraph_edge_hook): New type.
2172         (cgraph_node_hook): New type.
2173         (cgraph_2edge_hook): New type.
2174         (cgraph_2node_hook): New type.
2175
2176 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
2177
2178         * config.in: Regenerate.
2179
2180 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
2181
2182         * gcc.c (print_sysroot): New.
2183         (option_map, display_help, process_command): Handle the
2184         -print-sysroot option.
2185         (main): Print the sysroot if requested.
2186         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
2187         
2188 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2189
2190         PR target/34780
2191         * unwind-pe.h (size_of_encoded_value): add attribute unused.
2192
2193 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
2194
2195         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
2196         (assign_parm_setup_block_p): Also check mode of entry_parm.
2197
2198 2008-07-07  Richard Guenther  <rguenther@suse.de>
2199
2200         * tree-ssa-structalias.h (set_used_smts): Remove.
2201         * tree-ssa-structalias.c (used_smts): Likewise.
2202         (set_used_smts): Likewise.
2203         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
2204         call to set_used_smts.
2205
2206 2008-07-07  Richard Guenther  <rguenther@suse.de>
2207
2208         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
2209         (new_var_info): Set it to false.
2210         (solution_set_add): Correctly handle pointers outside a var and
2211         inside a field.
2212         (type_safe): Treat variables with is_full_var properly.
2213         (do_sd_constraint): Likewise.
2214         (do_ds_constraint): Likewise.
2215         (process_constraint): Remove zeroing offset for !use_field_sensitive.
2216         (get_constraint_for_ptr_offset): New function.
2217         (get_constraint_for_component_ref): For addresses at least include
2218         the last field of the variable.  Handle is_full_vars properly.
2219         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
2220         (handle_ptr_arith): Remove.
2221         (find_func_aliases): Simplify assignment handling.
2222         (create_function_info_for): For parameter and result varinfos set
2223         is_full_var flag.
2224         (create_variable_info_for): Set is_full_var flag whenever we
2225         just created a single varinfo for a decl.
2226         (init_alias_vars): Initialize use_field_sensitive from
2227         max-fields-for-field-sensitive parameter.
2228
2229 2008-07-07  Richard Guenther  <rguenther@suse.de>
2230
2231         PR tree-optimization/36713
2232         * tree-flow-inline.h (is_call_used): New function.
2233         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
2234         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2235         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
2236
2237 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2238
2239         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
2240         
2241 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
2242
2243         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
2244
2245 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2246             Nathan Sidwell  <nathan@codesourcery.com>
2247
2248         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
2249         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
2250         tmake_file.
2251         * config/m68k/t-linux: New.
2252         * doc/install.texi: Document m68k-*-linux is now multilibbed by
2253         default.
2254
2255 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
2256
2257         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
2258         * config/m68k/m68k-devices.def: Remove multilibs that only differ
2259         by MAC/EMAC.
2260
2261 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2262
2263         * gcc.c (execute): Fix -Wc++-compat warning.
2264
2265 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2266
2267         PR target/36720
2268         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
2269         constant for little endian.
2270
2271 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
2272
2273         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
2274         mips_base_mips16 instead of TARGET_MIPS16.
2275         (mips_base_mips16): Declare.
2276         * config/mips/mips.c (mips_base_mips16): Make global.
2277         (was_mips16_p): Remove GTY marker.
2278         (was_mips16_pch_p): New variable.
2279         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
2280         (mips_override_options): Force to non-MIPS16 mode initially.
2281         Do not complain about MIPS16 PIC incompatibilities here.
2282         Only allow -mgpopt if -mexplicit-relocs is in force for
2283         non-MIPS16 code.
2284
2285 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
2286
2287         * configure.ac: Check for caddr_t, define to char * if not defined.
2288         * configure: Regenerate.
2289         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
2290         (mmap_gt_pch_use_address): Likewise.
2291         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
2292
2293 2008-07-06  Richard Guenther  <rguenther@suse.de>
2294
2295         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
2296         (new_var_info): Deal with it.
2297         (solution_set_add): Likewise.
2298         (bitpos_of_field): Make signed, fix.
2299         (struct fieldoff): Remove type and decl fields.  Make size field
2300         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
2301         flags.
2302         (fieldoff_compare): Deal with it.
2303         (push_fields_onto_fieldstack): Remove has_union argument, glob
2304         adjacent non-pointer fields together.
2305         (create_function_info_for): Do not set has_union.
2306         (create_variable_info_for): Simplify.
2307
2308 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
2309
2310         * config.gcc (extra_headers): Add cross-stdarg.h for target
2311         x86_64-*-* and i?86-*-*.
2312         * config/i386/cross-stdarg.h: New.
2313         * builtins.c (std_fn_abi_va_list): New.
2314         (std_canonical_va_list_type): New.
2315         (stabilize_va_list): Replace va_list_type_node use by
2316         mtarget.canonical_va_list_type.
2317         (gimplify_va_arg_expr): Likewise.
2318         (expand_builtin_va_copy): Replace va_list_type_node use by
2319         mtarget.fn_abi_va_list.
2320         * tree-sra.c (is_va_list_type): New helper.
2321         (decl_can_be_decomposed_p): Replace
2322         va_list_type_node use by is_va_list_type.
2323         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
2324         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2325         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
2326         * config/i386/i386-protos.h (ix86_get_valist_type): New.
2327         (ix86_enum_va_list): New.
2328         * config/i386/i386.c (sysv_va_list_type_node): New.
2329         (ms_va_list_type_node): New.
2330         (ix86_function_type_abi): Remove sorry.
2331         (ix86_build_builtin_va_list_abi): New.
2332         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
2333         for 64-bit targets.
2334         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
2335         (ix86_init_builtins_va_builtins_abi): New.
2336         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
2337         for 64-bit targets.
2338         (ix86_handle_abi_attribute): New.
2339         (attribute_spec): Add sysv_abi and ms_abi.
2340         (ix86_fn_abi_va_list): New.
2341         (ix86_canonical_va_list_type): New.
2342         (ix86_enum_va_list): New.
2343         (TARGET_FN_ABI_VA_LIST): New.
2344         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2345         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
2346         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
2347         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2348         (TARGET_ENUM_VA_LIST): New.
2349         * expr.h (std_fn_abi_va_list): New.
2350         (std_canonical_va_list_type): New.
2351         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
2352         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2353         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
2354         TARGET_CANONICAL_VA_LIST_TYPE.
2355         * target.h (struct gcc_target): Add fn_abi_va_list hook
2356         and canonical_va_list_type hook.
2357
2358 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2359
2360         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
2361         integral and pointer types.
2362
2363 2008-07-04  Roger Sayle  <roger@eyesopen.com>
2364
2365         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
2366         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
2367
2368 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2369
2370         PR target/36684
2371         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
2372
2373 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
2374
2375         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
2376         build_gimple_modify_stmt.
2377         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
2378         gimple operand.  Use fold_build* instead of build*.
2379
2380 2008-07-04  Richard Guenther  <rguenther@suse.de>
2381
2382         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
2383         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
2384         properly to compute the reachability set if we do field-sensitive PTA.
2385         * invoke.texi (max-fields-for-field-sensitive): Document default.
2386         * opts.c (decode_options): Set max-fields-for-field-sensitive to
2387         100 for optimize >= 2.
2388
2389 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2390
2391         * ggc-zone.c (lookup_page_table_if_allocated,
2392         set_page_table_entry, zone_find_object_size, alloc_small_page,
2393         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
2394         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
2395         -Wc++-compat and/or -Wcast-qual warnings.
2396
2397 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
2398
2399         PR target/36634
2400         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
2401         pic_offset_table_rtx to be marked as used here.
2402         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
2403         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
2404         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
2405         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
2406         !TARGET_SECURE_PLT.
2407
2408 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2409
2410         * alloc-pool.c (hash_descriptor, eq_descriptor,
2411         alloc_pool_descriptor): Fix -Wc++-compat warnings.
2412         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
2413         Likewise.
2414         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
2415         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
2416         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
2417         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
2418         Likewise.
2419
2420 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2421
2422         * tree-flow.h (loop_only_exit_p): Declare.
2423         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
2424         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
2425         the number of iterations if it is constant.  Otherwise, if this is the
2426         only possible exit of the loop, use the conservative estimate on the
2427         number of iterations of the entire loop if available.
2428
2429 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
2430
2431         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
2432         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
2433         Add synchronization functions.
2434         * config/sync.c: New file.
2435         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
2436         (LIBGCC_SYNC_CFLAGS): Likewise.
2437
2438 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
2439
2440         PR target/36710
2441         * config/i386/i386.md (mode): Add TF to "mode" attribute.
2442         (*pushtf_sse): New insn pattern.
2443         (pushtf splitters): New splitters.
2444
2445 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
2446
2447         PR middle-end/35736
2448         * predict.c (build_predict_expr): Use void_type_node for the tree
2449         type, instead of NULL_TREE.
2450
2451 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2452
2453         * config/i386/i386.c (contains_aligned_value_p): Return true
2454         for TCmode.
2455         (ix86_data_alignment): Align TCmode to 128bits.
2456         (ix86_local_alignment): Likewise.
2457
2458 2008-07-03  Andrew Haley  <aph@redhat.com>
2459
2460         PR bootstrap/33304
2461         * vec.h (VEC_TA): New.
2462         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
2463         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
2464         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
2465         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
2466         (C_COMMON_FIXED_TYPES): Remove first arg.
2467         (C_COMMON_FIXED_MODE_TYPES): Likewise.
2468         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
2469         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
2470         not to use empty macro arguments.
2471
2472 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
2473
2474         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
2475         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
2476         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
2477         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
2478         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
2479         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
2480         config/ia64/crtn.asm, config/m68hc11/larith.asm,
2481         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
2482         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
2483         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2484         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2485         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2486         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
2487         config/rs6000/e500crtres64gpr.asm,
2488         config/rs6000/e500crtres64gprctr.asm,
2489         config/rs6000/e500crtrest32gpr.asm,
2490         config/rs6000/e500crtrest64gpr.asm,
2491         config/rs6000/e500crtresx32gpr.asm,
2492         config/rs6000/e500crtresx64gpr.asm,
2493         config/rs6000/e500crtsav32gpr.asm,
2494         config/rs6000/e500crtsav64gpr.asm,
2495         config/rs6000/e500crtsav64gprctr.asm,
2496         config/rs6000/e500crtsavg32gpr.asm,
2497         config/rs6000/e500crtsavg64gpr.asm,
2498         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
2499         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
2500         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
2501         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
2502         config/sparc/sol2-cn.asm: Remove .file directives.
2503
2504 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
2505
2506         * resource.c (mark_referenced_resources): Look inside
2507         UNSPEC_VOLATILEs and ASM_INPUTs.
2508
2509 2008-07-02  Ian Lance Taylor  <iant@google.com>
2510
2511         * rtlanal.c (add_reg_note): New function.
2512         * rtl.h (add_reg_note): Declare.
2513         * auto-inc-dec.c (attempt_change): Use add_reg_note.
2514         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
2515         * builtins.c (expand_builtin_longjmp): Likewise.
2516         (expand_builtin_nonlocal_goto): Likewise.
2517         * calls.c (emit_call_1, expand_call): Likewise.
2518         * cfgexpand.c (add_reg_br_prob_note): Likewise.
2519         * cfglayout.c (fixup_reorder_chain): Likewise.
2520         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2521         (commit_one_edge_insertion): Likewise.
2522         * combine.c (move_deaths, distribute_notes): Likewise.
2523         * df-problems.c (df_set_note): Likewise.
2524         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
2525         (set_unique_reg_note): Likewise.
2526         (emit_copy_of_insn_after): Likewise.
2527         * expr.c (expand_expr_real): Likewise.
2528         * gcse.c (add_label_notes): Likewise.
2529         * haifa-sched.c (create_check_block_twin): Likewise.
2530         * jump.c (mark_jump_label_1): Likewise.
2531         * loop-doloop.c (add_test, doloop_modify): Likewise.
2532         * loop-unswitch.c (compare_and_jump_seq): Likewise.
2533         * lower-subreg.c (move_eh_region_note): Likewise.
2534         * optabs.c (emit_libcall_block): Likewise.
2535         * predict.c (predict_insn): Likewise.
2536         (combine_predictions_for_insn): Likewise.
2537         * recog.c (peephole2_optimize): Likewise.
2538         * regmove.c (try_auto_increment): Likewise.
2539         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
2540         * reload.c (find_reloads): Likewise.
2541         * reload1.c (fixup_eh_region_note): Likewise.
2542         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
2543         * reorg.c (delete_prior_computation): Likewise.
2544         (delete_computation, dbr_schedule): Likewise.
2545         * config/pa/pa.c (legitimize_pic_address): Likewise.
2546         * config/sh/sh.c (sh_reorg): Likewise.
2547
2548 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2549
2550         PR target/36669
2551         * config/libgcc-glibc.ver: Add %exclude.
2552         * config/m32r/libgcc-glibc.ver: Likwise.
2553         * config/s390/libgcc-glibc.ver: Likwise.
2554         * config/sh/libgcc-glibc.ver: Likwise.
2555         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
2556
2557         * config/i386/libgcc-glibc.ver: New.
2558
2559         * config/i386/libgcc-x86_64-glibc.ver: Removed.
2560
2561 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2562
2563         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
2564         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
2565         i[34567]86-*-linux*, x86_64-*-linux*.  Add
2566         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
2567         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
2568         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
2569         i[34567]86-*-linux*, x86_64-*-linux*.
2570
2571         * libgcc-std.ver: Add empty GCC_4.4.0.
2572
2573         * mkmap-symver.awk: Support multiple versions per symbol.
2574
2575         * config/i386/i386.c (ix86_init_builtins): Always define
2576         __builtin_fabsq and __builtin_copysignq with fallbacks.
2577         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
2578         and __builtin_copysignq if SSE2 isn't available.
2579
2580         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
2581         (LIBGCC2_TF_CEXT): Likwise.
2582         (TF_SIZE): Likwise.
2583
2584         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
2585
2586         * config/i386/sfp-machine.h: Moved to libgcc.
2587
2588         * config/i386/sfp-machine.h: New.
2589         * config/i386/t-linux: Likwise.
2590
2591         * config/i386/t-darwin: Remove softfp_wrap_start and
2592         softfp_wrap_end.
2593         * config/i386/t-darwin64: Likewise.
2594
2595         * config/i386/t-fprules-softfp64: Renamed to ...
2596         * config/i386/t-fprules-softfp: This.
2597
2598         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
2599         and softfp_wrap_end.
2600
2601 2008-07-02  Jason Merrill  <jason@redhat.com>
2602
2603         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
2604
2605         * tree.c (ctor_to_list): New fn.
2606         * tree.h: Declare it.
2607         (CONSTRUCTOR_ELT): New macro.
2608         (CONSTRUCTOR_NELTS): New macro.
2609
2610 2008-07-02  Richard Guenther  <rguenther@suse.de>
2611
2612         * tree-ssa-structalias.c (struct variable_info): Reorder
2613         to fill padding on 64bit hosts.  Make collapsed_to an int.
2614         (get_varinfo_fc): Deal with that.
2615         (new_var_info): Likewise.
2616         (collapse_rest_of_var): Likewise.
2617
2618 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
2619
2620         * doc/install.texi (--enable-java-home): Document.
2621         (--enable-aot-compile-rpm): Likewise.
2622         (--with-arch-directory): Likewise.
2623         (--with-os-directory): Likewise.
2624         (--with-origin-name): Likewise.
2625         (--with-arch-suffix): Likewise.
2626         (--with-jvm-root-dir): Likewise.
2627         (--with-jvm-jar-dir): Likewise.
2628         (--with-python-dir): Likewise.
2629
2630 2008-07-02  Richard Guenther  <rguenther@suse.de>
2631
2632         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
2633         from decls explicitly.  Merge operand checking from tuples.
2634
2635 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2636
2637         * tree-switch-conversion.c: Included timevar.h which I forgot before.
2638         
2639 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2640
2641         * tree-switch-conversion.c: Included timevar.h
2642         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
2643
2644         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
2645
2646 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2647
2648         * tree-switch-conversion.c: Corrected various comments and
2649         whitespace issues
2650         (build_constructors): Fixed minor formatting mistakes.
2651
2652         * invoke.texi (Optimize Options): Corrected the
2653         switch-conversion-max-branch-ratio parameter.
2654
2655 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
2656
2657         * final.c (asm_insn_count): Return zero for an empty asm body.
2658
2659 2008-07-02  Richard Guenther  <rguenther@suse.de>
2660
2661         * bitmap.h (bitmap_set_bit): Return bool.
2662         (bitmap_clear_bit): Likewise.
2663         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
2664         write to the bitmap if it would.
2665         (bitmap_clear_bit): Likewise.
2666         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
2667         bitmap_set_bit return value.
2668         (add_pred_graph_edge): Likewise.
2669         (add_graph_edge): Likewise.
2670         (do_sd_constraint): Likewise.
2671         (do_ds_constraint): Likewise.
2672
2673 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2674
2675         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
2676         Fix -Wc++-compat and/or -Wcast-qual warnings.
2677         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
2678         gen_regparm_prefix): Likewise.
2679         * vmsdbgout.c (write_modbeg, lookup_filename,
2680         vmsdbgout_source_line, vmsdbgout_init): Likewise.
2681
2682 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
2683
2684         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
2685         defaults.h definition apply.
2686
2687 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2688
2689         * function.c (assign_parm_remove_parallels): New.
2690         (assign_parm_setup_block_p): Do not return true for non-BLKmode
2691         PARALLELs.
2692         (assign_parm_setup_block): Do not handle them.
2693         (assign_parm_setup_reg, assign_parm_setup_stack): Call
2694         assign_parm_remove_parallels.
2695
2696 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2697
2698         * c-typeck.c (convert_for_assignment): Use
2699         vector_targets_convertible_p.
2700         * c-common.c (vector_targets_convertible_p): New.
2701         * c-common.h (vector_targets_convertible_p): New prototype.
2702         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
2703         opaque_p_V2SI_type_node.
2704
2705 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
2706
2707         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
2708         RFmode constants.
2709
2710 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
2711
2712         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
2713         TFmode constants via two element DImode vector for hosts with
2714         HOST_BITS_PER_WIDE_INT < 64.
2715         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
2716         also for HOST_BITS_PER_WIDE_INT < 64.
2717
2718 2008-07-01  Richard Guenther  <rguenther@suse.de>
2719
2720         PR tree-optimization/36666
2721         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
2722         (get_constraint_exp_from_ssa_var): Split into ...
2723         (get_constraint_exp_for_temp): ... this ...
2724         (get_constraint_for_ssa_var): ... and that.
2725         Return constraint expressions for all touched sub-fields
2726         if the results address is not taken.
2727         (process_constraint): Remove assertion that aggregate
2728         assignments do not happen at this place.
2729         (get_constraint_for_component_ref): Add address_p argument.
2730         Return constraint expressions for all touched sub-fields
2731         if the results address is not taken.
2732         (do_deref): Use get_constraint_exp_for_temp.
2733         (get_constraint_for_1): Rename from ...
2734         (get_constraint_for): ... this.  Add the old function as wrapper.
2735         (do_structure_copy): Use get_constraint_for_1.
2736
2737 2008-07-01  Martin Jambor  <mjambor@suse.cz>
2738
2739         * Makefile.in (tree-switch-conversion.o): Add.
2740         (OBJS-common): Add tree-swtch-conversion.o.
2741         * passes.c (init_optimization_passes): Add pass_convert_switch.
2742         * tree-pass.h: (pass_convert_switch): Add.
2743         * tree-switch-conversion.c: New file.
2744         * gcc.dg/tree-ssa/cswtch.c: New testcase.
2745         * common.opt (ftree-cswtch): New option.
2746         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2747         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2748         * opts.c (decode_options): Set flag_tree_switch_conversion when
2749         optimization level is >= 2.
2750         * doc/invoke.texi (Optimize Options): Added description of
2751         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
2752
2753 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2754
2755         * config/darwin-driver.c (darwin_default_min_version): Fix
2756         -Wc++-compat warnings.
2757
2758 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
2759
2760         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
2761         of operand 0.
2762
2763 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2764
2765         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
2766         
2767 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2768
2769         PR rtl-optimization/34744
2770         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
2771         (df_scan_free_internal): Free data structures not
2772         allocated in storage pools.
2773         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
2774         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
2775         df_scan_free_mws_vec.
2776         * dse.c (dse_step6): Free offset_map_p and offset_map_n
2777         unconditionally.
2778
2779 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2780
2781         * config/i386/i386.c (contains_aligned_value_p): Return true
2782         for __float128.
2783         (ix86_function_arg_boundary): Return its natural boundary
2784         for __float128.
2785         (return_in_memory_32): Don't check TDmode.
2786         (ix86_split_to_parts): Support splitting into 4 parts and
2787         support TFmode for 32bit target.
2788         (ix86_split_long_move): Support splitting into 4 parts.
2789         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
2790         for SSE2.
2791         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
2792         (ix86_init_builtins): Here.
2793         (ix86_scalar_mode_supported_p): Always return true for TFmode.
2794         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
2795         'q' and 'w', respectively. 
2796
2797         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
2798         TARGET_64BIT.
2799         (movtf_internal): Likewise.
2800         (<code>tf2): Likewise.
2801         (*absnegtf2_sse): Likewise.
2802         (copysign<mode>3): Likewise.
2803         (copysign<mode>3_const): Likewise.
2804         (copysign<mode>3_var): Likewise.
2805         (define_split UNSPEC_COPYSIGN): Likewise.
2806         * config/i386/sse.md (*nandtf3): Likewise.
2807         (<code>tf3): Likewise.
2808         (*<code>tf3): Likewise.
2809
2810 2008-06-30  Joey Ye  <joey.ye@intel.com>
2811             H.J. Lu  <hongjiu.lu@intel.com>
2812
2813         * global.c (compute_regsets): Set frame_pointer_needed here.
2814         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
2815
2816 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2817
2818         * doc/install.texi (specific): Expand Windows build notes.
2819
2820 2008-06-30  Ira Rosen  <irar@il.ibm.com>
2821
2822         PR tree-optimization/36648
2823         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
2824         number of prolog iterations by step. Fix the comment.
2825
2826 2008-06-30  Richard Guenther  <rguenther@suse.de>
2827
2828         PR middle-end/36671
2829         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
2830         handle calls from ECF_MALLOC functions.
2831         (handle_pure_call): ECF_MALLOC functions do not return
2832         call-used memory.
2833         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
2834
2835 2008-06-29  Andreas Schwab  <schwab@suse.de>
2836
2837         * config/m68k/m68k.c (print_operand): Always print a float
2838         constant in hex.
2839         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
2840         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
2841         Remove macros.
2842
2843         * config/rs6000/x-linux64: Remove never used file.
2844
2845 2008-06-29  Richard Guenther  <rguenther@suse.de>
2846
2847         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
2848         prototype.
2849         (struct alias_info): Move ...
2850         * tree-ssa-alias.c: ... here.
2851         (update_alias_info): Declare.
2852         (compute_may_aliases): Call it.
2853         (update_alias_info): New function.
2854         * tree-ssa-structalias.c (update_alias_info): Move ...
2855         * tree-ssa-alias.c (update_alias_info_1): ... here.
2856         * tree-ssa-structalias.c (process_constraint_1): Remove
2857         unused from_call argument.  Rename to ...
2858         (process_constraint): ... this.  Delete old wrapper.
2859         (make_constraint_to): Adjust callers.
2860         (handle_const_call): Likewise.
2861         (handle_pure_call): Likewise.
2862         (init_base_vars): Likewise.
2863         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
2864         (find_func_aliases): We don't need structure copies for
2865         complex types.
2866         (make_constraint_from_anything): Remove.
2867         (create_variable_info_for): For globals make constraints
2868         from escaped, not from anything.
2869         (compute_points_to_sets): Do not call update_alias_info.
2870         (ipa_pta_execute): Use make_constraint_from.
2871
2872 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2873
2874         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
2875         (bitmap.o-warn, dominance.o-warn): New.
2876         * configure.ac (cxx_compat_warn): Delete.
2877         (loose_warn): Add -Wcast-qual and -Wc++-compat.
2878         * system.h: Remove #pragma diagnostic for -Wcast-qual and
2879         -Wc++-compat.
2880         * configure: Regenerate.
2881
2882         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
2883         warnings.
2884
2885 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2886
2887         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
2888         * df-scan.c (df_notes_rescan): Likewise.
2889         * ggc-page.c (set_page_table_entry): Likewise.
2890         * intl.c (gcc_gettext_width): Likewise.
2891         * varasm.c (get_unnamed_section, get_noswitch_section,
2892         get_section): Likewise.
2893
2894 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
2895
2896         * regrename.c (build_def_use): Don't copy RTX.
2897
2898 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
2899
2900         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
2901         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
2902         punctuation.  Use @ref instead of @xref.
2903         (Function Names): Remove stray @display/@end display.
2904         (C++ Attributes): Use @ref instead of @xref.
2905         (Deprecated Features): Fix punctuation around @xref.
2906         (Backwards Compatibility): Likewise.
2907         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
2908
2909 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
2910
2911         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
2912         constants for E500 double.
2913
2914 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2915
2916         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
2917         element type of const_vector.
2918
2919 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
2920
2921         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
2922         Remove FLAGS_REG clobber from expander pattern.
2923         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
2924         (anddi3, andsi3, andhi3, andqi3): Ditto.
2925         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
2926         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
2927         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
2928         (ashlsi3, ashlhi3, ashlqi3): Ditto.
2929         (ashrsi3, ashrhi3, ashrqi3): Ditto.
2930         (lshrsi3, lshrhi3, lshrqi3): Ditto.
2931         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
2932         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
2933
2934 2008-06-28  Richard Guenther  <rguenther@suse.de>
2935
2936         * tree-ssa-structalias.c (callused_id, var_callused,
2937         callused_tree): Add.
2938         (handle_pure_call): New function.
2939         (find_func_aliases): Call it.
2940         (find_what_p_points_to): Handle the call-used set.
2941         (clobber_what_escaped): Likewise.
2942         (compute_call_used_vars): New function.
2943         (init_base_vars): Init the call-used variable.
2944         (do_sd_constraint): Do not propagate the solution from CALLUSED
2945         but use CALLUSED as a placeholder.
2946         (solve_graph): Likewise.
2947         * tree-flow-inline.h (gimple_call_used_vars): New function.
2948         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
2949         (compute_call_used_vars): Declare.
2950         * tree-ssa-alias.c (set_initial_properties): Call
2951         compute_call_used_vars.
2952         (reset_alias_info): Clear call-used variables.
2953         (add_call_clobber_ops): Assert we are not called for const/pure
2954         functions.  Remove handling of them.
2955         (add_call_read_ops): Handle pure functions by adding the
2956         call-used set of variables as VUSEs.
2957         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
2958         (delete_tree_ssa): Free it.
2959         * tree-dfa.c (remove_referenced_var): Clear the var from the
2960         call-used bitmap.
2961
2962 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
2963
2964         * tree.c (build_varargs_function_type_list): New.
2965         (build_function_type_list_1): New.
2966         (build_function_type_list): Use build_function_type_list_1.
2967         * tree.h (build_varargs_function_type_list): New.
2968
2969 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2970
2971         PR target/34856
2972         * config/spu/spu.c (spu_builtin_splats): Do not generate
2973         invalid CONST_VECTOR expressions.
2974         (spu_expand_vector_init): Likewise.
2975
2976 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
2977
2978         * optabs.c (libfunc_decls): New variable.
2979         (libfunc_decl_hash, libfunc_decl_eq): New functions.
2980         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
2981         for the same function twice.
2982
2983 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
2984
2985         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
2986         ix86_expand_binary_operator directly.
2987         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
2988         for operand 2.
2989         (*ashrti3_1): Ditto.
2990         (*lshrti3_1): Ditto.
2991         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
2992         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
2993         using only one splitter.  Conditionaly execute splitter before or
2994         after peephole2 pass.
2995         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
2996         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
2997         Use only one alternative in asm template.
2998         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
2999         in asm template.
3000         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
3001         "J" operand constraint for operand 2.
3002         (*ashldi3_cconly_rex64): Ditto.
3003         (*ashrdi3_cmp_rex64): Ditto.
3004         (*ashrdi3_cconly_rex64): Ditto.
3005         (*lshrdi3_cmp_rex64): Ditto.
3006         (*lshrdi3_cconly_rex64): Ditto.
3007         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
3008         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
3009         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
3010         gen_x86_shrd_1.
3011
3012 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
3013
3014         * gimplify.c (omp_is_private): Don't return true if decl is not
3015         already private on #pragma omp for or #pragma omp parallel for.
3016
3017         PR debug/36617
3018         * tree-cfg.c (struct move_stmt_d): Replace block field with
3019         orig_block and new_block fields.
3020         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
3021         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
3022         (move_block_to_fn): Replace vars_map and new_label_map arguments
3023         with struct move_stmt_d pointer.
3024         (replace_block_vars_by_duplicates): New function.
3025         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
3026         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
3027         all subblocks of ORIG_BLOCK to the new function.  Call
3028         replace_block_vars_by_duplicates.
3029         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
3030         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
3031         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
3032         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
3033         (expand_omp): Temporarily set input_location to the location of
3034         region's controlling stmt.
3035         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
3036         BIND_EXPR, push ctx->block_vars and gimplification vars into
3037         the BIND_EXPR and its block's BLOCK_VARS instead of directly
3038         into dest function.
3039         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
3040         there are any BLOCK_VARS.
3041         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
3042         OMP_PARALLEL or OMP_TASK stmt.
3043         (lower_omp): Save and restore input_location around the lower_omp_1
3044         call.
3045
3046 2008-06-27  Richard Guenther  <rguenther@suse.de>
3047
3048         PR tree-optimization/36400
3049         PR tree-optimization/36373
3050         PR tree-optimization/36344
3051         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
3052         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
3053         (update_alias_info): Remove call clobbering code.
3054         (make_constraint_to): New helper function.
3055         (make_escape_constraint): Likewise.
3056         (handle_rhs_call): Use it on all pointer containing arguments.
3057         Also mark the static chain escaped.
3058         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
3059         instead of ANYTHING.
3060         (make_constraint_from): New helper split out from ...
3061         (make_constraint_from_anything): ... here.
3062         (find_func_aliases): Add constraints for escape sites.
3063         (intra_create_variable_infos): Make constraints from NONLOCAL
3064         for parameters.
3065         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
3066         as ANYTHING.
3067         (clobber_what_p_points_to): Remove.
3068         (clobber_what_escaped): New function.
3069         (init_base_vars): Init NONLOCAL and ESCAPED.
3070         (do_sd_constraint): Do not propagate the solution from ESCAPED
3071         but use ESCAPED as a placeholder.
3072         (solve_graph): Likewise.
3073         * tree-flow.h (clobber_what_p_points_to): Remove.
3074         (clobber_what_escaped): Declare.
3075         * tree-ssa-alias.c (set_initial_properties): Call it.
3076         Remove code clobbering escaped pointers.
3077
3078 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
3079
3080         * function.c (allocate_struct_function): Only allocate a unique
3081         funcdef_no if the decl is nonzero.
3082
3083 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
3084
3085         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
3086         * config/mips/mips.c (mips_split_const_insns): New function.
3087         * config/mips/mips.md (move_type): New attribute.
3088         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
3089         (dword_mode): New attribute.
3090         (type): Avoid long line.  Map "move_type"s to "type"s,
3091         choosing "multi" for doubleword moves if appropriate.
3092         Swap MTC/MFC comments to match their declaration order.
3093         (extended_mips16): Default to "yes" if "move_type" is "sll0",
3094         "type" is "branch" or "jal" is "direct".
3095         (length): Handle "extended_mips16" first.  Make the default
3096         "0" for "ghost" instructions.  Set the length from "move_type".
3097         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
3098         of "type", with "sll0" for the register alternative.  Remove the
3099         "extended_mips16" attribute.
3100         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
3101         of "type", with "shift_shift" for the register alternative.
3102         Remove the "length" attribute.
3103         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
3104         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
3105         of "type", with "andi" for the register alternative.
3106         (*zero_extendqihi2): Likewise.
3107         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
3108         of "andi" instead of a "type" of "arith".
3109         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
3110         instead of "type".
3111         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
3112         (mov_<store>r, *mov<mode>_ra): Likewise.
3113         (extendsidi2): Use "move_type" instead of "type", with "move"
3114         for the register alternative.
3115         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
3116         of "type", with "signext" for the register alternative.
3117         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
3118         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
3119         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
3120         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
3121         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
3122         (unnamed branch insn): Likewise.
3123         (*movdi_gp32_fp64): Fold into...
3124         (*movdi_32bit): ...here.
3125         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
3126         (*movdf_hardfloat): ...this new pattern.
3127         (*movdf_softfloat): Remove redundant FPR alternatives.
3128         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
3129         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
3130         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
3131         the "move" attribute.
3132         (*movdi_32bit): Use "move_type" instead of "type" and remove the
3133         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
3134         and "store" for COP loads and stores.
3135         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
3136         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
3137         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
3138         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
3139         (*movtf_mips16, *movv2sf): Likewise.
3140         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
3141         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
3142         (mfhc1<mode>): Use "move_type" instead of "move".
3143         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
3144         (loadgp_blockage): Remove the "length" attribute.
3145         (blockage, set_got_version, update_got_version): Likewise.
3146         (call_internal): Remove the "extended_mips16" attribute.
3147         (call_value_internal, call_value_multiple_internal): Likewise.
3148         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
3149         instead of "move".
3150         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
3151         the "length" attribute.
3152
3153 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3154
3155         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
3156         -Wcast-qual warnings.
3157         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
3158         handle_pragma_pop_macro): Likewise.
3159         * collect2.c (resolve_lib_name): Likewise.
3160         * config/arc/arc.c (arc_init): Likewise.
3161         * config/arm/arm.c (neon_builtin_compare,
3162         locate_neon_builtin_icode): Likewise.
3163         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
3164         * config/bfin/bfin.c (bfin_init_machine_status,
3165         bfin_optimize_loop): Likewise.
3166         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3167         * config/cris/cris.c (cris_init_expanders): Likewise.
3168         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
3169         * config/darwin.c (machopic_indirection_eq,
3170         machopic_indirection_name, machopic_output_indirection): Likewise.
3171         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
3172         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
3173         frv_optimize_membar): Likewise.
3174         * config/i386/cygwin.h (mingw_scan,
3175         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
3176         * config/i386/cygwin1.c (mingw_scan): Likewise.
3177         * config/i386/i386.c (machopic_output_stub): Likewise.
3178         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
3179         i386_pe_unique_section): Likewise.
3180         * config/ia64/ia64.c (ia64_init_machine_status,
3181         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
3182         Likewise.
3183         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
3184         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
3185         * config/m68k/m68k.c (m68k_handle_option,
3186         m68k_sched_md_init_global): Likewise.
3187         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
3188         mcore_unique_section): Likewise.
3189         * config/mips/mips.c (mips_block_move_straight,
3190         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
3191         Likewise.
3192         * config/mmix/mmix.c (mmix_init_machine_status,
3193         mmix_encode_section_info): Likewise.
3194         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
3195         * config/rs6000/rs6000.c (rs6000_init_machine_status,
3196         print_operand_address, output_toc, redefine_groups,
3197         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
3198         * config/s390/s390.c (s390_init_machine_status): Likewise.
3199         * config/score/score.c (score_block_move_straight,
3200         score_block_move_loop_body): Likewise.
3201         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
3202         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
3203         * emit-rtl.c (find_auto_inc): Likewise.
3204         * gcc.c (translate_options, process_command): Likewise.
3205         * reorg.c (dbr_schedule): Likewise.
3206         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
3207         * xcoffout.c (xcoffout_declare_function): Likewise.
3208
3209 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
3210
3211         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
3212         ipa-pta working again.
3213
3214 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
3215
3216         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
3217         genautomata.
3218
3219 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
3220
3221         * config.gcc (powerpc*-*-*): Add new core e500mc.
3222         * config/rs6000/e500mc.md: New file.
3223         * config/rs6000/rs6000.c (processor_costs): Add new costs for
3224         e500mc.
3225         (rs6000_override_options): Add e500mc case to
3226         processor_target_table. Altivec and Spe options not allowed
3227         with e500mc. Add isel instruction to e500mc by
3228         default. Initialize rs6000_cost for e500mc.
3229         (rs6000_issue_rate): Set issue rate for e500mc.
3230         * config/rs6000/rs6000.h (processor_type): Add
3231         PROCESSOR_PPCE500MC.
3232         (ASM_CPU_SPEC): Add e500mc.
3233         Set TARGET_ISEL to rs6000_isel.
3234         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
3235         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
3236         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
3237         Include e500mc.md.
3238         * doc/invoke.texi: Add e500mc to list of cpus.
3239
3240 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3241
3242         PR c/34867
3243         * c-lex.c (lex_charconst): Initialize unsignedp.
3244
3245 2008-06-27  Olivier Hainque  <hainque@adacore.com>
3246
3247         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
3248         documented assumptions.
3249
3250 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
3251
3252         * dwarf2out.c: Remove trailing white spaces.  Break long line
3253         in comments.
3254
3255 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
3256
3257         * libfuncs.h (LTI_synchronize): New libfunc_index.
3258         (synchronize_libfunc): Declare.
3259         * builtins.c (expand_builtin_synchronize): Consider using
3260         synchronize_libfunc before falling back on an asm blockage.
3261         * config/mips/mips.c: Include libfuncs.h
3262         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
3263
3264 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
3265
3266         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
3267         parameter.  Copy stack_reg to r11 where appropriate.
3268         (no_global_regs_above): Add gpr parameter.
3269         (rs6000_stack_info): Only add padding for SPE save area if we
3270         are saving SPE GPRs and CR.
3271         (saveres_routine_syms): New variable.
3272         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
3273         Define.
3274         (rs6000_savres_routine_sym): New function.
3275         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
3276         split out of...
3277         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
3278         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
3279         Tweak FPR out-of-line saving.
3280         (rs6000_make_savres_rtx): New function.
3281         (rs6000_use_multiple_p): New function.
3282         (rs6000_savres_strategy): New function.
3283         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
3284         out-of-line if appropriate.
3285         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
3286         if we are optimizing for size.
3287         (GP_SAVE_INLINE): Define.
3288         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
3289         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
3290         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
3291         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
3292         (*save_fpregs_<mode>): Add use of r11.
3293         (*restore_gpregs_<mode>): New insn.
3294         (*return_and_restore_gpregs_<mode>): New insn.
3295         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
3296         use r11.
3297         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
3298         (*restore_gpregs_spe): New insn.
3299         (*return_and_restore_gpregs_spe): New insn.
3300         * config/rs6000/predicates.md (save_world_operation): Fix check.
3301
3302 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
3303
3304         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
3305         this point, so assert that.
3306
3307 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
3308
3309         * cfganal.c: Include vec.h and vecprim.h.
3310         (compute_idf): Import from...
3311         * tree-into-ssa (compute_idf): ...here.
3312         * basic-block.h (compute_idf): Export.
3313
3314 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
3315
3316         * c-decl.c (merge_decls): Use !current_function_decl to check for
3317         extern declaration of C99 inline function being at file scope.
3318
3319 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
3320
3321         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
3322
3323 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3324
3325         * alias.c (record_alias_subset, init_alias_analysis): Fix
3326         -Wc++-compat and/or -Wcast-qual warnings.
3327         * attribs.c (lookup_attribute_spec): Likewise.
3328         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
3329         copy_bb, connect_traces,
3330         find_rarely_executed_basic_blocks_and_cr): Likewise.
3331         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
3332         note_btr_set, migrate_btr_defs): Likewise.
3333         * builtins.c (result_vector, expand_builtin_memcpy,
3334         expand_builtin_mempcpy_args, expand_builtin_strncpy,
3335         builtin_memset_read_str, expand_builtin_printf,
3336         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
3337         Likewise.
3338         * caller-save.c (mark_set_regs): Likewise.
3339         * calls.c (expand_call, emit_library_call_value_1): Likewise.
3340         * cgraph.c (cgraph_edge): Likewise.
3341         * combine.c (likely_spilled_retval_1): Likewise.
3342         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
3343         htab_counts_entry_del, get_coverage_counts): Likewise.
3344         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
3345         new_cselib_val): Likewise.
3346         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
3347         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
3348         Likewise.
3349         * df-core.c (df_compact_blocks): Likewise.
3350         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
3351         * df-scan.c (df_grow_reg_info, df_ref_create,
3352         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
3353         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
3354         df_record_entry_block_defs, df_record_exit_block_uses,
3355         df_bb_verify): Likewise.
3356         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
3357         DF_REF_EXTRACT_MODE_CONST): New.
3358         * dominance.c (get_immediate_dominator, get_dominated_by,
3359         nearest_common_dominator, root_of_dom_tree,
3360         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
3361         -Wc++-compat and/or -Wcast-qual warnings.
3362         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
3363         record_store, replace_read, check_mem_read_rtx, scan_insn,
3364         dse_step1, dse_record_singleton_alias_set): Likewise.
3365         * dwarf2asm.c (dw2_force_const_mem): Likewise.
3366
3367 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3368
3369         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
3370         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
3371         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
3372         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
3373         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
3374         add_ranges_num, add_ranges_by_labels, file_info_cmp,
3375         file_name_acquire, output_file_names, add_const_value_attribute,
3376         premark_used_types_helper, file_table_eq, file_table_hash,
3377         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
3378         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
3379         -Wcast-qual warnings.
3380         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
3381         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
3382         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
3383         gen_reg_rtx, start_sequence, init_emit): Likewise.
3384         * et-forest.c (et_new_occ, et_new_tree): Likewise.
3385         * except.c (init_eh_for_function, gen_eh_region,
3386         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
3387         arh_to_landing_pad, arh_to_label, add_action_record,
3388         add_call_site, switch_to_exception_section): Likewise.
3389         * expmed.c (synth_mult): Likewise.
3390         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
3391         store_expr): Likewise.
3392         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
3393         Likewise.
3394         * function.c (assign_stack_temp_for_type,
3395         allocate_struct_function, match_asm_constraints_1): Likewise.
3396         * gcov-io.c (gcov_allocate): Likewise.
3397         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
3398         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
3399         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
3400         record_one_set, insert_expr_in_table, insert_set_in_table,
3401         dump_hash_table, compute_hash_table_work, alloc_hash_table,
3402         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
3403         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
3404         -Wcast-qual warnings.
3405
3406 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3407
3408         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
3409         -Wcast-qual warnings.
3410         * gcc.c (process_command): Likewise.
3411         * genattrtab.c (oballoc): Use XOBNEW.
3412         (oballocvec): Define.
3413         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
3414         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
3415         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
3416         -Wc++-compat and/or -Wcast-qual warnings.
3417         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
3418         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
3419         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
3420         gen_presence_absence_set, gen_automaton, gen_regexp_el,
3421         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
3422         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
3423         add_excls, process_presence_absence_names,
3424         process_presence_absence_patterns, add_presence_absence,
3425         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
3426         get_free_state, add_arc, get_free_automata_list_el,
3427         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
3428         transform_3, cache_presence, create_ainsns, create_automata,
3429         create_state_ainsn_table, dfa_insn_code_enlarge,
3430         output_trans_func, output_min_issue_delay_func,
3431         output_dead_lock_func, output_reset_func,
3432         output_get_cpu_unit_code_func, output_dfa_start_func,
3433         expand_automata): Likewise.
3434         * genextract.c (gen_insn): Likewise.
3435         * gengtype-lex.l: Likewise.
3436         * gengtype.c (read_input_list, adjust_field_type,
3437         process_gc_options): Likewise.
3438         * genoutput.c (note_constraint): Likewise.
3439         * genpreds.c (mangle, add_constraint): Likewise.
3440         * genrecog.c (process_define_predicate, new_decision,
3441         add_to_sequence): Likewise.
3442         * gensupport.c (record_insn_name): Likewise.
3443
3444 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3445
3446         * config/i386/driver-i386.c (detect_caches_amd,
3447         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
3448         and/or -Wcast-qual warnings.
3449         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
3450         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
3451         gt_pch_save): Likewise.
3452         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
3453         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
3454         * global.c (compute_regsets): Likewise.
3455         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
3456         finish_graph_dump_file): Likewise.
3457         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
3458         unlink_bb_notes): Likewise.
3459         * integrate.c (get_hard_reg_initial_val): Likewise.
3460         * ipa-prop.c (ipa_push_func_to_list): Likewise.
3461         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
3462         * local-alloc.c (update_equiv_regs): Likewise.
3463         * loop-invariant.c (check_invariant_table_size,
3464         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
3465         Likewise.
3466         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
3467         altered_reg_used, mark_altered): Likewise.
3468         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
3469         insert_var_expansion_initialization,
3470         combine_var_copies_in_loop_exit, apply_opt_in_copies,
3471         release_var_copies): Likewise.
3472         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
3473         analyze_matrix_decl, add_allocation_site, analyze_transpose,
3474         analyze_accesses_for_phi_node, check_var_notmodified_p,
3475         check_allocation_function, find_sites_in_func,
3476         record_all_accesses_in_func, transform_access_sites,
3477         transform_allocation_sites): Likewise.
3478         * omp-low.c (new_omp_region, create_omp_child_function_name,
3479         check_omp_nesting_restrictions, check_combined_parallel,
3480         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
3481         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
3482         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
3483         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
3484         Likewise.
3485         * opts-common.c (prune_options): Likewise.
3486         * opts.c (add_input_filename, print_filtered_help,
3487         get_option_state): Likewise.
3488         * params.c (add_params): Likewise.
3489         * passes.c (set_pass_for_id, next_pass_1,
3490         do_per_function_toporder, pass_fini_dump_file): Likewise.
3491         * postreload.c (reload_cse_simplify_operands): Likewise.
3492         * predict.c (tree_predicted_by_p, tree_predict_edge,
3493         clear_bb_predictions, combine_predictions_for_bb): Likewise.
3494
3495 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3496
3497         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
3498         warnings.
3499         * recog.c (check_asm_operands, validate_change_1): Likewise.
3500         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
3501         subst_asm_stack_regs): Likewise.
3502         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
3503         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
3504         * regmove.c (reg_is_remote_constant_p): Likewise.
3505         * regrename.c (regrename_optimize, scan_rtx_reg,
3506         kill_clobbered_value, kill_set_value, kill_autoinc_value):
3507         Likewise.
3508         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
3509         regstat_compute_calls_crossed): Likewise.
3510         * reload1.c (init_reload, new_insn_chain,
3511         has_nonexceptional_receiver, reload, copy_reloads,
3512         calculate_needs_all_insns, init_elim_table): Likewise.
3513         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
3514         * rtl.c (shallow_copy_rtx_stat): Likewise.
3515         * rtlanal.c (parms_set): Likewise.
3516         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
3517         sbitmap_resize, sbitmap_vector_alloc): Likewise.
3518         * sched-ebb.c (earliest_block_with_similiar_load,
3519         add_deps_for_risky_insns): Likewise.
3520         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
3521         schedule_region): Likewise.
3522         * see.c (eq_descriptor_pre_extension,
3523         hash_descriptor_pre_extension, hash_del_pre_extension,
3524         eq_descriptor_properties, hash_descriptor_properties,
3525         hash_del_properties, see_seek_pre_extension_expr,
3526         see_initialize_data_structures, see_print_register_properties,
3527         see_print_pre_extension_expr, see_delete_merged_def_extension,
3528         see_delete_unmerged_def_extension, see_emit_use_extension,
3529         see_pre_delete_extension, see_map_extension, see_commit_changes,
3530         see_analyze_merged_def_local_prop,
3531         see_analyze_merged_def_local_prop,
3532         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
3533         see_set_prop_merged_def, see_set_prop_unmerged_def,
3534         see_set_prop_unmerged_use, see_print_one_extension,
3535         see_merge_one_use_extension, see_merge_one_def_extension,
3536         see_store_reference_and_extension, see_update_uses_relevancy,
3537         see_update_defs_relevancy): Likewise.
3538         * statistics.c (hash_statistics_hash, hash_statistics_eq,
3539         hash_statistics_free, curr_statistics_hash): Likewise.
3540         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
3541         expand_asm_operands, expand_return, case_bit_test_cmp,
3542         expand_case): Likewise.
3543         * stor-layout.c (start_record_layout): Likewise.
3544         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
3545         gt_pch_save_stringpool): Likewise.
3546         * tree-data-ref.c (hash_stmt_vertex_info,
3547         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
3548         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
3549
3550 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
3551
3552         PR target/36627
3553         * config/i386/i386.md : Change constraints of HImode and QImode
3554         immediate operands from "i" to "n".  Change SImode "ni" constraint to
3555         "i" and SImode "rmi" constraint to "g".  Remove all constraints
3556         from const0_operand and const1_operand predicated operands.
3557         (i): Change QImode and HImode attribute from "i" to "n".
3558         (*subqi_2): Change HImode operands to QImode.
3559         (*subqi_3): Ditto.
3560
3561 2008-06-25  Olivier Hainque  <hainque@adacore.com>
3562
3563         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
3564         sed substitutions.
3565
3566 2008-06-25  Richard Guenther  <rguenther@suse.de>
3567
3568         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
3569         not overflow the result type.
3570
3571 2008-06-25  Richard Guenther  <rguenther@suse.de>
3572
3573         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
3574         (vn_lookup): Likewise.
3575
3576 2008-06-25  Richard Guenther  <rguenther@suse.de>
3577
3578         PR tree-optimization/35518
3579         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
3580         * tree-sra.c (instantiate_element): Use fold_build3 to build
3581         BIT_FIELD_REFs.
3582         (try_instantiate_multiple_fields): Likewise.
3583
3584 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3585
3586         * config/rs6000/rs6000.md: Change all string instruction's clobber to
3587         be early clobbers.
3588
3589 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3590
3591         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
3592         use_backchain_to_restore_sp to true
3593         if the offset of the link register save area would go over the 32k - 1
3594         offset limit of the load
3595         instructions.
3596
3597 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
3598
3599         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
3600         anchor for the type-punning blurb.  Cross-reference "Structures
3601         unions enumerations and bit-fields implementation".  Provide a
3602         cast-through-pointer example.  Make final sentence self-contained.
3603         * doc/implement-c.texi (Structures unions enumerations and
3604         bit-fields implementation): Cross-reference the type-punning blurb
3605         in the -fstrict-aliasing documentation.
3606
3607 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3608
3609         PR middle-end/36594
3610         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
3611         the memory instead of the memory itself for the save area.
3612
3613 2008-06-24  Olivier Hainque  <hainque@adacore.com>
3614             Nicolas Roche  <roche@adacore.com>
3615
3616         * gengtype.c (srcdir_len): size_t instead of int.
3617         (get_file_realbasename): New function.  For F a filename, the real
3618         basename of F, with all the path components stripped.
3619         (get_file_srcdir_relative_path): New function.  For F a filename, the
3620         relative path to F from $(srcdir).
3621         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
3622         get_file_realbasename.  Adjust the head comment.
3623         (get_prefix_langdir_index): New function. For F a filename, return the
3624         lang_dir_names[] relative index of the language directory that is
3625         a prefix in F.
3626         (get_file_langdir): For F a filename, return the name of the language
3627         directory where F is located.
3628         (get_file_gtfilename): New function. The gt- output file name for an
3629         input filename F.
3630         (get_output_file_with_visibility): Replace in-line computations with
3631         uses of get_file_gtfilename and get_prefix_langdir_index.
3632         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
3633
3634 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
3635
3636         PR tree-optimization/36504
3637         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
3638         references without base address.
3639
3640 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3641
3642         PR middle-end/36584
3643         * calls.c (expand_call): Increase alignment for recursive functions.
3644
3645 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
3646
3647         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
3648         (TARGET_FUNCTION_VALUE): New define.
3649         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
3650         * config/avr/avr.h (FUNCTION_VALUE): Remove.
3651
3652 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3653
3654         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
3655         (fmod<mode>3): Ditto.
3656         (remainderxf3): Ditto.
3657         (remainder<mode>3): Ditto.
3658
3659 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
3660
3661         PR target/36533
3662         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
3663         REG is a hard register.
3664
3665         PR tree-optimization/36508
3666         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
3667         499, don't check it at all in release compilers.
3668
3669 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3670
3671         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
3672         together with SSE_TARGET_MATH to disable insn pattern.
3673         (*fop_<MODEF:mode>_2_i387): Ditto.
3674         (*fop_<MODEF:mode>_3_i387): Ditto.
3675
3676 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
3677
3678         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
3679         
3680 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3681
3682         PR middle-end/34906
3683         * gimplify.c (gimplify_asm_expr): Check the return code of
3684         parse_output_constraint call, set function return and is_inout
3685         value if it failed.
3686
3687 2008-06-22  Ian Lance Taylor  <iant@google.com>
3688
3689         * c-lex.c (narrowest_unsigned_type): Change itk to int.
3690         (narrowest_signed_type): Likewise.
3691         * c-typeck.c (c_common_type): Change local variable mclass to enum
3692         mode_class, twice.
3693         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
3694         tcc_comparison, not the tree code itself.
3695         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
3696         (c_expand_expr): Cast modifier to enum expand_modifier.
3697         * c-common.h (C_RID_CODE): Add casts.
3698         (C_SET_RID_CODE): Define.
3699         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
3700         (c_lex_one_token): Add cast to avoid warning.
3701         (c_parser_objc_type_name): Rename local typename to type_name.
3702         (check_no_duplicate_clause): Change code parameter to enum
3703         omp_clause_code.
3704         (c_parser_omp_var_list_parens): Change kind parameter to enum
3705         omp_clause_code.
3706         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
3707         c_parser_omp_list_var_parens.
3708         (c_parser_omp_threadprivate): Likewise.
3709         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
3710         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
3711         * c-format.c (NO_FMT): Define.
3712         (printf_length_specs): Use NO_FMT.
3713         (asm_fprintf_length_specs): Likewise.
3714         (gcc_diag_length_specs): Likewise.
3715         (scanf_length_specs): Likewise.
3716         (strfmon_length_specs): Likewise.
3717         (gcc_gfc_length_specs): Likewise.
3718         (printf_flag_specs): Change 0 to STD_C89.
3719         (asm_fprintf_flag_specs): Likewise.
3720         (gcc_diag_flag_specs): Likewise.
3721         (gcc_cxxdiag_flag_specs): Likewise.
3722         (scanf_flag_specs): Likewise.
3723         (strftime_flag_specs): Likewise.
3724         (strfmon_flag_specs): Likewise.
3725         (print_char_table): Likewise.
3726         (asm_fprintf_char_table): Likewise.
3727         (gcc_diag_char_table): Likewise.
3728         (gcc_tdiag_char_table): Likewise.
3729         (gcc_cdiag_char_table): Likewise.
3730         (gcc_cxxdiag_char_table): Likewise.
3731         (gcc_gfc_char_table): Likewise.
3732         (scan_char_table): Likewise.
3733         (time_char_table): Likewis.
3734         (monetary_char_table): Likewise.
3735         * c-format.h (BADLEN): Likewise.
3736
3737 2008-06-21  Ian Lance Taylor  <iant@google.com>
3738
3739         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
3740         Define END_OF_BASE_TREE_CODES around inclusion.
3741         * tree.c (tree_code_type): New global array.
3742         (tree_code_length, tree_code_name): Likewise.
3743         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
3744         $(lang_tree_files).
3745         (all-tree.def, s-alltree): New targets.
3746         (gencheck.h, s-gencheck): Remove.
3747         (tree.o): Depend upon all-tree.def.
3748         (build/gencheck.o): Remove gencheck.h dependency.
3749         (mostlyclean): Don't remove gencheck.h.
3750         * c-common.h (enum c_tree_code): Remove.
3751         * c-lang.c (tree_code_type): Remove.
3752         (tree_code_length, tree_code_name): Remove.
3753         * gencheck.c (tree_codes): Include all-tree.def, rather than
3754         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
3755         after it is used.
3756         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
3757         than tree.def.
3758         * cp/cp-tree.h (enum cplus_tree_code): Remove.
3759         (operator_name_info): Size to MAX_TREE_CODES.
3760         (assignment_operator_name_info): Likewise.
3761         * cp/cp-lang.c (tree_code_type): Remove.
3762         (tree_code_length, tree_code_name): Remove.
3763         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
3764         (assignment_operator_name_info): Likewise.
3765         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
3766         MAX_TREE_CODES.
3767         * cp/mangle.c (write_expression): Likewise.
3768         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
3769         * fortran/f95-lang.c (tree_code_type): Remove.
3770         (tree_code_length, tree_code_name): Remove.
3771         * java/java-tree.h (enum java_tree_code): Remove.
3772         * java/lang.c (tree_code_type): Remove.
3773         (tree_code_length, tree_code_name): Remove.
3774         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
3775         * objc/objc-act.h (enum objc_tree_code): Remove.
3776         * objc/objc-lang.c (tree_code_type): Remove.
3777         (tree_code_length, tree_code_name): Remove.
3778         * objcp/objcp-lang.c (tree_code_type): Remove.
3779         (tree_code_length, tree_code_name): Remove.
3780         * ada/ada-tree.h (enum gnat_tree_code): Remove.
3781         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
3782         * ada/misc.c (tree_code_type): Remove.
3783         (tree_code_length, tree_code_name): Remove.
3784
3785 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3786
3787         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
3788         the grand_bitmap_obstack.
3789
3790 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3791
3792         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
3793         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
3794         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3795         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
3796         move_stmt_r, new_label_mapper): Likewise.
3797         * tree-complex.c (cvc_lookup): Likewise.
3798         * tree-dfa.c (create_function_ann): Likewise.
3799         * tree-dump.c (dump_register): Likewise.
3800         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
3801         find_phi_replacement_condition): Likewise.
3802         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
3803         tree_function_versioning): Likewise.
3804         * tree-into-ssa.c (cmp_dfsnum): Likewise.
3805         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
3806         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
3807         get_nonlocal_debug_decl, convert_nonlocal_reference,
3808         convert_nonlocal_omp_clauses, get_local_debug_decl,
3809         convert_local_reference, convert_local_omp_clauses,
3810         convert_nl_goto_reference, convert_nl_goto_receiver,
3811         convert_tramp_reference, convert_call_expr): Likewise.
3812         * tree-outof-ssa.c (contains_tree_r): Likewise.
3813         * tree-parloops.c (reduction_phi, initialize_reductions,
3814         eliminate_local_variables_1, add_field_for_reduction,
3815         add_field_for_name, create_phi_for_local_result,
3816         create_call_for_reduction_1, create_loads_for_reductions,
3817         create_stores_for_reduction, create_loads_and_stores_for_name):
3818         Likewise.
3819         * tree-phinodes.c (allocate_phi_node): Likewise.
3820         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
3821         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3822         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
3823         * tree-ssa-coalesce.c (compare_pairs): Likewise.
3824         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
3825         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
3826         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
3827         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
3828         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
3829         vn_nary_op_insert): Likewise.
3830         * tree-ssa.c (redirect_edge_var_map_add,
3831         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
3832         * tree-vectorizer.c (vectorize_loops): Likewise.
3833         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
3834         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
3835         tree_cons_stat, build1_stat, build_variant_type_copy,
3836         decl_init_priority_lookup, decl_fini_priority_lookup,
3837         decl_priority_info, decl_restrict_base_lookup,
3838         decl_restrict_base_insert, decl_debug_expr_lookup,
3839         decl_debug_expr_insert, decl_value_expr_lookup,
3840         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
3841         type_hash_add, get_file_function_name, tree_check_failed,
3842         tree_not_check_failed, tree_range_check_failed,
3843         omp_clause_range_check_failed, build_omp_clause,
3844         build_vl_exp_stat): Likewise.
3845         * value-prof.c (gimple_histogram_value,
3846         gimple_duplicate_stmt_histograms): Likewise.
3847         * var-tracking.c (attrs_list_insert, attrs_list_copy,
3848         unshare_variable, variable_union_info_cmp_pos, variable_union,
3849         dataflow_set_different_1, dataflow_set_different_2,
3850         vt_find_locations, variable_was_changed, set_variable_part,
3851         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3852         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
3853         section_entry_hash, object_block_entry_eq,
3854         object_block_entry_hash, create_block_symbol,
3855         initialize_cold_section_name, default_function_rodata_section,
3856         strip_reg_name, set_user_assembler_name, const_desc_eq,
3857         build_constant_desc, output_constant_def, lookup_constant_def,
3858         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
3859         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
3860         default_internal_label): Likewise.
3861         * varray.c (varray_init, varray_grow): Likewise.
3862         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
3863
3864 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
3865
3866         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
3867         operators for "test" insn.  Macroize insn using SWI mode macro.
3868         (*jcc_fused_2): Ditto.
3869         (*jcc_fused_3): Macroize insn using SWI mode macro.
3870         (*jcc_fused_4): Ditto.
3871
3872 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
3873
3874         * tree-ssa-pre.c: Fix typo in comment.
3875         (init_antic, fini_antic): Add explicit funtions for
3876         initializing and deinitializing ANTIC and AVAIL sets.
3877         (create_expression_by_pieces): Fix typo in comment.
3878         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
3879         (execute_pre): Eventually dump details about ANTIC_IN.
3880
3881 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3882
3883         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
3884         * gcc.c (translate_options, init_spec, store_arg, read_specs,
3885         add_to_obstack, file_at_path, find_a_file, execute,
3886         add_preprocessor_option, add_assembler_option, add_linker_option,
3887         process_command, insert_wrapper, do_option_spec, do_self_spec,
3888         spec_path, do_spec_1, is_directory, main, used_arg,
3889         getenv_spec_function): Likewise.
3890         * tlink.c (symbol_hash_lookup, file_hash_lookup,
3891         demangled_hash_lookup, symbol_push, file_push, frob_extension):
3892         Likewise.
3893
3894 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3895
3896         * doc/rtl.texi: Updated subreg section.
3897
3898 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
3899
3900         PR c++/36523
3901         * cgraphunit.c (cgraph_process_new_functions): Don't clear
3902         node->needed and node->reachable.
3903         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
3904         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
3905         (expand_task_call): Don't call expand_task_copyfn.
3906         (expand_task_copyfn): Renamed to...
3907         (finalize_task_copyfn): ... this.
3908
3909 2008-06-19  Jan Hubicka  <jh@suse.cz>
3910
3911         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
3912         clobbering framepointer.
3913
3914 2008-06-19  Jan Hubicka  <jh@suse.cz>
3915
3916         * tree-optimize.c (execute_early_local_optimizations): Set
3917         cgraph_state only at first invocation.
3918
3919 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3920
3921         * system.h (-Wc++-compat): Activate as a warning, no an error.
3922
3923 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3924
3925         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
3926         instead of "#" in insn asm template.
3927         (*jcc_fused_2): Ditto.
3928
3929 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3930
3931         * config/i386/i386.h (ix86_tune_indices)
3932         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
3933         (TARGET_FUSE_CMP_AND_BRANCH): New define.
3934         * config/i386/i386.md (*jcc_fused_1): New insn pattern
3935         (*jcc_fused_2): Ditto.
3936         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
3937         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
3938         (print operand): Handle 'E' and 'e' code.
3939
3940 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
3941
3942         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
3943         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3944         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3945
3946 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
3947
3948         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
3949         node->decl.
3950         (cgraph_expand_function): Use local copy of decl.
3951         (cgraph_expand_all_functions): Remove redundant initialization of
3952         order_pos.
3953         (cgraph_optimize): Reword internal_error message.
3954
3955 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
3956
3957         * arm-protos.h (arm_return_in_memory): Remove public
3958         arm_return_in_memory() prototype.
3959         * arm.c (arm_return_in_memory): Add static prototype, add target
3960         hook macro, change definition and comments.
3961         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
3962
3963 2008-06-19  Ben Elliston  <bje@au.ibm.com>
3964
3965         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
3966         real.c: Remove references to IEEE 754R.
3967         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
3968         * doc/libgcc.texi (Decimal float library routines): Likewise.
3969
3970 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3971
3972         * targhooks.h (struct gcc_target): New member unwind_word_mode.
3973         (default_unwind_word_mode): Add prototype.
3974         * targhooks.c (default_unwind_word_mode): New function.
3975         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
3976         instead of word_mode.
3977         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
3978         (TARGET_INITIALIZER): Use it.
3979
3980         * c-common.c (handle_mode_attribute): Support "unwind_word"
3981         mode attribute.
3982         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
3983
3984         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
3985         word_mode to access SjLj_Function_Context member "data".
3986         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
3987         conversion from targetm.eh_return_filter_mode () to
3988         targetm.unwind_word_mode () if they differ.
3989
3990         * builtin-types.def (BT_UNWINDWORD): New primitive type.
3991         (BT_FN_UNWINDWORD_PTR): New function type.
3992         (BT_FN_WORD_PTR): Remove.
3993         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
3994         * except.c (expand_builtin_extend_pointer): Convert pointer to
3995         targetm.unwind_word_mode () instead of word_mode.
3996
3997         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
3998         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
3999         (spu_unwind_word_mode): New function.
4000         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
4001         (TARGET_UNWIND_WORD_MODE): Define.
4002         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
4003
4004 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4005
4006         * config/spu/spu.c (reg_align): Remove.
4007         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
4008         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
4009         (spu_split_store): Likewise.
4010
4011 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
4012
4013         * gcc/tree-vn.c: Fix typo in comment.
4014
4015 2008-06-18  Jan Hubicka  <jh@suse.cz>
4016
4017         * cgraphunit.c (cgraph_optimize): Output debug info when doing
4018         toplevel reorder too.
4019
4020 2008-06-18  Jan Hubicka  <jh@suse.cz>
4021
4022         * c-opts.c (c_common_post_options): PCH is not compatible with
4023         no-unit-at-a-time.
4024         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
4025         -fno-toplevel-reorder by default now.
4026
4027 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4028
4029         PR documentation/30739
4030         * doc/install.texi (Prerequisites): Document dependency on awk.
4031
4032 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
4033             Ian Lance Taylor  <iant@google.com>
4034
4035         PR rtl-optimization/35604
4036         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
4037         only want to change jump destinations, not eventual label comparisons.
4038
4039 2008-06-16  Jan Hubicka  <jh@suse.cz>
4040
4041         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
4042         syntax errors.
4043         (cgraph_analyze_function): Likewise.
4044
4045 2008-06-16  Jan Hubicka  <jh@suse.cz>
4046
4047         * cgraph.h (cgraph_mark_if_needed): New function.
4048         * cgraphunit.c (cgraph_mark_if_needed): New function.
4049         * c-decl.c (duplicate_decl): Use it.
4050
4051 2008-06-16  Jan Hubicka  <jh@suse.cz>
4052
4053         * cgraph.c (cgraph_add_new_function): When in expansion state, do
4054         lowering.
4055
4056 2008-06-16  Jan Hubicka  <jh@suse.cz>
4057
4058         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
4059
4060 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
4061             Kazu Hirata  <kazu@codesourcery.com>
4062             Maxim Kuvyrkov  <maxim@codesourcery.com
4063
4064         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
4065         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
4066         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
4067         EXTRA_SPEC_FUNCTIONS.
4068         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
4069         (DRIVER_SELF_SPECS): Adjust.
4070         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
4071         * config/mips/st.h, config/mips/t-st: New.
4072         * config/mips/driver-native.c, config/mips/x-native: New.
4073         * doc/invoke.texi (MIPS): Document 'native' value for -march and
4074         -mtune options.
4075
4076 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4077
4078         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
4079         from it.
4080         (ISA_HAS_FP_CONDMOVE): New macro.
4081         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
4082         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
4083         (ISA_HAS_NMADD3_NMSUB3): New macro.
4084         * config/mips/mips.c (mips_rtx_costs): Update.
4085         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
4086         compiling for ST Loongson 2E/2F.
4087         (madd<mode>): Rename to madd4<mode>.  Update.
4088         (madd3<mode>): New pattern.
4089         (msub<mode>): Rename to msub4<mode>.  Update.
4090         (msub3<mode>): New pattern.
4091         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
4092         (nmadd3<mode>): New pattern.
4093         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
4094         (nmadd3<mode>_fastmath): New pattern.
4095         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
4096         (nmsub3<mode>): New pattern.
4097         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
4098         (nmsub3<mode>_fastmath): New pattern.
4099         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
4100
4101 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
4102
4103         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
4104         (DF_REF_INSN_INFO): New.
4105         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
4106         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
4107         with a NULL DF_REF_INSN_INFO.
4108         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
4109         DF_INSN_SET.
4110         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
4111         DF_INSN_INFO_EQ_USES): New.
4112         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
4113         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
4114         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
4115         * df-core.c: Update comment for above changes.
4116         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
4117         DF_INSN_UID_* macros.
4118         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
4119         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
4120         insn rtx.  Update all callers.
4121         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
4122         df_ref_create_structure, df_insn_refs_collect): Likewise.
4123         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
4124         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
4125         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
4126         macros to access the insn refs.
4127         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
4128         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
4129         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
4130         for accessing the refs.
4131         (try_fwprop_subst): Likewise.
4132         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
4133         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
4134         for accessing the refs.
4135         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
4136         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
4137         to look at the insn refs.
4138         (record_uses): Likewise.
4139         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
4140         function anymore.
4141         (mark_artificial_uses): Don't mark_insn for artificial refs.
4142         (mark_reg_rependencies): Likewise.
4143
4144         * doc/rtl.texi: Remove documentation of ADDRESSOF.
4145
4146 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4147
4148         * configure: Regenerate.
4149
4150 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
4151
4152         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
4153         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
4154         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
4155
4156 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
4157
4158         * config/avr/avr.c (avr_mcu_t): Add attiny167.
4159         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
4160         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
4161
4162 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
4163
4164         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
4165         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
4166         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
4167
4168 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
4169
4170         * tree-ssa-sccvn.c: Fix format of comments.
4171
4172 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
4173
4174         * cgraph.c: Remove unneeded forward declarations of eq_node()
4175         and hash_node().
4176
4177 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
4178
4179         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
4180         REG_RETVAL notes.
4181         (see_update_relevancy): Likewise.
4182         * fwprop.c (try_fwprop_subst): Likewise.
4183         * rtlanal.c (noop_move_p): Likewise.
4184         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
4185         notes to non-existing libcall blocks.
4186         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
4187         Remove orig_set.
4188         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
4189         (dead_libcall_p): Remove.
4190         (delete_trivially_dead_insns): Don't use it.
4191         * web.c (union_defs): Remove comment about keeping nops.
4192         * gcse.c (hash_scan_insn): Don't take libcall pointers.
4193         (compute_hash_table_work): Don't track libcall notes.
4194         (do_local_cprop): Don't take libcall pointers.  Don't update
4195         libcall notes.
4196         (adjust_libcall_notes): Deleted.
4197         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
4198         ever have existed in the first place).
4199         (replace_store_insn): Don't try to remove libcall notes.
4200         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
4201         (resolve_reg_notes): Don't call them.
4202         (resolve_simple_move): Likewise.
4203         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
4204         Don't remove REG_RETVAL notes.
4205         * emit-rtl.c (try_split): Don't update libcall notes.
4206         (emit_copy_of_insn_after): Dito.
4207         * cselib.c (cselib_current_insn_in_libcall): Remove.
4208         (cselib_process_insn): Don't set/clear it.
4209         (new_elt_loc_list): Don't record it.
4210         (cselib_init): Don't initialize it.
4211         * cselib.c (struct elt_loc_list): Remove in_libcall field.
4212         * loop-invariant.c (find_invariant_insn): Don't look for libcall
4213         notes.
4214         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
4215         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
4216         (init_deps): Don't initialize it.
4217         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
4218         * combine.c (delete_noop_moves): Don't update libcall notes.
4219         (can_combine_p): Remove now pointless #if 0 block.
4220         (try_combine): Remove another obsolete #if 0 block.
4221         (distribute_notes): Don't distribute libcall notes.
4222         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
4223         * dce.c (libcall_dead_p): Remove.
4224         (delete_unmarked_insns): Don't handle libcall blocks.
4225         (preserve_libcall_for_dce): Remove.
4226         (prescan_insns_for_dce): Don't special-case libcall block insns.
4227         * reload1 (reload): Don't handle libcall notes. 
4228         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
4229         documentation.
4230
4231 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
4232
4233         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
4234         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
4235         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
4236
4237 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
4238
4239         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
4240         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
4241         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
4242
4243 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4244
4245         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
4246
4247 2008-06-16  Ira Rosen  <irar@il.ibm.com>
4248
4249         PR tree-optimization/36493
4250         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
4251         the arguments list. Use VECTYPE to create vector pointer.
4252         (vectorizable_store): Fail if accesses through a pointer to vectype
4253         do not alias the original memory reference operands.
4254         Call vect_create_data_ref_ptr without the removed argument.
4255         (vectorizable_load): Likewise.
4256         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
4257         removed argument.
4258
4259 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
4260
4261         PR target/36336
4262         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
4263         reg_equiv_constant.
4264
4265 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4266
4267         * config/mips/loongson2ef.md: New file.
4268         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
4269         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
4270         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
4271         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
4272         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
4273         and loongson_2f.
4274         (loongson2ef.md): New include.
4275         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
4276         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
4277         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
4278         (loongson_gt_<mode>, loongson_extract_halfword)
4279         (loongson_insert_halfword_0, loongson_insert_halfword_2)
4280         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
4281         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
4282         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
4283         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
4284         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
4285         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
4286         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
4287         (vec_interleave_low<mode>): Define type attribute.
4288         * config/mips/mips.c (mips_ls2): New static variable.
4289         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
4290         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
4291         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
4292         Implement target scheduling hooks.
4293         (mips_multipass_dfa_lookahead): Update to handle tuning for
4294         Loongson 2E/2F.
4295         (mips_sched_init): Initialize data for Loongson scheduling.
4296         (mips_ls2_variable_issue): New static function.
4297         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
4298         Add sanity check.
4299         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
4300         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
4301         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
4302         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
4303         Handle ST Loongson 2E/2F cores.
4304         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
4305
4306 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4307
4308         * omp-low.c (extract_omp_for_data): Fix comment typo.
4309         * c.opt: Fix typo.
4310
4311 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4312
4313         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
4314         FIXME note about gcc/config.guess.
4315         * doc/options.texi (Option file format): Remove non-ASCII bytes.
4316         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
4317         * doc/cppopts.texi: Likewise.
4318         * doc/extend.texi: Likewise.
4319         * doc/gcc.texi: Likewise.
4320         * doc/gccint.texi: Likewise.
4321         * doc/gcov.texi: Likewise.
4322         * doc/gty.texi: Likewise.
4323         * doc/hostconfig.texi: Likewise.
4324         * doc/install.texi: Likewise.
4325         * doc/invoke.texi: Likewise.
4326         * doc/loop.texi: Likewise.
4327         * doc/makefile.texi: Likewise.
4328         * doc/md.texi: Likewise.
4329         * doc/passes.texi: Likewise.
4330         * doc/tm.texi: Likewise.
4331         * doc/tree-ssa.texi: Likewise.
4332         * doc/trouble.texi: Likewise.
4333
4334 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
4335             Nathan Sidwell  <nathan@codesourcery.com>
4336             Maxim Kuvyrkov  <maxim@codesourcery.com>
4337             Richard Sandiford  <rdsandiford@googlemail.com>
4338         
4339         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
4340         * config/mips/mips-protos.h (mips_expand_vector_init): New.
4341         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
4342         builtins.
4343         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
4344         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
4345         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
4346         V8QImode cases.
4347         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
4348         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
4349         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
4350         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
4351         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
4352         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
4353         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
4354         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
4355         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
4356         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
4357         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
4358         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
4359         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
4360         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
4361         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
4362         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
4363         (mips_builtins): Add Loongson builtins.
4364         (mips_loongson_2ef_bdesc): New.
4365         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
4366         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
4367         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
4368         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
4369         New.
4370         (mips_expand_vector_init): New.
4371         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
4372         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
4373         if appropriate.
4374         * config/mips/mips.md: Add unspec numbers for Loongson
4375         builtins.  Include loongson.md.
4376         (MOVE64): Include Loongson vector modes.
4377         (SPLITF): Include Loongson vector modes.
4378         (HALFMODE): Handle Loongson vector modes.
4379         * config/mips/loongson.md: New.
4380         * config/mips/loongson.h: New.
4381         * config.gcc: Add loongson.h header for mips*-*-* targets.
4382         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
4383
4384 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
4385
4386         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
4387         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
4388         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
4389         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
4390         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
4391         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
4392         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
4393         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
4394         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
4395         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
4396         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
4397         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
4398         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
4399         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
4400         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
4401         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
4402         Remove use_fixproto=yes.
4403         (ia64*-*-hpux*): Remove comment about using fixproto.
4404         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
4405
4406 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4407
4408         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
4409         library rebuilds.
4410         * configure: Regenerate.
4411
4412 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
4413
4414         PR middle-end/36520
4415         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
4416         before evaluating it.
4417
4418 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
4419
4420         PR c/36507
4421         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
4422         nested inline functions.
4423         (start_decl, start_function): Don't invert DECL_EXTERNAL
4424         for nested inline functions.
4425
4426 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4427
4428         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
4429         splits that must be made for correctness.
4430
4431 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4432
4433         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
4434         (AVAIL_NON_MIPS16): Likewise.
4435         (mips_builtin_description): Replace target_flags with a predicate.
4436         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
4437         (dspr2_32): New availability predicates.
4438         (MIPS_BUILTIN): New macro.
4439         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
4440         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
4441         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
4442         Replace the TARGET_FLAGS parameters with AVAIL parameters.
4443         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
4444         (mips_dsp_32only_bdesc): Merge into...
4445         (mips_builtins): ...this new array.
4446         (mips_bdesc_map, mips_bdesc_arrays): Delete.
4447         (mips_init_builtins): Update after above changes.
4448         (mips_expand_builtin_1): Merge into...
4449         (mips_expand_builtin): ...here and update after above changes.
4450
4451 2008-06-12  Paul Brook  <paul@codesourcery.com>
4452
4453         * longlong.h (__arm__): Define count_leading_zeros.
4454         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
4455         (clzsi2, clzdi2): New functions.
4456         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
4457         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
4458         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
4459         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
4460         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
4461         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
4462         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
4463         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
4464         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
4465         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
4466
4467 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
4468
4469         * config/m68k/m68k.c (m68k_tune_flags): New.
4470         (override_options): Compute m68k_tune_flags.
4471         (MULL_COST, MULW_COST): Update for various variants of CFV2.
4472         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
4473
4474 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4475
4476         PR middle-end/36506
4477         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
4478
4479 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4480
4481         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
4482         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
4483
4484 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4485
4486         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
4487         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
4488
4489 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4490
4491         PR middle-end/36506
4492         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
4493         reductions.
4494
4495 2008-06-12  Richard Guenther  <rguenther@suse.de>
4496
4497         PR tree-optimization/36345
4498         * tree-flow.h (struct ptr_info_def): Align escape_mask,
4499         add memory_tag_needed flag.
4500         (may_alias_p): Declare.
4501         * tree-ssa-alias.c (may_alias_p): Export.
4502         (set_initial_properties): Use memory_tag_needed flag.
4503         (update_reference_counts): Likewise.
4504         (reset_alias_info): Reset memory_tag_needed flag.
4505         (create_name_tags): Check memory_tag_needed flag.
4506         (dump_points_to_info_for): Dump it.
4507         * tree-ssa-structalias.c (struct variable_info): Remove
4508         directly_dereferenced flag.
4509         (new_var_info): Do not initialize it.
4510         (process_constraint_1): Do not set it.
4511         (update_alias_info): Set is_dereferenced flag.
4512         (set_uids_in_ptset): Use may_alias_p.
4513         (set_used_smts): Check memory_tag_needed flag.
4514         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
4515         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
4516         memory_tag_needed flag.
4517         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
4518         from broken design.
4519
4520 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
4521
4522         * config/i386/i386.c (ix86_compute_frame_layout): Disable
4523         red zone for w64 abi.
4524         (ix86_expand_prologue): Likewise.
4525         (ix86_force_to_memory): Likewise.
4526         (ix86_free_from_memory): Likewise.
4527
4528 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
4529
4530         PR target/36425
4531         * config/rs6000/rs6000.c (rs6000_override_options): Set
4532         rs6000_isel conditionally to the absence of comand line override.
4533         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4534         Remove duplicate rs6000_isel setting.
4535         * config/rs6000/eabispe.h: Ditto.
4536
4537 2008-06-11  Richard Guenther  <rguenther@suse.de>
4538
4539         * alias.c (get_alias_set): Use the element alias-set for arrays.
4540         (record_component_aliases): For arrays and vectors do nothing.
4541         * c-common.c (strict_aliasing_warning): Handle the cases
4542         of alias set zero explicitly.
4543         * Makefile.in (dfp.o-warn): Add -Wno-error.
4544
4545 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4546
4547         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
4548         tune_32 tune_64.
4549         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
4550         tune_32 tune_64 to supported_defaults.  Allow values not
4551         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
4552         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
4553         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
4554         with_cpu_64 to generic for 64-bit-supporting configurations, not
4555         with_cpu.  Remove FIXMEs.
4556         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
4557         --with-arch-64, --with-tune-32, --with-tune-64): Document.
4558         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
4559         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
4560         arch_32 and arch_64.
4561
4562 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
4563             Olivier Hainque  <hainque@adacore.com>
4564
4565         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
4566         Use DECL_SIZE_UNIT to retrieve the size of the field.
4567
4568 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4569
4570         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
4571         with function calls after declarations.  Lay out
4572         neon_float_type_node before further use.
4573
4574 2008-06-11  Richard Guenther  <rguenther@suse.de>
4575
4576         * tree-flow.h (may_point_to_global_var): Declare.
4577         * tree-ssa-alias.c (may_point_to_global_var): New function.
4578         * tree-ssa-sink.c (is_hidden_global_store): Use it.
4579
4580 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
4581
4582         * configure.ac: Teach that fido supports .debug_line.
4583         * configure: Regenerate.
4584
4585 2008-06-10  Tom Tromey  <tromey@redhat.com>
4586
4587         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
4588         debug hook.
4589
4590 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4591
4592         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
4593         (encode_decimal64, decode_decimal64, encode_decimal128,
4594         decode_decimal128): Reverse order of 32-bit parts of value if host
4595         and target endianness differ.
4596
4597 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
4598
4599         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
4600         Avoid division by 0.
4601         (tree_mod_pow2_value_transform): Likewise.
4602         (tree_ic_transform): Likewise.
4603         (tree_stringops_transform): Likewise.
4604         (tree_mod_subtract_transform): Likewise.
4605         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
4606         (copy_edges_for_bb): Likewise.
4607         (initialize_cfun): Likewise.
4608
4609 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4610
4611         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
4612         nonmemory_operand. Add "N" operand constraint.
4613         (*btsi): Ditto.
4614         (*jcc_btdi_mask_rex64): New instruction and split pattern.
4615         (*jcc_btsi_mask): Ditto.
4616         (*jcc_btsi_mask_1): Ditto.
4617
4618 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4619
4620         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
4621         TYPE_CANONICAL for copied element type.
4622
4623 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4624
4625         PR target/36473
4626         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
4627         Add m_CORE2 and m_GENERIC.
4628         * config/i386/predicates.md (bt_comparison_operator): New predicate.
4629         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
4630         (*btsi): Ditto.
4631         (*jcc_btdi_rex64): New instruction and split pattern.
4632         (*jcc_btsi): Ditto.
4633         (*jcc_btsi_1): Ditto.
4634         (*btsq): Fix Intel asm dialect operand order.
4635         (*btrq): Ditto.
4636         (*btcq): Ditto.
4637
4638 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
4639
4640         PR middle-end/36447
4641         * simplify-rtx.c (simplify_subreg): Add check for shift count 
4642         greater than size.
4643
4644 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
4645
4646         * doc/md.texi: Synchronize with later constraints.md change.
4647         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
4648         with a C implementation.
4649         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
4650         MFLO handling.
4651         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
4652         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
4653         when moving to and from MD_REGNUM.
4654         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
4655         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
4656         Handle byte and halfword moves.
4657         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
4658         separately.
4659         * config/mips/constraints.md (h): Turn into NO_REGS.
4660         (l, x): Update documentation.
4661         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
4662         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
4663         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
4664         (HILO): New mode iterator.
4665         (MOVE128): Add TI.
4666         (any_div): New code iterator.
4667         (u): Extend code attribute to div and udiv.
4668         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
4669         d_operand in the splitters.  Remove redundant CONST_INT checks.
4670         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
4671         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
4672         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
4673         accordingly, using normal moves instead of unspecs to move LO into
4674         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
4675         (<u>mulsidi3): Handle expansion in C code.
4676         (<u>mulsidi3_32bit_internal): Rename to...
4677         (<u>mulsidi3_32bit): ...this.
4678         (<u>mulsidi3_32bit_r4000): Fix insn separator.
4679         (*<u>mulsidi3_64bit): Rename to...
4680         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
4681         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
4682         to set LO and HI to the multiplication result.  Use a normal move
4683         for MFLO and an unspec for MFHI.
4684         (*<u>mulsidi3_64bit_parts): Replace with...
4685         (<u>mulsidi3_64bit_hilo): ...this new instruction.
4686         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
4687         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
4688         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
4689         instead of HI.  Split the instruction into a separate multiplication
4690         and MFHI if !TARGET_FIX_R4000.
4691         (<su>muldi3_highpart): Likewise.
4692         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
4693         and the "=h" clobber.
4694         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
4695         (<u>mulditi3): New expander.
4696         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
4697         (madsi): Remove "=h" clobber.
4698         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
4699         Force the modulus result to be a GPR and split the instruction into
4700         a division followed by an MFHI after reload.
4701         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
4702         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
4703         the MIPS16 HIGH define_split.
4704         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
4705         of acc<->gpr moves to "multi".
4706         (*movdi_64bit): Replace the single "x" alternative with
4707         alternatives for moving into and out of "a".
4708         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
4709         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
4710         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
4711         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
4712         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
4713         (movti): New expander.
4714         (*movti, *movti_mips16): New insns.
4715         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
4716         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
4717         (mthi<GPR:mode>_<HILO:mode>): Likewise.
4718         * config/mips/predicates.md (fpr_operand): Delete.
4719         (d_operand): New predicate.
4720
4721 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
4722
4723         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
4724         failure on some Bourne shells.
4725         (x86_64-*-*): Ditto.
4726
4727 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
4728
4729         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
4730
4731 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4732
4733         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
4734         (sparc-sun-solaris2*): Likewise.
4735
4736 2008-06-09  Arnaud Charlet  <charlet@adacore.com
4737
4738         * doc/install.texi: Update requirements to build the Ada compiler.
4739
4740 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
4741
4742         * df-scan.c (struct df_scan_problem_data): Remove the
4743         mw_link_pool alloc pool.
4744         (df_scan_free_internal): Don't free it.
4745         (df_scan_alloc): Don't allocate it.
4746         * df.h (struct df_link): Update comment.
4747
4748 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
4749
4750         * except.h: Correct checks for when SJLJ exceptions must be used.
4751
4752 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4753
4754         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
4755         default.
4756         
4757 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
4758
4759         PR tree-optimization/36218
4760         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
4761         configure for the build system.
4762         (BUILD_LDFLAGS): Define.
4763         * configure: Regenerate.
4764         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
4765
4766 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
4767
4768         PR target/36424
4769         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
4770         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
4771         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
4772
4773 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
4774
4775         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
4776
4777 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
4778
4779         * config.gcc (Obsolete configurations): Remove list of
4780         configurations.
4781         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
4782         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
4783         targets matched by those patterns.
4784         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
4785         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
4786         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
4787         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
4788         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
4789         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
4790         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
4791         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
4792         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
4793         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
4794         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
4795         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
4796         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
4797         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
4798         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
4799         Make code for Solaris 7 and greater unconditional for Solaris.
4800         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
4801         Remove --with-* handling.
4802         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
4803         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
4804         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
4805         LINK_OS_WINDISS_SPEC): Remove.
4806         * config/rs6000/sysv4.opt (mwindiss): Remove.
4807         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
4808         * configure: Regenerate.
4809         * doc/cpp.texi: Don't mention BeOS.
4810         * doc/extend.texi (interrupt): Don't mention MS1.
4811         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
4812         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
4813         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
4814         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
4815         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
4816         Remove.
4817         * doc/invoke.texi (MT Options): Remove.
4818         (-mwindiss): Remove.
4819         (CRIS Options): Remove cris-axis-aout references.
4820         (HPPA Options): Don't mention hppa1.1-*-pro.
4821         * doc/md.texi: (MorphoTech family): Remove.
4822         * libgcc2.c: Don't handle UWIN.
4823         * config/alpha/t-unicosmk: Remove.
4824         * config/alpha/unicosmk.h: Remove.
4825         * config/arm/kaos-arm.h: Remove.
4826         * config/arm/kaos-strongarm.h: Remove.
4827         * config/arm/strongarm-coff.h: Remove.
4828         * config/arm/strongarm-elf.h: Remove.
4829         * config/arm/strongarm-pe.h: Remove.
4830         * config/arm/t-strongarm-pe: Remove.
4831         * config/arm/t-xscale-coff: Remove.
4832         * config/arm/t-xscale-elf: Remove.
4833         * config/arm/xscale-coff.h: Remove.
4834         * config/arm/xscale-elf.h: Remove.
4835         * config/chorus.h: Remove.
4836         * config/cris/aout.h: Remove.
4837         * config/cris/aout.opt: Remove.
4838         * config/cris/t-aout: Remove.
4839         * config/i386/beos-elf.h: Remove.
4840         * config/i386/kaos-i386.h: Remove.
4841         * config/i386/ptx4-i.h: Remove.
4842         * config/i386/sco5.h: Remove.
4843         * config/i386/sco5.opt: Remove.
4844         * config/i386/sysv4-cpp.h: Remove.
4845         * config/i386/sysv5.h: Remove.
4846         * config/i386/t-beos: Remove.
4847         * config/i386/t-sco5: Remove.
4848         * config/i386/t-uwin: Remove.
4849         * config/i386/uwin.asm: Remove.
4850         * config/i386/uwin.h: Remove.
4851         * config/kaos.h: Remove.
4852         * config/mips/windiss.h: Remove.
4853         * config/mt: Remove directory.
4854         * config/pa/pa-osf.h: Remove.
4855         * config/pa/pa-pro-end.h: Remove.
4856         * config/pa/t-pro: Remove.
4857         * config/ptx4.h: Remove.
4858         * config/rs6000/beos.h: Remove.
4859         * config/rs6000/kaos-ppc.h: Remove.
4860         * config/rs6000/t-beos: Remove.
4861         * config/rs6000/windiss.h: Remove.
4862         * config/sh/kaos-sh.h: Remove.
4863         * config/sol2-6.h: Remove.
4864         * config/sparc/sol26-sld.h: Remove.
4865         * config/sparc/sysv4-only.h: Remove.
4866         * config/vax/bsd.h: Remove.
4867         * config/vax/t-memfuncs: Remove.
4868         * config/vax/ultrix.h: Remove.
4869         * config/vax/vaxv.h: Remove.
4870         * config/windiss.h: Remove.
4871
4872 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
4873
4874         PR rtl-optimization/36438
4875         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
4876         for vector shifts with constant scalar shift operands.
4877
4878 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
4879
4880         * doc/invoke.texi: Document -march=xlr.
4881         * config/mips/xlr.md: New file.
4882         * config/mips/mips.md: Include it.
4883         (cpu): Add "xlr".
4884         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
4885         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
4886         (mips_rtx_cost_data): Likewise.
4887
4888 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
4889
4890         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
4891         PRE_INC and PRE_DEC cases.
4892
4893 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4894
4895         PR rtl-optimization/36419
4896         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
4897         the emitting jump insn.
4898
4899         PR target/36362
4900         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
4901         is not bool, boolify the whole *expr_p and convert to the desired type.
4902
4903 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4904
4905         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
4906         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
4907         Add omp_private_outer_ref hook, add another argument to
4908         omp_clause_default_ctor hook.
4909         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
4910         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
4911         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
4912         hook_tree_tree_tree_tree_null.
4913         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
4914         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
4915         * hooks.c (hook_tree_tree_tree_tree_null): New function.
4916         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
4917         * tree.def (OMP_TASK): New tree code.
4918         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
4919         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
4920         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
4921         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
4922         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
4923         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
4924         OMP_CLAUSE_COLLAPSE_EXPR): Define.
4925         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4926         (OMP_DIRECTIVE_P): Add OMP_TASK.
4927         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
4928         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
4929         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
4930         and OMP_CLAUSE_UNTIED entries.
4931         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
4932         num_ops to 2.
4933         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4934         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
4935         * tree-pretty-print.c (dump_omp_clause): Handle
4936         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
4937         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4938         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
4939         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
4940         warning about unsigned iterators.  Change decl/init/cond/incr
4941         arguments to TREE_VECs, check arguments for all collapsed loops.
4942         (c_finish_omp_taskwait): New function.
4943         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
4944         ws_clauses.
4945         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
4946         default_function_array_conversion on init.  Add par_clauses argument.
4947         If decl is present in parallel's lastprivate clause, change it to
4948         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
4949         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
4950         collapse count in clauses.
4951         (c_parser_omp_for, c_parser_omp_parallel): Adjust
4952         c_parser_omp_for_loop callers.
4953         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
4954         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
4955         (c_parser_omp_clause_name): Handle collapse and untied clauses.
4956         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
4957         functions.
4958         (c_parser_omp_clause_schedule): Handle schedule(auto).
4959         Include correct location in the error message.
4960         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
4961         and PRAGMA_OMP_CLAUSE_UNTIED.
4962         (OMP_TASK_CLAUSE_MASK): Define.
4963         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
4964         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
4965         * tree-nested.c (convert_nonlocal_omp_clauses,
4966         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
4967         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
4968         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4969         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
4970         OMP_CLAUSE_DECL.
4971         (conver_nonlocal_reference, convert_local_reference,
4972         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
4973         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
4974         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
4975         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
4976         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
4977         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
4978         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
4979         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
4980         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4981         OMP_CLAUSE_UNTIED.
4982         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
4983         * c-common.h (c_finish_omp_taskwait): New prototype.
4984         * gimple-low.c (lower_stmt): Handle OMP_TASK.
4985         * tree-parloops.c (create_parallel_loop): Create 1 entry
4986         vectors for OMP_FOR_{INIT,COND,INCR}.
4987         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4988         (make_edges): Handle OMP_TASK.
4989         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
4990         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4991         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
4992         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
4993         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
4994         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4995         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4996         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
4997         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
4998         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
4999         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
5000         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
5001         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
5002         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
5003         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
5004         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
5005         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
5006         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
5007         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
5008         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
5009         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
5010         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
5011         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
5012         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
5013         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
5014         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
5015         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
5016         original iterator is present in lastprivate clause or if
5017         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
5018         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
5019         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
5020         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
5021         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
5022         if it is set, lookup var in outer contexts too.  Handle
5023         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
5024         to be implicitly determined firstprivate for task regions.
5025         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
5026         if it is set, lookup var in outer contexts too.  Set
5027         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
5028         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
5029         OMP_CLAUSE_UNTIED.  Take region_type as last argument
5030         instead of in_parallel and in_combined_parallel.
5031         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
5032         Adjust callers.
5033         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
5034         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
5035         (new_omp_context): Set default_kind to
5036         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
5037         (omp_region_type): New enum.
5038         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
5039         fields, add region_type.
5040         (new_omp_context): Take region_type as argument instead of is_parallel
5041         and is_combined_parallel.
5042         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
5043         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
5044         ctx->is_combined_parallel checks.
5045         (gimplify_omp_task): New function.
5046         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
5047         OMP_CLAUSE_UNTIED.
5048         * omp-low.c (extract_omp_for_data): Use schedule(static)
5049         for schedule(auto).  Handle pointer and unsigned iterators.
5050         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
5051         Add loops argument.  Extract data for collapsed OMP_FOR loops.
5052         (expand_parallel_call): Assert sched_kind isn't auto,
5053         map runtime schedule to index 3.
5054         (struct omp_for_data_loop): New type.
5055         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
5056         Add loop, loops, collapse and iter_type fields.
5057         (workshare_safe_to_combine_p): Disallow combined for if
5058         iter_type is unsigned long long.  Don't combine collapse > 1 loops
5059         unless all bounds and steps are constant.  Adjust extract_omp_for_data
5060         caller.
5061         (expand_omp_for_generic): Handle pointer, unsigned and long long
5062         iterators.  Handle collapsed OMP_FOR loops.  Adjust
5063         for struct omp_for_data changes.  If libgomp function doesn't return
5064         boolean_type_node, add comparison of the return value with 0.
5065         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
5066         pointer, unsigned and long long iterators.  Adjust for struct
5067         omp_for_data changes.
5068         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
5069         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
5070         unsigned long long.  Allocate loops array, pass it to
5071         extract_omp_for_data.  For collapse > 1 loops use always
5072         expand_omp_for_generic.
5073         (omp_context): Add sfield_map and srecord_type fields.
5074         (is_task_ctx, lookup_sfield): New functions.
5075         (use_pointer_for_field): Use is_task_ctx helper.  Change first
5076         argument's type from const_tree to tree.  Clarify comment.
5077         In OMP_TASK disallow copy-in/out sharing.
5078         (build_sender_ref): Call lookup_sfield instead of lookup_field.
5079         (install_var_field): Add mask argument.  Populate both record_type
5080         and srecord_type if needed.
5081         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
5082         in srecord_type.
5083         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
5084         and DECL_FIELD_OFFSET.
5085         (scan_sharing_clauses): Adjust install_var_field callers.  For
5086         firstprivate clauses on explicit tasks allocate the var by value in
5087         record_type unconditionally, rather than by reference.
5088         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
5089         Use is_taskreg_ctx instead of is_parallel_ctx.
5090         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
5091         (create_omp_child_function_name): Add task_copy argument, use
5092         *_omp_cpyfn* names if it is true.
5093         (create_omp_child_function): Add task_copy argument, if true create
5094         *_omp_cpyfn* helper function.
5095         (scan_omp_parallel): Adjust create_omp_child_function callers.
5096         Rename parallel_nesting_level to taskreg_nesting_level.
5097         (scan_omp_task): New function.
5098         (lower_rec_input_clauses): Don't run constructors for firstprivate
5099         explicit task vars which are initialized by *_omp_cpyfn*.  
5100         Pass outer var ref to omp_clause_default_ctor hook if
5101         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
5102         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
5103         OMP_CLAUSE_REDUCTION_INIT.
5104         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
5105         avoid duplicate setting of fields.  Handle
5106         OMP_CLAUSE_PRIVATE_OUTER_REF.
5107         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
5108         copy-out if TREE_READONLY, only copy-in.
5109         (expand_task_copyfn): New function.
5110         (expand_task_call): New function.
5111         (struct omp_taskcopy_context): New type.
5112         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
5113         New functions.
5114         (lower_omp_parallel): Rename to...
5115         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
5116         Call create_task_copyfn if srecord_type is needed.  Adjust
5117         sender_decl type.
5118         (task_shared_vars): New variable.
5119         (check_omp_nesting_restrictions): Warn if work-sharing,
5120         barrier, master or ordered region is closely nested inside OMP_TASK.
5121         Add warnings for barrier if closely nested inside of work-sharing,
5122         ordered, or master region.
5123         (scan_omp_1): Call check_omp_nesting_restrictions even for
5124         GOMP_barrier calls.  Rename parallel_nesting_level to
5125         taskreg_nesting_level.  Handle OMP_TASK.
5126         (lower_lastprivate_clauses): Even if some lastprivate is found on a
5127         work-sharing construct, continue looking for them on parent parallel
5128         construct.
5129         (lower_omp_for_lastprivate): Add lastprivate clauses
5130         to the beginning of dlist rather than end.  Adjust for struct
5131         omp_for_data changes.
5132         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
5133         not after it.  Handle collapsed OMP_FOR loops, adjust for
5134         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
5135         (get_ws_args_for): Adjust extract_omp_for_data caller.
5136         (scan_omp_for): Handle collapsed OMP_FOR
5137         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
5138         (lower_omp_single_simple): If libgomp function doesn't return
5139         boolean_type_node, add comparison of the return value with 0.
5140         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
5141         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
5142         (parallel_nesting_level): Rename to...
5143         (taskreg_nesting_level): ... this.
5144         (is_taskreg_ctx): New function.
5145         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
5146         of is_parallel_ctx.
5147         (execute_lower_omp): Rename parallel_nesting_level to
5148         taskreg_nesting_level.
5149         (expand_omp_parallel): Rename to...
5150         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
5151         Call omp_task_call for OMP_TASK regions.
5152         (expand_omp): Adjust caller, handle OMP_TASK.
5153         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
5154
5155         * bitmap.c (bitmap_default_obstack_depth): New variable.
5156         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
5157         if argument is NULL and bitmap_default_obstack is already initialized.
5158         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
5159         at the end.
5160         * matrix-reorg.c (matrix_reorg): Likewise.
5161
5162 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
5163
5164         * config/i386/i386.md (*indirect_jump): Macroize using P
5165         mode iterator.  Remove !TARGET_64BIT from insn constraints.
5166         (*tablejump_1): Ditto.
5167         (*indirect_jump_rex64): Remove insn pattern.
5168         (*tablejump_1_rex64): Ditto.
5169         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
5170         and eh_return_si insn patterns.
5171
5172 2008-06-06  Richard Guenther  <rguenther@suse.de>
5173
5174         * tree-ssa-structalias.c (merge_smts_into): Remove.
5175         (find_what_p_points_to): Do not bother to compute the
5176         points-to set for pt_anything pointers.
5177         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
5178         for pt_anything pointers is ok.
5179
5180 2008-06-06  Jan Hubicka  <jh@suse.cz>
5181
5182         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
5183
5184 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5185
5186         * cgraph.c: Fix typos in comments.
5187         (cgraph_availability_names): Fix string typo.
5188         * fold-const.c: Fix typos in comments.
5189         (fold_binary): Fix typo in warning.
5190         * genautomata.c: Fix typos in comments.
5191         (check_presence_pattern_sets): Fix typo in local variable.
5192         (output_description): Fix typo in output.
5193         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
5194         * hwint.h: Likewise.
5195         * matrix-reorg.c (check_allocation_function): Likewise.
5196         * omega.c (smooth_weird_equations): Likewise.
5197         * auto-inc-dec.c: Fix typos in comments.
5198         * bb-reorder.c: Likewise.
5199         * builtins.c: Likewise.
5200         * c-common.c: Likewise.
5201         * c-cppbuiltin.c: Likewise.
5202         * c-parser.c: Likewise.
5203         * c-pretty-print.c: Likewise.
5204         * cfgcleanup.c: Likewise.
5205         * cfgexpand.c: Likewise.
5206         * cfghooks.c: Likewise.
5207         * cfglayout.c: Likewise.
5208         * cfgloopmanip.c: Likewise.
5209         * cgraphunit.c: Likewise.
5210         * coverage.c: Likewise.
5211         * dbxout.c: Likewise.
5212         * df-byte-scan.c: Likewise.
5213         * df-core.c: Likewise.
5214         * df-problems.c: Likewise.
5215         * df-scan.c: Likewise.
5216         * dfp.c: Likewise.
5217         * dominance.c: Likewise.
5218         * domwalk.c: Likewise.
5219         * dse.c: Likewise.
5220         * dwarf2out.c: Likewise.
5221         * emit-rtl.c: Likewise.
5222         * et-forest.c: Likewise.
5223         * function.c: Likewise.
5224         * function.h: Likewise.
5225         * gcc.c: Likewise.
5226         * gcov-io.c: Likewise.
5227         * gcov.c: Likewise.
5228         * gcse.c: Likewise.
5229         * genattrtab.c: Likewise.
5230         * ggc-page.c: Likewise.
5231         * gimplify.c: Likewise.
5232         * gthr-lynx.h: Likewise.
5233         * haifa-sched.c: Likewise.
5234         * ipa-cp.c: Likewise.
5235         * ipa-inline.c: Likewise.
5236         * ipa-prop.h: Likewise.
5237         * ipa-pure-const.c: Likewise.
5238         * ipa-struct-reorg.c: Likewise.
5239         * ipa-struct-reorg.h: Likewise.
5240         * ipa-type-escape.c: Likewise.
5241         * ipa.c: Likewise.
5242         * loop-doloop.c: Likewise.
5243         * mips-tfile.c: Likewise.
5244         * mkmap-flat.awk: Likewise.
5245         * mkmap-symver.awk: Likewise.
5246         * modulo-sched.c: Likewise.
5247         * omp-low.c: Likewise.
5248         * optabs.c: Likewise.
5249         * optabs.h: Likewise.
5250         * opts.c: Likewise.
5251         * passes.c: Likewise.
5252         * postreload-gcse.c: Likewise.
5253         * postreload.c: Likewise.
5254         * predict.c: Likewise.
5255         * pretty-print.h: Likewise.
5256         * profile.c: Likewise.
5257         * protoize.c: Likewise.
5258         * ra-conflict.c: Likewise.
5259         * real.c: Likewise.
5260         * recog.c: Likewise.
5261         * regclass.c: Likewise.
5262         * regs.h: Likewise.
5263         * reload.c: Likewise.
5264         * rtl-error.c: Likewise.
5265         * rtlanal.c: Likewise.
5266         * scan.h: Likewise.
5267         * sched-rgn.c: Likewise.
5268         * see.c: Likewise.
5269         * stmt.c: Likewise.
5270         * target.h: Likewise.
5271         * tree-dfa.c: Likewise.
5272         * tree-eh.c: Likewise.
5273         * tree-flow-inline.h: Likewise.
5274         * tree-inline.c: Likewise.
5275         * tree-into-ssa.c: Likewise.
5276         * tree-loop-distribution.c: Likewise.
5277         * tree-nested.c: Likewise.
5278         * tree-parloops.c: Likewise.
5279         * tree-pass.h: Likewise.
5280         * tree-pretty-print.c: Likewise.
5281         * tree-profile.c: Likewise.
5282         * tree-scalar-evolution.c: Likewise.
5283         * tree-sra.c: Likewise.
5284         * tree-ssa-alias-warnings.c: Likewise.
5285         * tree-ssa-ccp.c: Likewise.
5286         * tree-ssa-coalesce.c: Likewise.
5287         * tree-ssa-dom.c: Likewise.
5288         * tree-ssa-dse.c: Likewise.
5289         * tree-ssa-forwprop.c: Likewise.
5290         * tree-ssa-live.c: Likewise.
5291         * tree-ssa-live.h: Likewise.
5292         * tree-ssa-loop-im.c: Likewise.
5293         * tree-ssa-loop-ivopts.c: Likewise.
5294         * tree-ssa-loop-niter.c: Likewise.
5295         * tree-ssa-loop-prefetch.c: Likewise.
5296         * tree-ssa-phiopt.c: Likewise.
5297         * tree-ssa-phiprop.c: Likewise.
5298         * tree-ssa-sccvn.c: Likewise.
5299         * tree-ssa-ter.c: Likewise.
5300         * tree-ssa-threadupdate.c: Likewise.
5301         * tree-ssa.c: Likewise.
5302         * tree-vect-analyze.c: Likewise.
5303         * tree-vect-transform.c: Likewise.
5304         * tree-vectorizer.c: Likewise.
5305         * tree-vn.c: Likewise.
5306         * tree-vrp.c: Likewise.
5307         * tree.c: Likewise.
5308         * tree.def: Likewise.
5309         * tree.h: Likewise.
5310         * unwind-dw2-fde.c: Likewise.
5311         * unwind.inc: Likewise.
5312         * value-prof.c: Likewise.
5313         * vmsdbgout.c: Likewise.
5314
5315 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
5316
5317         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
5318         always place FP constants in the TOC for TARGET_POWERPC64.
5319         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
5320
5321 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
5322
5323         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
5324         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
5325         enable for TARGET_E500_DOUBLE.
5326         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
5327         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
5328         floating-point modes like integer modes for E500 double.
5329         (rs6000_legitimate_offset_address_p): Likewise.
5330         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
5331         addressing for DDmode for E500 double.
5332         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
5333         modes as using 64-bits of registers for E500 double.
5334         (spe_build_register_parallel): Do not handle DDmode or TDmode.
5335         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
5336         specially for E500 double.
5337         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
5338         TDmode for E500 double.
5339         (rs6000_gimplify_va_arg): Only handle SDmode in registers
5340         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
5341         (rs6000_split_multireg_move): Do not handle TDmode specially for
5342         E500 double.
5343         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
5344         using 64-bit registers for E500 double.
5345         (emit_frame_save): Do not handle DDmode specially for E500 double.
5346         (gen_frame_mem_offset): Likewise.
5347         (rs6000_function_value): Do not call spe_build_register_parallel
5348         for DDmode or TDmode.
5349         (rs6000_libcall_value): Likewise.
5350         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
5351         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
5352         for E500 double.
5353
5354 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
5355
5356         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
5357         in comments.
5358
5359 2008-06-04  Junjie Gu <jgu@tensilica.com>
5360
5361         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
5362         comparison for frame pointers.
5363
5364 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
5365
5366         PR target/27386
5367         * config/avr/avr.h (PUSH_ROUNDING): Remove.
5368
5369 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
5370
5371         PR target/30243
5372         * builtins.c (expand_builtin_signbit): Don't take lowpart when
5373         register is already smaller or equal to required mode. 
5374
5375 2008-06-04  Xinliang David Li  <davidxl@google.com>
5376
5377         * tree-call-cdce.c: New file. 
5378         (cond_dead_built_in_calls): New static variable.
5379         (input_domain): New struct.
5380         (check_pow): New function.
5381         (check_builtin_call): Ditto.
5382         (check_target_format): Ditto.
5383         (is_call_dce_candidate): Ditto.
5384         (gen_one_condition): Ditto.
5385         (gen_conditions_for_domain): Ditto.
5386         (get_domain): Ditto.
5387         (gen_conditions_for_pow_cst_base): Ditto.
5388         (gen_conditions_for_pow_int_base): Ditto.
5389         (gen_conditions_for_pow): Ditto.
5390         (get_no_error_domain): Ditto.
5391         (gen_shrink_wrap_conditions): Ditto.
5392         (shrink_wrap_one_built_in_call): Ditto.
5393         (shink_wrap_conditional_dead_built_in_calls): Ditto.
5394         (tree_call_cdce): Ditto.
5395         (gate_call_cdce): Ditto.
5396         (pass_call_cdce): New gimple pass.
5397         * passes.c: (init_optimization_passes): New pass.
5398         * tree-pass.h: New pass declaration.
5399         * opts.c (decode_options): New flag setting.
5400         * common.opt: Add -ftree-builtin-call-dce flag.
5401         * Makefile.in: Add new source file.
5402         * tempvar.def: New tv_id.
5403         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
5404
5405 2008-06-04  Richard Guenther  <rguenther@suse.de>
5406
5407         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
5408         (is_call_clobbered): Always check var_ann->call_clobbered.
5409         (mark_call_clobbered): Always set var_ann->call_clobbered.
5410         (clear_call_clobbered): Always clear var_ann->call_clobbered.
5411         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
5412         (reset_alias_info): Clear call clobbering info on MTAGs and
5413         globals as well.
5414         (set_pt_anything): Set pt_global_mem.
5415         (create_tag_raw): Adjust comment.
5416         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
5417
5418 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
5419             Maxim Kuvyrkov  <maxim@codesourcery.com>
5420
5421         * config/m68k/m68k.opt (mxgot): New option.
5422         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
5423         (m68k_output_addr_const_extra): New.
5424         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
5425         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
5426         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
5427         * doc/invoke.texi (M680x0 Options): Document -mxgot.
5428
5429 2008-06-04  Richard Guenther  <rguenther@suse.de>
5430
5431         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
5432         negative or non-representable offsets.
5433
5434 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
5435
5436         * config/i386/i386.c (ix86_gen_leave): New.
5437         (ix86_gen_pop1): Likewise.
5438         (ix86_gen_add3): Likewise.
5439         (ix86_gen_sub3): Likewise.
5440         (ix86_gen_sub3_carry): Likewise.
5441         (ix86_gen_one_cmpl2): Likewise.
5442         (ix86_gen_monitor): Likewise.
5443         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
5444         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
5445         ix86_gen_one_cmpl2 and ix86_gen_monitor.
5446         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
5447         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
5448         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
5449         (ix86_expand_epilogue): Updated.
5450         (print_operand): Handle integer register operand for 'z'.
5451         (ix86_expand_strlensi_unroll_1): Likewise.
5452         (ix86_expand_strlen): Likewise.
5453         (ix86_expand_builtin): Likewise.
5454         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
5455         mov{q}/mov{l} and add{q}/add{l}.
5456
5457 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5458
5459         * config/i386/i386.md (P): New mode iterator.
5460         (SFmode push_operand splitter): Macroize DImode and SImode pushes
5461         using P mode iterator.
5462         (DFmode push_operand splitter): Ditto.
5463         (XFmode push_operand splitter): Ditto.
5464         (DFmode float_extend SFmode push_operand splitter): Ditto.
5465         (XFmode float_extend SFmode push_operand splitter): Do not generate
5466         SImode pushes for 64bit target.  Macroize Dimode and SImode
5467         pushes using P mode iterator.
5468         (XFmode float_extend DFmode push_operand splitter): Ditto.
5469
5470 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5471
5472         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
5473         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
5474         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
5475         return type to int.
5476         (ix86_call_abi_override): Remove check for call_used_regs.
5477
5478 2008-06-03  Richard Guenther  <rguenther@suse.de>
5479
5480         * tree-ssa-structalias.c (find_func_aliases): Add constraints
5481         for the lhs of calls if the return type contains pointers.
5482
5483 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5484
5485         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
5486         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
5487         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
5488         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
5489         of cfun and DEFAULT_ABI to deceide abi mode.
5490         (DEFAULT_ABI): New.
5491         (REG_PARM_STACK_SPACE): Removed.
5492         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
5493         (STACK_BOUNDARY): Use default target to deceide stack boundary.
5494         * config/i386/i386-protos.h (ix86_cfun_abi): New.
5495         (ix86_function_abi): Likewise.
5496         (ix86_function_type_abi): Likewise.
5497         (ix86_call_abi_override): Likewise.
5498         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
5499         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
5500         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
5501         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
5502         specific defines.
5503         (X86_64_REGPARM_MAX): New.
5504         (X86_64_SSE_REGPARM_MAX): New.
5505         (X64_REGPARM_MAX): New.
5506         (X64_SSE_REGPARM_MAX): New.
5507         (X86_32_REGPARM_MAX): New.
5508         (X86_32_SSE_REGPARM_MAX): New.
5509         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
5510         (ix86_function_regparm): Handle user calling abi.
5511         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
5512         by DEFAULT_ABI versus SYSV_ABI check.
5513         (ix86_reg_parm_stack_space): New.
5514         (ix86_function_type_abi): New.
5515         (ix86_call_abi_override): New.
5516         (ix86_function_abi): New.
5517         (ix86_cfun_abi): New.
5518         (init_cumulative_args): Call abi specific initialization.
5519         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
5520         (function_arg_64): Extend SSE_REGPARM_MAX check.
5521         (function_arg (): Remove TARGET_64BIT_MS_ABI.
5522         (ix86_pass_by_reference): Likewise.
5523         (ix86_function_value_regno_p): Likewise.
5524         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
5525         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
5526         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
5527         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
5528         (setup_incoming_varargs_64): Adjust regparm for call abi.
5529         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
5530         (ix86_va_start): Likewise.
5531         (ix86_gimplify_va_arg): Likewise.
5532         (ix86_expand_prologue): Likewise.
5533         (output_pic_addr_const): Likewise.
5534         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
5535         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
5536         (x86_output_mi_thunk): Likewise.
5537         (x86_function_profiler): Likewise.
5538         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
5539         (SYSV_ABI, MS_ABI): New constants.
5540         (DEFAULT_ABI): New.
5541         (init_regs): Add prototype of function in regclass.c file.
5542         (OVERRIDE_ABI_FORMAT): New.
5543         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
5544         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
5545         (OUTGOING_REG_PARM_STACK_SPACE): New.
5546         (ix86_reg_parm_stack_space): New prototype.
5547         (CUMULATIVE_ARGS): Add call_abi member.
5548         (machine_function): Add call_abi member.
5549         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
5550         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
5551
5552 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
5553
5554         PR target/34879
5555         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
5556         (avr_builtin_setjmp_frame_value): New function.
5557         * config/avr/avr.md (nonlocal_goto_receiver): Define.
5558         (nonlocal_goto): Define.
5559
5560 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
5561
5562         * config/mips/mips.c (mips_emit_loadgp): Return early if
5563         there is nothing do to, otherwise emit a blockage if
5564         !TARGET_EXPLICIT_RELOCS || crtl->profile.
5565         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
5566
5567 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5568
5569         * configure.ac: Drop unneeded backslash ending up in config.in.
5570         * acinclude.m4: Likewise.
5571         * config.in: Regenerate.
5572
5573 2008-05-26  Jan Hubicka  <jh@suse.cz>
5574
5575         * predict.c (maybe_hot_frequency_p): Break out of...
5576         (maybe_hot_bb_p): ... here.
5577         (maybe_hot_edge_p): New.
5578         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
5579         * basic-block.h (maybe_hot_edge_p): Declare.
5580
5581 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5582
5583         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
5584         (*cmpfp_<mode>_cc): Ditto.
5585         (*fp_jcc_8<mode>_387): Ditto.
5586         (*fop_<MODEF:mode>_2_i387): Ditto.
5587         (*fop_<MODEF:mode>_3_i387): Ditto.
5588         (*fop_xf_2_i387): Ditto.
5589         (*fop_xf_3_i387): Ditto.
5590
5591 2008-06-02  Tomas Bily  <tbily@suse.cz>
5592
5593         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5594
5595 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5596
5597         * config/mips/mips.c (mips_valid_offset_p): New function.
5598         (mips_valid_lo_sum_p): Likewise.
5599         (mips_classify_address): Use them.
5600         (mips_force_address): New function.
5601         (mips_legitimize_address): Use it.
5602         * config/mips/mips.md (MOVE128): New mode iterator.
5603         (movtf): Require TARGET_64BIT.  Remove empty strings.
5604         (*movtf_internal): Rename to...
5605         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
5606         of "R" and use {,fp}{load,store} attributes instead of "multi".
5607         Use a separate define_split.
5608         (*movtf_mips16): New pattern.
5609
5610 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5611
5612         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
5613         * config/mips/mips.c (mips_expand_before_return): New function.
5614         (mips_expand_epilogue): Call it.
5615         * config/mips/mips.md (return): Turn into a define_expand.
5616         (*return): New insn.
5617
5618 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5619
5620         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
5621         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
5622         functions.  Do not emit uses and clobbers of CONCATs; individually
5623         use and clobber their operands.
5624         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
5625         gen_clobber, emit_use and gen_use.
5626         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
5627         (expand_builtin_return): Likewise.
5628         * cfgbuild.c (count_basic_blocks): Likewise.
5629         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
5630         * explow.c (emit_stack_restore): Likewise.
5631         * expmed.c (extract_bit_field_1): Likewise.
5632         * expr.c (convert_move, emit_move_complex_parts): Likewise.
5633         (emit_move_multi_word, store_constructor): Likewise.
5634         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
5635         (thread_prologue_and_epilogue_insns): Likewise.
5636         * lower-subreg.c (resolve_simple_move): Likewise.
5637         * optabs.c (widen_operand, expand_binop): Likewise.
5638         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
5639         * reload.c (find_reloads): Likewise.
5640         * reload1.c (eliminate_regs_in_insn): Likewise.
5641         * stmt.c (expand_nl_goto_receiver): Likewise.
5642         * config/alpha/alpha.md (builtin_longjmp): Likewise.
5643         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
5644         * config/arm/arm.c (arm_load_pic_register): Likewise.
5645         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
5646         * config/arm/arm.md (untyped_return): Likewise.
5647         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
5648         * config/avr/avr.c (expand_prologue): Likewise.
5649         * config/bfin/bfin.c (do_unlink): Likewise.
5650         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
5651         * config/cris/cris.c (cris_expand_prologue): Likewise.
5652         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5653         (machopic_legitimize_pic_address): Likewise.
5654         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
5655         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
5656         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
5657         (ix86_expand_convert_uns_didf_sse): Likewise.
5658         (ix86_expand_vector_init_general): Likewise.
5659         * config/ia64/ia64.md (eh_epilogue): Likewise.
5660         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
5661         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
5662         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
5663         (config/iq2000/iq2000.c): Likewise.
5664         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
5665         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
5666         (builtin_longjmp): Likewise.
5667         * config/mn10300/mn10300.md (call, call_value): Likewise.
5668         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
5669         * config/pdp11/pdp11.md (abshi2): Likewise.
5670         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5671         * config/s390/s390.c (s390_emit_prologue): Likewise.
5672         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
5673         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
5674         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
5675         * config/sh/sh.c (prepare_move_operands): Likewise.
5676         (output_stack_adjust, sh_expand_epilogue): Likewise.
5677         (sh_set_return_address, sh_expand_t_scc): Likewise.
5678         * config/sparc/sparc.c (load_pic_register): Likewise.
5679         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
5680         * config/spu/spu.c (spu_expand_epilogue): Likewise.
5681         * config/v850/v850.c (expand_epilogue): Likewise.
5682
5683 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
5684
5685         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
5686         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
5687         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
5688         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
5689         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
5690         stack pointer register.
5691         (output_movhi): Remove code for interrupt specific writing to the 
5692         stack pointer register.
5693
5694 2008-05-31  Richard Guenther  <rguenther@suse.de>
5695
5696         PR tree-optimization/34244
5697         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
5698         (tree_expr_nonzero_warnv_p): Likewise.
5699         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
5700         ssa_name_nonnegative_p.
5701         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
5702         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
5703         not tree_expr_nonzero_warnv_p.
5704
5705         PR tree-optimization/36262
5706         Revert
5707         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
5708
5709         PR tree-optimization/34244
5710         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
5711         (record_numbers_of_iterations): New function.
5712         (execute_vrp): Cache the numbers of iterations of loops.
5713         * tree-scalar-evolution.c (scev_reset_except_niters):
5714         New function.
5715         (scev_reset): Use scev_reset_except_niters.
5716         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
5717
5718 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
5719
5720         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5721         __WORKAROUND_RETS when appropriate.
5722
5723 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5724
5725         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
5726         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
5727         mode iterator.
5728         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
5729         *fop_df_comm_sse insn patterns using MODEF mode iterator.
5730         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
5731         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
5732         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
5733         *fop_df_1_mixed insn patterns using MODEF mode iterator.
5734         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
5735         *fop_df_1_sse insn patterns using MODEF mode iterator.
5736         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
5737         *fop_df_1_i387 insn patterns using MODEF mode iterator.
5738         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
5739         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
5740         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
5741         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
5742         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
5743         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
5744         (*fop_xf_4_i387): Use <MODE> for mode attribute.
5745         (*fop_xf_5_i387): Ditto.
5746         (*fop_xf_6_i387): Ditto.
5747
5748 2008-05-30  Richard Guenther  <rguenther@suse.de>
5749
5750         * builtins.c (build_string_literal): Avoid generating
5751         a non-gimple_val result.
5752
5753 2008-05-30  DJ Delorie  <dj@redhat.com>
5754
5755         * exec-tool.in: Use an environment variable (private) instead of a
5756         file (shared) as a semaphore, so as to not break parallel builds.
5757
5758 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5759
5760         * optabs.c (maybe_encapsulate_block): Remove.
5761         (emit_libcall_block): Adjust accordingly.
5762         * optabs.h (maybe_encapsulate_block): Remove prototype.
5763
5764         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
5765         Don't use maybe_encapsulate_block.
5766
5767 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5768
5769         * config/rs6000/rs6000.c (rs6000_legitimize_address,
5770         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
5771         rtx is a SYMBOL_REF before calling get_pool_constant.
5772
5773 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
5774
5775         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
5776
5777 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
5778
5779         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
5780         rather than OS names to choose INO_T_EQ definition.
5781         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
5782         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
5783
5784 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
5785
5786         PR target/36348
5787         * config/darwin-f.c: New.
5788         * config/t-darwin: Added rule to build darwin-f.o.
5789         * config.gcc: Defined new variable, fortran_target_objs.
5790         (*-*-darwin*): Set fortran_target_objs.
5791         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
5792         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
5793         * configure: Regenerated.
5794
5795 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5796
5797         PR target/35771
5798         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
5799         canonical type if needed.
5800
5801 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5802
5803         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
5804
5805 2008-05-29  Richard Guenther  <rguenther@suse.de>
5806
5807         PR tree-optimization/36343
5808         PR tree-optimization/36346
5809         PR tree-optimization/36347
5810         * tree-flow.h (clobber_what_p_points_to): Declare.
5811         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
5812         pointed-to variable is dereferenced is irrelevant to whether
5813         the pointer can access the pointed-to variable.
5814         (clobber_what_p_points_to): New function.
5815         * tree-ssa-alias.c (set_initial_properties): Use it.
5816         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
5817         call clobber check for NMTs.
5818
5819 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5820         
5821         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
5822         for printing gcov_type.
5823
5824 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5825
5826         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
5827         and the eh region information.
5828         * value-prof.c (gimple_move_stmt_histograms): New function.
5829         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
5830
5831 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
5832
5833         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
5834
5835 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
5836
5837         * value-prof.c (tree_ic_transform): Print counts.
5838         * tree-profile.c (tree_gen_ic_func_profiler):
5839         Clear __gcov_indreict_call_callee variable to avoid misattribution
5840         of the profile.
5841
5842 2008-05-28  Rafael Espindola  <espindola@google.com>
5843
5844         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
5845         invalid sharing.
5846
5847 2008-05-28  Richard Guenther  <rguenther@suse.de>
5848
5849         PR tree-optimization/36339
5850         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
5851         and clobbering code out of the loop.
5852
5853 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5854
5855         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
5856         letters defined.
5857
5858         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
5859         s390_contiguous_bitmask_p, s390_symref_operand_p,
5860         s390_check_symref_alignment, s390_reload_larl_operand,
5861         s390_reload_symref_address): New functions.
5862         (s390_branch_condition_mnemonic): Support compare and branch
5863         instructions.
5864         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
5865         and 'W' constraints.
5866         (s390_secondary_reload): Add secondary reloads for unaligned
5867         symbol refs or symbol refs to floating point or QI/TI mode
5868         integer values.
5869         (legitimate_address_p): Accept symbol references as addresses.
5870         (s390_expand_insv): Use rotate and insert selected bits
5871         instruction for insv when building for z10.
5872         (print_operand_address): Handle symbol ref addresses.
5873         (print_operand): Output modifier 'c' added for signed byte values.
5874         (s390_encode_section_info): Mark symbol refs with
5875         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
5876
5877         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
5878         (length attribute): RRF, RRR have 4 byte length.
5879         (FPALL, INTALL): New mode iterators added.
5880         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
5881         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
5882         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
5883         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
5884         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
5885         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
5886         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
5887         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
5888         instructions.
5889         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
5890         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
5891         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
5892         reload<INTALL:mode><P:mode>_toreg_z10,
5893         reload<FPALL:mode><P:mode>_tomem_z10,
5894         reload<FPALL:mode><P:mode>_toreg_z10,
5895         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
5896         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
5897         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
5898         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
5899         definition.
5900         (movmem, clrmem, cmpmem): New splitters added.
5901
5902         * config/s390/predicates.md (larl_operand): Use
5903         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
5904         SYMBOL_REF_ALIGN1_P.
5905         (s390_signed_integer_comparison,
5906         s390_unsigned_integer_comparison): New predicates.
5907
5908         * config/s390/s390-protos.h (s390_check_symref_alignment,
5909         s390_contiguous_bitmask_p, s390_reload_larl_operand,
5910         s390_reload_symref_address,
5911         s390_compare_and_branch_condition_mask): Prototypes added.
5912
5913         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
5914         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
5915         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
5916
5917 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5918
5919         * config/s390/s390.c (z10_cost): New cost function for z10.
5920         (s390_handle_arch_option, override_options): Support -march=z10 switch.
5921         (s390_issue_rate): Adjust issue rate for z10.
5922         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
5923         (processor_flags): Add PF_Z10.
5924         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
5925         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
5926         * gcc/config.gcc: Add z10.
5927
5928 2008-05-28  Richard Guenther  <rguenther@suse.de>
5929
5930         PR tree-optimization/36291
5931         * tree-flow. h (struct gimple_df): Remove var_anns member.
5932         * tree-flow-inline.h (gimple_var_anns): Remove.
5933         (var_ann): Simplify.
5934         * tree-dfa.c (create_var_ann): Simplify.
5935         (remove_referenced_var): Clear alias info from var_anns of globals.
5936         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
5937         (delete_tree_ssa): Clear alias info from var_anns of globals.
5938         Do not free var_anns.
5939         (var_ann_eq): Remove.
5940         (var_ann_hash): Likewise.
5941
5942 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
5943
5944         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
5945         and loongson2f entries.
5946         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
5947         * config/mips/mips.h (processor_type): Add Loongson-2E
5948         and Loongson-2F entries.
5949         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
5950         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
5951         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
5952         * doc/invoke.texi (MIPS Options): Document loongson2e
5953         and loongson2f processor names.
5954
5955 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5956
5957         PR target/35767
5958         PR target/35771
5959         * config/i386/i386.c (ix86_function_arg_boundary): Use
5960         alignment of canonical type.
5961         (ix86_expand_vector_move): Check unaligned memory access for
5962         all SSE modes.
5963
5964 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5965
5966         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
5967         Moved to the front of file.
5968
5969 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
5970             H.J. Lu  <hongjiu.lu@intel.com>
5971
5972         * dwarf2out.c (current_fde): New.
5973         (add_cfi): Use it.
5974         (lookup_cfa:): Likewise.
5975         (dwarf2out_end_epilogue): Likewise.
5976         (dwarf2out_note_section_used): Likewise.
5977
5978 2008-05-27  Michael Matz  <matz@suse.de>
5979
5980         PR c++/27975
5981         * c.opt (Wenum-compare): New warning option.
5982         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
5983
5984 2008-05-27  Michael Matz  <matz@suse.de>
5985
5986         PR middle-end/36326
5987         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
5988         non-BLKmode types.
5989         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
5990         into memory as tail calls.
5991
5992 2008-05-27  Richard Guenther  <rguenther@suse.de>
5993
5994         PR tree-optimization/36339
5995         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
5996         pointers cause all addressable variables to be call clobbered.
5997
5998 2008-05-27  Richard Guenther  <rguenther@suse.de>
5999
6000         PR tree-optimization/36245
6001         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
6002
6003 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6004
6005         * config/s390/s390.md: Replace all occurences of the 'm'
6006         constraint with 'RT'.
6007
6008 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6009
6010         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
6011         definitions added.
6012         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
6013         "*movdi_64".
6014         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
6015         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
6016         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
6017
6018 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6019
6020         * reload.c: (find_reloads): Skip alternatives according to the
6021         "enabled" attribute. Constify the constraint variable.
6022         * recog.c (get_attr_enabled): Add default implementation.
6023         (extract_insn): Set the alternative_enabled_p array
6024         in the recog_data struct.
6025         (preprocess_constraints, constrain_operands): Skip
6026         alternatives according to the "enabled" attribute
6027         * recog.h (struct recog_data): New field alternative_enabled_p.
6028         (skip_alternative): New inline function.
6029         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
6030         (record_reg_classes): Skip alternative according to the
6031         "enabled" attribute.
6032
6033         * doc/md.texi: Add documention for the "enabled" attribute.
6034
6035 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6036
6037         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
6038         * postreload.c (reload_cse_simplify_operands): Replace 'm'
6039         constraint with TARGET_MEM_CONSTRAINT.
6040         * recog.c (asm_operand_ok, preprocess_constraints,
6041         constrain_operands): Likewise.
6042         * regclass.c (record_reg_classes): Likewise.
6043         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
6044         * reload1.c (maybe_fix_stack_asms): Likewise.
6045         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
6046         * recog.h: Adjust comment.
6047         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
6048         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
6049         * doc/md.texi: Add a note to description of 'm' constraint.
6050         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
6051
6052 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6053
6054         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
6055         that the bitfield is of integral type before testing its precision.
6056
6057 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6058             Sa Liu  <saliu@de.ibm.com> 
6059
6060         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
6061         __modti3, __udivti3, __umodti3 and __udivmodti4.
6062         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
6063         that implement TImode mul and div functions.
6064         * config/spu/multi3.c: New. Implement __multi3.
6065         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
6066         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
6067         functions on SPU.
6068
6069 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
6070
6071         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
6072         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
6073         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
6074         tls_sysv_suffix): New mode and mode attribute iterators.
6075         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
6076         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
6077         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
6078         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
6079         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
6080         iterators.
6081
6082 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
6083
6084         PR tree-optimization/36329
6085         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
6086         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
6087         * cgraphbuild.c (initialize_inline_failed): Use the latter
6088         macro in lieu of the former.
6089         * ipa-inline.c (cgraph_mark_inline): Likewise.
6090         (cgraph_decide_inlining_of_small_function): Likewise.
6091         (cgraph_decide_inlining): Likewise.
6092         (cgraph_decide_inlining_incrementally): Likewise.
6093
6094 2008-05-26  Tristan Gingold  <gingold@adacore.com>
6095             Anatoly Sokolov  <aesok@post.ru>
6096
6097         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
6098         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
6099         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
6100         optimization for 'avr6' architecture.
6101
6102 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
6103
6104         PR target/34932
6105         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
6106
6107 2008-05-26  Richard Guenther  <rguenther@suse.de>
6108
6109         * tree-ssa-sccvn.c (expr_has_constants): Declare.
6110         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
6111
6112 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
6113
6114         PR middle-end/36253
6115         * caller-save.c (insert_restore): Verify alignment of spill space.
6116         (insert_save): Likewise.
6117         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
6118         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
6119         (STACK_SLOT_ALIGNMENT): Likewise.
6120         * function.c (LOCAL_ALIGNMENT): Removed.
6121         (get_stack_local_alignment): New.
6122         (assign_stack_local): Use it.  Set alignment on stack slot.
6123         (assign_stack_temp_for_type): Use get_stack_local_alignment.
6124         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
6125         (STACK_SLOT_ALIGNMENT): New.
6126         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
6127         stack slot in XFmode.
6128
6129         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
6130
6131 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
6132
6133         PR/36321
6134         * config/i386/i386.md (allocate_stack_worker_64): Make sure
6135         argument operand in rax isn't removed.
6136
6137 2008-05-26  Richard Guenther  <rguenther@suse.de>
6138
6139         PR middle-end/36300
6140         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
6141         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
6142
6143 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
6144
6145         PR bootstrap/36331
6146         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
6147
6148 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
6149
6150         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
6151         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
6152
6153 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6154
6155         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
6156         build a trampoline if we don't want one.
6157         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
6158         return zero for nested functions if we don't want a trampoline.
6159
6160 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
6161
6162         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
6163
6164 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
6165
6166         PR fortran/18428
6167         * c.opt: Removed undocumented option '-lang-fortran'.
6168         * c-common.h: Removed global variable 'lang_fortran'.
6169         * c-opts.c (c_common_handle_option): Removed code to handle
6170         option '-lang-fortran'. Updated includes.
6171         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
6172         definition of '__GFORTRAN__'.
6173         (define__GNUC__): Reimplemented to use BASEVER and
6174         cpp_define_formatted.
6175         (builtin_define_with_value_n): Removed.
6176         * c-incpath.h: Renamed to ...
6177         * incpath.h: ... this.
6178         * c-incpath.c: Renamed to ...
6179         * incpath.c: ... this. Updated includes.
6180         * fix-header.c: Updated includes.
6181         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
6182         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
6183         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
6184
6185 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6186
6187         * tree.h: Update the table of flags used on tree nodes.
6188         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
6189         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
6190         (FORCED_LABEL): Add access check.
6191         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
6192         (ASM_INPUT_P): Likewise.
6193         (ASM_VOLATILE_P): Likewise.
6194         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
6195         (OMP_SECTION_LAST): Access private_flag directly.
6196         (OMP_RETURN_NOWAIT): Likewise.
6197         (OMP_PARALLEL_COMBINED): Likewise.
6198         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
6199         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
6200         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
6201         deprecated_flag directly.
6202
6203 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6204
6205         * final.c (frame_pointer_needed): Removed.
6206         * flags.h (frame_pointer_needed): Likewise.
6207
6208         * function.h (rtl_data): Add frame_pointer_needed.
6209         (frame_pointer_needed): New.
6210
6211 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
6212
6213         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
6214
6215 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
6216
6217         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
6218         SRC is a REG.
6219
6220 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
6221
6222         * c-common.c (strip_array_types): Move function to..
6223         * tree.c: ..here.
6224         (get_inner_array_type): Delete.
6225         * c-common.h (strip_array_types): Move declaration to..
6226         * tree.h: ..here.
6227         (get_inner_array_type): Delete.
6228         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
6229         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
6230         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
6231         * config/pa/pa.c (emit_move_sequence): Likewise.
6232
6233 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6234
6235         * config/i386/i386.md (*sse_prologue_save_insn): Set length
6236         attribute to 34.
6237
6238 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
6239
6240         * function.c: Include target hook for nonlocal_goto frame value.
6241
6242 2008-05-24  Richard Guenther  <rguenther@suse.de>
6243
6244         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
6245         variable can be only accessed through a pointer or a union.
6246
6247 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6248
6249         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
6250         * doc/extend.texi: Likewise.
6251
6252 2008-05-23  DJ Delorie  <dj@redhat.com>
6253
6254         * config/m32c/jump.md (untyped_call): Add.
6255
6256         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
6257         for A24 to PSImode.
6258         (m32c_address_cost): Detail costs for indirect offsets.
6259
6260 2008-05-23  Rafael Espindola  <espindola@google.com>
6261
6262         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
6263         if a node is a SUBREG.
6264         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
6265         is a SUBREG.
6266
6267 2008-05-23  Paul Brook  <paul@codesourcery.com>
6268             Carlos O'Donell  <carlos@codesourcery.com>
6269
6270         * doc/extend.texi: Clarify use of __attribute__((naked)).
6271         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
6272         * target.h (gcc_target): Add allocate_stack_slots_for_args.
6273         * function.c (use_register_for_decl): Use
6274         targetm.calls.allocate_stack_slots_for_args.
6275         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
6276         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
6277         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
6278
6279 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
6280
6281         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
6282
6283 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
6284
6285         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
6286         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
6287         is only rounded once.
6288
6289 2008-05-23  Richard Guenther  <rguenther@suse.de>
6290
6291         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
6292
6293 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
6294             Jakub Jelinek  <jakub@redhat.com>
6295
6296         PR target/36079
6297         * configure.ac: Handle --enable-cld.
6298         * configure: Regenerated.
6299         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
6300         * config/i386/i386.h (struct machine_function): Add needs_cld field.
6301         (ix86_current_function_needs_cld): New define.
6302         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
6303         (cld): New isns pattern.
6304         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
6305         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
6306         * config/i386/i386.opt (mcld): New option.
6307         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
6308         TARGET_CLD and ix86_current_function_needs_cld.
6309         (override_options): Use -mcld by default for 32-bit code if
6310         USE_IX86_CLD.
6311
6312         * doc/install.texi (Options specification): Document --enable-cld.
6313         * doc/invoke.texi (Machine Dependent Options)
6314         [i386 and x86-64 Options]: Add -mcld option.
6315         (Intel 386 and AMD x86-64 Options): Document -mcld option.
6316
6317 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
6318         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
6319         (return_in_memory_64): Likewise.
6320         (return_in_memory_ms_64): Likewise.
6321
6322 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6323
6324         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
6325         * builtins.c (fold_builtin_fpclassify): New.
6326         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
6327         * builtins.def (BUILT_IN_FPCLASSIFY): New.
6328         * c-common.c (handle_type_generic_attribute): Adjust to accept
6329         fixed arguments before an elipsis.
6330         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
6331         * doc/extend.texi: Document __builtin_fpclassify.
6332
6333 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
6334
6335         * omp-low.c (gate_expand_omp_ssa): Remove.
6336         (pass_expand_omp_ssa): Remove.
6337         (gate_expand_omp): Do not check for flag_openmp_ssa.
6338         * common.opt (-fopenmp-ssa): Remove.
6339         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
6340
6341 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
6342
6343         * config/sh/sh.opt (mfixed-range): New option.
6344         * config/sh/sh-protos.h (sh_fix_range): Declare.
6345         * config/sh/sh.c (sh_fix_range): New function.
6346         * config/sh/sh.h (sh_fixed_range_str): Declare.
6347         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
6348         is not empty.
6349         * doc/invoke.texi (SH Options): Document -mfixed-range.
6350
6351 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
6352
6353         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
6354         it before the redeclaration.
6355
6356 2008-05-22  Anatoly Sokolov <aesok@post.ru>
6357
6358         * config/avr/avr.c (get_sequence_length): Add new function.
6359         (expand_prologue, expand_epilogue): Remove duplicate code.
6360
6361 2008-05-22  Rafael Espindola  <espindola@google.com>
6362
6363         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
6364         sharing.
6365
6366 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
6367
6368         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
6369         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
6370
6371         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
6372         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
6373         (vect_update_misalignment_for_peel): Likewise.
6374         (vector_alignment_reachable_p): Likewise.
6375         * tree-vect-transform.c (vectorizable_load): Likewise.
6376         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
6377         (get_vectype_for_scalar_type): Pass mode of scalar_type
6378         to UNITS_PER_SIMD_WORD.
6379
6380         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
6381         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
6382         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
6383         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
6384         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
6385
6386 2008-05-22  Ira Rosen  <irar@il.ibm.com>
6387
6388         PR tree-optimization/36293
6389         * tree-vect-transform.c (vect_transform_strided_load): Don't check
6390         if the first load must be skipped because of a gap.
6391
6392 2008-05-22  Richard Guenther  <rguenther@suse.de>
6393
6394         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
6395         more cases of offset disambiguation that is possible if
6396         strict-aliasing rules apply.
6397         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
6398         for basic offset and type-based disambiguation.
6399
6400 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6401
6402         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
6403         ix86_expand_vector_set on V16QImode for SSE4.1.
6404
6405 2008-05-21  Tom Tromey  <tromey@redhat.com>
6406
6407         * c.opt (Wimport): Mark as undocumented.
6408         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
6409         -Wno-import.
6410         (Warning Options): Likewise.
6411         * doc/cppopts.texi: Don't mention -Wimport.
6412
6413 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
6414
6415         PR tree-optimization/36287
6416         PR tree-optimization/36286
6417         * lambda-code.c (build_access_matrix): Do not use the loop->num
6418         for computing the number of induction variables: use the loop depth
6419         instead.
6420
6421 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
6422
6423         PR/36280
6424         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
6425         option -f(no-)leading-underscore.
6426
6427 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6428
6429         * config/i386/i386.c (ix86_expand_vector_init_general): Use
6430         GET_MODE_NUNITS (mode).
6431
6432 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
6433
6434         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
6435         (-mmulhw): Add 464 to description.
6436         (-mdlmzb): Likewise.
6437         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
6438         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
6439         464fp entries.
6440         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
6441         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
6442         * config/rs6000/rs6000.md: Update comments for 464.
6443
6444 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
6445
6446         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
6447
6448 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6449
6450         * config/i386/sse.md (vec_extractv4sf): Removed.
6451         (vec_extractv2df): Likewise.
6452         (vec_extractv2di): Likewise.
6453         (vec_extractv4si): Likewise.
6454         (vec_extractv8hi): Likewise.
6455         (vec_extractv16qi): Likewise.
6456         (vec_extract<mode>): New.
6457
6458 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6459
6460         * config/i386/sse.md (vec_setv4sf): Removed.
6461         (vec_setv2df): Likewise.
6462         (vec_setv2di): Likewise.
6463         (vec_setv4si): Likewise.
6464         (vec_setv8hi): Likewise.
6465         (vec_setv16qi): Likewise.
6466         (vec_set<mode>): New.
6467
6468 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6469
6470         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
6471         goto for vec_concat and vec_interleave.
6472
6473 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6474
6475         * config/i386/sse.md (vec_initv4sf): Removed.
6476         (vec_initv2df): Likewise.
6477         (vec_initv2di): Likewise.
6478         (vec_initv4si): Likewise.
6479         (vec_initv8hi): Likewise.
6480         (vec_initv16qi): Likewise.
6481         (vec_init<mode>): New.
6482
6483 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
6484
6485         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
6486
6487 2008-05-21  Tom Tromey  <tromey@redhat.com>
6488
6489         * ggc-zone.c (lookup_page_table_if_allocated): New function.
6490         (zone_find_object_offset): Likewise.
6491         (gt_ggc_m_S): Likewise.
6492         (highest_bit): Likewise.
6493         * ggc-page.c (gt_ggc_m_S): New function.
6494         * stringpool.c (string_stack): Remove.
6495         (init_stringpool): Update.
6496         (ggc_alloc_string): Use ggc_alloc.
6497         (maybe_delete_ident): New function.
6498         (ggc_purge_stringpool): Likewise.
6499         (gt_ggc_m_S): Remove.
6500         * ggc-common.c (ggc_protect_identifiers): New global.
6501         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
6502         ggc_protect_identifiers.
6503         * ggc.h (ggc_protect_identifiers): Declare.
6504         (gt_ggc_m_S): Update.
6505         (ggc_purge_stringpool): Declare.
6506         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
6507         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
6508         special case.
6509         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
6510
6511 2008-05-21  David S. Miller  <davem@davemloft.net>
6512
6513         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
6514         tmake_file.
6515
6516 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6517
6518         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
6519         once finished.
6520
6521 2008-05-20  David Daney  <ddaney@avtrex.com>
6522
6523         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
6524         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
6525         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6526         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6527         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
6528         (atomic_hiqi_op): New define_code_iterator.
6529         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
6530         mips_expand_compare_and_swap_12.
6531         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
6532         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
6533         (sync_<optab><mode>, sync_old_<optab><mode>,
6534         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
6535         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
6536         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
6537         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
6538         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
6539         (test_and_set_12): New insn.
6540         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
6541         sync_new_<optab><mode>, sync_old_nand<mode>,
6542         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
6543         clobber to operand 0 for SI and DI mode insns.
6544         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
6545         mips_gen_fn_4): New typedefs.
6546         (mips_gen_fn_ptrs): Define new union type.
6547         (mips_expand_compare_and_swap_12): Remove declaration.
6548         (mips_expand_atomic_qihi): Declare function.
6549         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
6550         (mips_expand_atomic_qihi): ... this.  Use new generator function
6551         parameter.
6552         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
6553         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
6554         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
6555         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
6556         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
6557         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
6558         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
6559         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
6560         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
6561         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
6562         New macros.
6563
6564 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6565
6566         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
6567         the missing break.
6568
6569 2008-05-20  Anatoly Sokolov <aesok@post.ru>
6570
6571         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
6572         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
6573         (avr_attribute_table): Add 'OS_main' function attribute.
6574         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
6575         functions with 'OS_main' attribute.
6576
6577 2008-05-20  Richard Guenther  <rguenther@suse.de>
6578
6579         PR tree-optimization/35204
6580         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
6581         helper, split out from ...
6582         (DFS): ... here.  Make the DFS walk non-recursive.
6583
6584 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
6585             Jan Sjodin  <jan.sjodin@amd.com>
6586
6587         PR tree-optimization/36181
6588         * tree-parloops.c (loop_has_vector_phi_nodes): New.
6589         (parallelize_loops): Don't parallelize when the loop has vector
6590         phi nodes.
6591
6592 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6593             Sebastian Pop  <sebastian.pop@amd.com>
6594
6595         * tree-loop-linear.c (gather_interchange_stats): Look in the access
6596         matrix, and never look at the tree representation of the memory
6597         accesses.
6598         (linear_transform_loops): Computes parameters and access matrices.
6599         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
6600         when fails.
6601         (access_matrix_get_index_for_parameter): New.
6602         * tree-data-ref.h (struct access_matrix): New.
6603         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
6604         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
6605         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
6606         am_vector_index_for_loop): New.
6607         (struct data_reference): Add field access_matrix.
6608         (DR_ACCESS_MATRIX): New.
6609         (compute_data_dependences_for_loop): Update declaration.
6610         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
6611         * lambda.h (lambda_vector_vec_p): Declared.
6612         * lambda-code.c: Depend on pointer-set.h.
6613         (lambda_collect_parameters_from_af, lambda_collect_parameters,
6614         av_for_af_base, av_for_af, build_access_matrix,
6615         lambda_compute_access_matrices): New.
6616         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
6617
6618 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
6619
6620         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
6621         $SOURCEDIR/include.
6622
6623 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6624             Sebastian Pop  <sebastian.pop@amd.com>
6625
6626         PR tree-optimization/36206
6627         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
6628         FOLD_CONVERSIONS.
6629         (instantiate_scev_1): Rename flags to fold_conversions.
6630         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
6631         outeside instantiation_loop.
6632         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
6633         (evolution_function_is_affine_or_constant_p): Removed.
6634         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
6635         instantiate_scev.
6636         (analyze_siv_subscript): Pass in the loop nest number.
6637         Call evolution_function_is_affine_in_loop instead of 
6638         evolution_function_is_affine_p.
6639         (analyze_overlapping_iterations): Pass in the loop nest number.
6640
6641 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6642             Sebastian Pop  <sebastian.pop@amd.com>
6643
6644         PR tree-optimization/36206
6645         * tree-chrec.h (chrec_fold_op): New.
6646         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
6647         and other trees.
6648
6649 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
6650
6651         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
6652         (DIRS_EQ): New.
6653         (remove_duplicates): Do not set inode on non-inode systems.
6654         Use DIRS_EQ.
6655
6656 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6657
6658         * config.gcc (tm_file): Update comments about relative pathnames.
6659
6660 2008-05-20  Richard Guenther  <rguenther@suse.de>
6661
6662         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
6663         * tree-ssa-sccvn.c (process_scc): Likewise.
6664         * tree-ssa-sink.c (execute_sink_code): Likewise.
6665         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
6666         * tree-vrp.c (process_assert_insertions): Likewise.
6667         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
6668         (perform_tree_ssa_dce): Likewise.
6669         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6670         (dump_dominator_optimization_stats): Likewise.
6671         * tree-vectorizer.c (vectorize_loops): Likewise.
6672
6673 2008-05-20  Richard Guenther  <rguenther@suse.de>
6674
6675         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
6676
6677 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
6678
6679         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
6680         (ix86_i386elf_return_in_memory): Likewise.
6681         (ix86_i386interix_return_in_memory): Likewise.
6682         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
6683         (SUBTARGET_RETURN_IN_MEMORY): New.
6684         * config/i386/i386elf.h: Likewise.
6685         * config/i386/ptx4-i.h: Likewise.
6686         * config/i386/sol2-10.h: Likewise.
6687         * config/i386/sysv4.h: Likewise.
6688         * config/i386/vx-common.h: Likewise.
6689         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
6690         * config/i386/i386.c (ix86_return_in_memory): Made static and
6691         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
6692         (ix86_i386elf_return_in_memory): Removed.
6693         (ix86_i386interix_return_in_memory): Removed.
6694         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
6695         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
6696
6697 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
6698
6699         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
6700
6701 2008-05-19  Xinliang David Li  <davidxl@google.com>
6702
6703         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
6704         * opts.c: Ditto.
6705         * common.opt: Ditto.
6706         * doc/invoke.texi: Ditto.
6707
6708 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6709
6710         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
6711         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
6712
6713 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6714
6715         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
6716         sizes of operand array from 8/4 to 4/2.
6717         (ix86_expand_vector_init_general): Change size of operand array
6718         from 32 to 16.  Remove op0, op1 and half_mode.
6719
6720 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6721
6722         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
6723         (ix86_expand_vector_init_interleave): Likewise.
6724         (ix86_expand_vector_init_general): Use them.  Assert
6725         word_mode == SImode when n_words == 4.
6726
6727 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
6728
6729         * config/i386/i386.c (ix86_secondary_reload): New static function.
6730         (TARGET_SECONDARY_RELOAD): New define.
6731         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
6732         * config/i386/i386.md (reload_outqi): Remove.
6733
6734 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6735
6736         PR middle-end/35509
6737         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
6738         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
6739         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
6740         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
6741         (fold_builtin_1): Likewise.
6742         * builtins.def (BUILT_IN_ISINF_SIGN): New.
6743         c-common.c (check_builtin_function_arguments): Handle
6744         BUILT_IN_ISINF_SIGN.
6745         * doc/extend.texi: Document __builtin_isinf_sign.
6746         * fold-const.c (operand_equal_p): Handle COND_EXPR.
6747
6748 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
6749
6750         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
6751         EH cleanup at the end of the pass, search for those that have been
6752         turned into forwarder blocks and do the cleanup on their successor.
6753
6754 2008-05-18  Richard Guenther  <rguenther@suse.de>
6755
6756         * tree-cfg.c (verify_gimple_expr): Allow conversions from
6757         pointers to sizetype and vice versa.
6758
6759 2008-05-18 Xinliang David Li   <davidxl@google.com>
6760
6761         * gcc/tree-ssa-dce.c: Coding style fix.
6762         (check_pow): Documentation comment. 
6763         (check_log): Documenation comment. Coding style fix.
6764         (is_unnecessary_except_errno_call): Ditto.
6765         (gen_conditions_for_pow): Ditto.
6766         (gen_conditions_for_log): Ditto.
6767         (gen_shrink_wrap_conditions): Ditto.
6768         (shrink_wrap_one_built_in_calls): Ditto.
6769         * gcc/doc/invoke.texi: Better documentation string.
6770         * ChangeLog: Fix wrong change log entries from 
6771         May 17 checkin on function call DCE.
6772
6773 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
6774
6775         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
6776
6777 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
6778
6779         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
6780         * df-problems.c (simulation routines): Fixed block comment to
6781         properly say how to add forwards scanning functions.
6782         
6783 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6784
6785         * tree-inline.c (setup_one_parameter): Remove dead code.
6786
6787 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6788
6789         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
6790         a BIT_AND_EXPR only for an INTEGER_TYPE.
6791
6792 2008-05-17 Xinliang David Li   <davidxl@google.com>
6793
6794         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
6795         (check_pow, check_log, is_unnecessary_except_errno_call): New 
6796         functions to check for eliminating math functions that are pure 
6797         except for setting errno.
6798         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
6799         general condition expressions for shrink-wrapping pow/log calls.
6800         (gen_shrink_wrap_conditions): Ditto.
6801         (shrink_wrap_one_built_in_call): Ditto.
6802         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
6803         (mark_operand_necessary): If debugging, output if OP is necessary.
6804         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
6805         unnecessary.
6806         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
6807         opt level >= 2.
6808         * gcc/common.opt: New user flag -ftree-builtin-dce.
6809         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
6810
6811 2008-05-16  David S. Miller  <davem@davemloft.net>
6812
6813         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
6814         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6815
6816 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
6817
6818         PR target/36246
6819         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
6820
6821 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6822
6823         * ifcvt.c (dead_or_predicable): Rename
6824         df_simulate_one_insn_backwards to df_simulate_one_insn.
6825         * recog.c (peephole2_optimize): Ditto.
6826         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
6827         Ditto.
6828         * df.h: Rename df_simulate_one_insn_backwards to
6829         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
6830         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
6831         scanning of defs and uses.
6832         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
6833         (df_simulate_one_insn_forwards): Removed.
6834
6835 2008-05-16  Doug Kwan  <dougkwan@google.com>
6836
6837         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
6838         QNaN & SNaN.
6839         (real_from_string): Handle NaNs and Inf as approriate.
6840
6841 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6842
6843         * doc/gty.texi (Source Files Containing Type Information): Note
6844         that headers should appear first in the gtfiles list.
6845
6846 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6847
6848         * tree.def (COND_EXEC): Properly documented this code.
6849
6850 2008-05-16  Diego Novillo  <dnovillo@google.com>
6851
6852         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
6853         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
6854         the new field.
6855
6856 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6857
6858         * tree-ssa-dse (max_stmt_uid): Removed.
6859         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
6860         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
6861         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
6862         * function.h (cfun.last_stmt_uid): New field.
6863         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
6864         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
6865         New functions.
6866         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
6867         (create_stmt_ann): Initialize the ann->uid field.
6868         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
6869         with new calls.
6870         * tree-flow.h (renumber_gimple_stmt_uids): New function.
6871
6872 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6873
6874         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
6875         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
6876         (init_empty_tree_cfg): Call it.
6877
6878 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6879
6880         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
6881         Update all users.
6882
6883 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6884
6885         * doc/invoke.text (-fdump-tree-*-verbose): New option.
6886         * tree-dump.c (dump_options): New verbose option.
6887         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
6888         Add verbose dump.
6889         * tree-pass.h (TDF_VERBOSE): New dump flag.
6890         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
6891         (tree-flow.h): Added include.
6892         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
6893
6894 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
6895
6896         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
6897
6898         From Jie Zhang  <jie.zhang@analog.com>
6899         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6900         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
6901         mcpu=bf561-none and mcpu=bf561-0.2.
6902         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6903         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6904         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6905         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6906         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
6907         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
6908         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
6909         option.
6910         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
6911         (cputype_selected): Remove.
6912         (bfin_handle_option): Don't use cputype_selected.
6913         (override_options): When no mcpu option, enable all workarounds.
6914         Don't use bfin_workarounds.
6915         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
6916         processor type.
6917         (DEFAULT_CPU_TYPE): Don't define.
6918
6919 2008-05-16  Richard Guenther  <rguenther@suse.de>
6920
6921         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
6922         on deletion of the last stmt.
6923
6924 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6925
6926         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
6927         V8HImode for SSE2 and V16QImode for SSE4.1.
6928
6929 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
6930
6931         * cgraph.h (compute_inline_parameters): Made public.
6932         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
6933         variable_generate_summary, function_write_summary,
6934         variable_write_summary, variable_read_summary.  Added generate_summary,
6935         write_summary, read_summary.
6936         * cgraphunit.c (cgraph_process_new_functions): Changed call from
6937         pass_ipa_inline.function_generate_summary, to
6938         compute_inline_parameters. 
6939         * ipa-inline.c (compute_inline_parameters): Made public and added
6940         node parameter.
6941         (compute_inline_parameters_for_current): New function.
6942         (pass_inline_param): Now calls compute_inline_parameters_for_current.
6943         (inline_generate_summary): Removed parameter and made to loop over
6944         all cgraph nodes.
6945         (pass_ipa_inline): Updated for new IPA_PASS structure.
6946         * passes.c (execute_ipa_summary_passes): Now is called once per
6947         pass rather than once per node*pass.
6948         
6949 2008-05-15  Anatoly Sokolov <aesok@post.ru>
6950
6951         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
6952         avr_have_mul_p, avr_asm_only_p): Remove variables.
6953         (avr_override_options): Remove initialization of removed variables.
6954         (avr_file_start):  Convert removed variables to fields of 
6955         'struct base_arch_s *avr_current_arch'. 
6956         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
6957         (AVR_HAVE_MUL): (Ditto.).
6958         (AVR_HAVE_MOVW): (Ditto.).
6959         (AVR_HAVE_LPMX): (Ditto.). 
6960         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
6961         avr_asm_only_p): Remove declaration.
6962
6963 2008-05-15  Diego Novillo  <dnovillo@google.com>
6964
6965         * config/arm/arm.c (arm_return_in_memory): Fix return type.
6966         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
6967
6968 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
6969
6970         PR middle-end/36194
6971         * combine.c (check_conversion): Rename back to check_promoted_subreg.
6972         Don't call record_truncated_value from here.
6973         (record_truncated_value): Turn it into a for_each_rtx callback.
6974         (record_truncated_values): New function.
6975         (combine_instructions): Call note_uses with record_truncated_values.
6976         Change name of check_conversion to check_promoted_subreg. 
6977
6978 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
6979
6980         * doc/sourcebuild.texi: Document support for torture tests.
6981
6982 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6983
6984         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
6985         to alternative 4 of operand 2.
6986
6987 2008-05-15  Richard Guenther  <rguenther@suse.de>
6988
6989         * tree-pass.h (current_pass): Declare.
6990         (get_pass_for_id): Likewise.
6991         * passes.c (passes_by_id, passes_by_id_size): New globals.
6992         (set_pass_for_id): New function.
6993         (get_pass_for_id): Likewise.
6994         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
6995         (execute_function_todo): Flush per function statistics.
6996         * toplev.c (compile_file): Init statistics.
6997         (general_init): Do early statistics initialization.
6998         (finalize): Finish statistics.
6999         * statistics.h (statistics_early_init): Declare.
7000         (statistics_init): Likewise.
7001         (statistics_fini): Likewise.
7002         (statistics_fini_pass): Likewise.
7003         (statistics_counter_event): Likewise.
7004         (statistics_histogram_event): Likewise.
7005         * statistics.c: New file.
7006         * Makefile.in (OBJS-common): Add statistics.o.
7007         (statistics.o): Add dependencies.
7008         * doc/invoke.texi (-fdump-statistics): Document.
7009
7010         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
7011         (insert): Likewise.
7012         (execute_pre): Use statistics_counter_event.
7013         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
7014         (substitute_and_fold): Increment it.  Use statistics_counter_event.
7015
7016 2008-05-15  Diego Novillo  <dnovillo@google.com>
7017
7018         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
7019
7020         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
7021         * tree-ssa-alias.c (new_type_alias): Remove references to
7022         sub-variables from comment.
7023         * tree-ssa-operands.c (swap_tree_operands): Likewise.
7024
7025 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
7026
7027         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
7028         attribute to 1 only for insertps alternative.
7029
7030 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
7031
7032         * config/bfin/bfin.md (loadbytes): New pattern.
7033         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
7034         (bfin_init_builtins): Initialize it.
7035         (bdesc_1arg): Add it.
7036
7037 2008-05-15  Sa Liu  <saliu@de.ibm.com>
7038
7039         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
7040         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
7041         * testsuite/lib/target-supports.exp: Add
7042         check_effective_target_fortran_integer_16.
7043
7044 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
7045
7046         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
7047         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
7048         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
7049         (TARGET_RETURN_IN_MEMORY): Define.
7050
7051 2008-05-15  Richard Guenther  <rguenther@suse.de>
7052
7053         PR middle-end/36244
7054         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
7055         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
7056         represent unmodifiable vars.
7057
7058 2008-05-15  Richard Guenther  <rguenther@suse.de>
7059
7060         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
7061         INDIRECT_REF and TARGET_MEM_REF.
7062         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
7063         TARGET_MEM_REF.
7064
7065 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
7066             H.J. Lu  <hongjiu.lu@intel.com>
7067
7068         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
7069         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
7070         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
7071         insn alternatives.  Add missing alternatives.
7072         (*vec_concatv2di_rex64_sse4_1): Likewise.
7073         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
7074         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
7075         Require TARGET_SSE.
7076
7077 2008-05-15  Richard Guenther  <rguenther@suse.de>
7078
7079         PR tree-optimization/36009
7080         PR tree-optimization/36204
7081         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
7082         (determine_invariantness_stmt): Record the loop a store is
7083         always executed in.
7084         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
7085         dependency.
7086
7087 2008-05-15  Richard Guenther  <rguenther@suse.de>
7088
7089         PR tree-optimization/34330
7090         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
7091         through the pointer will alias the SMT.
7092
7093 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
7094
7095         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
7096
7097 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
7098
7099         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
7100
7101 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
7102             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
7103
7104         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
7105         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
7106         (vashl_optab): New optab for vector/vector shifts.
7107         (vashr_optab): Ditto.
7108         (vlshr_optab): Ditto.
7109         (vrotl_optab): Ditto.
7110         (vrotr_optab): Ditto.
7111         (optab_subtype): New enum for optab_for_tree_code call.
7112         (optab_for_tree_code): Add enum optab_subtype argument.
7113
7114         * optabs.c (optab_for_tree_code): Take an additional argument to
7115         distinguish between a vector shift by a scalar and vector shift by
7116         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
7117         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
7118         vector shift by a vector.
7119         (expand_widen_pattern_expr): Pass additional argument to
7120         optab_for_tree_code.
7121
7122         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
7123         vrotl_optab, vrotr_optab.
7124
7125         * expr.c (expand_expr_real_1): Update calls to
7126         optab_for_tree_code to distinguish between vector shifted by a
7127         scalar and vector shifted by a vector.
7128         * tree-vectorizer.c (supportable_widening_operation): Ditto.
7129         (supportable_narrowing_operation): Ditto.
7130         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
7131         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
7132         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
7133         (vect_create_epilog_for_reduction): Ditto.
7134         (vectorizable_reduction): Ditto.
7135         (vectorizable_operation): Ditto.
7136         (vect_strided_store_supported): Ditto.
7137         (vect_strided_load_supported): Ditto.
7138         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
7139         * expmed.c (expand_shift): Ditto.
7140
7141         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
7142         scalar type.
7143         (ashr@var{m}3): Ditto.
7144         (vashl@var{m}3): Document new vector/vector shift standard name.
7145         (vashr@var{m}3): Ditto.
7146         (vlshr@var{m}3): Ditto.
7147         (vrotl@var{m}3): Ditto.
7148         (vrotr@var{m}3): Ditto.
7149
7150         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
7151         (PPERM_INVERT): Ditto.
7152         (PPERM_REVERSE): Ditto.
7153         (PPERM_REV_INV): Ditto.
7154         (PPERM_ZERO): Ditto.
7155         (PPERM_ONES): Ditto.
7156         (PPERM_SIGN): Ditto.
7157         (PPERM_INV_SIGN): Ditto.
7158         (PPERM_SRC1): Ditto.
7159         (PPERM_SRC2): Ditto.
7160
7161         * config/i386/sse.md (mulv2di3): Add SSE5 support.
7162         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
7163         allows a memory operand to be the value being added, and split it
7164         to improve vectorization.
7165         (sse5_pmacsdqh_mem): Ditto.
7166         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
7167         (sse5_mulv2div2di3_high): Ditto.
7168         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
7169         (vec_pack_trunc_v4si): Ditto.
7170         (vec_pack_trunc_v2di): Ditto.
7171         (sse5_pcmov_<mode>): Remove code that tried to use use
7172         andps/andnps instead of pcmov.
7173         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
7174         pmacsdqh instructions.
7175         (vec_widen_smult_lo_v4si): Ditto.
7176
7177         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
7178         (PPERM_INVERT): Ditto.
7179         (PPERM_REVERSE): Ditto.
7180         (PPERM_REV_INV): Ditto.
7181         (PPERM_ZERO): Ditto.
7182         (PPERM_ONES): Ditto.
7183         (PPERM_SIGN): Ditto.
7184         (PPERM_INV_SIGN): Ditto.
7185         (PPERM_SRC1): Ditto.
7186         (PPERM_SRC2): Ditto.
7187         (ix86_expand_sse_movcc): Move the SSE5 test after the if
7188         true/false tests.
7189         (ix86_expand_int_vcond): If SSE5 generate all possible integer
7190         comparisons.
7191         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
7192         says ignore whether the last reference is a memory operand.
7193
7194 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
7195             Paolo Bonzini <bonzini at gnu dot org>
7196
7197         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
7198         shift patterns.
7199
7200         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
7201         (vlshr<mode>3): Rename from vlshr<mode>3.
7202         (vashr<mode>3): Rename from vashr<mode>3.
7203         (mulv4sf3): Change the names of vector shift patterns.
7204         (mulv4si3): Ditto.
7205         (negv4sf2): Ditt.
7206
7207         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
7208         shift insns.
7209
7210         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
7211         (SI_SHLHI): Ditto.
7212         (SI_SHL): Ditto.
7213         (SI_SHLI): Ditto.
7214         (SI_ROTH): Ditto.
7215         (SI_ROTHI): Ditto.
7216         (SI_ROT): Ditto.
7217         (SI_ROTI): Ditto.
7218         (SPU_RL_0): Ditto.
7219         (SPU_RL_1): Ditto.
7220         (SPU_RL_2): Ditto.
7221         (SPU_RL_3): Ditto.
7222         (SPU_RL_4): Ditto.
7223         (SPU_RL_5): Ditto.
7224         (SPU_RL_6): Ditto.
7225         (SPU_RL_7): Ditto.
7226         (SPU_SL_0): Ditto.
7227         (SPU_SL_1): Ditto.
7228         (SPU_SL_2): Ditto.
7229         (SPU_SL_3): Ditto.
7230         (SPU_SL_4): Ditto.
7231         (SPU_SL_5): Ditto.
7232         (SPU_SL_6): Ditto.
7233         (SPU_SL_7): Ditto.
7234
7235         * config/spu/spu.md (v): New iterator macro to add v for vector types.
7236         (floatunssidf2_internal): Change vector/vector shift names.
7237         (floatunsdidf2_internal): Ditto.
7238         (mulv8hi3): Ditto.
7239         (ashrdi3): Ditto.
7240         (ashrti3): Ditto.
7241         (cgt_df): Ditto.
7242         (cgt_v2df): Ditto.
7243         (dftsv): Ditto.
7244         (vashl<mode>3): Rename from ashl<mode>3.
7245         (vashr<mode>3): Rename from ashr<mode>3.
7246         (vlshr<mode>3): Rename from lshr<mode>3.
7247         (vrotl<mode>3): Rename from rotl<mode>3.
7248
7249 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
7250
7251         PR target/36224
7252         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
7253         multiply gives the wrong value when doing widening multiplies.
7254         (vec_widen_smult_lo_v4si): Ditto.
7255
7256 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
7257
7258         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
7259         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
7260         emit_library_call_value. 
7261         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
7262         * tree.h (ECF_LIBCALL_BLOCK): Removed.
7263         * calls.c (initialize_argument_information, precompute_arguments, 
7264         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
7265         (precompute_arguments): Removed flags parameter.
7266         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
7267         
7268 2008-05-14  Richard Guenther  <rguenther@suse.de>
7269
7270         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
7271         Make sure to register the store if the use is a PHI_NODE.
7272
7273 2008-05-14  Olivier Hainque  <hainque@adacore.com>
7274
7275         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
7276         memory if the component is to be referenced in BLKmode according
7277         to get_inner_reference.
7278
7279 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
7280
7281         * calls.c (emit_library_call_value_1): Restore code clearing
7282         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
7283
7284 2008-05-14  Olivier Hainque  <hainque@adacore.com>
7285             Nicolas Roche  <roche@adacore.com>
7286
7287         * configure.ac: Add support for a "gcc_subdir" variable in
7288         config-lang.in, to denote a subdirectory where the language/GCC
7289         integration files are to be found.
7290         * configure: Regenerate.
7291
7292 2008-05-14  Ira Rosen  <irar@il.ibm.com>
7293
7294         PR tree-optimization/36098
7295         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
7296         value for the first load in the group in case of a gap.
7297         (vect_build_slp_tree): Check that there are no gaps in loads.
7298
7299 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
7300
7301         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
7302         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
7303         expand_copysign_bit, ): Change call to emit_no_conflict_block to
7304         emit_insn and remove unneeded code to construct extra args.
7305         (emit_no_conflict_block): Removed.
7306         * optabls.h: (emit_no_conflict_block): Removed.
7307         * cse.c (cse_extended_basic_block): Remove search for
7308         REG_NO_CONFLICT note.
7309         * global.c: Removed incorrect comment added in revision 117.
7310         * expr.c (convert_move): Change call to emit_no_conflict_block to
7311         emit_insn.
7312         * recog.c: Change comments so that they do not mention
7313         REG_NO_CONFLICT.
7314         * local_alloc.c (combine_regs): Removed last parameter.
7315         (no_conflict_p): Removed.
7316         (block_alloc): Removed note, no_conflict_combined_regno and set
7317         local vars. Removed all code to process REG_NO_CONFLICT blocks.
7318         (combine_regs): Removed already_dead and code to look for
7319         REG_NO_CONFLICT notes.
7320         * lower_subreg (remove_retval_note): Removed code to look for
7321         REG_NO_CONFLICT block.
7322         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
7323         (resolve_clobber): Remove code to process libcalls that have
7324         REG_NO_CONFLICT notes.
7325         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
7326         case.
7327         * combine.c (can_combine_p, distribute_notes):  Removed
7328         REG_NO_CONFLICT case.
7329         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
7330         to emit_insns.
7331         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
7332         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
7333         Ditto.
7334         * reg-notes.def (NO_CONFLICT): Removed.
7335
7336 2008-05-14  David S. Miller  <davem@davemloft.net>
7337
7338         * config/sparc/sparc.c (sparc_profile_hook): If
7339         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
7340         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
7341         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
7342
7343 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7344
7345         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
7346
7347 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
7348
7349         PR target/36222
7350         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
7351         and op1 expansion before vector concat to have less live pseudos.
7352
7353 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
7354
7355         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
7356         ix86_expand_vector_set if supported.
7357
7358 2008-05-13  Diego Novillo  <dnovillo@google.com>
7359             Kenneth Zadeck  <zadeck@naturalbridge.com>
7360
7361         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
7362
7363         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
7364         phinodes_print_statistics, init_ssanames, fini_ssanames,
7365         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
7366         release_ssa_name, release_defs, replace_ssa_name_symbol,
7367         ssanames_print_statistics): Move ...
7368         * tree-flow.h: ... here.
7369         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
7370         Use FN instead of cfun.
7371         (make_ssa_name_fn): Rename from make_ssa_name.
7372         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
7373         * tree-flow-inline.h (make_ssa_name): Move from
7374         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
7375         * omp-low.c (expand_omp_parallel):
7376         * tree-flow-inline.h (redirect_edge_var_map_result):
7377         * tree-ssa.c (init_tree_ssa): Add argument FN.
7378         Use it instead of cfun.  Update all users.
7379
7380 2008-05-13  Tom Tromey  <tromey@redhat.com>
7381
7382         PR preprocessor/22168:
7383         * doc/cpp.texi (Top): Update menu.
7384         (Alternatives to Wrapper #ifndef): New node.
7385         (Other Directives): Document deprecation.
7386         (Obsolete Features): Remove menu.
7387         (Assertions): Merge node into Obsolete Features.
7388         (Obsolete once-only headers): Move earlier; rename to Alternatives
7389         to Wrapper #ifndef.
7390         * doc/cppopts.texi: Update.
7391         * c.opt (Wdeprecated): Enable for C and ObjC.
7392         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
7393         (C++ Dialect Options): Move -Wno-deprecated from here to...
7394         (Warning Options): ... here.
7395
7396 2008-05-13  Richard Guenther  <rguenther@suse.de>
7397
7398         PR middle-end/36227
7399         * fold-const.c (fold_sign_changed_comparison): Do not allow
7400         changes in pointer-ness.
7401
7402 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7403
7404         PR target/24713
7405         * config/sh/sh.c (sh_expand_prologue): Don't clear
7406         RTX_FRAME_RELATED_P for push insns.
7407
7408 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
7409
7410         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
7411
7412 2008-05-12  Anatoly Sokolov <aesok@post.ru>
7413
7414         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
7415         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
7416         Use 'machine->is_leaf' instead of 'leaf_func_p'.
7417
7418 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7419
7420         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
7421         (*vec_concatv4sf_sse): This.
7422         (*sse2_concatv2si): Renamed to ...
7423         (*vec_concatv2si_sse2): This.
7424         (*sse1_concatv2si): Renamed to ...
7425         (*vec_concatv2si_sse): This.
7426         (*vec_concatv2di_rex): Renamed to ...
7427         (*vec_concatv2di_rex64): This.
7428         (*vec_concatv2si_sse4_1): New.
7429         (*vec_concatv2di_rex64_sse4_1): Likewise.
7430
7431 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
7432
7433         PR rtl-optimization/36111
7434         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
7435         that was created for swappable operands.
7436
7437 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
7438
7439         PR ada/36001
7440         * Makefile.in: Substitute GNATMAKE and GNATBIND.
7441         * configure.ac: Add call to ACX_PROG_GNAT.
7442
7443 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
7444
7445         * optc-gen.awk: Fix comment typo.
7446
7447 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7448
7449         * pretty-print.c (pp_integer_with_precision): Use
7450         HOST_LONG_LONG_FORMAT.
7451
7452 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
7453
7454         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
7455                 
7456 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
7457
7458         * config/i386/i386.c (bdesc_ptest): Removed.
7459         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
7460         (bdesc_args): Add __builtin_ia32_ptestz128,
7461         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
7462         (ix86_init_mmx_sse_builtins): Updated.
7463         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
7464         (ix86_expand_builtin): Updated.
7465
7466 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
7467
7468         * tree-cfg.c (valid_fixed_convert_types_p): New function.
7469         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
7470
7471 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
7472
7473         * value-prof.c (interesting_stringop_to_profile): Do not
7474         return early for BUILT_IN_MEMPCPY.
7475
7476 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7477
7478         * calls.c (expand_call): Don't use callgraph to increase
7479         preferred_stack_boundary.
7480
7481         * cgraph.h (cgraph_rtl_info): Use unsigned on
7482         preferred_incoming_stack_boundary.
7483
7484         * final.c (rest_of_clean_state): Use unsigned on
7485         preferred_stack_boundary.
7486
7487 2008-05-09  Tom Tromey  <tromey@redhat.com>
7488
7489         PR preprocessor/22231:
7490         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
7491         proceeding.
7492
7493 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
7494
7495         PR tree-optimization/36129
7496         * tree-ssa-ccp.c: Include value-prof.h.
7497         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
7498         built-in function was folded to a constant.
7499         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
7500
7501 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
7502             Sebastian Pop  <sebastian.pop@amd.com>
7503
7504         * tree-scalar-evolution.c: Document instantiate_scev.
7505         (instantiate_parameters_1): Renamed instantiate_scev_1.
7506         Don't use the same loop for instantiation_loop and evolution_loop.
7507         (instantiate_scev): New.
7508         (instantiate_parameters): Moved...
7509         (resolve_mixers): Update call to instantiate_scev_1 to pass the
7510         same loop twice.  Maintains the semantics for this function.
7511         * tree-scalar-evolution.h (instantiate_scev): Declare.
7512         (instantiate_parameters): ...here.  Now static inline.
7513         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
7514         instead of resolve_mixers.
7515
7516 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
7517
7518         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
7519
7520 2008-05-09  Tomas Bily  <tbily@suse.cz>
7521
7522         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
7523         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
7524         * tree-ssa-structalias.c (get_constraint_for): Likewise.
7525         * c-common.c (c_common_truthvalue_conversion): Likewise.
7526         * tree-object-size.c (compute_object_offset): Likewise.
7527         * tree-inline.c (estimate_num_insns_1): Likewise.
7528         * varasm.c (const_hash_1, compare_constant, copy_constant)
7529         (compute_reloc_for_constant, output_addressed_constants)
7530         (initializer_constant_valid_p): Likewise.
7531         * c-omp.c (check_omp_for_incr_expr): Likewise.
7532         * gimplify.c (gimplify_expr): Likewise.
7533         * c-typeck.c (c_finish_return): Likewise.
7534         * tree-vectorizer.c (supportable_widening_operation)
7535         (supportable_narrowing_operation): Likewise.
7536         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
7537         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
7538         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
7539         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
7540         (descr_info_loc): Likewise.
7541         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
7542         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
7543         (fold_unary): Likewise.
7544         * builtins.c (get_pointer_alignment): Likewise.
7545         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
7546         (instantiate_parameters_1): Likewise.
7547         * tree.c (expr_align, stabilize_reference): Likewise.
7548         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
7549         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7550         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
7551         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
7552         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
7553         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
7554         Likewise.
7555         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
7556         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
7557         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7558         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
7559         (forward_propagate_comparison)
7560         (tree_ssa_forward_propagate_single_use_vars): Likewise.
7561         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
7562         * emit-rtl.c (component_ref_for_mem_expr)
7563         (set_mem_attributes_minus_bitpos): Likewise.
7564         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
7565         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
7566         Likewise.
7567         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
7568         (build_function_call, pointer_diff, build_compound_expr)
7569         (c_finish_return): Likewise.
7570         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
7571         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
7572         Likewise.
7573         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
7574         * expr.c (is_aligning_offset): Likewise.
7575         * tree-ssa-alias.c (is_escape_site): Likewise.
7576         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
7577         (check_all_va_list_escapes): Likewise.
7578         * tree-ssa-loop-ivopts.c (determine_base_object)
7579         (determine_common_wider_type): Likewise.
7580         * dojump.c (do_jump): Likewise.
7581         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
7582         * tree-gimple.c (is_gimple_cast): Likewise.
7583         * fold-const.c (decode_field_reference, )
7584         (fold_sign_changed_comparison, fold_unary, fold_comparison)
7585         (fold_binary): Likewise.
7586         * tree-ssa-alias-warnings.c (find_alias_site_helper)
7587         (already_warned_in_frontend_p): Likewise.
7588         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
7589         * tree.c (really_constant_p, get_unwidened): Likewise.
7590         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7591         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
7592         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
7593         Likewise.
7594         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
7595         CONVERT_EXPR_P.
7596         (CONVERT_EXPR_P): Define.
7597         (CASE_CONVERT): Define.
7598         
7599 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
7600
7601         PR middle-end/36117
7602         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
7603         (delete_unmarked_insns): When deleting a call, call
7604         delete_unreachable_blocks.
7605         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7606         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
7607
7608 2008-05-08  Richard Guenther  <rguenther@suse.de>
7609
7610         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
7611         (-ftree-salias): Likewise.
7612         (salias-max-implicit-fields): Remove param documentation.
7613         (salias-max-array-elements): Likewise.
7614         * tree-pass.h (pass_create_structure_vars): Remove.
7615         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7616         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7617         * tree-ssa-alias.c (create_structure_vars): Remove.
7618         (gate_structure_vars): Likewise.
7619         (pass_create_structure_vars): Likewise.
7620         (gate_build_alias): Likewise.
7621         (pass_build_alias): Adjust to run always and dump the function.
7622         * common.opt (ftree-salias): Hide.
7623         * passes.c (init_optimization_passes): Remove
7624         pass_create_structure_vars, adjust comment.
7625         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7626         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7627         * opts.c (decode_options): Do not set flag_tree_salias.
7628         (common_handle_option): Add OPT_ftree_salias to the backward
7629         compatibility section.
7630
7631 2008-05-08  Richard Guenther  <rguenther@suse.de>
7632
7633         * tree-flow-inline.h (var_can_have_subvars): Move ...
7634         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
7635         * tree-flow.h (var_can_have_subvars): Remove.
7636         (push_fields_onto_fieldstack): Remove.
7637         (sort_fieldstack): Likewise.
7638         (struct fieldoff): Move ...
7639         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
7640         alias_set and base_for_components fields.
7641         (sort_fieldstack): Make static.
7642         (push_fields_onto_fieldstack): Likewise.  Remove code that
7643         handles anything but RECORD_TYPEs.  Remove alias_set and
7644         base_for_components handling.
7645         (create_variable_info_for): Adjust.
7646
7647 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
7648
7649         * common.opt (Wframe-larger-than=): Shorten the help message
7650         to one line.
7651         * doc/invoke.texi (Wframe-larger-than=): Add more description.
7652
7653 2008-05-08  Rafael Espindola  <espindola@google.com>
7654
7655         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
7656         trap.
7657         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
7658         trap and that both operands are gimple values.
7659         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
7660         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
7661         is a fp operation.
7662
7663 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7664
7665         * read-rtl.c (join_c_conditions): Return the first string if the
7666         two strings are equal.
7667
7668 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7669
7670         * gensupport.h (pred_data): Add a "num_codes" field.
7671         (add_predicate_code): Declare.
7672         * gensupport.c (add_predicate_code): New function.
7673         (std_pred_table): Add an "allows_const_p" field.
7674         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
7675         Remove the (incomplete) list of such codes from the codes field.
7676         (init_predicate_table): Use add_predicate_code.  Add all
7677         RTX_CONST_OBJs if allows_const_p is true.
7678         * genrecog.c (process_define_predicate): Use add_predicate_code.
7679
7680 2008-05-08  David Daney  <ddaney@avtrex.com>
7681             Richard Sandiford  <rsandifo@nildram.co.uk>
7682         
7683         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
7684         special case of constant zero operands.
7685         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
7686         old and new values.  Special case constant zero values.
7687         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
7688         fails.
7689         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
7690         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
7691
7692 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
7693
7694         PR target/36090
7695         * simplify-rtx.c (simplify_plus_minus): Create CONST of
7696         similar RTX_CONST_OBJ before CONST_INT.
7697
7698 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
7699
7700         * stmt.c (expand_stack_restore): Change sa mode if needed.
7701
7702 2008-05-08  Richard Guenther  <rguenther@suse.de>
7703
7704         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
7705         return type to bool.
7706         (ix86_sol10_return_in_memory): Likewise.
7707         (ix86_i386elf_return_in_memory): Likewise.
7708         (ix86_i386interix_return_in_memory): Likewise.
7709         * config/i386/i386.c (ix86_return_in_memory): Likewise.
7710         (ix86_sol10_return_in_memory): Likewise.
7711         (ix86_i386elf_return_in_memory): Likewise.
7712         (ix86_i386interix_return_in_memory): Likewise.
7713
7714 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7715
7716         PR bootstrap/36180
7717         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
7718         fndecl argument.
7719         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
7720         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
7721         declared in front.
7722
7723 2008-05-08  Richard Guenther  <rguenther@suse.de>
7724
7725         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
7726         * tree-data-ref.h (struct dr_alias): Remove subvars field.
7727         (DR_SUBVARS): Remove.
7728         * tree-dfa.c (dump_subvars_for): Remove.
7729         (debug_subvars_for): Likewise.
7730         (dump_variable): Do not dump subvars.
7731         (remove_referenced_var): Do not remove subvars.
7732         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
7733         (lookup_subvars_for_var): Remove.
7734         (get_subvars_for_var): Likewise.
7735         (get_subvars_at): Likewise.
7736         (get_first_overlapping_subvar): Likewise.
7737         (overlap_subvar): Likewise.
7738         * tree-flow.h (subvar_t): Remove.
7739         (struct var_ann_d): Remove subvars field.
7740         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
7741         argument.  Remove special handling of SFTs.
7742         (compute_tag_properties): Likewise.
7743         (set_initial_properties): Likewise.
7744         (compute_call_clobbered): Likewise.
7745         (count_mem_refs): Likewise.
7746         (compute_memory_partitions): Likewise.
7747         (compute_flow_insensitive_aliasing): Likewise.
7748         (setup_pointers_and_addressables): Likewise.
7749         (new_type_alias): Likewise.
7750         (struct used_part): Remove.
7751         (used_portions): Likewise.
7752         (struct used_part_map): Likewise.
7753         (used_part_map_eq): Likewise.
7754         (used_part_map_hash): Likewise.
7755         (free_used_part_map): Likewise.
7756         (up_lookup): Likewise.
7757         (up_insert): Likewise.
7758         (get_or_create_used_part_for): Likewise.
7759         (create_sft): Likewise.
7760         (create_overlap_variables_for): Likewise.
7761         (find_used_portions): Likewise.
7762         (create_structure_vars): Likewise.
7763         * tree.def (STRUCT_FIELD_TAG): Remove.
7764         * tree.h (MTAG_P): Adjust.
7765         (struct tree_memory_tag): Remove base_for_components and
7766         unpartitionable flags.
7767         (struct tree_struct_field_tag): Remove.
7768         (SFT_PARENT_VAR): Likewise.
7769         (SFT_OFFSET): Likewise.
7770         (SFT_SIZE): Likewise.
7771         (SFT_NONADDRESSABLE_P): Likewise.
7772         (SFT_ALIAS_SET): Likewise.
7773         (SFT_UNPARTITIONABLE_P): Likewise.
7774         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
7775         (union tree_node): Remove sft field.
7776         * alias.c (get_alias_set): Remove special handling of SFTs.
7777         * print-tree.c (print_node): Remove handling of SFTs.
7778         * tree-dump.c (dequeue_and_dump): Likewise.
7779         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
7780         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
7781         * tree-predcom.c (set_alias_info): Do not set subvars.
7782         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
7783         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
7784         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
7785         (add_vars_for_offset): Remove.
7786         (add_virtual_operand): Remove special handling of SFTs.
7787         (add_call_clobber_ops): Likewise.
7788         (add_call_read_ops): Likewise.
7789         (get_asm_expr_operands): Likewise.
7790         (get_modify_stmt_operands): Likewise.
7791         (get_expr_operands): Likewise.
7792         (add_to_addressable_set): Likewise.
7793         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
7794         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
7795         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
7796         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
7797         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
7798         (tree_node_structure): Likewise.
7799         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
7800         handling of SFTs.
7801         (find_what_p_points_to): Likewise.
7802
7803 2008-05-08  Sa Liu  <saliu@de.ibm.com>
7804
7805         * config/spu/spu.md: Fixed subti3 pattern.
7806
7807 2008-05-08  Richard Guenther  <rguenther@suse.de>
7808
7809         PR middle-end/36154
7810         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7811         sure to create a representative for trailing arrays for PTA.
7812
7813 2008-05-08  Richard Guenther  <rguenther@suse.de>
7814
7815         PR middle-end/36172
7816         * fold-const.c (operand_equal_p): Two objects which types
7817         differ in pointerness are not equal.
7818
7819 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7820
7821         * calls.c (compute_argument_block_size): Add argument tree fndecl.
7822         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
7823         (emit_library_call_value_1): Add new variable fndecl initialized by
7824         NULL_TREE. It should be the decl type of orgfun, but this information
7825         seems not to be available here, so it uses the default calling abi.
7826         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
7827         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
7828         by TARGET_RETURN_IN_MEMORY.
7829         * config/i386/i386-interix.h: Likewise.
7830         * config/i386/i386.h: Likewise.
7831         * config/i386/i386elf.h: Likewise.
7832         * config/i386/ptx4-i.h: Likewise.
7833         * config/i386/sol2-10.h: Likewise.
7834         * config/i386/sysv4.h: Likewise.
7835         * config/i386/vx-common.h: Likewise.
7836         * config/cris/cris.h: Removed #if 0 clause.
7837         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
7838         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
7839         argument.
7840         (ix86_sol10_return_in_memory): Likewise.
7841         (ix86_i386elf_return_in_memory): New.
7842         (ix86_i386interix_return_in_memory): New.
7843         * config/mt/mt-protos.h (mt_return_in_memory): New.
7844         * config/mt/mt.c: Likewise.
7845         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7846         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
7847         * config/bfin/bfin.h: Likewise.
7848         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
7849         argument.
7850         * config/bfin/bfin.c: Likewise.
7851         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7852         * config/alpha/unicosmk.h: Likewise.
7853         * config/i386/cygming.h: Likewise.
7854         * config/iq2000/iq2000.h: Likewise.
7855         * config/mips/mips.h: Likewise.
7856         * config/mn10300/mn10300.h: Likewise.
7857         * config/rs6000/rs6000.h: Likewise.
7858         * config/score/score.h: Likewise.
7859         * config/spu/spu.h: Likewise.
7860         * config/v850/v850.h: Likewise.
7861         * defaults.h: Likewise.
7862         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
7863         * expr.c (emit_block_move): Adjust use of
7864         OUTGOING_REG_PARM_STACK_SPACE.
7865         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
7866         OUTGOING_REG_PARM_STACK_SPACE.
7867         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
7868
7869 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
7870
7871         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
7872         on OMP_RETURN for OMP_FOR.
7873
7874         PR debug/35896
7875         * dwarf2out.c (dw_expand_expr, common_check): Removed.
7876         (fortran_common): New function.
7877         (gen_variable_die): Call fortran_common instead of common_check,
7878         adjust for it returning tree instead of rtx.  Formatting.
7879
7880 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7881
7882         PR rtl/7335
7883         PR rtl/33826
7884         * see.c (see_copy_insn): Copy new pure const attributes for new call.
7885         * c-decl.c (merge_decls): Ditto.
7886         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
7887         to RTL_CONST_OR_PURE_CALL_P.
7888         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
7889         Initialized DECL_LOOPING_CONST_PURE.
7890         (process_call_operands): Set tree_side_effects properly.
7891         * tree.h (TREE_READONLY_DECL_P): Removed.
7892         (DECL_IS_PURE): Renamed to DECL_PURE_P.
7893         (DECL_LOOPING_OR_CONST_P): New macro.
7894         (struct tree_function_decl): Added looping_const_or_pure_p.
7895         (ECF_*) Renumbered.
7896         (ECF_LOOPING_OR_CONST_P): New macro.
7897         * rtlanal.c (pure_const_p): Removed.
7898         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
7899         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
7900         to RTL_CONST_CALL_P.
7901         * ipa-pure-const.c (pure_const_state_e): Added looping field.
7902         (check_decl, check_tree, check_call, scan_function): Initialize
7903         looping.
7904         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
7905         (static_execute): Set looping true for recursive functions.
7906         Undo setting state to IPA_NEITHER for recursive functions.
7907         * cse.c (cse_insn): 
7908         * ifcvt.c (noce_can_store_speculate_p): Changed
7909         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
7910         RTL_CONST_OR_PURE_CALL_P.
7911         * dse.c (scan_insn): Ditto.
7912         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
7913         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
7914         RTL_CONST_OR_PURE_CALL_P.
7915         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
7916         pure_call_p to RTL_CONST_CALL_P.
7917         * gimplify.c (gimplify_call_expr): Clear side effects for
7918         non-looping pure and constant calls.
7919         * calls.c (emit_call_1): Set rtl flags from ecf flags.
7920         (flags_from_decl_or_type): Set ecf flags from decl flags.
7921         (initialize_argument_information): Turn off
7922         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
7923         Change const to pure if callee_copies is true rather than just
7924         turning off const.
7925         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
7926         way of marking pure calls.
7927         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
7928         Remove hack that was supposed to fix pr7335 and remove old
7929         way of marking pure calls.
7930         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
7931         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
7932         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
7933         RTL_CONST_OR_PURE_CALL_P.
7934         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
7935         * loop-invariant.c (find_exits, find_invariant_bb): Changed
7936         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
7937         * sched-deps.c (schedule_analyze): Ditto.
7938         * rtl.h (struct rtx_def): Use call field, unchanging field, and
7939         return_val field of calls to represent pure and const function info.
7940         (CONST_OR_PURE_CALL_P): Deleted macro.
7941         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7942         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
7943         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
7944         TREE_READONLY.
7945         * tree-optimize.c (execute_fixup_cfg): Added test for
7946         ECF_LOOPING_CONST_OR_PURE.
7947         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
7948         DECL_PURE_P.
7949         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
7950         effects for looping pure or const calls.
7951         (verify_gimple_expr): Added verification code. 
7952         * config/alpha/alpha.c (alpha_legitimize_address,
7953         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
7954         RTL_CONST_CALL_P.
7955         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
7956         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
7957         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
7958         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
7959         RTL_CONST_OR_PURE_CALL_P.
7960         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
7961         and const calls to be deleted.
7962
7963 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7964
7965         PR target/35714
7966         * config/i386/mmx.md (mmx_subv2sf3): New expander.
7967         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
7968         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
7969         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7970         to handle nonimmediate operands.
7971         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
7972         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
7973         to handle nonimmediate operands.
7974         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
7975         (mmx_pmulhrwv4hi3): New expander.  Use
7976         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7977         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
7978         (sse2_umulv1siv1di3): New expander.  Use
7979         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7980         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
7981         (mmx_eq<mode>3): New expander.  Use
7982         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7983         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
7984         (mmx_uavgv8qi3): New expander.  Use
7985         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7986         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
7987         (mmx_uavgv4hi3): New expander.  Use
7988         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7989
7990         * config/i386/sse.md
7991         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
7992         to handle nonimmediate operands.
7993         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
7994         to handle nonimmediate operands.
7995         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
7996         to handle nonimmediate operands.
7997         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
7998         to handle nonimmediate operands.
7999         (sse2_unpckhpd_exp): New expander.  Use
8000         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8001         (sse2_unpcklpd_exp): New expander.  Use
8002         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8003         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
8004         to handle nonimmediate operands.
8005         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
8006         to handle nonimmediate operands.
8007         (*sse2_<plusminus_insn><mode>3): Rename from
8008         sse2_<plusminus_insn><mode>3 insn pattern.
8009         (sse2_<plusminus_insn><mode>3): New expander.  Use
8010         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8011         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
8012         (sse2_umulv2siv2di3): New expander.  Use
8013         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8014         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
8015         (sse4_1_mulv2siv2di3): New expander.  Use
8016         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8017         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
8018         (sse2_pmaddwd): New expander.  Use
8019         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8020         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
8021         (sse2_eq<mode>3): New expander.  Use
8022         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8023         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
8024         (sse4_1_eqv2di3): New expander.  Use
8025         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8026         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
8027         (sse2_uavgv16qi3): New expander.  Use
8028         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8029         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
8030         (sse2_uavgv16qi3): New expander.  Use
8031         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8032         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
8033         (sse2_uavgv8hi3): New expander.  Use
8034         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8035         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
8036         (ssse3_pmulhrswv8hi3): New expander.  Use
8037         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8038         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
8039         (ssse3_pmulhrswv4hi3): New expander.  Use
8040         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8041
8042         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
8043         (<sse>_vmmul<mode>3): Ditto.
8044         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
8045         (divv2df3): Ditto.
8046         (ssse3_pmaddubsw128): Use register_operand for operand 1.
8047         (ssse3_pmaddubsw): Ditto.
8048
8049         * config/i386/i386.c (struct_builtin_description)
8050         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
8051         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
8052         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
8053         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
8054         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
8055         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
8056         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
8057         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
8058         (ix86_fixup_binary_operands): Assert that src1
8059         and src2 must have the same mode when swapped.
8060         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
8061         and ix86_binary_operator_ok.  Do not force operands in registers
8062         when optimizing.
8063
8064 2008-05-07  Jan Hubicka  <jh@suse.cz>
8065
8066         * cgraph.c (dump_cgraph_node): Update.
8067         * cgraph.h (cgraph_local_info): Break out inline summary.
8068         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
8069         hook.
8070         * ipa-inline (inline_summary): New accestor function.
8071         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
8072         cgraph_decide_inlining, compute_inline_parameters): Update.
8073         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
8074
8075 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
8076
8077         Cleanup ColdFire scheduling support and add V4 pipeline model.
8078
8079         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
8080         (define_attr cpu): Add cfv4 value.
8081         (define_attr type, define_attr type1): Merge into a single 'type'
8082         attribute.  Update all uses.
8083         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
8084         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
8085         Update all uses.
8086         (define_attr opx_mem, define_attr opy_mem): Remove.
8087         (define_attr op_mem): Clean up, update comment.
8088         (define_attr size): Use specific values instead of general int.
8089         (define_attr guess, define_attr split): Remove.  Update all uses.
8090         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
8091         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
8092         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
8093         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
8094         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
8095         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
8096         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
8097         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
8098         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
8099         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
8100         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
8101         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
8102         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
8103         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
8104         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
8105         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
8106         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
8107         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
8108         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
8109         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
8110         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
8111         Update or set attributes.
8112         (stack_tie): New fake instruction.
8113
8114         * config/m68k/m68k.h (TUNE_CFV4): New macro.
8115         (m68k_sched_attr_size): Update declaration.
8116         (m68k_sched_attr_type2): Remove.
8117         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
8118         Declare new bypass predicates.
8119
8120         * config/m68k/m68k.c (m68k_sched_issue_rate,
8121         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
8122         implementations.
8123         (TARGET_SCHED_ISSUE_RATE,
8124         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
8125         (override_options): Handle scheduling for ColdFire V4 core.
8126         (m68k_expand_prologue): Emit stack_tie.
8127         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
8128         'OP_TYPE_FPN'.  Update all uses.
8129         (sched_guess_p): Remove.
8130         (sched_address_type): Handle symbolic addresses.
8131         (sched_get_operand): New static function.
8132         (sched_operand_type): Merge into sched_attr_op_type.
8133         (sched_attr_op_type): Handle FP registers, handle quick constants,
8134         update.
8135         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
8136         (m68k_sched_attr_size): Update.  Move logic to ...
8137         (sched_get_attr_size_int): New static function.
8138         (sched_get_opxy_mem_type): New static function.
8139         (m68k_sched_attr_op_mem): Update.
8140         (m68k_sched_attr_type2): Remove.
8141         (sched_cfv4_bypass_data): New static variable.
8142         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
8143         (m68k_sched_issue_rate): Implement scheduler hook.
8144         (struct _sched_ib: enabled_p): New field.
8145         (m68k_sched_variable_issue): Update.  Handle V4.
8146         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
8147         sched_dump_class_func_t, sched_dump_split_class,
8148         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
8149         sched_dump_dfa_class, m68k_sched_dump): Remove.
8150         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
8151         hook.
8152         (m68k_sched_init_global): Remove statisctics dumping, introduce
8153         sanity check that all instructions have pipeline reservations.  Handle
8154         ColdFire V4 core.
8155         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
8156         Handle ColdFire V4 core.
8157         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
8158         New static functions.
8159         (m68k_sched_address_bypass_p): New bypass predicate.
8160         (sched_get_indexed_address_scale): New static function.
8161         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
8162
8163         * cf.md: Update comments.
8164         (define_attr type2): Remove.  Use 'type' attribute instead.
8165         Update all uses.
8166         (cf_ib): Rename to cfv123_ib.  Update all uses.
8167         (cf_oep): Rename to cfv123_oep.  Update all uses.
8168         (cf_chr): Rename to cfv123_chr.  Update all uses.
8169         (cf_mem): Rename to cfv123_mem.  Update all uses.
8170         (cf_mac): Move to more appropriate place.
8171         (cfv123_guess): New automaton and cpu_unit.
8172         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
8173         Update uses of 'size' attribute.  Handle before reload scheduling.
8174         (cfv123_guess): New dummy reservation for unhandled instructions.
8175         (cfv4_*): Pipeline description of ColdFire V4 core.
8176         (ignore): New reservation to handle 'ignore' type.
8177
8178 2008-05-07  Ian Lance Taylor  <iant@google.com>
8179
8180         PR middle-end/36013
8181         * gimplify.c (find_single_pointer_decl_1): Don't look through
8182         indirections.
8183         (find_single_pointer_decl): Adjust comments.
8184
8185 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
8186
8187         PR middle-end/36137
8188         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
8189         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
8190
8191         PR middle-end/36106
8192         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
8193         integral type rather than floating point, then VIEW_CONVERT_EXPR
8194         to the floating point type.
8195
8196 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
8197
8198         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
8199         TFmode op0 to register.
8200
8201 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
8202
8203         * c-decl.c (grokdeclarator): Comment typo.
8204
8205 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
8206
8207         * tree-flow.h: Remove prototype for computed_goto_p.
8208         * tree-cfg.c (computed_goto_p): Make static.
8209
8210 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8211
8212         PR target/35657
8213         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
8214         (contains_aligned_value_p): This.  Handle _Decimal128.
8215         (ix86_function_arg_boundary): Only align _Decimal128 to its
8216         natural boundary and handle it properly.
8217
8218 2008-05-06  Martin Jambor  <mjambor@suse.cz>
8219
8220         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
8221         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
8222         (ipcp_method_set_orig_node): Removed.
8223         (ipcp_cval_get_cvalue_type): Removed.
8224         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
8225         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
8226         (ipcp_cval_set_cvalue_type): Removed.
8227         (ipcp_cval_get_cvalue): Removed.
8228         (ipcp_cval_set_cvalue): Removed.
8229         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
8230         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
8231         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
8232         (ipcp_cval_meet): Renamed to ipa_lattice_meet
8233         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
8234         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
8235         (ipcp_get_ith_lattice): Changed parameters.
8236         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
8237         (ipcp_lattice_from_jfunc): Changed parameters.
8238         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
8239         (ipcp_method_cval_print): Added temporary variable info.
8240         (ipcp_redirect): Removed already unused local variable caller.
8241         (ipcp_redirect): New temporary variable orig_callee_info
8242         (ipcp_redirect): Removed newly unused local variable callee.
8243         (ipcp_redirect): Removed (a bit confusing) local variable type.
8244         (ipcp_insert_stage): Added local variable info.
8245         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
8246         renamed too
8247         (ipcp_formal_create): Removed.
8248         (ipcp_method_cval_set): Removed.
8249         (ipcp_propagate_stage): Renamed lattice variables.
8250         (ipcp_method_cval_set_cvalue_type): Removed.
8251         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
8252         (ipcp_print_all_lattices): Changed printed strings to refer to 
8253         lattices rather than cvals.
8254         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
8255         (ipcp_propagate_const): Changed formal parameters.
8256         (build_const_val): Changed formal parameters.
8257         (ipcp_insert_stage): Removed useless variable cvalue
8258         (build_const_val): Changed formal parameters.
8259         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
8260         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
8261         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
8262         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
8263         (ipcp_print_func_profile_counts): Changed string from "method" to 
8264         "function"
8265         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
8266         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
8267         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
8268         (ipcp_structures_print): Renamed to ipcp_print_all_structures
8269         (ipcp_profile_print): Renamed to ipcp_print_profile_data
8270         (ipcp_lat_is_const): Changed parameters and made inline.
8271         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
8272         (ipcp_redirect): Renamed to ipcp_need_redirect_p
8273         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
8274         the predicate condition directly
8275         (ipcp_propagate_stage): Added local variable args. Removed local
8276         variable callee.  (Both are mere code simplifications.)
8277         (ipcp_method_dont_insert_const): Renamed to
8278         ipcp_node_not_modifiable_p.
8279         (ipcp_node_not_modifiable_p): Made inline.
8280         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
8281         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
8282         (ipcp_print_all_lattices): Removed variable cvalue
8283         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
8284         Updated comments.
8285
8286 2008-05-06  Olivier Hainque  <hainque@adacore.com>
8287
8288         * tree-sra.c (try_instantiate_multiple_fields): Early return
8289         if field has POINTER_TYPE.
8290
8291 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
8292
8293         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
8294         by using 'q' specifier for instruction.
8295         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
8296
8297 2008-05-06  Anatoly Sokolov <aesok@post.ru>
8298
8299         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
8300         Change mode of zero_extract from QImode to HImode.
8301         (sign bit tests peepholes): (Ditto.).
8302
8303 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
8304
8305         * config/i386/mmx.md: Remove double backslashes from asm templates.
8306         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
8307         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
8308         to handle nonimmediate operands.
8309         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
8310         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
8311         to handle nonimmediate operands.
8312         (*mmx_<code>v2sf3_finite): New insn pattern.
8313         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
8314         (mmx_<code>v2sf3): New expander.  Use
8315         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8316         (mmx_<plusminus_insn><mode>3): New expander.  Use
8317         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8318         (*mmx_<plusminus_insn><mode>3): New insn pattern.
8319         (mmx_add<mode>3): Removed.
8320         (mmx_ssadd<mode>3): Ditto.
8321         (mmx_usadd<mode>3): Ditto.
8322         (mmx_sub<mode>3): Ditto.
8323         (mmx_sssub<mode>3): Ditto.
8324         (mmx_ussub<mode>3): Ditto.
8325         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
8326         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
8327         to handle nonimmediate operands.
8328         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
8329         insn pattern.
8330         (mmx_smulv4hi3_highpart): New expander.  Use
8331         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8332         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
8333         insn pattern.
8334         (mmx_umulv4hi3_highpart): New expander.  Use
8335         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8336         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
8337         (mmx_<code>v4hi3): New expander.  Use
8338         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8339         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
8340         (mmx_<code>v8qi3): New expander.  Use
8341         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8342         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
8343         (mmx_<code><mode>3): New expander.  Use
8344         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8345
8346 2008-05-05  Jan Hubicka  <jh@suse.cz>
8347
8348         PR tree-optimization/36118
8349         * passes.c (pass_init_dump_file): Fix dump header.
8350
8351 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8352
8353         PR middle-end/36141
8354         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
8355         VCE for function decls.
8356
8357 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
8358
8359         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
8360
8361 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
8362
8363         * config/i386/i386.md (sat_plusminus): New.
8364         (plusminus_insn): Likewise.
8365         (plusminus_mnemonic): Likewise.
8366         (addsub): Removed.
8367         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
8368         (*<addsub><mode>3_cc_overflow): Renamed to ...
8369         (*<plusminus_insn><mode>3_cc_overflow): This.
8370         (*<addsub>si3_zext_cc_overflow): Renamed to ...
8371         (*<plusminus_insn>si3_zext_cc_overflow): This.
8372
8373         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
8374         (<plusminus_insn><mode>3): This.
8375         (*<addsub><mode>3): Renamed to ...
8376         (*<plusminus_insn><mode>3): This.
8377         (<sse>_vm<addsub><mode>3): Renamed to ...
8378         (<sse>_vm<plusminus_insn><mode>3): This.
8379         (sse3_h<addsub>v4sf3): Renamed to ...
8380         (sse3_h<plusminus_insn>v4sf3): This.
8381         (sse3_h<addsub>v2df3): Renamed to ...
8382         (sse3_h<plusminus_insn>v2df3): This.
8383         (<plusminus_insn><mode>3): New.
8384         (*<plusminus_insn><mode>3): Likewise.
8385         (sse2_<plusminus_insn><mode>3): Likewise.
8386         (add<mode>): Removed.
8387         (*add<mode>3): Likewise.
8388         (sse2_ssadd<mode>3): Likewise.
8389         (sse2_usadd<mode>3): Likewise.
8390         (sub<mode>3): Likewise.
8391         (*sub<mode>3): Likewise.
8392         (sse2_sssub<mode>3): Likewise.
8393         (sse2_ussub<mode>3): Likewise.
8394
8395 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
8396
8397         * gthr-single.h: Add in required interface elements as per gthr.h.
8398         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
8399         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
8400         Generalize UNUSED macro. 
8401         (__gthread_once): Add.
8402         (__gthread_key_create): Add.
8403         (__gthread_key_delete): Add.
8404         (__gthread_getspecific): Add.
8405         (__gthread_setspecific): Add.
8406         
8407 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
8408
8409         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
8410         the same size types for the indirect reference on the rhs, then
8411         create a VCE.
8412
8413 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
8414
8415         * config/i386/i386.md
8416         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
8417         one insn template instead of template series.
8418         (*xordi_1_rex64): Ditto.
8419         (*xordi_2_rex64): Ditto.
8420
8421 2008-05-05  Ira Rosen  <irar@il.ibm.com>
8422
8423         PR tree-optimization/36119
8424         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
8425         in case of SLP.
8426
8427 2008-06-04  Jan Hubicka  <jh@suse.cz>
8428
8429         tree-optimization/36100
8430         * tree-pass.h (pass_O0_always_inline): Declare.
8431         * ipa-inline.c (inline_transform): Remove dead code.
8432         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
8433         pass_O0_always_inline): New.
8434         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
8435
8436 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
8437
8438         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
8439         mnemonic in this_param move for TARGET_64BIT.
8440
8441 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
8442
8443         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
8444         (*strmovsi_rex_1): Ditto.
8445         (*strsetsi_1): Ditto.
8446         (*strsetsi_rex_1): Ditto.
8447
8448         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
8449         adddicc expanders using SWI mode iterator.
8450
8451 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8452
8453         PR target/36121
8454         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
8455         argument handling.
8456
8457 2008-05-04  David S. Miller  <davem@davemloft.net>
8458
8459         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
8460         (sparc*-*-linux*): Use linux.h in tm_file.
8461         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
8462         compiler defaulting to 32-bit.
8463         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
8464         no longer needed.
8465         * config/sparc/linux.h: Remove definitions now obtained
8466         properly from linux.h
8467         * config/sparc/linux64.h: Likewise.
8468         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
8469         don't want this setting for 32-bit builds in a biarch compiler.
8470         * doc/install.texi: Add sparc-linux to list of targets
8471         supporting --enable-targets=all.
8472
8473 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
8474
8475         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
8476
8477 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
8478
8479         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
8480         after V4SI_FTYPE_V8HI.
8481         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
8482         case V4SI_FTYPE_V2DF.
8483
8484 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
8485
8486         * doc/invoke.texi (max-flow-memory-locations): Removed.
8487         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
8488         
8489 2008-05-03  Richard Guenther  <rguenther@suse.de>
8490
8491         PR middle-end/34973
8492         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
8493
8494 2008-05-02  David S. Miller  <davem@davemloft.net>
8495
8496         * config.gcc (need_64bit_hwint): Document libcpp dependency.
8497
8498 2008-05-02  Simon Baldwin <simonb@google.com>
8499
8500         PR bootstrap/36108
8501         * c-common.h (warn_array_subscript_range): Removed.
8502         * c-common.c (warn_array_subscript_range): Ditto.
8503         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
8504         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
8505
8506 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8507
8508         * config/i386/i386.c (ix86_special_builtin_type): New.
8509         (bdesc_special_args): Likewise.
8510         (ix86_expand_special_args_builtin): Likewise.
8511         (ix86_init_mmx_sse_builtins): Updated.
8512         (ix86_expand_builtin): Updated.
8513         (ix86_expand_store_builtin): Removed.
8514         (ix86_expand_unop_builtin): Likewise.
8515
8516         * config/i386/mm3dnow.h (__v2sf): Moved to ...
8517         * config/i386/mmintrin.h (__v2sf): Here.
8518
8519         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
8520         const __v2sf.
8521         (_mm_loadl_pi): Likewise.
8522         (_mm_storeh_pi): Replace __v2si with __v2sf.
8523         (_mm_storel_pi): Likewise.
8524
8525         * doc/extend.texi: Correct __builtin_ia32_loadhps,
8526         __builtin_ia32_loadlps, __builtin_ia32_storehps,
8527         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
8528         __builtin_ia32_loadlpd.
8529
8530 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8531
8532         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
8533         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
8534         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
8535         (ix86_init_mmx_sse_builtins): Updated.
8536         (ix86_expand_args_builtin): Likewise.
8537         (ix86_expand_builtin): Likewise.
8538         (ix86_expand_unop1_builtin): Renamed to ...
8539         (ix86_expand_unop_vec_merge_builtin): This.
8540
8541 2008-05-01  Jan Hubicka  <jh@suse.cz>
8542
8543         PR bootstrap/36100
8544         * ipa-inline.c (inline_generate_summary): Make static.
8545         (inline_transform): Do not call inlining at -O0; make static.
8546         * passes.c (execute_todo): Add sanity check.
8547         (execute_one_ipa_transform_pass): Execute proper flags.
8548
8549 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8550
8551         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
8552         (DECL_NONADDRESSABLE_P): Likewise.
8553         * alias.c (record_component_aliases): Fix comment.
8554
8555 2008-05-01  Simon Baldwin <simonb@google.com>
8556
8557         * c-common.h (warn_array_subscript_range): New function.
8558         * c-common.c (warn_array_subscript_range): Ditto.
8559         * tree-vrp.c (check_array_ref): Corrected code to agree with
8560         comment, ignoring only arrays of size 0 or size 1.
8561         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
8562
8563 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8564
8565         * config/i386/i386.c (ix86_builtin_type): Replace
8566         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
8567         (bdesc_args): Updated.
8568         (ix86_init_mmx_sse_builtins): Likewise.
8569         (ix86_expand_args_builtin): Likewise.
8570
8571         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
8572         with __v1di.
8573
8574         * doc/extend.texi: Correct __builtin_ia32_palignr.
8575
8576 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8577
8578         PR target/36095
8579         * config/i386/i386.c (bdesc_crc32): Removed.
8580         (ix86_expand_crc32): Likewise.
8581         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
8582         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
8583         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
8584         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
8585         UINT_FTYPE_UINT_UCHAR.
8586         (bdesc_args): Updated. Add crc32 builtins.
8587         (ix86_init_mmx_sse_builtins): Updated.
8588         (ix86_expand_args_builtin): Updated to support subreg.
8589
8590         * doc/extend.texi: Correct __builtin_ia32_crc32di.
8591
8592 2008-05-01  Jan Hubicka  <jh@suse.cz>
8593
8594         * tree-pass.h (opt_pass): Add IPA_PASS.
8595         (varpool_node, cgraph_node): Forward declare.
8596         (ipa_opt_pass): Define.
8597         (pass_ipa_inline): Turn into ipa_opt_pass.
8598         (pass_apply_inline): Remove.
8599         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
8600         (apply_inline): Turn into ....
8601         (inline_transform): ... this one.
8602         (inline_generate_summary): New function.
8603         (pass_apply_inline): Remove.
8604         * function.h (ipa_opt_pass): Forward declare structure; typedef;
8605         vector.
8606         (struct function): Add ipa_transforms_to_apply.
8607         * passes.c (register_one_dump_file): Work on IPA_PASS.
8608         (init_optimization_passes): Remove pass_inline_parameters and
8609         pass_apply_inline.
8610         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
8611         (execute_one_pass) ... here; apply transforms when possible.
8612         (add_ipa_transform_pass, execute_ipa_summary_asses,
8613         execute_one_ipa_transform_pass): New.
8614         (execute_ipa_pass_list): Update for IPA_PASS type.
8615
8616 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8617
8618         * config/i386/i386.c (ix86_builtin_type): Add
8619         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
8620         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
8621         (bdesc_args): Add SSE4a builtins.
8622         (ix86_init_mmx_sse_builtins): Updated.
8623         (ix86_expand_args_builtin): Likewise.
8624         (ix86_expand_builtin): Likewise.
8625
8626 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8627
8628         * config/i386/i386.c (ix86_builtin_type): Add
8629         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
8630         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
8631         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
8632         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
8633         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
8634         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
8635         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
8636         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
8637         and DI_FTYPE_DI_DI_INT.
8638         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
8639         (ix86_init_mmx_sse_builtins): Updated.
8640         (ix86_expand_args_builtin): Likewise.
8641         (ix86_expand_builtin): Likewise.
8642         (ix86_expand_binop_imm_builtin): Removed.
8643
8644         * doc/extend.texi: Correct __builtin_ia32_palignr128.
8645
8646 2008-04-30  Richard Guenther  <rguenther@suse.de>
8647
8648         PR tree-optimization/32921
8649         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
8650
8651 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
8652
8653         * config/arm/arm.c (arm_unwind_emit): Use
8654         crtl->all_throwers_are_sibcalls instead of
8655         cfun->all_throwers_are_sibcalls.
8656         (arm_output_fn_unwind): Likewise.
8657         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
8658         instead of cfun->uses_pic_offset_table.
8659         (frv_expand_prologue): Likewise.
8660         (frv_frame_pointer_required): Likewise.
8661         (frv_expand_fdpic_call): Likewise.
8662         (frv_emit_movsi): Likewise.
8663         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
8664         cfun->returns_pcc_struct instead of
8665         current_function_returns_pcc_struct.
8666         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
8667         instead of cfun->calls_eh_return.
8668         (m32c_pushm_popm): Likewise.
8669         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
8670         "extern" declaration.
8671
8672 2008-04-30  Richard Guenther  <rguenther@suse.de>
8673
8674         PR tree-optimization/21636
8675         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
8676         constant address.
8677         (evaluate_stmt): Print the likely value.
8678         (ccp_visit_stmt): Avoid excessive vertical spacing.
8679
8680 2008-04-30  Rafael Espindola  <espindola@google.com>
8681
8682         * builtins.c (fold_call_expr): Return realret.
8683         * tree-ssa-threadedge.c
8684         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
8685         __builtin_object_size.
8686
8687 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
8688
8689         * gcc.c (wrapper_string): New variable.
8690         (insert_wrapper): New function.
8691         (execute): New option -wrapper.
8692         * doc/invoke.texi (Overall Options): New driver option -wrapper.
8693
8694 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
8695
8696         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
8697         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
8698         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
8699         from...
8700         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
8701         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
8702         config/rs6000/e500crtres64gprctr.asm,
8703         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
8704         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
8705         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
8706         config/rs6000/e500crtsav64gprctr.asm,
8707         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
8708         config/rs6000/e500crtsavg64gprctr.asm: New files.
8709         * config/rs6000/t-ppccomm: Add build rules for new files.
8710         (LIB2FUNCS_STATIC_EXTRA): Add new files.
8711         * config/rs6000/t-netbsd: Add build rules for new files.
8712         (LIB2FUNCS_STATIC_EXTRA): New variable.
8713         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
8714         (CRTSAVRES_DEFAULT_SPEC): Likewise.
8715         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
8716
8717 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
8718
8719         * config/i386/i386.c (ix86_builtin_type): Add
8720         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
8721         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
8722         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
8723         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
8724         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
8725         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
8726         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
8727         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
8728         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
8729         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
8730         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
8731         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
8732         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
8733         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
8734         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
8735         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
8736         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
8737         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
8738         V1DI_FTYPE_V2SI_V2SI.
8739         (bdesc_2arg): Moved to ...
8740         (bdesc_args): Here.
8741         (ix86_init_mmx_sse_builtins): Updated.
8742         (ix86_expand_args_builtin): Updated.  Take a pointer
8743         to const struct builtin_description.  Handle comparison
8744         builtin functions.
8745         (ix86_expand_sse_compare): Take a new argument for swapping operands.
8746         (ix86_expand_builtin): Updated.
8747
8748         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
8749         (ssse3_pmaddubsw128): This.
8750         (ssse3_pmaddubswv4hi3): Renamed to ...
8751         (ssse3_pmaddubsw): This.
8752
8753         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
8754         (__builtin_ia32_packssdw128): Likewise.
8755         (__builtin_ia32_packuswb128): Likewise.
8756         (__builtin_ia32_pmaddubsw): Likewise.
8757         (__builtin_ia32_pmaddubsw128): Likewise.
8758
8759 2008-04-30  Richard Guenther  <rguenther@suse.de>
8760
8761         PR tree-optimization/14847
8762         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
8763         (recognize_bits_test): Use it.
8764         (recognize_single_bit_test): Likewise.
8765
8766 2008-04-30  Martin Jambor  <mjambor@suse.cz>
8767
8768         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
8769         instead of setting number of formal parameters to zero.
8770         (ipcp_init_stage): Do not set the number of actual parameters to zero 
8771         either.
8772         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
8773         which are called with variable number of arguments.
8774         (ipcp_insert_stage): Explicitely skipping all nodes which are
8775         called with variable number of arguments.
8776         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
8777         number of parameters.
8778
8779         * ipa-prop.h (struct ipa_node_params): Added flag
8780         called_with_var_arguments
8781         (ipa_set_param_count): Added.  Changed sole setter to use it.
8782         (ipa_get_param_count): Added.  All readers of param_count
8783         converted to use it instead.
8784         (ipa_set_called_with_variable_arg): Added.
8785         (ipa_is_called_with_var_arguments): Added.
8786         (ipa_get_ith_param): Added.  All readers of param_decls converted
8787         to use it instead.
8788         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
8789         changed to use it. 
8790         (ipa_get_cs_argument_count): Added, all readers of argument_count
8791         changed to cal it.
8792         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
8793         to use it.
8794         
8795         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
8796         (struct ipcp_lattice): Renamed cval_type to type
8797         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
8798
8799         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
8800         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
8801         (ipcp_insert_stage): Changed the type of variable cvalue to tree
8802         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
8803         (build_const_val): Changed the type of parameter cvalue to tree
8804         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
8805         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
8806         
8807         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
8808         constant 
8809
8810         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
8811         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
8812         (ipa_add_method): Renamed to ipa_push_func_to_list
8813         (ipa_remove_method): Renamed to ipa_pop_func_from_list
8814         (ipa_callsite_param_count): Removed.
8815         (ipa_callsite_param_count_set): Removed.
8816         (ipa_callsite_param): Removed.
8817         (ipa_callsite_callee): Removed.
8818         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
8819         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
8820         (ipa_method_formal_count): Removed.
8821         (ipa_method_formal_count_set): Removed.
8822         (ipa_method_get_tree): Removed.
8823         (ipa_method_tree_map_create): Removed.
8824         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
8825         (ipa_create_param_decls_array): Creates the array itself
8826         (ipa_create_param_decls_array): Temporary variable info instead of 
8827         a few dereferences.
8828         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
8829         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
8830         (get_type): Removed.
8831         (ipa_jf_get_info_type): Removed.
8832         (ipa_node_create): Renamed to ipa_create_node_params
8833         (ipa_free): Renamed to ipa_free_all_node_params
8834         (ipa_nodes_create): Renamed to ipa_create_all_node_params
8835         (ipa_edges_create): Renamed to ipa_create_all_edge_args
8836         (ipa_edges_free): Renamed to ipa_free_all_edge_args
8837         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
8838         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
8839         ipa_free_all_edge_args
8840         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
8841         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
8842         (ipa_create_methodlist_node): Removed.
8843         (ipa_methodlist_method): Removed.
8844         (ipa_methodlist_method_set): Removed.
8845         (ipa_methodlist_next_method): Removed.
8846         (ipa_methodlist_next_method_set): Removed.
8847         (ipa_method_is_modified): Removed.
8848         (ipa_method_modify_create): Removed.
8849         (ipa_method_modify_init): Temporary variable info instead of a few 
8850         dereferences.
8851         (ipa_detect_param_modifications): Temporary variable info instead of 
8852         a few dereferences.
8853         (ipa_compute_jump_functions): Temporary variable info instead of 
8854         a few dereferences.
8855         (ipa_method_modify_set): Removed.
8856         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
8857         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
8858         than craph_node as the first parameter.
8859         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
8860         (ipa_method_modify_init): Removed.
8861         (ipa_compute_jump_functions): Added a temp variable instead of 
8862         repeatadly dereferencing the cgraph_edge.aux pointer
8863         (ipa_callsite_param_set_type): Removed.
8864         (ipa_compute_jump_functions): i renamed to index and moved to 
8865         an inner block
8866         (ipa_callsite_param_set_info_type_formal): Removed.
8867         (ipa_callsite_param_set_info_type): Removed.
8868         (ipa_callsite_param_map_create): Removed.
8869         (ipa_callsite_tree): Removed.
8870         (ipa_callsite_caller): Removed.
8871         (ipa_pop_func_from_list): return_method removed to return_func
8872
8873         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
8874         prefixed all values with IPA_. Changed all users.
8875         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
8876         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
8877         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
8878         (union parameter_info): Renamed to jump_func_value.
8879         (union jump_func_value): Renamed value to constant
8880         (struct ipa_jump_func): Renamed info_type to value
8881         (struct ipa_node): Renamed to ipa_node_params
8882         (struct ipa_node_params): Renamed ipa_arg_num to param_count
8883         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
8884         (struct ipa_node_params): Renamed ipa_mod to modified_flags
8885         (struct ipa_edge): Renamed to ipa_edge_args
8886         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
8887         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
8888         (struct ipa_methodlist): Renamed to ipa_func_list
8889         (struct ipa_func_list): method_p renamed to node, next_method
8890         renamed to next
8891         (ipa_methodlist_p): Removed, switched all users to struct pointer
8892         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
8893
8894 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
8895
8896         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
8897         (rs6000_emit_epilogue): Use backchain to restore only when we
8898         have a large frame.  Make use of frame pointer to restore if we
8899         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
8900
8901 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
8902
8903         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
8904         Add mode to zero_extract.
8905         (sign bit tests peepholes): (Ditto.).
8906
8907 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8908
8909         * config/i386/i386.c (ix86_builtins): Replace Prescott New
8910         Instructions in comments with SSE3.
8911         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
8912         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
8913         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
8914         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
8915         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
8916         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
8917         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
8918         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
8919         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
8920         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
8921         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
8922         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
8923         (bdesc_sse_args): Renamed to ...
8924         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
8925         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
8926         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
8927         IX86_BUILTIN_FABSQ.
8928         (bdesc_1arg): Moved to ...
8929         (bdesc_args): Here.
8930         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
8931         Instructions in comments with SSE3.
8932         (ix86_expand_sse_operands_builtin): Renamed to ...
8933         (ix86_expand_args_builtin): This.  Updated.
8934         (ix86_expand_unop1_builtin): Update comments.
8935         (ix86_expand_builtin): Updated.
8936
8937 2008-04-29  Richard Guenther  <rguenther@suse.de>
8938
8939         PR tree-optimization/36078
8940         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
8941         Update virtual SSA form after cleaning up the CFG.
8942
8943 2008-04-29  Richard Guenther  <rguenther@suse.de>
8944
8945         PR middle-end/15255
8946         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
8947
8948 2008-04-29  Richard Guenther  <rguenther@suse.de>
8949
8950         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
8951         (compute_may_aliases): Do not call finalize_ref_all_pointers.
8952         (compute_flow_insensitive_aliasing): Do not treat
8953         PTR_IS_REF_ALL pointers special.
8954         (get_smt_for): Likewise.
8955         (may_alias_p): Re-structure.
8956         (is_escape_site): A ref-all pointer conversion is not an escape site.
8957         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
8958         PTR_IS_REF_ALL pointers special.
8959         * tree-ssa-structalias.h (struct alias_info): Remove
8960         ref_all_symbol_mem_tag field.
8961         (PTR_IS_REF_ALL): Remove.
8962
8963 2008-04-29  Richard Guenther  <rguenther@suse.de>
8964
8965         PR middle-end/36077
8966         * fold-const.c (extract_muldiv_1): In combining division constants
8967         make sure to never overflow.
8968
8969 2008-04-29  Nick Clifton  <nickc@redhat.com>
8970
8971         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
8972
8973 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8974
8975         PR bootstrap/35169
8976         * optc-gen.awk: Work around HP-UX/IA awk bug.
8977
8978 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
8979
8980         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
8981         2008-04-25 commit.
8982
8983 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8984
8985         PR target/36073
8986         * config/i386/i386.md
8987         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
8988         Change operand 1 predicate to nonimmediate_operand.
8989
8990 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
8991
8992         PR debug/36060
8993         * dwarf2out.c (struct die_struct): Mark as chain_circular through
8994         die_sub field.
8995         * gengtype.c (walk_type, write_func_for_structure): Handle
8996         chain_circular.
8997         * doc/gty.texi: Document chain_circular.
8998
8999 2008-04-28  Richard Guenther  <rguenther@suse.de>
9000
9001         PR tree-optimization/36066
9002         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
9003         SCEV and loop.
9004
9005 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
9006
9007         PR target/36064
9008         * config/i386/i386.md
9009         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
9010         Use match_scratch instead of match_operand for operands 3 and 4.
9011
9012 2008-04-27  Richard Guenther  <rguenther@suse.de>
9013
9014         PR tree-optimization/18754
9015         PR tree-optimization/34223
9016         * tree-pass.h (pass_complete_unrolli): Declare.
9017         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
9018         loop size before and after unconditionally of UL_NO_GROWTH in effect.
9019         Rewrite loop into loop closed SSA form if it is not already.
9020         (tree_unroll_loops_completely): Re-structure to iterate over
9021         innermost loops with intermediate CFG cleanups.
9022         Unroll outermost loops only if requested or the code does not grow
9023         doing so.
9024         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
9025         loops are available.
9026         (tree_vectorize): Instead do so here.
9027         (tree_complete_unroll): Also unroll outermost loops.
9028         (tree_complete_unroll_inner): New function.
9029         (gate_tree_complete_unroll_inner): Likewise.
9030         (pass_complete_unrolli): New pass.
9031         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
9032         uses outside of the loop.
9033         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
9034         form if it is available.  
9035         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
9036         * passes.c (init_optimization_passes): Schedule complete inner
9037         loop unrolling pass before the first CCP pass after final inlining.
9038
9039 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
9040
9041         * targhooks.h (default_emutls_var_fields,
9042         default_emutls_var_init): Declare.
9043         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
9044         * target.h (struct gcc_target): Add struct emutls member.
9045         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
9046         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
9047         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
9048         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
9049         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
9050         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
9051         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
9052         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
9053         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
9054         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
9055         emit debug information.
9056         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
9057         * varasm.c: Include targhooks.h.
9058         (emutls_object_section, emutls_tmpl_section): New.
9059         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
9060         (EMUTLS_SEPARATOR): New.
9061         (prefix_name): New.
9062         (get_emutls_object_name): New.
9063         (default_emutls_var_fields): New, broken out of ...
9064         (get_emutls_object_type): ... here.  Adjust to use target hooks.
9065         (get_emutls_init_templ_addr): Adjust to use target hooks.
9066         (emutls_decl): Adjust to use target hooks.
9067         (emutls_finish): Likewise.
9068         (default_emutls_var_init): New, broken out of ...
9069         (assemble_variable): ... here.  Adjust to use target hooks.
9070         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
9071         SECCAT_EMUTLS_TMPL.
9072         * c-common.c (handle_section_attribute): Prevent overriding
9073         sections for emulated tls with special sections.
9074         * config/i386/i386.c (x86_64_elf_select_section): Add
9075         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
9076         (x86_64_elf_unique_section): Likewise.
9077         * config/vxworks.c: Include tree.h.
9078         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
9079         (vxworks_override_options): Set TLS scheme.
9080         * doc/tm.texi (Emulated TLS): New node.
9081
9082 2008-04-26  Simon Baldwin <simonb@google.com>
9083
9084         PR c/35652
9085         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
9086         with propagated string constants.
9087
9088 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
9089
9090         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
9091         constraint for operand 2 when operand 0 is memory operand.
9092         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
9093         operand 0 is memory operand.
9094         (fix_trunc<mode>_i387_with_temp): Ditto.
9095         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
9096         operand 2 when operand 1 is memory operand.
9097         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
9098         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
9099         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
9100         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
9101         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
9102         operands 2,3 and 4 when operand 1 is memory operand.
9103         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
9104         is memory operand.
9105         (fistdi2_floor_with_temp): Ditto.
9106         (fist<mode>2_floor_with_temp): Ditto.
9107         (fistdi2_ceil_with_temp): Ditto.
9108         (fist<mode>2_ceil_with_temp): Ditto.
9109         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
9110
9111 2008-04-26  David Daney  <ddaney@avtrex.com>
9112
9113         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
9114         unspec_volitile.
9115         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
9116         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
9117         UNSPEC_UPDATE_GOT_VERSION): Renumber.
9118         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
9119         (compare_and_swap_12): New insn.
9120         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
9121         * config/mips/mips.c (mips_force_binary): New function.
9122         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
9123         (mips_expand_compare_and_swap_12): New function.
9124         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
9125
9126 2008-04-25  Jan Hubicka  <jh@suse.cz>
9127
9128         PR testsuite/35843
9129         * cfgexpand.c (pass_expand): Turn into RTL pass.
9130         * passes.c (execute_one_pass): Do pass typechecking after execution.
9131         * tree-pass.h (pass_expand): Turn into RTL pass.
9132
9133         * function.h (struct rtl_data): Move here fields
9134         accesses_prior_frames, calls_eh_return, saves_all_registers,
9135         has_nonlocal_goto, has_asm_statement, is_thunk,
9136         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
9137         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
9138         arg_pointer_save_area_init from struct function; turn into bool.
9139         (struct function): Move
9140         calls_eh_return, saves_all_registers, has_nonlocal_goto,
9141         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
9142         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
9143         tail_call_emit, arg_pointer_save_area_init
9144         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
9145         (current_function_returns_struct, current_function_returns_pcc_struct,
9146         current_function_calls_setjmp, current_function_calls_alloca,
9147         current_function_accesses_prior_frames,
9148         current_function_calls_eh_return, current_function_is_thunk,
9149         current_function_stdarg, current_function_profile,
9150         current_function_limit_stack, current_function_uses_pic_offset_table,
9151         current_function_uses_const_pool, current_function_has_nonlocal_label,
9152         current_function_saves_all_registers,
9153         current_function_has_nonlocal_goto,
9154         current_function_has_asm_statement): Remove accesor macros.
9155         * ra-conflict.c (global_conflicts): Update.
9156         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
9157         (suitable_for_tail_call_opt_p): Update.
9158         * builtins.c (expand_builtin_return_addr): Update.
9159         (expand_builtin_setjmp_setup): Update.
9160         (expand_builtin_nonlocal_goto): Update.
9161         * final.c (final_start_function): Update.
9162         (profile_function): Update.
9163         (leaf_function_p): Update.
9164         (only_leaf_regs_used): Update.
9165         * df-scan.c (df_get_exit_block_use_set): Update.
9166         * dojump.c (clear_pending_stack_adjust): Update.
9167         * tree-stdarg.c (gate_optimize_stdarg): Update.
9168         * gimple-low.c (lower_function_body): Update.
9169         * global.c (compute_regsets): Update.
9170         (global_alloc): Update.
9171         * dwarf2out.c (dwarf2out_begin_prologue): Update.
9172         * expr.c (expand_assignment): Update.
9173         * dse.c (dse_step0): Update.
9174         (dse_step1): Update.
9175         * c-decl.c (store_parm_decls): Update.
9176         * local-alloc.c (combine_regs): Update.
9177         (find_free_reg): Update.
9178         * function.c (assign_parms_augmented_arg_list): Update.
9179         (assign_parm_find_data_types): Update.
9180         (assign_parms): Update.
9181         (allocate_struct_function): Update.
9182         (expand_function_start): Update.
9183         (expand_function_end): Update.
9184         (get_arg_pointer_save_area): Update.
9185         (thread_prologue_and_epilogue_insns): Update.
9186         (rest_of_match_asm_constraints): Update.
9187         * stor-layout.c (variable_size): Update.
9188         * gcse.c (gcse_main): Update.
9189         (bypass_jumps): Update.
9190         * gimplify.c (gimplify_function_tree): Update.
9191         * calls.c (emit_call_1): Update.
9192         (expand_call): Update.
9193         * bt-load.c (compute_defs_uses_and_gen): Update.
9194         * except.c (sjlj_assign_call_site_values): Update.
9195         (sjlj_emit_function_enter): Update.
9196         (can_throw_external): Update.
9197         (set_nothrow_function_flags): Update.
9198         (expand_builtin_unwind_init): Update.
9199         (expand_eh_return): Update.
9200         (convert_to_eh_region_ranges): Update.
9201         (output_function_exception_table): Update.
9202         * emit-rtl.c (gen_tmp_stack_mem): Update.
9203         * cfgexpand.c (expand_used_vars): Update.
9204         (tree_expand_cfg): Update.
9205         * cfgcleanup.c (rest_of_handle_jump): Update.
9206         * explow.c (allocate_dynamic_stack_space): Update.
9207         * varasm.c (assemble_start_function): Update.
9208         (force_const_mem): Update.
9209         (mark_constant_pool): Update.
9210         * tree-optimize.c (tree_rest_of_compilation): Update.
9211         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
9212         * tree-cfg.c (notice_special_calls): Update.
9213         (is_ctrl_altering_stmt): Update.
9214         (tree_can_make_abnormal_goto): Update.
9215         (tree_purge_dead_abnormal_call_edges): Update.
9216         * config/alpha/predicates.md: Update.
9217         * config/alpha/alpha.c (alpha_sa_mask): Update.
9218         (alpha_sa_size): Update.
9219         (alpha_does_function_need_gp): Update.
9220         (alpha_expand_prologue): Update.
9221         (alpha_start_function): Update.
9222         (alpha_output_function_end_prologue): Update.
9223         (alpha_expand_epilogue): Update.
9224         * config/frv/frv.c (frv_stack_info): Update.
9225         (frv_expand_epilogue): Update.
9226         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
9227         (s390_register_info): Update.
9228         (s390_frame_info): Update.
9229         (s390_init_frame_layout): Update.
9230         (s390_can_eliminate): Update.
9231         (save_gprs): Update.
9232         * config/spu/spu.c (spu_split_immediate): Update.
9233         (need_to_save_reg): Update.
9234         (spu_expand_prologue): Update.
9235         (spu_expand_epilogue): Update.
9236         * config/sparc/sparc.md: Update.
9237         * config/sparc/sparc.c (eligible_for_return_delay): Update.
9238         (sparc_tls_got): Update.
9239         (legitimize_pic_address): Update.
9240         (sparc_emit_call_insn): Update.
9241         (sparc_expand_prologue): Update.
9242         (output_return): Update.
9243         (print_operand): Update.
9244         (sparc_function_ok_for_sibcall): Update.
9245         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
9246         * config/m32r/m32r.md: Update.
9247         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
9248         (m32r_compute_frame_size): Update.
9249         (m32r_expand_prologue): Update.
9250         (m32r_expand_epilogue): Update.
9251         (m32r_legitimize_pic_address): Update.
9252         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
9253         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
9254         * config/i386/i386.c (ix86_frame_pointer_required): Update.
9255         (gen_push): Update.
9256         (ix86_save_reg): Update.
9257         (ix86_compute_frame_layout): Update.
9258         (ix86_expand_prologue): Update.
9259         (ix86_expand_epilogue): Update.
9260         * config/sh/sh.c (output_stack_adjust): Update.
9261         (calc_live_regs): Update.
9262         (sh5_schedule_saves): Update.
9263         (sh_expand_prologue): Update.
9264         (sh_expand_epilogue): Update.
9265         (sh_setup_incoming_varargs): Update.
9266         (sh_allocate_initial_value): Update.
9267         (sh_get_pr_initial_val): Update.
9268         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
9269         * config/sh/sh.md (label:): Update.
9270         * config/avr/avr.c (out_movhi_mr_r): Update.
9271         * config/crx/crx.h (enum): Update.
9272         * config/xtensa/xtensa.h (along): Update.
9273         * config/stormy16/stormy16.c Update.
9274         (xstormy16_compute_stack_layout): Update.
9275         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
9276         (fr30_expand_prologue): Update.
9277         * config/cris/cris.c (cris_conditional_register_usage): Update.
9278         (cris_reg_saved_in_regsave_area): Update.
9279         (cris_initial_frame_pointer_offset): Update.
9280         (cris_simple_epilogue): Update.
9281         (cris_expand_prologue): Update.
9282         (cris_expand_epilogue): Update.
9283         (cris_expand_pic_call_address): Update.
9284         (cris_asm_output_symbol_ref): Update.
9285         (cris_asm_output_label_ref): Update.
9286         * config/cris/cris.md Update.
9287         * config/iq2000/iq2000.c (compute_frame_size): Update.
9288         (iq2000_expand_epilogue): Update.
9289         * config/mt/mt.h (save_direction): Update.
9290         * config/mn10300/mn10300.c (mn10300_function_value): Update.
9291         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
9292         (ia64_secondary_reload_class): Update.
9293         * config/m68k/m68k.c (m68k_save_reg): Update.
9294         (m68k_expand_prologue): Update.
9295         (m68k_expand_epilogue): Update.
9296         (legitimize_pic_address): Update.
9297         * config/rs6000/rs6000.c (rs6000_got_register): Update.
9298         (first_reg_to_save): Update.
9299         (first_altivec_reg_to_save): Update.
9300         (compute_vrsave_mask): Update.
9301         (compute_save_world_info): Update.
9302         (rs6000_stack_info): Update.
9303         (spe_func_has_64bit_regs_p): Update.
9304         (rs6000_ra_ever_killed): Update.
9305         (rs6000_emit_eh_reg_restore): Update.
9306         (rs6000_emit_allocate_stack): Update.
9307         (rs6000_emit_prologue): Update.
9308         (rs6000_emit_epilogue): Update.
9309         (rs6000_output_function_epilogue): Update.
9310         (output_profile_hook): Update.
9311         (rs6000_elf_declare_function_name): Update.
9312         * config/rs6000/rs6000.h (rs6000_args): Update.
9313         * config/rs6000/rs6000.md: Update.
9314         * config/mcore/mcore.c (mcore_expand_prolog): Update.
9315         * config/arc/arc.c (arc_output_function_epilogue): Update.
9316         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
9317         * config/darwin.c (machopic_function_base_name): Update.
9318         * config/score/score3.c (score3_compute_frame_size): Update.
9319         (rpush): Update.
9320         (rpop): Update.
9321         (score3_epilogue): Update.
9322         * config/score/score7.c (score7_compute_frame_size): Update.
9323         (score7_prologue): Update.
9324         (score7_epilogue): Update.
9325         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
9326         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
9327         * config/arm/arm.c (use_return_insn): Update.
9328         (require_pic_register): Update.
9329         (arm_load_pic_register): Update.
9330         (arm_compute_save_reg0_reg12_mask): Update.
9331         (arm_compute_save_reg_mask): Update.
9332         (thumb1_compute_save_reg_mask): Update.
9333         (output_return_instruction): Update.
9334         (arm_output_function_prologue): Update.
9335         (arm_output_epilogue): Update.
9336         (arm_get_frame_offsets): Update.
9337         (arm_expand_prologue): Update.
9338         (thumb_pushpop): Update.
9339         (thumb_exit): Update.
9340         (thumb1_expand_prologue): Update.
9341         (thumb1_expand_epilogue): Update.
9342         (arm_unwind_emit): Update.
9343         (arm_output_fn_unwind): Update.
9344         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
9345         * config/arm/arm.md: Update.
9346         * config/pa/pa.md: Update.
9347         * config/pa/pa.c (legitimize_pic_address): Update.
9348         (compute_frame_size): Update.
9349         (hppa_expand_prologue): Update.
9350         (hppa_expand_epilogue): Update.
9351         (borx_reg_operand): Update.
9352         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
9353         (HARD_REGNO_RENAME_OK): Update.
9354         * config/mips/mips.c (mips_global_pointer): Update.
9355         (mips_save_reg_p): Update.
9356         (mips_compute_frame_info): Update.
9357         (mips_frame_pointer_required): Update.
9358         (mips_expand_prologue): Update.
9359         (mips_expand_epilogue): Update.
9360         (mips_can_use_return_insn): Update.
9361         (mips_reorg_process_insns): Update.
9362         * config/v850/v850.c (compute_register_save_size): Update.
9363         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
9364         * config/mmix/mmix.c (along): Update.
9365         (mmix_expand_epilogue): Update.
9366         * config/bfin/bfin.c (legitimize_pic_address): Update.
9367         (must_save_p): Update.
9368         (stack_frame_needed_p): Update.
9369         (add_to_reg): Update.
9370         (bfin_expand_prologue): Update.
9371         * stmt.c (expand_asm_operands): Update.
9372         * reload1.c (reload): Update.
9373         (init_elim_table): Update.
9374
9375 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
9376         
9377         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
9378         
9379 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
9380
9381         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
9382         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
9383         (mov<mode>): Removed.
9384         (*movv4sf_internal): Likewise.
9385         (*movv2df_internal): Likewise.
9386
9387 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
9388
9389         * config.gcc (crx-*-elf): Remove deprecation.
9390
9391 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
9392
9393         * config/i386/cygming-crtend.c (register_frame_ctor): Register
9394         __gcc_deregister_frame with atexit.
9395         (deregister_frame_dtor): Remove.
9396
9397 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
9398             Nathan Sidwell  <nathan@codesourcery.com>
9399
9400         * config/rs6000/rs6000.opt (mspe): Remove Var property.
9401         (misel): Likewise.
9402         * config/rs6000/rs6000.h (rs6000_spe): Declare.
9403         (rs6000_isel): Likewise.
9404         * config/rs6000/rs6000.c (rs6000_spe): New variable.
9405         (rs6000_isel): New variable.
9406         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
9407
9408 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9409
9410         PR c++/35758
9411         * c-common.c (handle_vector_size_attribute): Call
9412         lang_hooks.types.reconstruct_complex_type instead of
9413         reconstruct_complex_type.
9414         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
9415         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
9416         * langhooks.h (struct lang_hooks_for_types): Add
9417         reconstruct_complex_type hook.
9418         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
9419         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
9420
9421 2008-04-24  Richard Guenther  <rguenther@suse.de>
9422
9423         * c-common.h (check_builtin_function_arguments): Declare.
9424         * c-common.c (validate_nargs): New function.
9425         (check_builtin_function_arguments): Likewise.
9426         * c-typeck.c (build_function_call): Call
9427         check_builtin_function_arguments.
9428         * builtins.c (fold_builtin_classify): Remove error reporting code.
9429         (fold_builtin_unordered_cmp): Likewise.
9430         (fold_builtin_1): Likewise.
9431         (fold_builtin_n): Likewise.
9432
9433 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9434
9435         PR tree-optimization/36008
9436         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
9437         the original op1, rather than delta by step.
9438
9439 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
9440             Sebastian Pop  <sebastian.pop@amd.com>
9441
9442         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
9443         eliminate_local_variables_stmt, eliminate_local_variables,
9444         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
9445         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
9446         of code delimited by two edges in the CFG.
9447         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
9448         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
9449         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
9450         the case of parallelisation of reductions.
9451         (expr_invariant_in_region_p): New.
9452
9453         * tree-flow.h (gather_blocks_in_sese_region): Declared.
9454         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
9455
9456 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9457             Richard Guenther  <rguenther@suse.de>
9458
9459         PR tree-optimization/36034
9460         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
9461         incapable of dealing with loads with gaps.
9462
9463 2008-04-24  Rafael Espindola  <espindola@google.com>
9464
9465         * tree-flow.h (vrp_evaluate_conditional): Change signature.
9466         * tree-ssa-propagate.c (fold_predicate_in): Update call to
9467         vrp_evaluate_conditional.
9468         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
9469         (vrp_evaluate_conditional): Split the cond argument.
9470         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
9471         (simplify_stmt_for_jump_threading): Update call to
9472         vrp_evaluate_conditional.
9473
9474 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9475
9476         PR tree-optimization/35982
9477         * tree-vect-analyze.c (vect_check_interleaving): Check that the
9478         interleaved data-refs are of the same type.
9479
9480 2008-04-24  Danny Smith  <dannysmith@users.net>
9481
9482         * c-format.c (check_format_info_main): Use strncmp rather than a
9483         magic prefix to handle multichar length specs.
9484         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
9485         Don't prefix "I64" and "I32" with '\0'.
9486
9487 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9488
9489         PR target/36015
9490         * config/i386/i386.c (init_cumulative_args): Don't pass anything
9491         in registers for -m32 only if stdarg_p (fntype).
9492
9493 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
9494
9495         PR rtl-optimization/36006
9496         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
9497         temp to op0 in order to avoid invalid rtx sharing.
9498
9499 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
9500
9501         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
9502         check TREE_INVARIANT.
9503         * tree-gimple.c (is_gimple_address): New.
9504         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
9505         * tree-gimple.h (is_gimple_address): New.
9506         * tree.h (decl_address_invariant_p): New.
9507         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
9508         (build_string): Likewise.
9509         (decl_address_invariant_p): New, from is_gimple_invariant_address.
9510         (tree_invariant_p_1): Likewise.
9511         (save_expr): Use it.
9512         (tree_invariant_p): New.
9513         (skip_simple_arithmetic): Use it.
9514         (stabilize_reference_1): Use it.
9515         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
9516         simplify.
9517         (build1_stat): Drop code to compute TREE_INVARIANT.
9518         (build2_stat): Drop code to compute TREE_INVARIANT.
9519         (build3_stat): Drop code to compute TREE_INVARIANT.
9520         (build4_stat): Drop code to compute TREE_INVARIANT.
9521         (build5_stat): Drop code to compute TREE_INVARIANT.
9522         (build7_stat): Drop code to compute TREE_INVARIANT.
9523         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
9524         * tree.h (struct tree_base): Remove invariant_flag.
9525         (TREE_INVARIANT): Remove.
9526         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
9527         (fold_builtin_expect): Check TREE_CONSTANT.
9528         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
9529         * c-tree.h (c_expr_to_decl): Drop third parameter.
9530         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
9531         (build_c_cast): Don't set TREE_INVARIANT.
9532         (pop_init_level): Don't set TREE_INVARIANT.
9533         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
9534         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
9535         TREE_CONSTANT.
9536         (gimplify_init_constructor): Don't set TREE_INVARIANT.
9537         (gimplify_addr_expr): Adjust comment.
9538         * tree-mudflap.c (mf_build_string):
9539         * print-tree.c (print_node): Don't print TREE_INVARIANT.
9540         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
9541         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
9542         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
9543         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
9544         * langhooks.h (struct lang_hooks): Drop third parameter from
9545         expr_to_decl.
9546
9547 2008-04-23  Richard Guenther  <rguenther@suse.de>
9548
9549         PR tree-optimization/27799
9550         PR tree-optimization/32921
9551         PR tree-optimization/32624
9552         * tree-ssa-structalias.c (merge_smts_into): Only merge the
9553         SMTs aliases and the tag itself into the solution.
9554         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
9555         merge the points-to solution back into the SMT aliases.
9556         (may_alias_p): Use alias_set_subset_of instead of
9557         aliases_conflict_p.  A pointer which points to
9558         memory with alias set zero may access any variable.
9559
9560 2008-04-23  Richard Guenther  <rguenther@suse.de>
9561
9562         * alias.c (alias_set_subset_of): Correctly handle asking
9563         if zero is a subset of an alias set with zero child.
9564         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
9565         (compute_flow_insensitive_aliasing): Correctly walk all
9566         pointers.  Do not unnecessarily union sets.
9567
9568 2008-04-23  Richard Guenther  <rguenther@suse.de>
9569
9570         PR middle-end/36021
9571         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
9572
9573 2008-04-22  Tomas Bily  <tbily@suse.cz>
9574
9575         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
9576         unreachable case.
9577         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
9578         NON_LVALUE_EXPR.
9579         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9580         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9581         * tree-inline.c (estimate_num_insns_1): Likewise.
9582         * varasm.c (const_hash_1, compare_constant, copy_constant)
9583         (compute_reloc_for_constant, output_addressed_constants): Likewise.
9584         * emit-rtl.c (component_ref_for_mem_expr)
9585         (set_mem_attributes_minus_bitpos): Likewise.
9586         * expr.c (highest_pow2_factor, expand_expr_real_1, )
9587         (is_aligning_offset): Likewise.
9588         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
9589         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9590         * dojump.c (do_jump): Likewise.
9591         * builtins.c (get_pointer_alignment, get_memory_rtx)
9592         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
9593         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
9594
9595 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
9596
9597         PR rtl-optimization/36017
9598         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
9599         expanding the library call.
9600
9601 2008-04-22  Ian Lance Taylor  <iant@google.com>
9602
9603         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
9604         than size_in_bytes.
9605
9606 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
9607
9608         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
9609         of LR/CTR moves for Power6.
9610
9611 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9612
9613         PR middle-end/36003
9614         * passes.c (init_optimization_passes): Remove
9615         pass_fast_rtl_byte_dce.
9616         
9617 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
9618
9619         PR target/29096
9620         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
9621         builtin functions to generate faster code.
9622         (_mm_cvtpu16_ps): Ditto.
9623         (_mm_cvtpi32x2_ps): Ditto.
9624
9625 2008-04-22  Nick Clifton  <nickc@redhat.com>
9626
9627         * common.opt (ftree-loop-distribution): Add Optimization
9628         attribute.
9629
9630         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
9631         (frv_expand_builtin_va_start): Likewise.
9632
9633         * config/arm/arm.c (thumb_find_work_register): Fix location of
9634         argument register count.
9635
9636 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9637
9638         Support scheduling for ColdFire V1 and V3 microarchitecture.
9639         Improve scheduling of multiplication instructions.
9640
9641         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
9642         (mac): New instruction attribute.
9643         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
9644         (m68k_sched_mac): New variable.
9645         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
9646         Handle cfv1 and cfv3.
9647         (max_insn_size): New static variable.
9648         (struct _sched_ib): New type.
9649         (sched_ib): New static variable.
9650         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
9651         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
9652         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
9653         Update.
9654         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
9655         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
9656         new variables.  Update.
9657         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
9658         Add modeling of cfv3 instruction buffer.  Update.
9659         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
9660         * config/m68k/m68k.h (TUNE_CFV3): New macro.
9661         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
9662         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
9663         a particular reservation applies to.
9664         (type2): Reorganize attribute values.  Rename alu to alu_reg,
9665         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
9666         to mul_l and mul_w.
9667         (cf_ib_*): Simplify description of instruction buffer.
9668         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
9669         (cf_mem): Split into cf_mem1 and cf_mem2.
9670         (cf_v2_move_??): Rename to cfv12_alu_??.
9671         (cf_v2_move_l_??): Rename to cfv12_omove_??.
9672         (cf_v2_mul_??): Remove reservations.
9673         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
9674         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
9675         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
9676         appropriate place.
9677         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
9678         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
9679         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
9680         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
9681         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
9682         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
9683         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
9684         expansions of the above reservations for instructions of sizes
9685         1, 2 and 3 words.
9686
9687 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9688
9689         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
9690
9691 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
9692
9693         * coverage.c: Include tree-pass.h.
9694         (coverage_counter_alloc): Print da_file_name to the dump file.
9695
9696 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
9697
9698         * sbitmap.c (sbitmap_range_empty_p): New function.
9699         * sbitmap.h (sbitmap_range_empty_p): New function.
9700         * bitmap.h: Now includes obstack.h.
9701
9702 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
9703             Kenneth Zadeck  <zadeck@naturalbridge.com>
9704
9705         * dbgcnt.def (ra_byte_scan): Added.
9706         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
9707         when the last hit happens for a counter.  
9708         * timevar.def (TV_DF_BYTE_LR): New variable.
9709         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
9710         * passes.c (pass_fast_rtl_byte_dce): New pass.
9711         * fwprop.c (update_df): Added mode to call df_ref_create.
9712         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9713         DF_REF_EXTRACT_OFFSET.
9714         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
9715         DF_BYTE_LR_OUT, df_byte_lr): New macro.
9716         (df_mm): New enum.
9717         (df_ref_extract): Added mode field.
9718         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
9719         DF_REF_EXTRACT_OFFSET.
9720         (DF_REF_EXTRACT_MODE): New macro.
9721         (df_byte_lr_bb_info): New structure.
9722         (df_print_byte_regset, df_compute_accessed_bytes, 
9723         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
9724         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
9725         df_byte_lr_simulate_uses,
9726         df_byte_lr_simulate_artificial_refs_at_top,
9727         df_byte_lr_simulate_artificial_refs_at_end,
9728         df_compute_accessed_bytes): New function.
9729         (df_ref_create): Add parameter.
9730         (df_byte_lr_get_bb_info): New inline function.
9731         * df-scan.c (df_ref_record, df_uses_record,
9732         df_ref_create_structure): Added mode parameter.
9733         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
9734         df_defs_record, df_uses_record, df_get_conditional_uses,
9735         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
9736         df_entry_block_defs_collect, df_exit_block_uses_collect):
9737         Added mode parameter to calls to df_ref_record, df_uses_record,
9738         df_ref_create_structure.
9739         (df_ref_equal_p, df_ref_compare): Added test for modes.
9740         (df_ref_create_structure): Added code to set mode.  Renamed
9741         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9742         DF_REF_EXTRACT_OFFSET.
9743         * df-core.c (df_print_byte_regset): New function.
9744         * df-byte-scan.c: New file.
9745         * df-problems.c (df_rd_transfer_function): Removed unnecessary
9746         calls to BITMAP_FREE.  
9747         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
9748         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
9749         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
9750         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
9751         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
9752         df_byte_lr_local_compute, df_byte_lr_init,
9753         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
9754         df_byte_lr_transfer_function, df_byte_lr_free, 
9755         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
9756         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
9757         df_byte_lr_simulate_uses,
9758         df_byte_lr_simulate_artificial_refs_at_top,
9759         df_byte_lr_simulate_artificial_refs_at_end): New function.
9760         * dce.c (byte_dce_process_block): New function.
9761         (dce_process_block): au is now passed in rather than computed
9762         locally.  Changed loops that look at artificial defs to not look
9763         for conditional or partial ones, because there never are any.  
9764         (fast_dce): Now is able to drive byte_dce_process_block or 
9765         dce_process_block depending on the kind of dce being done.
9766         (rest_of_handle_fast_dce): Add parameter to fast_dce.
9767         (rest_of_handle_fast_byte_dce): New function.
9768         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
9769         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
9770
9771 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
9772
9773         PR fortran/35019
9774         * gcc.h: Added fortran options that take arguments to
9775         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
9776         macros.
9777
9778 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
9779
9780         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
9781         scalarization if on the LHS and not a full access.
9782
9783 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9784
9785         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
9786
9787 2008-04-18  Rafael Espindola  <espindola@google.com>
9788
9789         * tree-vrp.c (find_case_label_index): Fix the binary search.
9790         (find_case_label_range): New.
9791         (vrp_visit_switch_stmt): Use find_case_label_range.
9792         (simplify_switch_using_ranges): Use find_case_label_range.
9793
9794 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9795
9796         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
9797         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
9798
9799 2008-04-18  Tom Tromey  <tromey@redhat.com>
9800
9801         PR libcpp/15500:
9802         * doc/cpp.texi (Implementation-defined behavior): Mention
9803         -finput-charset.
9804
9805 2008-04-18  Ian Lance Taylor  <iant@google.com>
9806
9807         * fold-const.c (pointer_may_wrap_p): New static function.
9808         (fold_comparison): Add another test for pointer overflow.  Use
9809         pointer_may_wrap_p to disable some false positives.
9810
9811 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
9812           
9813         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
9814         (fname_as_string): Match updated cpp_interpret_string prototype.
9815         (fix_string_type): Support char16_t* and char32_t*.
9816         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
9817         derivative) nodes.  Register as builtin if C++0x.
9818         (c_parse_error): Support CPP_CHAR{16,32}.
9819         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
9820         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
9821         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
9822         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
9823         CTI_CHAR32_ARRAY_TYPE>: New elements.
9824         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
9825         char32_type_node, signed_char32_type_node, char16_array_type_node,
9826         char32_array_type_node): New defines.
9827         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
9828         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
9829         (lex_string): Support CPP_STRING{16,32}, match updated
9830         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
9831         (lex_charconst): Support CPP_CHAR{16,32}.
9832         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
9833         and CPP_STRING{16,32}.
9834
9835 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
9836
9837         PR bootstrap/35457
9838         * aclocal.m4: Regenerate.
9839         * configure: Regenerate.
9840
9841 2008-04-18  Jan Hubicka  <jh@suse.cz>
9842
9843         * except.c (dw2_size_of_call_site_table,
9844         sjlj_size_of_call_site_table): Use vector API for call_site_record.
9845
9846         * cgraphbuild.c (build_cgraph_edges): Update.
9847         * tree-pass.h: Update comment.
9848         * final.c (leaf_function_p): Update.
9849         (leaf_renumber_regs): Update.
9850         (rest_of_clean_state): Update.
9851         * omp-low.c (expand_omp_parallel): Update.
9852         * ipa-reference.c (analyze_function): Update.
9853         * reorg.c (find_end_label): Update.
9854         (optimize_skip): Update.
9855         (fill_simple_delay_slots): Update.
9856         (fill_simple_delay_slots): Update.
9857         (make_return_insns): Update.
9858         (dbr_schedule): Update.
9859         * gimple-low.c (record_vars_into): Update.
9860         * cfgbuild.c (make_edges): Update.
9861         * function.c (assign_stack_local): Update.
9862         (assign_parm_adjust_stack_rtl): Update.
9863         (locate_and_pad_parm): Update.
9864         (allocate_struct_function): Do not initialize stack_alignment_needed
9865         and preferred_stack_boundary here.
9866         (stack_protect_prologue): Update.
9867         (stack_protect_epilogue): Update.
9868         (expand_function_start): Initialize stack_alignment_needed,
9869         preferred_stack_boundary and max_jumptable_ents.
9870         (expand_function_end): Update.
9871         (free_after_compilation): Do not NULLify epilogue_delay_list.
9872         * function.h (struct rtl_data): Add stack_protect_guard,
9873         stack_alignment_needed,
9874         preferred_stack_boundary, epilogue_delay_list.
9875         (struct function): Remove value_histograms, stack_alignment_needed,
9876         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
9877         last_label_uid,
9878         unexpanded_var_list, stack_protect_guard.
9879         (current_function_epilogue_delay_list): Remove.
9880         * ipa-type-escape.c (analyze_function): Update.
9881         * gimplify.c (pop_gimplify_context): Update comment.
9882         * calls.c (expand_call): Update.
9883         (emit_library_call_value_1): Update.
9884         * except.c (set_nothrow_function_flags): Update.
9885         * cfgexpand.c (get_decl_align_unit): Update.
9886         (create_stack_guard): Update.
9887         (estimated_stack_frame_size): Update.
9888         (expand_used_vars): Update.
9889         (tree_expand_cfg): Free histogram earliers, init expansion variables.
9890         * explow.c (allocate_dynamic_stack_space): Update.
9891         * tree-ssa-live.c (remove_unused_locals): Update.
9892         * varasm.c (mark_constant_pool): Update.
9893         * tree-inline.c (remap_decls): Update.
9894         (initialize_cfun): Update.
9895         (declare_return_variable): Update.
9896         (inline_forbidden_p): Update.
9897         (expand_call_inline): Update.
9898         (declare_inline_vars): Update.
9899         (tree_function_versioning): Update.
9900         * tree-flow.h (value_histograms): New.
9901         (VALUE_HISTOGRAMS): New macro.
9902         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
9903         last_label_uid.
9904         * tree-cfg.c (set_bb_for_stmt): Update.
9905         (replace_by_duplicate_decl): Update.
9906         (move_block_to_fn): Update.
9907         (new_label_mapper): Update.
9908         (dump_function_to_file): Update.
9909         * ipa-struct-reorg.c (build_data_structure): Update.
9910         * cfgrtl.c (print_rtl_with_bb): Update.
9911         * reload1.c (reload): Update.
9912         (reload): Update.
9913         * config/i386/i386.c (setup_incoming_varargs_64,
9914         ix86_compute_frame_layout): Update.
9915         * config/arc/arc.c (arc_output_function_epilogue): Update.
9916
9917 2008-04-18  Marius Strobl <marius@FreeBSD.org>
9918
9919         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
9920         for FreeBSD as well.
9921         * gthr-posix95.h: Likewise.
9922
9923 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
9924
9925         PR rtl-optimization/35838
9926         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
9927         out the byte offset of the first subreg.
9928
9929 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
9930
9931         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
9932         to split_ti instead of three separate calls with single member arrays.
9933         (subti3 splitter): Ditto.
9934         (adddi3 splitter): Ditto with split_di.
9935         (subdi3 splitter): Ditto.
9936         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
9937         two separate calls with single member arrays.  Swap match_dup
9938         operands 1 and 2 to better fit into the array.
9939         (negdi2 splitter): Ditto with split_di.
9940         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
9941         two separate calls with single member arrays.  Swap match_dup operands
9942         6 and 7 to better fit into the array.
9943
9944 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9945
9946         * config/i386/i386.c (sse_builtin_type): New.
9947         (bdesc_sse_args): Likewise.
9948         (bdesc_sse_3arg): Removed.
9949         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9950         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
9951         IX86_BUILTIN_ROUNDPS.
9952         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
9953         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
9954         IX86_BUILTIN_ROUNDPS.
9955         (ix86_expand_sse_4_operands_builtin): Removed.
9956         (ix86_expand_sse_operands_builtin): New.
9957         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
9958         and CODE_FOR_sse4_1_roundps.
9959         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9960         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
9961
9962 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
9963
9964         PR target/35907
9965         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
9966         regs before frame pop when needed.  If use_backchain_to_restore_sp
9967         then load backchain into a temp reg to restore vr and vrsave.  Add
9968         code to restore vr after frame pop if possible.
9969
9970 2008-04-17  Richard Guenther  <rguenther@suse.de>
9971
9972         * tree-vn.c (expressions_equal_p): Do not check type
9973         equality or compatibility before calling operand_equal_p.
9974         * fold-const.c (operand_equal_p): Check equivalence of
9975         integer constants before bailing out due to signedness or
9976         precision differences.
9977         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
9978         spurious differences in type qualification.  Ignore types
9979         for COMPONENT_REFs at all.
9980
9981 2008-04-17  Christian Bruel  <christian.bruel@st.com>
9982
9983         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
9984         msw_skip comparison.
9985         
9986 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
9987
9988         PR c/35739
9989         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
9990         reg type.
9991
9992         PR tree-optimization/35899
9993         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
9994         rather than TREE_OPERAND.
9995
9996 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
9997
9998         PR target/35944
9999         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
10000         temporary registers.  Change operand predicate to general_operand.
10001         (remainderxf3): Ditto.
10002
10003 2008-04-16  Richard Guenther  <rguenther@suse.de>
10004
10005         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
10006         * tree-affine.c (aff_combination_expand): Look through some
10007         conversions.
10008
10009 2008-04-15  Doug Kwan  <dougkwan@google.com>
10010
10011         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
10012         for hex printing.
10013         * tree-pretty-print.c (dump_generic_node): Ditto.
10014         * final.c (output_addr_const): Ditto.
10015         * dwarf2out.c (output_cfi): Ditto.
10016         * c-pretty-print.c (pp_c_integer_constant): Ditto.
10017         * print-rtl.c (print_rtx): Ditto.
10018         * print-tree.c (print_node_brief, print_node): Ditto.
10019         * c-common.c (match_case_to_enum_1): Ditto.
10020         * sched-vis.c (print_value): Ditto.
10021         * config/i386/i386.c (print_operand): Cast to long unsigned int
10022         for hex printing.
10023
10024 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
10025         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
10026         MS Windows VirtualProtect function.
10027
10028 2008-04-15  Jan Hubicka  <jh@suse.cz>
10029
10030         * gengtype.c (write_root): Param_is argument is OK.
10031         * expr.c (expand_expr_real_1): Update call of get_exception_*.
10032         * function.h: Include varray.h
10033         (rtl_eh): New stucture based on except.c one.
10034         (call_site_record): New forward declaration and vector type.
10035         * calls.c (emit_call_1): Do not call
10036         note_current_region_may_contain_throw.
10037         * except.c (eh_status): Remove cur_region, try_region since they are
10038         unused.
10039         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
10040         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
10041         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
10042         Remove call_site_data_used, call_site_data_size.
10043         Turn call_site_record into vector in function.h.
10044         (note_current_region_may_contain_throw): Remove.
10045         (get_exception_pointer, get_exception_filter): Do not take struct
10046         function argument; update.
10047         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
10048         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
10049         build_post_landing_pads, dw2_build_landing_pads,
10050         sjlj_assign_call_site_values, sjlj_mark_call_sites,
10051         sjlj_emit_function_enter, sjlj_emit_function_enter, 
10052         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10053         sjlj_build_landing_pads, finish_eh_generation,
10054         remove_exception_handler_label, remove_eh_handler,
10055         maybe_remove_eh_handler, add_reachable_handler,
10056         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
10057         add_action_record, collect_one_action_chain, add_call_site,
10058         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
10059         sjlj_output_call_site_table, output_function_exception_table,
10060         * except.h (note_current_region_may_contain_throw): Remove
10061         (get_exception_pointer, get_exception_filter): Do not take struct
10062         function argument.
10063         * Makefile.in (GTFILES): Put varargs before struct function.
10064
10065 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
10066
10067         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
10068         punt for STRING_CST.
10069         (get_constraint_for): Deal with STRING_CST here instead.
10070
10071 2008-04-15  Richard Guenther  <rguenther@suse.de>
10072
10073         * tree-ssa-propagate.c (substitute_and_fold): Substitute
10074         statements in a basic-block with a backward walk.  Do not
10075         substitute into dead statements but instead remove those.
10076
10077 2008-04-15  Richard Guenther  <rguenther@suse.de>
10078
10079         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
10080         to zero, thus disable creation of SFTs.
10081
10082 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
10083
10084         * tree-predcom.c (suitable_reference_p): Return false if the
10085         reference can throw.
10086
10087 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
10088
10089         PR c/35751
10090         * c-decl.c (finish_decl): If extern or static var has variable
10091         size, set TREE_TYPE (decl) to error_mark_node.
10092
10093 2008-04-15  Rafael Espindola  <espindola@google.com>
10094
10095         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
10096         variable arg1.
10097
10098 2008-04-15  Richard Guenther  <rguenther@suse.de>
10099
10100         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
10101         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
10102         (visit_reference_op_load): Do walk vuse-vdef chains on
10103         vn_reference_lookup.
10104         (visit_reference_op_store): But do not here.
10105         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
10106         vn_reference_lookup.
10107         (vn_lookup_with_vuses): But do so here.
10108
10109 2008-04-14  Ian Lance Taylor  <iant@google.com>
10110
10111         * fold-const.c (fold_overflow_warning): Remove assertion.
10112
10113 2008-04-15  Ben Elliston  <bje@au.ibm.com>
10114
10115         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
10116         temp1 local variables.
10117
10118 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
10119
10120         PR target/35661
10121         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
10122         ".text.unlikely" section as executable.
10123
10124 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
10125
10126         * config/ia64/ia64.c (rtx_needs_barrier): Handle
10127         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
10128         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
10129         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
10130         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
10131         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
10132         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
10133
10134 2008-04-14  Ian Lance Taylor  <iant@google.com>
10135
10136         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
10137         * fold-const.c (fold_comparison): If appropriate, test
10138         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
10139         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
10140         reassociating a pointer type.
10141         * doc/invoke.texi (Optimize Options): Document that
10142         -fstrict-overflow applies to pointer wraparound.
10143
10144 2008-04-13  Jan Hubicka  <jh@suse.cz>
10145
10146         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
10147
10148 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
10149
10150         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
10151         we are going to "save the world".
10152
10153 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
10154
10155         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
10156         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
10157         operand 0 constraint, not "=".
10158
10159 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
10160
10161         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
10162
10163 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
10164
10165         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
10166         of size of positions_needed * CHAR_BIT.
10167
10168 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
10169
10170         PR middle-end/35897
10171         * dse.c (store_info): Change positions_needed to unsigned
10172         HOST_WIDE_INT.
10173         (lowpart_bitmask): New.
10174         (record_store): Cast to unsigned HOST_WIDE_INT for
10175         positions_needed.  Assert width <= size of positions_needed *
10176         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
10177         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
10178         lowpart_bitmask to set mask.
10179
10180 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
10181
10182         * config/bfin/constraints.md: New file.
10183         * config/bfin/bfin.md: Include it.
10184         (adddi3): Use satisfies_constraint functions instead of the old macros.
10185         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
10186         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
10187         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
10188         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
10189         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
10190         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
10191         EXTRA_CONSTRAINT): Delete.
10192         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
10193         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
10194         of the old macros.
10195         * config/bfin/bfin.c: Include "tm-constrs.h".
10196         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
10197         Use satisfies_constraint functions instead of the old macros.
10198         * doc/md.texi (Blackfin Constraints): Update file name reference.
10199
10200 2008-04-11  Richard Guenther  <rguenther@suse.de>
10201
10202         PR tree-optimization/35869
10203         * tree-vrp.c (execute_vrp): Move switch statement update after
10204         jump threading.  Schedule another cfg cleanup run.
10205
10206 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
10207
10208         PR c/35744
10209         * attribs.c (decl_attributes): Return early on errorneous node.
10210
10211 2008-04-10  Oleg Ryjkov  <olegr@google.com>
10212
10213         * tree.h (struct tree_base): Added a new flag default_def_flag.
10214         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
10215
10216 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
10217
10218         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
10219
10220 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10221
10222         PR target/35768
10223         * pa.md: Define mode iterator P.  Define mode attribute dwc.
10224         (dcacheflush): Update pattern to use iterator P and attribute dwc.
10225         (icacheflush): Likewise.
10226         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
10227         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
10228
10229 2008-04-11  Ben Elliston  <bje@au.ibm.com>
10230
10231         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
10232
10233 2008-04-10  Rafael Espindola  <espindola@google.com>
10234
10235         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
10236         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
10237         (extract_range_from_expr): The same.
10238
10239 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
10240
10241         * config/mips/mips.md (GPR2): New mode iterator.
10242         (seq): Add comment.
10243         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
10244         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
10245         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
10246         Rewrite these to take two modes, the mode of comparison and the
10247         mode of the destination.
10248         * config/mips/mips.c (mips_expand_scc): Instead of having
10249         paradoxical subreg as destination, expand "narrowing" scc if mode
10250         of comparison is SI and target is requested in DI mode.
10251         (mips_emit_int_order_test): Update comment.  Make mode of
10252         comparison match CMP0 rather than TARGET.  When creating inverse
10253         target use mode of TARGET.
10254
10255 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
10256
10257         * gcov-dump.c (tag_summary): Only print summaries for the first
10258         GCOV_COUNTERS_SUMMABLE counters.
10259
10260 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
10261
10262         * config/i386/i386.md (absneg): New code iterator.
10263         (absnegprefix): New code attribute.
10264         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
10265         patterns using absneg code iterator.
10266         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
10267         using absneg code iterator.
10268         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
10269         *neg<mode>2 patterns using absneg code iterator.
10270         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
10271         *negextendsfdf2 patterns using absneg code iterator.
10272         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
10273         *negextendsfxf2 patterns using absneg code iterator.
10274         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
10275         *negextendsfdf2 patterns using absneg code iterator.
10276         * config/i386/sse.md (<code><mode>2): Macroize expander from
10277         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
10278
10279 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10280
10281         * config/s390/s390.h: Remove the remains of the recent search
10282         & replace action of current_function_outgoing_args_size.
10283
10284 2008-04-10  Ira Rosen  <irar@il.ibm.com>
10285
10286         PR tree-optimization/35821
10287         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
10288         NEW_STMT_LIST is not NULL.
10289
10290 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
10291
10292         PR libstdc++/35597
10293         * toplev.c (process_options): Remove -ffunction-sections debugging
10294         warning.
10295
10296 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
10297
10298         PR middle-end/PR28690
10299         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
10300         than gen_rtx_fmt_ee to perform more canonicalizations.
10301
10302 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10303
10304         PR driver/35665
10305         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
10306
10307 2008-04-09  Richard Guenther  <rguenther@suse.de>
10308
10309         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
10310         (dump_function_to_file): Dump function arguments with types.
10311
10312 2008-04-08  Richard Guenther  <rguenther@suse.de>
10313
10314         * fold-const.c (fold_widened_comparison): Do not allow
10315         sign-changes that change the result.
10316
10317 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
10318
10319         PR target/35839
10320         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
10321         kinds of indirect references.
10322
10323 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
10324
10325         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
10326         GNU Fortran language string.
10327
10328 2008-04-08  Rafael Espindola  <espindola@google.com>
10329
10330         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
10331         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
10332         * tree.h (tree_call_nonnegative_warnv_p): New.
10333
10334 2008-04-08  Jan Hubicka  <jh@suse.cz>
10335
10336         * function.c (free_after_compilation): Clear out regno_reg_rtx
10337         pointer.
10338
10339 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
10340
10341         Revert
10342         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
10343
10344         PR middle-end/PR28690
10345         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
10346         same precedence as REG_POINTER and MEM_POINTER operands.
10347
10348 2008-04-08  Richard Guenther  <rguenther@suse.de>
10349
10350         PR middle-end/35834
10351         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
10352         for adding index to base.
10353
10354 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
10355
10356         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
10357         (MINGW_ENABLE_EXECUTE_STACK): New.
10358         (IN_LIBGCC2): For libgcc include windows.h file for
10359         function declarations.
10360
10361 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
10362
10363         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
10364         and tem2 if tem1 is not a REG or MULT.
10365
10366 2008-04-08  Jan Hubicka  <jh@suse.cz>
10367
10368         * function.h (incomming_args): Break out of struct function.
10369         (function_subsections): Break out of struct function.
10370         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
10371         return_rtx and hard_reg_initial_vals from struct function.
10372         Kill inl_max_label_num.
10373         (current_function_pops_args, current_function_args_info,
10374         current_function_args_size, current_function_args_size,
10375         current_function_pretend_args_size,
10376         current_function_outgoing_args_size,
10377         current_function_internal_arg_pointer, current_function_return_rtx):
10378         Kill compatibility accestor macros.
10379         * builtins.c (expand_builtin_apply_args_1): Update.
10380         (expand_builtin_next_arg): Update.
10381         * df-scan.c (df_get_call_refs): Update.
10382         * dbxout.c (dbxout_function_end): Update.
10383         * dwarf2out.c (dwarf2out_switch_text_section): Update.
10384         (output_line_info): Update.
10385         (secname_for_decl): Update.
10386         (dwarf2out_var_location): Update.
10387         * function.c (free_after_compilation): Update.
10388         (assign_parm_find_stack_rtl): Update.
10389         (assign_parms): Update.
10390         (expand_dummy_function_end): Update.
10391         (expand_function_end): Update.
10392         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
10393         (expand_call): Update.
10394         (emit_library_call_value_1): Update.
10395         (store_one_arg): Update.
10396         * varasm.c (initialize_cold_section_name): Update.
10397         (unlikely_text_section): Update.
10398         (unlikely_text_section_p): Update.
10399         (assemble_start_function): Update.
10400         (assemble_end_function): Update.
10401         (default_section_type_flags): Update.
10402         (switch_to_section): Update.
10403         * integrate.c (set_decl_abstract_flags): Update.
10404         (get_hard_reg_initial_val): Update.
10405         (has_hard_reg_initial_val): Update.
10406         (allocate_initial_values): Update.
10407         * resource.c (init_resource_info): Update.
10408         * config/alpha/alpha.c (NUM_ARGS): Update.
10409         (direct_return): Update.
10410         (alpha_va_start): Update.
10411         (alpha_sa_size): Update.
10412         (alpha_initial_elimination_offset): Update.
10413         (alpha_expand_prologue): Update.
10414         (alpha_start_function): Update.
10415         (alpha_expand_epilogue): Update.
10416         (unicosmk_initial_elimination_offset):
10417         * config/alpha/alpha.md (call expander): Update.
10418         * config/s390/s390.c (s390_register_info): Update.
10419         (s390_register_info): Update.
10420         (s390_frame_info): Update.
10421         (s390_initial_elimination_offset): Update.
10422         (s390_build_builtin_va_list): Update.
10423         (s390_va_start): Update.
10424         * config/spu/spu.c (direct_return): Update.
10425         (spu_expand_prologue): Update.
10426         (spu_initial_elimination_offset): Update.
10427         (spu_build_builtin_va_list): Update.
10428         (spu_va_start): Update.
10429         * config/sparc/sparc.c (sparc_init_modes): Update.
10430         (sparc_compute_frame_size): Update.
10431         (function_value): Update.
10432         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
10433         * config/i386/i386.md (return expander): Update.
10434         * config/i386/i386.c (ix86_va_start): Update.
10435         (ix86_can_use_return_insn_p): Update.
10436         (ix86_compute_frame_layout): Update.
10437         (ix86_expand_epilogue): Update.
10438         * config/sh/sh.c (output_stack_adjust): Update.
10439         (calc_live_regs): Update.
10440         (sh_expand_prologue): Update.
10441         (sh_builtin_saveregs): Update.
10442         (sh_va_start): Update.
10443         (initial_elimination_offset): Update.
10444         (sh_allocate_initial_value): Update.
10445         (sh_function_ok_for_sibcall): Update.
10446         (sh_get_pr_initial_val): Update.
10447         * config/sh/sh.md (return expander): Update.
10448         * config/avr/avr.c (frame_pointer_required_p): UPdate.
10449         * config/crx/crx.c (crx_compute_frame): UPdate.
10450         (crx_initial_elimination_offset): UPdate.
10451         * config/xtensa/xtensa.c (compute_frame_size): Update
10452         (xtensa_builtin_saveregs): Update.
10453         (xtensa_va_start): Update.
10454         (order_regs_for_local_alloc): Update.
10455         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
10456         (xstormy16_expand_builtin_va_start): Update.
10457         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
10458         * config/m68hc11/m68hc11.md (return expanders): Update.
10459         * config/m68hc11/m68hc11.c (expand_prologue): Update.
10460         (expand_epilogue): Update.
10461         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
10462         (cris_simple_epilogue): Update.
10463         (cris_expand_prologue): Update.
10464         (cris_expand_epilogue): Update.
10465         * config/iq2000/iq2000.c (iq2000_va_start): Update.
10466         (compute_frame_size): Update.
10467         * config/mt/mt.c (mt_compute_frame_size): Update.
10468         * config/mn10300/mn10300.c (expand_prologue): Update.
10469         (expand_epilogue): Update.
10470         (initial_offset): Update.
10471         (mn10300_builtin_saveregs):
10472         * config/mn10300/mn10300.md (return expander): Update.
10473         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
10474         (ia64_initial_elimination_offset): Update.
10475         (ia64_initial_elimination_offset): Update.
10476         (ia64_expand_prologue): Update.
10477         * config/m68k/m68k.md (return expander): Update.
10478         * config/rs6000/rs6000.c (rs6000_va_start): Update.
10479         (rs6000_stack_info): Update.
10480         * config/mcore/mcore.c (layout_mcore_frame): Update.
10481         (mcore_expand_prolog): Update.
10482         * config/arc/arc.c (arc_compute_frame_size): Update.
10483         * config/score/score3.c (score3_compute_frame_size): Update.
10484         * config/score/score7.c (score7_compute_frame_size): Update.
10485         * config/arm/arm.c (use_return_insn): Update.
10486         (thumb_find_work_register): Update.
10487         (arm_compute_save_reg_mask): Update.
10488         (arm_output_function_prologue): Update.
10489         (arm_output_epilogue): Update.
10490         (arm_size_return_regs): Update.
10491         (arm_get_frame_offsets): Update.
10492         (arm_expand_prologue): Update.
10493         (thumb_exit): Update.
10494         (thumb_unexpanded_epilogue): Update.
10495         (thumb1_output_function_prologue): Update.
10496         * config/pa/pa.md (return expander): Update.
10497         * config/pa/pa.c (compute_frame_size): Update.
10498         (hppa_builtin_saveregs): Update.
10499         * config/mips/mips.c (mips_va_start): Update.
10500         (mips16_build_function_stub): Update.
10501         (mips_compute_frame_info): Update.
10502         (mips_restore_gp): Update.
10503         (mips_output_function_prologue): Update.
10504         (mips_expand_prologue): Update.
10505         * config/v850/v850.c (compute_frame_size): Update.
10506         (expand_prologue): * config/mmix/mmix.c (along): update.
10507         (mmix_initial_elimination_offset): update.
10508         (mmix_reorg): update.
10509         (mmix_use_simple_return): update.
10510         (mmix_expand_prologue): update.
10511         (mmix_expand_epilogue): Update.
10512         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
10513         (emit_link_insn): Update.
10514
10515 2008-04-08  Anatoly Sokolov <aesok@post.ru>
10516
10517         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
10518         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
10519         instructions.
10520         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
10521         atmega103 device.
10522
10523 2008-04-07  Jan Hubicka  <jh@suse.cz>
10524
10525         * function.h (rtl): Rename to x_rtl.
10526         (crtl): New define.
10527         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
10528         frame_offset, stack_check_probe_note, arg_pointer_save_area,
10529         used_temp_slots avail_temp_slots, temp_slot_level,
10530         nonlocal_goto_handler_labels): Update accesstors.
10531         (rtl): New global variable.
10532         (struct function): Move some fileds to rtl_data.
10533         (get_arg_pointer_save_area): Update prototype.
10534         * builtins.c (expand_builtin_setjmp_receiver): Update call of
10535         get_arg_pointer_save_area.
10536         * expr.c (init_expr): Update
10537         * function.c (get_frame_size): Update
10538         (assign_stack_local): Update
10539         (expand_function_end): Update.
10540         (get_art_pointer_save_area): Update
10541         * function.h 
10542         * emit-rtl.c (rtl): Declare.
10543         (regno_reg_rtx): Declare.
10544         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
10545         Update.
10546         (gen_reg_rtx): Update.
10547         * varasm.c (n_deferred_constatns): Update accestor.
10548         (init_varasm_status): Do not allocate varasm_status.
10549         (force_const_mem, get_pool_size, output_constant_pool): Update.
10550         * stmt.c (force_label_rtx): Do not use x_ prefixes.
10551         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
10552         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
10553         * sparc/sparc.h (INIT_EXPANDERS): Update.
10554         * ia64/ia64.h (INIT_EXPANDERS): Update.
10555
10556 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
10557
10558         * reload.c (push_secondary_reload): Add missing break to for loop.
10559
10560 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
10561
10562         PR middle-end/PR28690
10563         * rtlanal.c: Update copyright years.
10564         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
10565         as REG_POINTER and MEM_POINTER operands.
10566         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
10567         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
10568         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
10569         * gcse.c: Update copyright years.
10570         (pre_delete): Call gen_reg_rtx_and_attrs.
10571         (hoist_code): Likewise.
10572         (build_store_vectors): Likewise.
10573         (delete_store): Likewise.
10574         * loop-invariant.c (move_invariant_reg): Likewise.
10575         Update copyright years.
10576
10577 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
10578
10579         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
10580         control string instead of quoted.
10581
10582 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
10583
10584         * doc/rtl.texi: Rewrite of subreg section.
10585
10586 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
10587
10588         PR/35842
10589         * config/i386/i386.c (legitimize_pic_address): Add treating
10590         of dllimport SYM_REF's.
10591         (legitimize_dllimport_symbol): Add prototype.
10592
10593 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10594
10595         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
10596         reference in constructor with non self-referential type.
10597
10598 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10599
10600         Removal of Return with Depressed Stack Pointer support
10601         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
10602         (ECF_SP_DEPRESSED): Likewise.
10603         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
10604         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
10605         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10606         (expand_call): Do not test ECF_SP_DEPRESSED.
10607         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10608         * function.c (keep_stack_depressed): Delete.
10609         (handle_epilogue_set): Likewise.
10610         (update_epilogue_consts): Likewise.
10611         (emit_equiv_load): Likewise.
10612         (thread_prologue_and_epilogue_insns): Remove support for Return with
10613         Depressed Stack Pointer.
10614         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10615
10616 2008-04-06  Richard Guenther  <rguenther@suse.de>
10617
10618         PR tree-optimization/35400
10619         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
10620         information from SSA_NAMEs.
10621
10622 2008-04-06  Anatoly Sokolov <aesok@post.ru>
10623
10624         * config/avr/avr.h (avr_mega_p): Remove declaration.
10625         (AVR_MEGA): Remove macro.
10626         * config/avr/avr.c (avr_mega_p): Remove variable.
10627         (avr_override_options): Remove inicializion of avr_mega_p.
10628         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10629         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10630         (avr_jump_mode): (Ditto.).
10631         (avr_output_progmem_section_asm_op): (Ditto.).
10632         (avr_asm_init_sections): (Ditto.).
10633         (avr_asm_init_sections): (Ditto.).
10634         (avr_rtx_costs): (Ditto.).
10635         * config/avr/avr.md: (Ditto.).
10636         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
10637         '__AVR_MEGA__'.
10638
10639 2008-04-06  Richard Guenther  <rguenther@suse.de>
10640
10641         PR tree-optimization/35842
10642         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
10643         is_gimple_invariant_address.
10644
10645 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10646
10647         * gcc.c (default_compilers): Sync Fortran extensions list with
10648         that in fortran/lang-specs.h.
10649         * doc/invoke.texi: Likewise.
10650         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
10651         * dwarf2out.c (gen_compile_unit_die): Likewise.
10652
10653 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
10654
10655         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
10656
10657 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
10658
10659         PR target/12329
10660         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
10661         attribute is used for nested functions.
10662
10663 2008-04-05  Jan Hubicka  <jh@suse.cz>
10664
10665         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
10666
10667         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
10668         letter argument.
10669         (dump_files): Update.
10670         (enable_rtl_dump_file): Do not accept letter argument.
10671         * tree-pass.h (dump_file_info): Remove letter argument.
10672         * toplev.c (decode_d_option): Update -da handling.
10673         * toplev.h (enable_rtl_dump_file): Update prototype.
10674         * passes.c (register_one_dump_file): Do not accept IPA argument; work
10675         it out based on pass type.
10676         (register_dump_files_1): Likewise.
10677         (init_optimization_passes): Update register_one_dump_file calls.
10678         (execute_one_pass): Sanity check that IPA passes are called at IPA
10679         level and RTL passes at RTL level.
10680         (execute_pass_list): IPA pass can not be after or subpass of
10681         GIMPLE/RTL pass.
10682         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
10683         disallov RTL subpasses of IPA subpasses.
10684
10685 2008-04-05  Ben Elliston  <bje@au.ibm.com>
10686
10687         * tree-cfg.c (need_fake_edge_p): Return false for calls to
10688         builtins that return exactly once and do not throw. Cache call to
10689         call_expr_flags.
10690
10691 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
10692
10693         PR rtl-optimization/34916
10694         PR middle-end/35519
10695         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
10696         between instruction pairs.
10697
10698 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
10699
10700         * doc/invoke.texi: Document -mbitops for SH.
10701         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
10702         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
10703         * config/sh/sh.c (print_operand): Add %t operand code.
10704         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
10705         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
10706         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
10707         (extendqihi2): Likewise.
10708         (movqi_i): Likewise.
10709         (insv): Use bset, bclr and bst instructions for SH2A if possible.
10710         (extv): Use bld instruction for SH2A if possible.
10711         (extzv): Likewise.
10712         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
10713         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
10714         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
10715         (bset.b, bclr.b): Define peepholes.
10716         * config/sh/sh.opt (mbitops): New option.
10717
10718 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
10719
10720         PR target/35620
10721         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
10722         and view convert expression.
10723
10724 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10725
10726         PR target/35364
10727         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
10728
10729 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
10730
10731         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
10732
10733         * config/i386/cpuid.h (bit_AES): New.
10734         (bit_PCLMUL): Likewise.
10735
10736         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
10737         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
10738         SSE2 if AES or PCLMUL is enabled.
10739         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
10740         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10741         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
10742         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
10743         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
10744         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
10745         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10746         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
10747         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
10748         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
10749         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
10750         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
10751         __builtin_ia32_aeskeygenassist128 and
10752         __builtin_ia32_pclmulqdq128.
10753         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
10754         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
10755         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
10756
10757         * config/i386/i386.h (TARGET_AES): New.
10758         (TARGET_PCLMUL): Likewise.
10759         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
10760
10761         * config/i386/i386.md (UNSPEC_AESENC): New.
10762         (UNSPEC_AESENCLAST): Likewise.
10763         (UNSPEC_AESDEC): Likewise.
10764         (UNSPEC_AESDECLAST): Likewise.
10765         (UNSPEC_AESIMC): Likewise.
10766         (UNSPEC_AESKEYGENASSIST): Likewise.
10767         (UNSPEC_PCLMUL): Likewise.
10768
10769         * config/i386/i386.opt (maes): New.
10770         (mpclmul): Likewise.
10771
10772         * config/i386/sse.md (aesenc): New pattern.
10773         (aesenclast): Likewise.
10774         (aesdec): Likewise.
10775         (aesdeclast): Likewise.
10776         (aesimc): Likewise.
10777         (aeskeygenassist): Likewise.
10778         (pclmulqdq): Likewise.
10779
10780         * config/i386/wmmintrin.h: New.
10781
10782         * doc/extend.texi: Document AES and PCLMUL built-in function.
10783
10784         * doc/invoke.texi: Document -maes and -mpclmul.
10785
10786 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
10787
10788         * function.c (free_after_parsing): Replace with
10789         cxx_push_function_context from C++ front-end.
10790         (allocate_struct_function): Don't call langhook.
10791         * langhooks.h (struct lang_hooks_for_functions): Delete.
10792         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
10793         member "function".
10794         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
10795         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
10796         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
10797         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
10798         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
10799         remove LANG_HOOKS_FUNCTION_INITIALIZER.
10800         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
10801
10802         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
10803         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
10804         
10805 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10806
10807         PR c/35440
10808         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
10809         for all types.
10810
10811 2008-04-04  Richard Guenther  <rguenther@suse.de>
10812
10813         PR middle-end/35823
10814         * fold-const.c (optimize_minmax_comparison): Use the correct
10815         type for the constant in the simplified comparison.
10816
10817 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
10818
10819         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
10820         Pass L2 size as "--param l2-cache-size" to the compiler.
10821         (decode_l2_cache): New function to decode L2 cache parameters using
10822         0x8000006 extended cpuid function.
10823         (detect_caches_amd): Determine parameters of L2 cache using
10824         decode_l2_caches function.
10825         (decode_caches_intel): Decode L2 cache parameters.
10826         (detect_caches_intel): Determine L2 cache parameters using
10827         decode_caches_intel and decode_l2_caches functions.
10828
10829 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
10830
10831         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
10832         secondary input reload for subword loads from the constant pool.
10833
10834 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
10835
10836         PR target/35713
10837         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
10838           constants of the appropriate size for runtime calculations.
10839
10840         PR c/35712
10841         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
10842           decimal-float literal constant zero.
10843
10844 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
10845
10846         PR c/35738
10847         * c-parser.c (c_parser_omp_atomic): Call
10848         default_function_array_conversion on the RHS.
10849
10850         PR middle-end/35818
10851         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
10852         call is_variable_sized if decl has incomplete type.
10853
10854 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
10855
10856         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
10857
10858 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
10859
10860         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
10861         iterators.
10862         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
10863         (sgt<u>): Merge sgt and sgtu into new expander.
10864         (sgt, sgtu): Remove expanders.
10865         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
10866         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
10867         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
10868         *sgtu_<mode>_mips16 into new pattern.
10869         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
10870         (sge<u>): Merge sge and sgeu into new expander.
10871         (sge, sgeu): Remove expanders.
10872         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
10873         new pattern.
10874         (*sge_<mode>, second *sge_<mode>): Remove patterns.
10875         (slt<u>): Merge slt and sltu into new expander.
10876         (slt, sltu): Remove expanders.
10877         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
10878         (*slt_<mode>, *sltu_<mode>): Remove patterns.
10879         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
10880         *sltu_<mode>_mips16 into new pattern.
10881         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
10882         (sle<u>): Merge sle and sleu into new expander.
10883         (sle, sleu): Remove expanders.
10884         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
10885         (*sle_<mode>, *sleu_<mode>): Remove patterns.
10886         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
10887         *sleu_<mode>_mips16 into new pattern.
10888         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
10889
10890 2008-04-03  Jan Hubicka  <jh@suse.cz>
10891
10892         PR tree-optimization/35795
10893         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
10894         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10895         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
10896         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
10897         * score/score3.c (score3_output_mi_thunk): Likewise.
10898         * score/score7.c (score7_output_mi_thunk): Likewise.
10899         * mips/mips.c (mips_output_mi_thunk): Likewise.
10900
10901 2008-04-03  Richard Guenther  <rguenther@suse.de>
10902
10903         * tree-vrp.c (extract_range_from_unary_expr): Handle all
10904         conversions.  Simplify code.
10905
10906 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
10907
10908         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
10909
10910 2008-04-03  Tom Tromey  <tromey@redhat.com>
10911             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10912
10913         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
10914         * config/bfin/t-bfin-linux (generated_files): Add
10915         linux-sysroot-suffix.h.
10916         * doc/install.texi (Prerequisites): Require make 3.80.
10917         * doc/sourcebuild.texi (Front End Directory): Document new
10918         variable.
10919         * Makefile.in (generated_files): New variable.
10920         (ALL_HOST_OBJS): New variable.
10921         ($(ALL_HOST_OBJS)): New target.
10922
10923 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10924
10925         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
10926         (remap_block): Call id->transform_lang_insert_block instead
10927         of langhook.
10928         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
10929         Set id.transform_lang_insert_block to NULL.
10930         (clone_body): Move to cp/optimize.c
10931         * tree-inline.h (struct copy_body_data): Change
10932         transform_lang_insert_block to function pointer.
10933         (copy_generic_body, copy_decl_no_change): Export.
10934         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
10935         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
10936         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
10937
10938         * c-tree.h (insert_block): Kill.
10939         * c-decl.c (insert_block): Kill.
10940
10941 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10942
10943         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10944         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10945         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
10946         argument.
10947         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
10948         argument, call {push,pop}_function_context from here.
10949         * c-parser.c: Use c_{push,pop}_function_context.
10950
10951         * function.c (push_function_context_to): Move meat ...
10952         (push_function_context): ... here.  Simplify.
10953         * function.c (pop_function_context_from): Move meat ...
10954         (pop_function_context): ... here.  Simplify.
10955         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
10956         leave_nested).
10957         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10958         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10959         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
10960         * tree.h (push_function_context_to, pop_function_context_from): Remove.
10961
10962 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10963
10964         * expmed.c (extract_force_align_mem_bit_field): Remove.
10965
10966 2008-04-03  Richard Guenther  <rguenther@suse.de>
10967
10968         PR middle-end/35800
10969         * expr.h (try_casesi): Adjust prototype.
10970         * expr.c (try_casesi): Take fallback label as extra parameter.
10971         Use that for gen_casesi if default_label is NULL.
10972         * stmt.c (expand_case): Pass fallback label to try_casesi,
10973         make sure to fill gaps with a fallback label if default_label
10974         is not present.
10975
10976 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
10977
10978         PR target/35801
10979         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
10980
10981 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10982
10983         * expmed.c (extract_split_bit_field): Remove if (0) code.
10984         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
10985         (do_ds_constraint): Likewise.
10986
10987 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
10988
10989         * doc/cppopts.texi (-dU): Document.
10990         * c-common.h (flag_dump_macros): Update comment.
10991         * c-opts.c (handle_OPT_d): Handle -dU.
10992         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
10993         dump_queued_macros, cb_used_define, cb_used_undef): New.
10994         (init_pp_output): Handle -dU.
10995         (cb_line_change): Call dump_queued_macros.
10996         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
10997
10998 2008-04-02  Anatoly Sokolov <aesok@post.ru>
10999
11000         * config/avr/predicates.md (io_address_operand): New predicate. 
11001         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
11002         * config/avr/avr.c (avr_io_address_p): Remove function.
11003         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
11004         'avr_io_address_p' function.
11005         (out_movhi_r_mr): (Ditto.).
11006         (out_movqi_mr_r): (Ditto.).
11007         (out_movhi_mr_r): (Ditto.).
11008         (avr_address_cost): (Ditto.).
11009
11010 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
11011
11012         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
11013         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
11014         in 32bit mode when XMM registers are available to avoid store
11015         forwarding stalls.
11016         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
11017         corresponding post-reload splitters.
11018
11019 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
11020
11021         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
11022         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
11023         __builtin_ia32_roundss.
11024         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
11025         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
11026         __builtin_ia32_roundss.
11027         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
11028         IX86_BUILTIN_SHUFPD here.
11029
11030 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
11031
11032         * config/i386/i386.md (plogic): New.
11033         (plogicprefix): Likewise.
11034
11035         * config/i386/mmx.md (mmx_<code><mode>3): New.
11036         (mmx_and<mode>3): Removed.
11037         (mmx_ior<mode>3): Likewise.
11038         (mmx_xor<mode>3): Likewise.
11039
11040         * config/i386/sse.md (<code><mode>3): New.
11041         (*<code><mode>3): Likewise.
11042         (*<code><mode>3): Likewise.
11043         (<code><mode>3): Likewise.
11044         (*sse_<code><mode>3): Likewise.
11045         (*sse2_<code><mode>3): Likewise.
11046         (<code>tf3): Likewise.
11047         (*<code>tf3): Likewise.
11048         (and<mode>3): Likewise.
11049         (*and<mode>3): Likewise.
11050         (ior<mode>3): Removed.
11051         (*ior<mode>3): Likewise.
11052         (xor<mode>3): Likewise.
11053         (*xor<mode>3): Likewise.
11054         (*and<mode>3): Likewise.
11055         (*ior<mode>3): Likewise.
11056         (*xor<mode>3): Likewise.
11057         (and<mode>3): Likewise.
11058         (*sse_and<mode>3): Likewise.
11059         (*sse2_and<mode>3): Likewise.
11060         (andtf3): Likewise.
11061         (*andtf3): Likewise.
11062         (ior<mode>3): Likewise.
11063         (*sse_ior<mode>3): Likewise.
11064         (*sse2_ior<mode>3): Likewise.
11065         (iortf3): Likewise.
11066         (*iortf3): Likewise.
11067         (xor<mode>3): Likewise.
11068         (*sse_xor<mode>3): Likewise.
11069         (*sse2_xor<mode>3): Likewise.
11070         (xortf3): Likewise.
11071         (*xortf3): Likewise.
11072
11073 2008-04-02  Richard Guenther  <rguenther@suse.de>
11074
11075         PR tree-optimization/14495
11076         PR tree-optimization/34793
11077         * tree-vrp.c (struct switch_update): New structure.
11078         (to_remove_edges, to_update_switch_stmts): New VECs.
11079         (simplify_switch_using_ranges): New function.  Remove not taken
11080         case labels and edges.
11081         (simplify_stmt_using_ranges): Call it.
11082         (identify_jump_threads): Mark edges we have queued for removal
11083         so we don't thread them.
11084         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
11085         case label vector.
11086         * tree-cfg.c (group_case_labels): Deal with missing default label.
11087         (tree_verify_flow_info): Allow missing default label.
11088         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
11089         (emit_case_nodes): Likewise.
11090         (expand_case): Do not rely on the default label to be present.
11091         * expr.c (try_casesi): Deal with NULL default_label.
11092         (do_tablejump): Likewise.
11093
11094 2008-04-02  Richard Guenther  <rguenther@suse.de>
11095
11096         PR tree-optimization/14495
11097         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
11098         SWITCH_EXPR here ...
11099         (vrp_visit_switch_stmt): ... but here (new function).
11100         (find_case_label_index): New helper function.
11101         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
11102
11103 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
11104
11105         * fwprop.c: Fix ISO-C99ism.
11106
11107 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
11108
11109         PR bootstrap/35752
11110         * Makefile.in (objdir): Set it here.
11111         * configure.ac: Not here.  Find dynamic linker characteristics.
11112         * exec-tool.in: Use them.
11113         * aclocal.m4: Regenerate.
11114         * configure: Regenerate.
11115
11116 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
11117
11118         * expr.c (expand_var): Delete it.
11119         * expr.h (expand_var): Delete prototype.
11120         * function.c (expand_function_start): Use expand_decl instead.
11121         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
11122         langhook.
11123
11124 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
11125
11126         PR rtl-optimization/35542
11127         * fwprop.c (forward_propagate_and_simplify): Replace
11128         loc_reg_mentioned_in_p with reg_mentioned_p.
11129
11130 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
11131
11132         PR rtl-optimization/35281
11133         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
11134         (propagate_rtx_1): Handle PR_HANDLE_MEM.
11135         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
11136         (varying_mem_p): Move above propagate_rtx.
11137         (all_uses_available_at): Do not check MEMs.
11138
11139 2008-04-02  Rafael Espindola  <espindola@google.com>
11140
11141         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
11142         (register_edge_assert_for_2): Split the cond argument.
11143         (register_edge_assert_for_1): Adjust for the change in
11144         register_edge_assert_for_2.
11145         (register_edge_assert_for): Split the cond argument.
11146         (find_switch_asserts): Adjust for the change in
11147         register_edge_assert_for.
11148
11149 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
11150
11151         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
11152         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
11153         offsets for 64-bit mingw.
11154         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
11155         abi for x86_64-pc-mingw.
11156
11157 2008-04-02  Richard Guenther  <rguenther@suse.de>
11158
11159         * tree-vrp.c (extract_range_from_assert): Make sure to not
11160         produce range min/max with TREE_OVERFOW set.
11161         If merging a anti-range and a range keep the anti-range if
11162         the range covers all values of the type.
11163         (register_edge_assert_for_2): Only allow sign-changing
11164         conversions in detecting canonical range checks.  Also
11165         register an assert for the unsigned name if useful.
11166
11167         PR tree-optimization/35787
11168         * tree-vrp.c (vrp_val_max): New function.
11169         (vrp_val_min): Likewise.
11170         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
11171         (vrp_val_is_min): Likewise.
11172         (supports_overflow_infinity): Use vrp_val_{min,max}.
11173         (negative_overflow_infinity): Likewise.
11174         (positive_overflow_infinity): Likewise.
11175         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
11176         (is_positive_overflow_infinity): Likewise.
11177         (is_overflow_infinity): Likewise.
11178         (avoid_overflow_infinity): Use vrp_val_{min,max} and
11179         vrp_val_is_{min,max}.
11180         (set_and_canonicalize_value_range): Canonicalize anti-ranges
11181         to ranges if possible.  Avoid empty ranges.
11182
11183 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11184
11185         PR middle-end/35705
11186         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
11187         the expression is a function address.
11188
11189 2008-04-01  George Helffrich  <george@gcc.gnu.org>
11190
11191         PR fortran/35154, fortran/23057
11192         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
11193         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
11194         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
11195         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
11196         in common.
11197         (dbxout_syms): Check for COMMON-based symbol and wrap in
11198         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
11199         in bracket for efficiency.
11200
11201         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
11202         using DW_TAG_common_block + member offset.
11203         (add_pubname_string): New function.
11204         (dw_expand_expr): New function to find block name and offset for
11205         COMMON var.
11206         (common_check): New function to check whether symbol in Fortran COMMON.
11207         (gen_variable_die): If COMMON, use DW_TAG_common_block.
11208
11209 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
11210
11211         PR c/35436
11212         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
11213
11214 2008-04-02  Ben Elliston  <bje@au.ibm.com>
11215
11216         * config/v850/v850.md (casesi): Remove if (0) code.
11217         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
11218         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
11219
11220 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
11221
11222         * config/i386/i386.md (rex64suffix): New mode attribute.
11223         (floathi<mode>2): Disable expander for SSE math.
11224         (*floathi<mode>2_1): New insn insn_and_split pattern.
11225         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
11226         corresponding post-reload splitters.
11227         (*floathi<mode>2_i387): New macroized insn pattern.
11228         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
11229         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
11230         insn_and_split pattern.
11231         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
11232         New macroized instruction patterns and corresponding post-reload
11233         splitters.
11234         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
11235         and corresponding post-reload splitters.
11236         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
11237         New macroized instruction patterns.
11238         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
11239         macroized instruction patterns and corresponding post-reload splitters.
11240         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
11241         corresponding post-reload splitters.
11242         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
11243         New macroized instruction patterns.
11244         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
11245         corresponding post-reload splitters.
11246         (*floatsi<mode>2_i387): New macroized instruction patterns.
11247
11248 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
11249
11250         * config/i386/i386.md (smaxmin): New.
11251         (umaxmin): Likewise.
11252         (maxminiprefix): Likewise.
11253         (maxminfprefix): Likewise.
11254         (<code><mode>3): Likewise.
11255         (smin<mode>3): Removed.
11256         (smax<mode>3): Likewise.
11257
11258         * config/i386/mmx.md (mmx_<code>v2sf3): New.
11259         (mmx_<code>v4hi3): Likewise.
11260         (mmx_<code>v8qi3): Likewise.
11261         (mmx_smaxv2sf3): Removed.
11262         (mmx_sminv2sf3): Likewise.
11263         (mmx_umaxv8qi3): Likewise.
11264         (mmx_smaxv4hi3): Likewise.
11265         (mmx_uminv8qi3): Likewise.
11266         (mmx_sminv4hi3): Likewise.
11267
11268         * config/i386/sse.md (<addsub><mode>3): New.
11269         (*<addsub><mode>3): Likewise.
11270         (<sse>_vm<addsub><mode>3): Likewise.
11271         (<maxmin><mode>3): Likewise.
11272         (*<maxmin><mode>3_finite): Likewise.
11273         (*<maxmin><mode>3): Likewise.
11274         (<sse>_vm<maxmin><mode>3): Likewise.
11275         (sse3_h<addsub>v4sf3): Likewise.
11276         (sse3_h<addsub>v2df3): Likewise.
11277         (<maxmin>v16qi3): Likewise.
11278         (*<maxmin>v16qi3): Likewise.
11279         (<maxmin>v8hi3): Likewise.
11280         (*<maxmin>v8hi3): Likewise.
11281         (*sse4_1_<maxmin><mode>3): Likewise.
11282         (*sse4_1_<maxmin><mode>3): Likewise.
11283         (add<mode>3): Removed.
11284         (*add<mode>3): Likewise.
11285         (<sse>_vmadd<mode>3): Likewise.
11286         (sub<mode>3): Likewise.
11287         (*sub<mode>3): Likewise.
11288         (<sse>_vmsub<mode>3): Likewise.
11289         (smin<mode>3): Likewise.
11290         (*smin<mode>3_finite): Likewise.
11291         (*smin<mode>3): Likewise.
11292         (<sse>_vmsmin<mode>3): Likewise.
11293         (smax<mode>3): Likewise.
11294         (*smax<mode>3_finite): Likewise.
11295         (*smax<mode>3): Likewise.
11296         (<sse>_vmsmax<mode>3): Likewise.
11297         (sse3_haddv4sf3): Likewise.
11298         (sse3_haddv2df3): Likewise.
11299         (sse3_hsubv4sf3): Likewise.
11300         (sse3_hsubv2df3): Likewise.
11301         (umaxv16qi3): Likewise.
11302         (*umaxv16qi3): Likewise.
11303         (smaxv8hi3): Likewise.
11304         (*smaxv8hi3): Likewise.
11305         (*sse4_1_smax<mode>3): Likewise.
11306         (*sse4_1_umax<mode>3): Likewise.
11307         (uminv16qi3): Likewise.
11308         (*uminv16qi3): Likewise.
11309         (sminv8hi3): Likewise.
11310         (*sminv8hi3): Likewise.
11311         (*sse4_1_smin<mode>3): Likewise.
11312         (*sse4_1_umin<mode>3): Likewise.
11313
11314 2008-04-01  Rafael Espindola  <espindola@google.com>
11315
11316         * tree-cfg.c (verify_expr): remove in_phi.
11317         (verify_stmt): Don't call walk_tree with verify_expr. Use
11318         is_gimple_min_invariant instead of is_gimple_val.
11319
11320 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
11321
11322         * doc/include/gpl_v3.texi: Update for manpage generation.
11323         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
11324         gpl.texi.
11325         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
11326         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
11327         gpl_v3.texi instead of gpl.texi.
11328         (gpl.pod): New.
11329
11330 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
11331
11332         PR pch/13675
11333         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
11334
11335 2008-04-01  Rafael Espindola  <espindola@google.com>
11336
11337         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
11338         (extract_code_and_val_from_cond): Use
11339         extract_code_and_val_from_cond_with_ops.
11340
11341 2008-04-01  Jan Hubicka  <jh@suse.cz>
11342
11343         * function.c (free_after_compilation): Free epilogue_delay_list.
11344         (prepare_function_start): Assert that previous compilation was freed.
11345
11346 2008-04-01  Jan Hubicka  <jh@suse.cz>
11347             Jim Wilson  <wilson@tuliptree.org>
11348             Andreas Tobler <andreast@gcc.gnu.org>
11349
11350         PR middle-end/35781
11351         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
11352         rtl.emit instead cfun->emit.
11353         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
11354         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
11355
11356 2008-04-01  Ben Elliston  <bje@au.ibm.com>
11357
11358         * doc/c-tree.texi (Function Basics): Fix grammatical error.
11359
11360 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
11361
11362         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
11363         New options
11364         (fprofile-use): Add var flag_profile_use
11365         * coverage.c (coverage_begin_output): Do not open a gcno file for
11366         output only if -ftest-coverage is set.
11367         Do not add getpwd() to gcda file path.
11368         (build_gcov_info): Check the new flag
11369         flag_profile_datafile_relative_path.
11370         (coverage_init): Use profile_data_prefix.
11371         Read profile counter only if flag_profile_use is set.
11372         * opts.c (common_handle_option): New option fprofile-use=,
11373         fprofile-dir=, fprofile-generate=.
11374         * toplev.c (profile_data_prefix): New variable definition.
11375         * toplev.h (profile_data_prefix): New declaration.
11376         * doc/invoke.tex (Option Summary, Optimization Options):
11377         Add new options.
11378
11379 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
11380
11381         * varasm.c (output_constant_pool_1): In LABEL_REF check,
11382         use tmp consistently.
11383
11384         PR target/35695
11385         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
11386         * config/ia64/ia64.c (rtx_needs_barrier): Handle
11387         UNSPEC_FR_RECIP_APPROX_RES.
11388         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
11389
11390 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
11391
11392         PR c/35750
11393         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
11394
11395 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11396
11397         PR middle-end/30186
11398         * fold-const.c (fold_indirect_ref_1): Support accessing non first
11399         element of the vector via a pointer.
11400
11401 2008-03-31  Ian Lance Taylor  <iant@google.com>
11402
11403         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
11404
11405 2008-03-31  Jan Hubicka  <jh@suse.cz>
11406
11407         * builtins.c (expand_builtin_setjmp_receiver): Update call of
11408         get_arg_pointer_save_area.
11409         * expr.c (init_expr): Just clear out rtl.expr.
11410         * function.c (free_after_compilation): Clear out whole RTL structure.
11411         (get_func_frame_size): Merge into ...
11412         (get_frame_size): ... this one.
11413         (assign_stack_local_1): Merge into ...
11414         (assign_stack_local): ... this one.
11415         (expand_function_end): Update call of get_arg_pointer_save_area.
11416         (get_art_pointer_save_area): Remove cfun argument.
11417         * function.h (emit_status): regno_pointer_align does not need length
11418         attribute. Move x_regno_reg_rtx to ...
11419         (regno_reg_rtx): ... new global array.
11420         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
11421         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
11422         apply_args_value, forced_labels, stack_pointer_delta):
11423         Update accestors.
11424         (struct varasm_status): Move here from varasm.c
11425         (struct rtl_data): New. Move here some fields from struct function.
11426         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
11427         frame_offset, stack_check_probe_note, arg_pointer_save_area,
11428         used_temp_slots avail_temp_slots, temp_slot_level,
11429         nonlocal_goto_handler_labels): Update accesstors.
11430         (rtl): New global variable.
11431         (struct function): Move some fileds to rtl_data.
11432         (get_arg_pointer_save_area): Update prototype.
11433         * emit-rtl.c (rtl): Declare.
11434         (regno_reg_rtx): Declare.
11435         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
11436         Update.
11437         (gen_reg_rtx): Update.
11438         (init_virtual_regs): Do not tate emit_status argument.
11439         (init_emit): Do not allocate emit.
11440         * varasm.c (varasm_statuc): Move to function.h.
11441         (n_deferred_constatns): Update accestor.
11442         (init_varasm_status): Do not allocate varasm_status.
11443         (force_const_mem, get_pool_size, output_constant_pool): Update.
11444         * stmt.c (force_label_rtx): Do not use x_ prefixes.
11445         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
11446
11447 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
11448
11449         PR rtl-optimization/35729
11450         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
11451         references.
11452
11453 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
11454
11455         PR target/32000
11456         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
11457         load/store if memory is unaligned.
11458         (*movti_rex64): Likewise.
11459
11460         * config/i386/predicates.md (misaligned_operand): New.
11461
11462 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
11463
11464         PR tree-opt/35431
11465         * tree-ssa-phiopt.c (conditional_replacement): Return early for
11466         complex types.
11467
11468 2008-03-31  Jan Beulich  <jbeulich@novell.com>
11469
11470         * config/ia64/constraints.md: Add 'j' constraint.
11471         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
11472         (movdi_internal): Likewise.
11473
11474 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
11475
11476         PR c/35748
11477         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
11478
11479 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11480
11481         PR target/35757
11482         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
11483         proper error message for the third argument on blendpd and
11484         blendps.
11485
11486         * config/i386/sse.md (blendbits): New.
11487         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
11488
11489 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
11490
11491         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
11492
11493 2008-03-30  Richard Guenther  <rguenther@suse.de>
11494
11495         PR middle-end/31023
11496         * fold-const.c (fold_sign_changed_comparison): Do leave
11497         conversions to base-types alone.
11498
11499 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11500
11501         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
11502         the link register if one altivec register is be saved.
11503
11504 2008-03-30  Ben Elliston  <bje@au.ibm.com>
11505
11506         * final.c (final_scan_insn): Remove if (0) code.
11507
11508 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
11509
11510         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
11511
11512 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
11513
11514         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
11515         of V4SFmode to ix86_binary_operator_ok.
11516
11517 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
11518
11519         * config/i386/i386.c (override_options): Initialize
11520         ix86_veclib_handler to ix86_veclibabi_svml when
11521         -mveclibabi=svml is used.
11522         (ix86_veclibabi_svml): New function for SVML ABI style
11523         vectorization support.
11524         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
11525
11526 2008-03-28  Rafael Espindola  <espindola@google.com>
11527
11528         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
11529         (tree_binary_nonnegative_warnv_p): Make it public.
11530         (tree_single_nonnegative_warnv_p): Make it public.
11531         (tree_invalid_nonnegative_warnv_p): Make it public.
11532         (tree_unary_nonzero_warnv_p): Make it public.
11533         (tree_binary_nonzero_warnv_p): Make it public
11534         (tree_single_nonzero_warnv_p): Make it public.
11535         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
11536         (extract_range_from_binary_expr): Split the expr argument.
11537         (extract_range_from_unary_expr): Split the expr argument.
11538         (extract_range_from_comparison): Split the expr argument.
11539         (extract_range_from_expr): Use the new aux functions.
11540         (vrp_evaluate_conditional_warnv): Use
11541         vrp_evaluate_conditional_warnv_with_ops.
11542         * tree.h (tree_unary_nonzero_warnv_p): Declare.
11543         (tree_binary_nonzero_warnv_p): Declare.
11544         (tree_single_nonzero_warnv_p): Declare.
11545         (tree_expr_nonzero_warnv_p): Declare.
11546         (tree_unary_nonnegative_warnv_p): Declare.
11547         (tree_binary_nonnegative_warnv_p): Declare.
11548         (tree_single_nonnegative_warnv_p): Declare.
11549         (tree_invalid_nonnegative_warnv_p): Declare.
11550
11551 2008-03-28  Richard Guenther  <rguenther@suse.de>
11552
11553         PR tree-optimization/30317
11554         PR tree-optimization/30911
11555         PR tree-optimization/34793
11556         * tree-vrp.c (set_and_canonicalize_value_range): New function.
11557         (struct assert_locus_d): New member EXPR.
11558         (register_new_assert_for): Add EXPR parameter to support
11559         ASSERT_EXPR <name, expr OP limit>.
11560         (register_edge_assert_for_1): Adjust callers.
11561         (find_assert_locations): Likewise.
11562         (process_assert_insertions_for): Build condition from expression.
11563         (extract_range_from_assert): Handle ASSERT_EXPRs
11564         of the form ASSERT_EXPR <name, expr OP limit>.
11565         (register_edge_assert_for_2): New helper registering
11566         asserts for comparisons.  Recognize range tests of the form
11567         (unsigned)i - CST1 OP CST2.
11568         (register_edge_assert_for_1): Use it.
11569         (register_edge_assert_for): Likewise.
11570         (needs_overflow_infinity): Integer sub-types
11571         do not need overflow infinities.
11572         (vrp_val_is_max): The extreme values of integer sub-types
11573         are those of the base type.
11574         (vrp_val_is_min): Likewise.
11575         * tree.def (ASSERT_EXPR): Document extra allowed conditional
11576         expressions.
11577
11578 2008-03-28  Nick Clifton  <nickc@redhat.com>
11579
11580         PR target/31110
11581         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11582         Return GENERAL_REGS for stack adjustment reloads.
11583
11584 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11585
11586         PR target/31334
11587         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
11588         const_vector when all the vectors are constant.
11589
11590 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
11591
11592         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
11593         comparisons.
11594         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
11595         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
11596         (scc_sf): New.
11597         (s<code>_sf): Use new scc_sf attribute for opcode names.
11598
11599 2008-03-27  Tom Tromey  <tromey@redhat.com>
11600
11601         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
11602         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
11603         config/spu/t-spu-elf, config/i386/t-interix,
11604         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
11605         config/i386/x-darwin, config/i386/x-mingw32,
11606         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
11607         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
11608         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
11609         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
11610         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
11611         config/rs6000/x-darwin, config/rs6000/t-rs6000,
11612         config/score/t-score-elf, config/arm/t-strongarm-pe,
11613         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
11614         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
11615         Revert automatic dependency patch.
11616
11617 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11618
11619         PR target/35657
11620         * config/i386/i386.c (ix86_function_arg_boundary): Align
11621         decimal floating point to its natural boundary.
11622
11623 2008-03-27  Richard Guenther  <rguenther@suse.de>
11624
11625         PR middle-end/35716
11626         * fold-const.c (fold_comparison): Restrict distinct decl
11627         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
11628         solely rely on operand_equal_p.
11629
11630 2008-03-27  Richard Guenther  <rguenther@suse.de>
11631
11632         PR c/32511
11633         * c-common.c (handle_weak_attribute): Reject combination of
11634         weak and inline.
11635
11636 2008-03-27  Richard Guenther  <rguenther@suse.de>
11637
11638         PR tree-optimization/32810
11639         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
11640         conversions from DECL_INITIAL.
11641         (fold_const_aggregate_ref): Likewise from constructor elements.
11642
11643 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
11644
11645         * tree-affine.h (aff_combination_expand): Declare.
11646         (get_inner_reference_aff): Likewise.
11647         * tree-affine.c (aff_combination_expand): Split out from
11648         tree_to_aff_combination_expand.
11649         (get_inner_reference_aff): New function.
11650         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
11651         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
11652         (struct lim_aux_data): sm_done field removed.
11653         (mem_ref_loc_p, mem_ref_locs_p): New types.
11654         (struct mem_ref): Added id, stored, accesses_in_loop,
11655         indep_loop, dep_loop, indep_ref, dep_ref fields.
11656         Removed is_stored, locs and next fields.
11657         (memory_accesses): New variable.
11658         (movement_possibility): Do not allow moving statements
11659         that store to memory.
11660         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
11661         New functions.
11662         (determine_max_movement): For statements with memory references,
11663         find the outermost loop in that the reference is independent.
11664         (move_computations_stmt): Mark the virtual operands for renaming.
11665         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
11666         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
11667         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
11668         add_vop_ref_mapping, create_vop_ref_mapping_loop,
11669         create_vop_ref_mapping, analyze_memory_references,
11670         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
11671         get_all_locs_in_loop, ref_always_accessed_p,
11672         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
11673         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
11674         store_motion_loop, store_motion): New functions.
11675         (struct vop_to_refs_elt): New type.
11676         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
11677         memref_hash, memref_eq, hoist_memory_references): Rewritten.
11678         (schedule_sm): Replaced by...
11679         (execute_sm): ... this.
11680         (determine_lsm_ref, hoist_memory_references,
11681         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
11682         find_more_ref_vops, free_mem_ref, free_mem_refs,
11683         determine_lsm_loop, determine_lsm): Removed.
11684         (tree_ssa_lim_finalize): Free data structures used by store motion.
11685         (tree_ssa_lim): Call analyze_memory_references.  Use
11686         store_motion instead of determine_lsm.
11687
11688 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11689
11690         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
11691         rename tmake_file to m68hc11/t-m68hc11.
11692         (mcore): Set inhibit_libc to true.
11693         * config.host (alpha*-dec-*vms*): Set extra_programs.
11694         (interix3*): Don't use host_xmake_file.
11695         * configure.ac: Let config.gcc override inhibit_libc.
11696         * configure: Regenerate.
11697
11698         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
11699         * config/t-openbsd-thread: Remove commented out lines.
11700         
11701         * config/x-interix: Remove.
11702
11703         * config/m68hc11/t-m68hc11-gas: Rename to...
11704         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
11705
11706         * config/mcore/t-mcore: Remove T_CFLAGS.
11707         * config/mcore/t-mcore-pe: Likewise.
11708
11709 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11710
11711         * configure.ac: Replace custom __GNU_SOURCE test with
11712         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
11713         * aclocal.m4: Regenerate.
11714         * configure: Regenerate.
11715         * config.in: Regenerate.
11716
11717 2008-03-27  Richard Guenther  <rguenther@suse.de>
11718
11719         * fold-const.c (target.h): Include.
11720         (fold_comparison): Fold comparison of addresses of decls
11721         that bind locally or of constants.  Consolidate address folding code.
11722         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
11723         results from fold_binary_to_constant.
11724         (compare_values_warnv): Likewise.
11725
11726 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
11727
11728         PR middle-end/35429
11729         * fold-const.c (fold_truthop): Check for integeral types when folding
11730         a == 0 && b == 0 and a != 0 || b != 0 .
11731
11732 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
11733
11734         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
11735
11736 2008-03-26  Andreas Schwab  <schwab@suse.de>
11737
11738         * doc/invoke.texi: Fix use of @item vs. @itemx.
11739
11740 2008-03-26  Tom Tromey  <tromey@redhat.com>
11741
11742         * Makefile.in (build/gensupport.o, build/print-rtl.o,
11743         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
11744         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
11745         build/gencodes.o, build/genconditions.o, build/genconfig.o,
11746         build/genconstants.o, build/genemit.o, build/genextract.o,
11747         build/genflags.o, build/genmddeps.o, build/genopinit.o,
11748         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
11749         options.h.
11750
11751 2008-03-26  Richard Guenther  <rguenther@suse.de>
11752
11753         Revert
11754         2008-03-26  Richard Guenther  <rguenther@suse.de>
11755
11756         * fold-const.c (target.h): Include.
11757         (fold_comparison): Fold comparison of addresses of two decls
11758         that bind locally.  Consolidate address folding code.
11759
11760 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11761
11762         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
11763         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
11764         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
11765         dconstsqrt2, dconstthird, dconste and/or dconst10.
11766         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
11767         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
11768         dconstsqrt2, dconste): Delete.
11769         (init_emit_once): Likewise.  Simplify initializing dconstm1.
11770         Constify variable.
11771         * real.c (get_real_const): New.
11772         * real.h (dconst3, dconst10, dconstm2, dconstthird,
11773         dconstsqrt2, dconste): Delete.
11774         (real_value_const, get_real_const): New.
11775
11776 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
11777
11778         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
11779
11780         * config/i386/i386.c (ix86_function_arg_boundary): Check
11781         BIGGEST_ALIGNMENT instead of 128.
11782         (setup_incoming_varargs_64): Likewise.
11783
11784 2008-03-26  Tom Tromey  <tromey@redhat.com>
11785
11786         * Makefile.in (DEPFILES): Add missing '/'.
11787
11788 2008-03-26  Richard Guenther  <rguenther@suse.de>
11789
11790         * fold-const.c (target.h): Include.
11791         (fold_comparison): Fold comparison of addresses of two decls
11792         that bind locally.  Consolidate address folding code.
11793
11794 2008-03-26  Nick Clifton  <nickc@redhat.com>
11795
11796         PR target/31232
11797         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
11798         not allow INT+INT as a legitimate addressing mode.
11799
11800 2008-03-26  Richard Guenther  <rguenther@suse.de>
11801
11802         * tree-flow.h (widen_bitfield): Remove declaration.
11803         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
11804         (widen_bitfield): Remove function.
11805         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
11806         code.
11807
11808 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11809
11810         PR target/31558
11811         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
11812         error_mark_node's.
11813
11814 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11815
11816         PR rtl-optimization/35232
11817         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
11818         (forget_old_reloads_1, forget_marked_reloads): Don't clear
11819         reg_reloaded_call_part_clobbered here.
11820         (reload_regs_reach_end_p): New function.
11821         (reload_reg_rtx_for_input): New variable.
11822         (reload_reg_rtx_for_output): Likewise.
11823         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
11824         when reassigning a pseudo register.  Load reloadreg from 
11825         reload_reg_rtx_for_input, moving the mode and register
11826         calculation to...
11827         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
11828         instead of the original when deciding whether an input reload
11829         would be a no-op or whether an output reload can be deleted.
11830         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
11831         when setting up new_spill_reg_store.  Load it from
11832         reload_reg_rtx_for_output, moving the mode and register
11833         calculation to...
11834         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
11835         instead of the original when deciding whether an output reload
11836         would be a no-op.  Do the same when modifying insn notes.
11837         Use rtx_equal_p instead of == to compare the registers.
11838         (inherit_piecemeal_p): Take a mode and two register numbers
11839         as argument.
11840         (emit_reload_insns): Clear new_spill_reg_store for every hard
11841         register in the reload register.  Remove spill registers
11842         from reg_reloaded_valid before considering whether to record
11843         inheritance information for them.  Use reload_reg_rtx_for_output
11844         instead of reg_rtx when recording output reloads.  Use
11845         reload_reg_rtx_for_input instead of reg_rtx when recording
11846         input reloads.  Set or clear reg_reloaded_call_part_clobbered
11847         at the same time as setting reg_reloaded_valid.
11848         (delete_output_reload): Add a new_reload_reg parameter and use it
11849         instead of rld[j].reg_rtx.
11850         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
11851         calls accordingly.
11852
11853 2008-03-25  Tom Tromey  <tromey@redhat.com>
11854
11855         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
11856         (build/genattr.o): Likewise.
11857         (build/genattrtab.o): Likewise.
11858         (build/gencodes.o): Likewise.
11859         (build/genconfig.o): Likewise.
11860         (build/genconstants.o): Likewise.
11861         (build/genemit.o): Likewise.
11862         (build/genextract.o): Likewise.
11863         (build/genflags.o): Likewise.
11864
11865 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
11866         
11867         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
11868         instead of size_int for integer types.
11869         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
11870         to match type of MINUS_EXPR.
11871         
11872 2008-03-25  Tom Tromey  <tromey@redhat.com>
11873
11874         * configure: Rebuilt.
11875         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
11876         Makefile.
11877
11878 2008-03-25  Tom Tromey  <tromey@redhat.com>
11879
11880         * config/x-solaris (host-solaris.o): Update.
11881         * config/x-linux (host-linux.o): Update.
11882         * config/x-hpux (host-hpux.o): Update.
11883         * config/x-darwin (host-darwin.o): Update.
11884         * config/v850/t-v850e (v850-c.o): Update.
11885         * config/v850/t-v850 (v850-c.o): Update.
11886         * config/t-vxworks (vxworks.o): Update.
11887         * config/t-sol2 (sol2-c.o, sol2.o): Update.
11888         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
11889         * config/spu/t-spu-elf (spu-c.o): Update.
11890         (spu.o): Remove.
11891         * config/sh/t-symbian (sh-c.o): Update.
11892         (symbian.o): Update.
11893         * config/sh/t-sh (sh-c.o): Update.
11894         * config/score/t-score-elf (score7.o, score3.o): Update.
11895         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
11896         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
11897         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
11898         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
11899         (rs6000.o): Remove.
11900         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
11901         * config/m32c/t-m32c (m32c-pragma.o): Update.
11902         * config/ia64/t-ia64 (ia64-c.o): Update.
11903         * config/i386/x-mingw32 (host-mingw32.o): Update.
11904         * config/i386/x-i386 (driver-i386.o): Update.
11905         * config/i386/x-darwin (host-i386-darwin.o): Update.
11906         * config/i386/x-cygwin (host-cygwin.o): Update.
11907         * config/i386/t-nwld (nwld.o): Update.
11908         * config/i386/t-netware (netware.o): Update.
11909         * config/i386/t-interix (winnt.o): Update.
11910         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
11911         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
11912         msformat-c.o): Update.
11913         * config/bfin/t-bfin-linux (generated_files): Add
11914         linux-sysroot-suffix.h.
11915         * config/arm/t-wince-pe (pe.o): Update.
11916         * config/arm/t-strongarm-pe (pe.o): Update.
11917         * config/arm/t-pe (pe.o): Update.
11918         * config/arm/t-arm (arm-c.o): Update.
11919         * doc/install.texi (Prerequisites): Require make 3.80.
11920         * Makefile.in: Remove .o targets.
11921         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
11922         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
11923         (simple_generated_h, simple_generated_c): Move earlier.
11924         (generated_files): New variable.
11925         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
11926         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
11927         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
11928         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
11929         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
11930         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
11931         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
11932         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
11933         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
11934         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
11935         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
11936         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
11937         (.c.o): Remove.
11938         (COMPILE.base, COMPILE): New variables.
11939         (%.o): New pattern rule.
11940         (ALL_HOST_OBJS): New variable.
11941         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
11942         (dummy-checksum.o, cc1-checksum.o): Remove.
11943         (DRIVER_SHLIB): New variable.
11944         (DRIVER_DEFINES): Use it.
11945         (gencondmd.c): Move out of build/.
11946         (s-conditions): Update.
11947         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
11948         (ALL_BUILD_OBJS): Likewise.
11949         (build/%.o): Use BUILDCOMPILE.
11950         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
11951         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
11952         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
11953         build/gencheck.o, build/gencodes.o, build/genconditions.o,
11954         build/genconfig.o, build/genconstants.o, build/genemit.o,
11955         build/genextract.o, build/genflags.o, build/genmddeps.o,
11956         build/genopinit.o, build/genoutput.o, build/genpeep.o,
11957         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
11958         build/gen-protos.o, build/scan.o, build/fix-header.o,
11959         build/scan-decls.o): Simplify.
11960         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
11961         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
11962         prefix.o, toplev.o): Reduce to variable setting.
11963         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
11964         ($(out_object_file), gcc-options.o): New targets.
11965         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
11966         * configure: Rebuilt.
11967         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
11968         * doc/sourcebuild.texi (Front End Directory): Document new variable.
11969
11970 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
11971
11972         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
11973         complain when we hit an error, return ERROR_MARK_NODE.
11974
11975 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11976
11977         * config/sh/constraints.md (Pso, Psz): New constraints.
11978         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
11979         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
11980
11981 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11982
11983         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
11984         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
11985
11986 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11987
11988         * config/sh/sh.md (prefetch): Add condition for SH2A target.
11989         (prefetch_sh2a): New.   
11990
11991 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11992             Naveen.H.S  <naveen.hs@kpitcummins.com>
11993
11994         * config/sh/constraints.md (I28): New constraint.
11995         * config/sh/sh.c (broken_move): Add support for movi20s.
11996         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
11997
11998 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
11999             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
12000             Naveen.H.S  <naveen.hs@kpitcummins.com>
12001
12002         * config/sh/sh.c (SH_ATTRIBUTES): Define.
12003         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
12004         (print_operand): Handle resbank in %@ operand code.
12005         (sh_encode_section_info): New.
12006         (push_regs): Add conditions for resbank.
12007         (sh_expand_epilogue): Likewise.
12008         (sh_insert_attributes): Likewise.
12009         (sh_attribute_table): Likewise.
12010         (sh_handle_resbank_handler_attribute): New.
12011         (sh2a_handle_function_vector_handler_attribute): New.
12012         (sh2a_is_function_vector_call): New.
12013         (sh2a_get_function_vector_number): New.
12014         (sh2a_function_vector_p): New.
12015         (sh_cfun_resbank_handler_p): New.
12016         * config/sh/sh.md (calli): Emit jsr/n if possible.
12017         (calli_tbr_rel): New.
12018         (calli_pcrel): Emit jsr/n if possible.
12019         (return_i): Emit rts/n if possible.
12020         (call_valuei_tbr_rel): New.
12021         (call_valuei_pcrel): Add condition for SH2A target.
12022         (call_value): Likewise.
12023         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
12024         (sh2a_get_function_vector_number): Likewise.
12025         (sh2a_is_function_vector_call): Likewise.
12026         * doc/extend.texi: Document TBR relative addressing of SH2A.
12027         (resbank): Add description for SH2A.
12028
12029 2008-03-24  Richard Guenther  <rguenther@suse.de>
12030
12031         PR c/22371
12032         * gimplify.c (gimplify_modify_expr): For frontend type-correct
12033         pointer assignments change conversions according to middle-end rules.
12034         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
12035         * configure.ac: Include type checking in yes.
12036         * configure: Regenerate.
12037
12038 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12039
12040         * diagnostic.c (diagnostic_count_diagnostic): Delete.
12041         (diagnostic_report_diagnostic): Update. Handle ICEs here.
12042         
12043 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
12044
12045         * gthr-vxworks.h (UNUSED): Define.
12046
12047 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
12048
12049         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
12050
12051 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
12052
12053         * doc/extend.texi (Function Attributes): Add missing comma in the
12054         example of the "alloc_size" attribute.
12055         
12056 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
12057
12058         Revert:
12059         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
12060
12061         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
12062         32bit host.
12063
12064         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
12065
12066         PR target/35496
12067         * stor-layout.c (update_alignment_for_field): Set minimum alignment
12068         of the underlying type of a MS bitfield layout to the natural
12069         alignment of the type.
12070
12071         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
12072
12073         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
12074         to their natural alignment to avoid store forwarding stalls.
12075
12076 2008-03-22  Richard Guenther  <rguenther@suse.de>
12077
12078         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
12079         For PHI nodes verify the address is invariant.
12080         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
12081         (get_symbol_constant_value): Use is_gimple_min_invariant.
12082         (maybe_fold_stmt_indirect): Likewise.
12083
12084 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
12085
12086         PR rtl-optimization/33927
12087         * Makefile.in (dse.o): Depend on $(TM_P_H).
12088         * expr.h (extract_low_bits): Declare.
12089         * expmed.c (extract_low_bits): New function.
12090         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
12091         * dse.c: Include tm_p.h.
12092         (find_shift_sequence): Remove the read_reg argument and return the
12093         read value.  Emit the instructions instead of returning them.
12094         Iterate on new_mode rather than calculating it each time.
12095         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
12096         source to NEW_MODE and extract_low_bits to convert the shifted
12097         value to READ_MODE.
12098         (replace_read): Allow the load and store to have different mode
12099         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
12100         or extraction instructions before trying the replacement.  Update
12101         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
12102
12103 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
12104
12105         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
12106         to their natural alignment to avoid store forwarding stalls.
12107
12108 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12109
12110         PR target/27946
12111         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
12112         encouraging but not allowing gprs for input;
12113         change the input constraint to !f#r.
12114         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
12115         gprs for output;
12116         change the output constraint to !f#r.
12117
12118 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
12119
12120         PR target/13958
12121         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
12122         corresponding post-reload splitters.
12123         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
12124         when x87 FP math is selected.
12125         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
12126         New function prototype.
12127         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
12128         unreachable function to ease macroization of insn patterns.
12129
12130 2008-03-21  Martin Jambor  <mjambor@suse.cz>
12131
12132         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
12133         reference dumps if ddr is NULL or dependence is unknown.
12134
12135 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12136
12137         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
12138         unsigned extension into account.
12139         (ATOMIC_COMPARE_AND_SWAP): Likewise.
12140         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
12141         Do computations on a scratch register.
12142
12143 2008-03-21  Richard Guenther  <rguenther@suse.de>
12144
12145         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
12146         Use is_gimple_min_invariant instead of TREE_INVARIANT.
12147         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
12148         * tree-ssa-dom.c (record_equality): Likewise.
12149         * tree-inline.c (copy_body_r): Likewise.
12150         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
12151         TREE_INVARIANT.
12152
12153 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
12154
12155         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
12156         as 'delete_unused' argument.
12157
12158 2008-03-20  Richard Guenther  <rguenther@suse.de>
12159
12160         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
12161         special casing of constant qualifiers.
12162         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
12163         care about them in general.
12164         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
12165         regardless of their type.
12166         (fold_stmt_r): Forcefully fold *& if we end up with that.
12167
12168 2008-03-20  Paul Brook  <paul@codesourcery.com>
12169
12170         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
12171         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
12172         linker flags.
12173         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
12174         definition.
12175         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
12176         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
12177
12178 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
12179
12180         * common.opt (Wmudflap): New option.
12181         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
12182         (mx_register_decls): Likewise.
12183         (mudflap_finish_file): Likewise.
12184         * doc/invoke.texi: Document -Wno-mudflap.
12185
12186 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
12187
12188         * c-format.c (replace_format_name_to_system_name): New.
12189         (cmp_attribs): New.
12190         (convert_format_name_to_system_name): New.
12191         (decode_format_attr): Add use of convert_format_name_to_system_name.
12192         (format_types_orig): Add gnu_ prefix to names.
12193         (check_format_info_main): Special treating of \0 escaped names for
12194         supporting multi-character format specifiers as I32, I64.
12195         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
12196         (gnu_target_overrides_format_attributes): New.
12197         * c-format.h: Add structure target_ovr_attr to hold
12198         system specific formatter names.
12199         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
12200         msformat-c.o file to c_target_objs and cxx_target_objs.
12201         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
12202         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
12203         (TARGET_N_FORMAT_TYPES): New.
12204         * config/i386/msformat-c.c: New.
12205         * config/i386/t-cygming: Add build rule for msformat-c.o.
12206         * doc/extend.texi: Add new format names gnu_* and ms_* and
12207         further details.
12208         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
12209
12210 2008-03-20  Ira Rosen  <irar@il.ibm.com>
12211
12212         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
12213         optimizations turned on under -O3.
12214         (ftree-vectorize): Add that the flag is turned on with -O3.
12215
12216 2008-03-20  Ben Elliston  <bje@au.ibm.com>
12217
12218         * regmove.c (try_auto_increment): Fix spelling error in comment.
12219         * final.c (final_scan_insn): Likewise.
12220
12221 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
12222
12223         PR target/14552
12224         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
12225         allocator preferences for "y" and "r" class registers.
12226         ("*mov<mode>_internal"): Ditto.
12227         ("*movv2sf_internal_rex64"): Ditto.
12228         ("*movv2sf_internal"): Ditto.
12229
12230 2008-03-19  Michael Matz  <matz@suse.de>
12231
12232         PR middle-end/35616
12233         * calls.c (expand_call): Check overlap of arguments with call
12234         address for sibcalls.
12235
12236 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
12237
12238         PR target/35496
12239         * stor-layout.c (update_alignment_for_field): Set minimum alignment
12240         of the underlying type of a MS bitfield layout to the natural
12241         alignment of the type.
12242
12243 2008-03-19  Jan Hubicka  <jh@suse.cz>
12244
12245         PR other/35094
12246         * toplev.c (decode_d_option): Handle all CPP flags.
12247         * tree-vrp.c: Update tree_pass descriptors.
12248         * regrename.c: Update tree_pass descriptors.
12249         * fwprop.c: Update tree_pass descriptors.
12250         * doc/invoke.texi: Remove documentation of dropped -d? flags.
12251         * tree-into-ssa.c: Update tree_pass descriptors.
12252         * tree-dump.c: Update tree_pass descriptors.
12253         * tree-complex.c: Update tree_pass descriptors.
12254         * tree-dump.h: Update tree_pass descriptors.
12255         * see.c: Update tree_pass descriptors.
12256         * cgraphbuild.c: Update tree_pass descriptors.
12257         * tracer.c: Update tree_pass descriptors.
12258         * tree-loop-distribution.c: Update tree_pass descriptors.
12259         * cgraph.c: Update tree_pass descriptors.
12260         * postreload-gcse.c: Update tree_pass descriptors.
12261         * postreload.c: Update tree_pass descriptors.
12262         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
12263         * tree-tailcall.c: Update tree_pass descriptors.
12264         * tree-pass.h (tree_opt_pass): Rename to ...
12265         (opt_pass) ... this one; add "type" field and remove letter field.
12266         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
12267         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
12268         all_lowering_passes): Update declaration.
12269         * ipa-cp.c: Update tree_pass descriptors.
12270         * final.c: Update tree_pass descriptors.
12271         * omp-low.c: Update tree_pass descriptors.
12272         * tree-ssa-dse.c: Update tree_pass descriptors.
12273         * ipa-reference.c: Update tree_pass descriptors.
12274         * tree-ssa-uncprop.c: Update tree_pass descriptors.
12275         * auto-inc-dec.c: Update tree_pass descriptors.
12276         * reorg.c: Update tree_pass descriptors.
12277         * cgraphunit.c: Update tree_pass descriptors.
12278         * tree-ssa-copyrename.c: Update tree_pass descriptors.
12279         * tree-ssa-ccp.c: Update tree_pass descriptors.
12280         * df-core.c: Update tree_pass descriptors.
12281         * mode-switching.c: Update tree_pass descriptors.
12282         * tree-nomudflap.c: Update tree_pass descriptors.
12283         * modulo-sched.c: Update tree_pass descriptors.
12284         * ipa-pure-const.c: Update tree_pass descriptors.
12285         * cse.c: Update tree_pass descriptors.
12286         * web.c: Update tree_pass descriptors.
12287         * tree-stdarg.c: Update tree_pass descriptors.
12288         * tree-ssa-math-opts.c: Update tree_pass descriptors.
12289         * tree-ssa-dom.c: Update tree_pass descriptors.
12290         * tree-nrv.c: Update tree_pass descriptors.
12291         * tree-ssa-alias.c: Update tree_pass descriptors.
12292         * loop-init.c: Update tree_pass descriptors.
12293         * gimple-low.c: Update tree_pass descriptors.
12294         * ipa-inline.c: Update tree_pass descriptors.
12295         * tree-ssa-sink.c: Update tree_pass descriptors.
12296         * global.c: Update tree_pass descriptors.
12297         * ifcvt.c: Update tree_pass descriptors.
12298         * jump.c: Update tree_pass descriptors.
12299         * predict.c: Update tree_pass descriptors.
12300         * tree-ssa-loop.c: Update tree_pass descriptors.
12301         * recog.c: Update tree_pass descriptors.
12302         * dse.c: Update tree_pass descriptors.
12303         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
12304         * tree-eh.c: Update tree_pass descriptors.
12305         * regmove.c: Update tree_pass descriptors.
12306         * local-alloc.c
12307         * function.c: Update tree_pass descriptors.
12308         * tree-vectorizer.c: Update tree_pass descriptors.
12309         * gcse.c: Update tree_pass descriptors.
12310         * ipa-type-escape.c: Update tree_pass descriptors.
12311         * tree-if-conv.c: Update tree_pass descriptors.
12312         * init-regs.c: Update tree_pass descriptors.
12313         * ipa.c: Update tree_pass descriptors.
12314         * tree-ssa-phiopt.c: Update tree_pass descriptors.
12315         * rtl-factoring.c: Update tree_pass descriptors.
12316         * lower-subreg.c: Update tree_pass descriptors.
12317         * bt-load.c: Update tree_pass descriptors.
12318         * tree-dfa.c: Update tree_pass descriptors.
12319         * except.c: Update tree_pass descriptors.
12320         * emit-rtl.c: Update tree_pass descriptors.
12321         * cfgexpand.c: Update tree_pass descriptors.
12322         * tree-cfgcleanup.c: Update tree_pass descriptors.
12323         * cfgcleanup.c: Update tree_pass descriptors.
12324         * tree-ssa-pre.c: Update tree_pass descriptors.
12325         * tree-sra.c: Update tree_pass descriptors.
12326         * tree-mudflap.c: Update tree_pass descriptors.
12327         * tree-ssa-copy.c: Update tree_pass descriptors.
12328         * cfglayout.c: Update tree_pass descriptors.
12329         * tree-ssa-forwprop.c: Update tree_pass descriptors.
12330         * tree-ssa-dce.c: Update tree_pass descriptors.
12331         * tree-ssa.c: Update tree_pass descriptors.
12332         * regclass.c: Update tree_pass descriptors.
12333         * integrate.c: Update tree_pass descriptors.
12334         * tree-optimize.c: Update tree_pass descriptors.
12335         * tree-ssa-phiprop.c: Update tree_pass descriptors.
12336         * tree-object-size.c: Update tree_pass descriptors.
12337         * combine.c: Update tree_pass descriptors.
12338         * tree-outof-ssa.c: Update tree_pass descriptors.
12339         * bb-reorder.c: Update tree_pass descriptors.
12340         * stack-ptr-mod.c: Update tree_pass descriptors.
12341         * var-tracking.c: Update tree_pass descriptors.
12342         * tree-profile.c: Update tree_pass descriptors.
12343         * tree-vect-generic.c: Update tree_pass descriptors.
12344         * reg-stack.c: Update tree_pass descriptors.
12345         * sched-rgn.c: Update tree_pass descriptors.
12346         * tree-ssa-structalias.c: Update tree_pass descriptors.
12347         * tree-cfg.c: Update tree_pass descriptors.
12348         * passes.c (current_pass): Update declaration.
12349         (finish_optimization_passes): Update.
12350         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
12351         (register_one_dump_file, register_dump_files_1, next_pass_1):
12352         Update arguments.
12353         (init_optimization_passes): Update handling of new types.
12354         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
12355         * ipa-struct-reorg.c: Update tree_pass descriptors.
12356         * tree-ssa-reassoc.c: Update tree_pass descriptors.
12357         * combine-stack-adj.c: Update tree_pass descriptors.
12358         * cfgrtl.c: Update tree_pass descriptors.
12359         * dce.c: Update tree_pass descriptors.
12360         * tree-ssanames.c: Update tree_pass descriptors.
12361
12362 2008-03-19  Richard Guenther  <rguenther@suse.de>
12363
12364         PR middle-end/35609
12365         * tree-ssa.c (walk_data): New structure.
12366         (warn_uninitialized_var): If not always_executed warn with "maybe"
12367         instead of "is".
12368         (execute_early_warn_uninitialized): Compute post-dominators.
12369         Initialize always_executed before processing each basic block.
12370
12371 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
12372
12373         PR target/35504
12374         * config/i386/i386.c (x86_this_parameter): Calculate correct location
12375         of "this" pointer when "regparm = N" or "fastcall" is in effect.
12376
12377 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12378
12379         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
12380
12381 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
12382
12383         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
12384         is true.
12385         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
12386         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
12387         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
12388         target after ignore has been set, and move there also the commputation
12389         of subtarget and original_target.
12390         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
12391         (LANG_HOOKS_INITIALIZER): Remove it.
12392         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
12393
12394 2008-03-18  Richard Guenther  <rguenther@suse.de>
12395
12396         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
12397         found an expression with constants, note that in the VN for the lhs.
12398         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
12399         fold them to constants if possible.  Run cleanup_cfg if done so.
12400         (execute_pre): Return todo.
12401         (do_pre): Likewise.
12402         (execute_fre): Likewise.
12403         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
12404         of constants.
12405         (get_prop_source_stmt): Look through pointer conversions.
12406
12407 2008-03-18  Jan Hubicka  <jh@suse.cz>
12408
12409         * tree-pretty-print.c: Include predict.h.
12410         (dump_generic_node): Dump predictor.
12411         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
12412         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
12413         * gimple-low.c (lower_stmt): Likewise.
12414         * expr.c (expand_expr_real): Likewise.
12415         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
12416         them.
12417         (build_predict_expr, build_predict_expr): New.
12418         * predict.h (predictor_name, build_predict_expr): Update.
12419         * c-typeck.c (c_finish_bc_stmt): Add prediction.
12420         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
12421         * predict.def (PRED_CONTINUE): Update hitrate.
12422         * tree.def (PREDICT_EXPR): Define.
12423         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
12424         do not handle BIND_EXPR.
12425         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
12426         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
12427         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
12428         operands.
12429
12430 2008-03-18  Michael Matz  <matz@suse.de>
12431
12432         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
12433
12434 2008-03-18  Richard Guenther  <rguenther@suse.de>
12435
12436         * tree-gimple.h (is_gimple_invariant_address): Declare.
12437         (is_gimple_constant): Likewise.
12438         * tree-gimple.c (is_gimple_constant): New function.
12439         (is_gimple_invariant_address): Likewise.
12440         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
12441         and is_gimple_invariant_address.
12442         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
12443         previous change.
12444         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
12445         an addressable base.
12446
12447 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
12448
12449         PR middle-end/35611
12450         * gimplify.c (gimplify_expr): Gimplify second operand of
12451         OMP_ATOMIC_LOAD.
12452
12453 2008-03-17  Richard Guenther  <rguenther@suse.de>
12454
12455         PR tree-optimization/19637
12456         * fold-const.c (fold_unary): Remove restrictions of removing
12457         intermediate pointer-conversions (P2)(P1)P0.
12458         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
12459         conversion to void pointer.
12460         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
12461
12462 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
12463
12464         PR debug/31510
12465         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
12466         emulated thread local variables.
12467
12468 2008-03-16  Richard Guenther  <rguenther@suse.de>
12469
12470         PR middle-end/35607
12471         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
12472         expand TREE_INVARIANT operations that are not gimple invariant.
12473
12474 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
12475
12476         * doc/extend.texi (Alignment): Say that the ABI controls
12477         the __alignof__ for non-strict-alignment targets rather
12478         than being a recommendation.
12479
12480 2008-03-15  Paul Brook  <paul@codesourcery.com>
12481
12482         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
12483         annotations.
12484         (arm_output_fn_unwind): Mark functions that can not be unwound.
12485
12486 2008-03-15  Paul Brook  <paul@codesourcery.com>
12487
12488         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
12489         extension instructions.
12490
12491 2008-03-15  Richard Guenther  <rguenther@suse.de>
12492
12493         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
12494         and fold constant aggregate refs.
12495         (fold_const_aggregate_ref): Handle string constants
12496         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
12497         (evaluate_stmt): Simplify now that ccp_fold folds constant
12498         aggregate refs.
12499
12500 2008-03-15  Paul Brook  <paul@codesourcery.com>
12501
12502         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
12503         (extzv): Use gen_extzv_t2.
12504         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
12505
12506 2008-03-15  Richard Guenther  <rguenther@suse.de>
12507
12508         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
12509         (fold_const_aggregate_ref): Likewise.
12510         (get_value): Return NULL if we don't have any values.
12511         (ccp_finalize): Set const_val to NULL after freeing it.
12512         * tree-flow.h (get_symbol_constant_value): Declare.
12513         (fold_const_aggregate_ref): Likewise.
12514         * tree-ssa-sccvn.c (try_to_simplify): Use them.
12515
12516 2008-03-15  Richard Guenther  <rguenther@suse.de>
12517
12518         PR middle-end/35593
12519         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
12520         to not produce negative array indices if not allowed.  Add
12521         parameter to indicate that.
12522         (maybe_fold_offset_to_component_ref): Allow negative array
12523         indices only for the first member of a structure.
12524         (maybe_fold_offset_to_reference): Allow negative array indices.
12525         (maybe_fold_stmt_addition): Likewise.
12526
12527 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
12528             Anatoly Sokolov <aesok@post.ru>
12529
12530         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
12531         (avr_arch): Add ARCH_AVR6.
12532         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
12533         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
12534         instead of fixed value 2.
12535         (print_operand_address): Use gs() asm specifier instead of pm().
12536         (avr_assemble_integer): (Ditto.).
12537         (avr_output_addr_vec_elt): (Ditto.).
12538         (print_operand): Handle "!" code.
12539         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
12540         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
12541         (AVR_HAVE_EIJMP_EICALL): Define.
12542         (AVR_3_BYTE_PC): Redefine.
12543         (AVR_2_BYTE_PC): (Ditto.).
12544         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
12545         (LINK_SPEC): Add atmega2560 and atmega2561.
12546         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
12547         (crtm2561.o).
12548         * config/avr/avr.md (call_insn): Use eicall instead of icall 
12549         for 3 byte PC devices.
12550         (call_value_insn): (Ditto.).
12551         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
12552         (indirect_jump): Use only for for 2 byte PC devices.
12553         (*tablejump): (Ditto.).
12554         (*indirect_jump_avr6): Add insn.
12555         (*tablejump_rjmp): Don't use for 3 byte PC devices.
12556         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
12557         instead of ijmp for 3 byte PC devices.
12558         (__tablejump2__): (Ditto.).
12559         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
12560         (MULITLIB_DIRNAMES): (Ditto.). 
12561         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
12562
12563 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
12564
12565         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
12566         "sse2_umulsidi3".  Use V1DI mode for operand 0.
12567         ("mmx_psadbw"): Use V1DI mode for operand 0.
12568         * config/i386/i386-modes.def (V1SI): New vector mode.
12569         * config/i386/i386.c (struct builtin_description)
12570         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
12571         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
12572         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
12573         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
12574         v1di_ftype_v8qi_v8qi type.
12575         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
12576
12577         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
12578         __builtin_ia32_pmuludq]: Fix the mode of return value.
12579
12580 2008-03-15  Richard Guenther  <rguenther@suse.de>
12581
12582         PR middle-end/35595
12583         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
12584         being a PHI_NODE.
12585
12586 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
12587         
12588         * doc/invoke.texi (Option Summary, Xtensa Options): Document
12589         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
12590         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
12591         unless TARGET_SERIALIZE_VOLATILE is enabled.
12592         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
12593         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
12594         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
12595
12596 2008-03-14  Richard Guenther  <rguenther@suse.de>
12597
12598         PR tree-optimization/34172
12599         * tree-flow.h (refs_may_alias_p): Declare.
12600         (get_single_def_stmt): Likewise.
12601         (get_single_def_stmt_from_phi): Likewise.
12602         (get_single_def_stmt_with_phi): Likewise.
12603         * tree-dfa.c (refs_may_alias_p): New function.
12604         (get_single_def_stmt): Likewise.
12605         (get_single_def_stmt_from_phi): Likewise.
12606         (get_single_def_stmt_with_phi): Likewise.
12607         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
12608         (vn_reference_lookup_1): New helper function.
12609         (vn_reference_lookup): Walk the virtual use-def chain to
12610         continue searching for a match if the def does not alias the
12611         reference we are looking for.
12612
12613 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
12614
12615         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
12616         archive and Perzl.  Update The Written Word listing.
12617
12618 2008-03-14  Richard Guenther  <rguenther@suse.de>
12619
12620         PR tree-optimization/34043
12621         PR tree-optimization/33989
12622         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
12623         when doing FRE.
12624         (bitmap_find_leader): Use extra argument to verify dominance
12625         relationship inside a basic-block.
12626         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
12627         (find_leader_in_sets): Adjust.
12628         (create_component_ref_by_pieces): Take extra argument for
12629         dominance check, handle lookup failures.
12630         (find_or_generate_expression): Likewise.
12631         (create_expression_by_pieces): Likewise.
12632         (insert_into_preds_of_block): Adjust.
12633         (create_value_expr_from): If asked for, verify all operands
12634         are in the blocks AVAIL_OUT set.
12635         (make_values_for_stmt): Check for SSA_NAMEs that are life
12636         over an abnormal edge.
12637         (compute_avail): Remove such check.
12638         (do_SCCVN_insertion): New function.
12639         (eliminate): If we do not find a leader suitable for replacement
12640         insert a replacement expression from SCCVN if available.
12641         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
12642         (struct vn_ssa_aux): Add needs_insertion flag.
12643         * tree-ssa-sccvn.c (may_insert): New global flag.
12644         (copy_reference_ops_from_ref): Value-number union member access
12645         based on its size, not type and member if insertion is allowed.
12646         (visit_reference_op_load): For a weak match from union type
12647         punning lookup a view-converted value and insert a SSA_NAME
12648         for that value if that is not found.
12649         (visit_use): Make dumps shorter.  Do not disallow value numbering
12650         SSA_NAMEs that are life over an abnormal edge to constants.
12651         (free_scc_vn): Release inserted SSA_NAMEs.
12652         (run_scc_vn): New flag to specify whether insertion is allowed.
12653         Process SSA_NAMEs in forward order.
12654         * tree-ssa-loop-im.c (for_each_index): Handle invariant
12655         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
12656         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
12657         pointer type to/from integral types that do not change the
12658         precision to regular conversions.
12659
12660 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12661
12662         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12663         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12664         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
12665         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
12666         input arguments and the mode of return value.  Built-in functions
12667         that operate on whole 64-bit MMX register now use V1DI mode.
12668
12669 2008-03-13  Alon Dayan  <alond@il.ibm.com>
12670             Olga Golovanevsky  <olga@il.ibm.com>
12671
12672         PR tree-optimization/35041
12673         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
12674         to locate the right position in a statement.
12675
12676 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12677
12678         PR target/34000
12679         PR target/35553
12680         * config/i386/xmmintrin.h:  Change all static inline functions to
12681         extern inline and add __gnu_inline__ attribute.
12682         * config/i386/bmintrin.h: Ditto.
12683         * config/i386/smmintrin.h: Ditto.
12684         * config/i386/tmmintrin.h: Ditto.
12685         * config/i386/mmintrin-common.h: Ditto.
12686         * config/i386/ammintrin.h: Ditto.
12687         * config/i386/emmintrin.h: Ditto.
12688         * config/i386/pmmintrin.h: Ditto.
12689         * config/i386/mmintrin.h: Ditto.
12690         * config/i386/mm3dnow.h: Ditto.
12691
12692 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
12693
12694         PR middle-end/35185
12695         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
12696         (lower_omp_2): New function.
12697         (lower_omp_1, lower_omp): Rewritten.
12698
12699 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
12700
12701         PR 35054
12702         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
12703         with the phrase "Microsoft Windows compilers".
12704         (Push/Pop Macro Pragmas): New subsection. Document
12705         #pragma push_macro and pragma pop_macro.
12706
12707 2008-03-12  Paul Brook  <paul@codesourcery.com>
12708
12709         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
12710
12711 2008-03-12  Paul Brook  <paul@codesourcery.com>
12712
12713         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
12714         (thumb2_alusi3_short): Exclude PLUS and MINUS.
12715         (thumb2_addsi_shortim): Rename ...
12716         (thumb2_addsi_short): ... to this.  Allow register operands.
12717         (thumb2_subsi_short): New pattern.
12718         (thumb2_one_cmplsi2_short,
12719         thumb2_negsi2_short): New patterns and peepholes.
12720
12721 2008-03-12  Paul Brook  <paul@codesourcery.com>
12722
12723         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
12724
12725 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
12726
12727         * config/i386/i386.md (int_cond): New code iterator.
12728         (fp_cond): Ditto.
12729         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
12730         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
12731         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
12732         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
12733         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
12734         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
12735         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
12736         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
12737
12738 2008-03-12  Paul Brook  <paul@codesourcery.com>
12739
12740         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
12741         instead of {arm,thumb}_compute_save_reg_mask.
12742         (output_return_instruction): Ditto.
12743         (thumb_unexpanded_epilogue): Ditto.
12744         (thumb1_expand_prologue): Ditto.
12745         (thumb1_output_function_prologue): Ditto.
12746         (arm_set_return_address): Ditto.
12747         (thumb_set_return_address): Ditto.
12748         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
12749         regs to achieve stack alignment.
12750         (thumb1_compute_save_reg_mask): Fix compiler warning.
12751         (arm_output_epilogue): Use offsets->saved_regs_mask.
12752         Adjust stack pointer by poping call clobered registers.
12753         (arm_expand_prologue): Use offsets->saved_regs_mask.
12754         Adjust stack pointer by pushing extra registers.
12755         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
12756
12757 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
12758
12759         PR tree-opt/35422
12760         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
12761         conversion to the operands of a multiplication.
12762
12763 2008-03-12  Richard Guenther  <rguenther@suse.de>
12764
12765         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
12766         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
12767         * timevar.def (TV_TREE_PHIPROP): Add.
12768         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
12769         pass description.  Use TV_TREE_PHIPROP.
12770         * tree-ssa-forwprop.c: Remove phiprop code.
12771
12772 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
12773
12774         PR middle-end/35549
12775         * omp-low.c (maybe_lookup_decl): Constify first argument.
12776         (use_pointer_for_field): Change last argument from bool to
12777         omp_context *.  Disallow shared copy-in/out in nested
12778         parallel if decl is shared in outer parallel too.
12779         (build_outer_var_ref, scan_sharing_clauses,
12780         lower_rec_input_clauses, lower_copyprivate_clauses,
12781         lower_send_clauses, lower_send_shared_vars): Adjust callers.
12782
12783 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
12784             Ira Rosen  <irar@il.ibm.com>
12785
12786         * tree-vectorizer.c (free_stmt_vec_info): New function.
12787         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
12788         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
12789         * tree-vectorizer.h (free_stmt_vec_info): Declare.
12790         * tree-vect-transform.c (vectorizable_conversion): Free
12791         vec_oprnds0 if it was allocated.
12792         (vect_permute_store_chain): Remove unused VECs.
12793         (vectorizable_store): Free VECs that are allocated in the..
12794         function.
12795         (vect_transform_strided_load, vectorizable_load): Likewise.
12796         (vect_remove_stores): Simplify the code.
12797         (vect_transform_loop): Move code to vect_remove_stores().
12798         Call vect_remove_stores() and free_stmt_vec_info().
12799
12800 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12801
12802         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
12803         TARGET_HPUX.  Revise comment.
12804         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
12805         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
12806         Use sr4 variant of `be' instruction when not generating PIC code.
12807         (attr_length_call): Adjust for above change.
12808
12809 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12810
12811         * ipa-reference.c (static_execute): Remove module_statics_const and
12812         associated setting code.
12813
12814 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12815
12816         PR target/35540
12817         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
12818         predicate for operand 1.
12819         (paritysi2_cmp): Use register_operand predicate for operand 2.
12820         Use earlyclobber modifier for operand 1.  Remove support for
12821         memory operands.
12822         (paritydi2_cmp): Use register_operand predicate for operand 3.
12823         Use earlyclobber modifier for operand 1.  Remove support for
12824         memory operands.
12825
12826 2008-03-11  Paul Brook  <paul@codesourcery.com>
12827             Vladimir Prus  <vladimir@codesourcery.com>
12828
12829         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
12830         (arm_compute_save_reg0_reg12_mask): Always
12831         check if register 11 must be saved.  Always safe hard frame pointer
12832         when frame_pointer_needeed.
12833         (arm_compute_save_reg_mask): Save IP and PC
12834         only with apcs frames.
12835         (arm_output_epilogue): Adjust Thumb2 codepath to
12836         be also invoked and work for ARM non-apcs frames.
12837         (arm_expand_prologue): Don't bother saving IP
12838         for non-apcs frame, since it's not clobbered by
12839         prologue code.  Implement non-apcs frame
12840         layout.
12841
12842 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12843
12844         PR rtl-optimization/35281
12845         * expr.c (convert_move): Use a new pseudo for the intermediate
12846         from_mode->word_mode result.
12847
12848 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12849
12850         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
12851         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
12852         * toplev.c (compile_file): Don't call it.
12853
12854 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12855
12856         PR middle-end/35526
12857         * expr.c (store_expr): Call emit_block_move if the mode
12858         of "temp" RTX is BLKmode.
12859
12860 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12861             Richard Guenther  <rguenther@suse.de>
12862
12863         PR tree-optimization/31358
12864         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
12865         the step with a NULL_TREE.
12866         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
12867         to sizetype if type is a pointer type.
12868         (add_candidate_1): Don't convert the base and step to
12869         the generic type if the orginal type is a pointer type.
12870         (add_iv_value_candidates): Use sizetype for the step
12871         if type is a pointer type.
12872         (cand_value_at): Likewise.
12873         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
12874         for pointer types.
12875         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
12876         Don't convert the tem affine to the type.
12877         (add_elt_to_tree): Use sizetype for the step if a pointer.
12878         Use POINTER_PLUS_EXPR for pointers.
12879         (aff_combination_to_tree): Use sizetype for the step if a
12880         pointer.
12881
12882 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
12883
12884         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
12885         Remove commutativity hint.
12886
12887 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
12888
12889         PR c/35438
12890         PR c/35439
12891         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
12892         errorneous type.  Check that v is a VAR_DECL.
12893
12894         PR middle-end/35099
12895         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
12896
12897 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
12898
12899         PR tree-optimization/35494
12900         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
12901         may be overriden at link and run time.
12902
12903 2008-03-10  Richard Guenther  <rguenther@suse.de>
12904
12905         PR tree-optimization/34677
12906         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
12907         (poolify_tree): Likewise.
12908         (modify_expr_template): Likewise.
12909         (poolify_modify_stmt): Likewise.
12910         (insert_fake_stores): Handle all component-ref style stores
12911         in addition to INDIRECT_REF.  Also handle complex types.
12912         Do not poolify the inserted load.
12913         (realify_fake_stores): Do not rebuild the tree but only
12914         make it a SSA_NAME copy.
12915         (init_pre): Remove initialzation of modify_expr_template.
12916         Do not allocate modify_expr_node_pool.
12917         (fini_pre): Do not free modify_expr_node_pool.
12918
12919 2008-03-10  Paul Brook  <paul@codesourcery.com>
12920
12921         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
12922         to avoid conflicts.
12923
12924 2008-03-10  Paul Brook  <paul@codesourcery.com>
12925             Mark Shinwell  <shinwell@codesourcery.com>
12926
12927         * config/arm/cortex-r4.md: New.
12928         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
12929         insn attributes.
12930         * config/arm/arm.md: Include cortex-r4.md.
12931         (insn): Add smmls, sdiv and udiv values.
12932         (generic_sched): Don't use generic scheduling for Cortex-R4.
12933         (arm_issue_rate): New function.
12934         (TARGET_SCHED_ISSUE_RATE): Define.
12935
12936 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
12937
12938         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
12939
12940 2008-03-10  Richard Guenther  <rguenther@suse.de>
12941
12942         * tree-ssa-pre.c (get_sccvn_value): Simplify.
12943         (compute_avail): Do not add stmt uses to AVAIL_OUT.
12944
12945 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
12946
12947         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
12948         Set default to true.
12949
12950 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12951
12952         * c.opt (Wsynth): Deprecate.
12953         * doc/invoke.texi (Option Summary, Warning Options): Document
12954         -Wno-format-contains-nul.
12955
12956 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
12957
12958         PR target/35496
12959         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
12960         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
12961
12962 2008-03-09  Ira Rosen  <irar@il.ibm.com>
12963
12964         * config/rs6000/rs6000.c (builtin_description): Rename vector
12965         left shift operations.
12966         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
12967         (altivec_vsl<VI_char>): Rename to ...
12968         (ashl<mode>3): ... new name.
12969         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
12970         gen_ashlv4si3.
12971         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
12972
12973 2008-03-08  Richard Guenther  <rguenther@suse.de>
12974
12975         * coverage.h (tree_coverage_counter_addr): Declare.
12976         * coverage.c (tree_coverage_counter_addr): New function.
12977         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
12978         before using again.
12979         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
12980         (tree_gen_one_value_profiler): Likewise.
12981         (tree_gen_ic_profiler): Likewise.
12982         (tree_gen_average_profiler): Likewise.
12983         (tree_gen_ior_profiler): Likewise.
12984
12985 2008-03-08  Richard Guenther  <rguenther@suse.de>
12986
12987         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
12988         (vn_binary_op_insert): Likewise.
12989         (vn_unary_op_lookup): Likewise.
12990         (vn_unary_op_insert): Likewise.
12991         (vn_nary_op_lookup): Declare.
12992         (vn_nary_op_insert): Likewise.
12993         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
12994         and binary hashes, use a single obstack for unary_op_pool
12995         and binary_op_pool.
12996         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
12997         a single struct vn_nary_op_s.  Store tree code length and
12998         a variable number of operands.
12999         (struct vn_reference_op_struct): Remove unused op2.
13000         (vn_reference_op_eq): Do not compare op2.
13001         (vn_reference_op_compute_hash): Do not compute hash of op2.
13002         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
13003         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
13004         with vn_nary_op_compute_hash.
13005         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
13006         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
13007         vn_nary_op_lookup.
13008         (vn_unary_op_insert, vn_binary_op_insert): Replace with
13009         vn_nary_op_insert.
13010         (visit_unary_op): Call nary functions.
13011         (visit_binary_op): Likewise.
13012         (process_scc): Adjust for struct vn_tables_s changes.
13013         (allocate_vn_table): Likewise.
13014         (free_vn_table): Likewise.
13015         * tree-vn.c (vn_add): Call nary functions.
13016         (vn_lookup): Likewise.
13017
13018 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
13019
13020         PR target/35498
13021         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
13022         wdst back after sync_compare_and_swapqhi_internal.
13023
13024 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
13025
13026         PR target/22152
13027         * config/i386/i386-modes.def (V1DI): New vector mode.
13028         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
13029         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
13030         (MMXMODE248): Ditto.
13031         (MMXMODE): Add V1DI mode.
13032         (mmxvecsize): Change DI mode to V1DI mode.
13033         ("mov<mode>): Use MMXMODEI8 mode iterator.
13034         ("*mov<mode>_internal_rex64"): Ditto.
13035         ("*mov<mode>_internal"): Ditto.
13036         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
13037         ("mmx_sub<mode>3"): Ditto.
13038         ("mmx_adddi3"): Remove insn pattern.
13039         ("mmx_subdi3"): Ditto.
13040         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
13041         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
13042         ("mmx_ashl<mode>3"): Ditto.
13043         ("mmx_lshrdi3"): Remove insn pattern.
13044         ("mmx_ashldi3"): Ditto.
13045         * config/i386/i386.c (classify_argument): Handle V1DImode.
13046         (function_arg_advance_32): Ditto.
13047         (function_arg_32): Ditto.
13048         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
13049         mmx_addv1di3 insn pattern.
13050         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
13051         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
13052         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
13053         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
13054         Remove definitions of built-in functions.
13055         (V1DI_type_node): New node.
13056         (v1di_ftype_v1di_int): Ditto.
13057         (v1di_ftype_v1di_v1di): Ditto.
13058         (v2si_ftype_v2si_si): Ditto.
13059         (v4hi_ftype_v4hi_di): Remove node.
13060         (v2si_ftype_v2si_di): Ditto.
13061         (ix86_init_mmx_sse_builtins): Handle V1DImode.
13062         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
13063         Redefine builtins using def_builtin_const with *_ftype_*_int node.
13064         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
13065         Add new builtins using def_builtin_const.
13066         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
13067         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
13068         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
13069         * config/i386/mmintrin.h (__v1di): New typedef.
13070         (_mm_add_si64): Cast arguments to __v1di type.
13071         (_mm_sub_si64): Ditto.
13072         (_mm_sll_pi16): Cast __count to __v4hi type.
13073         (_mm_sll_pi32): Cast __count to __v2si type.
13074         (_mm_sll_si64): Cast arguments to __v1di type.
13075         (_mm_srl_pi16): Cast __count to __v4hi type.
13076         (_mm_srl_pi32): Cast __count to __v2si type.
13077         (_mm_srl_si64): Cast arguments to __v1di type.
13078         (_mm_sra_pi16): Cast __count to __v4hi type.
13079         (_mm_sra_pi32): Cast __count to __v2si type.
13080         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
13081         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
13082         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
13083         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
13084         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
13085         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
13086         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
13087         (_mm_srai_pi32): Use __builtin_ia32_psradi.
13088         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
13089         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
13090         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
13091         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
13092
13093 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
13094
13095         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
13096
13097 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
13098
13099         PR target/35373
13100         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
13101         reg+const addressing for Altivec modes.  Don't generate reg+reg
13102         addressing for TFmode or TDmode quantities.
13103
13104 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
13105
13106         * c-common.c (vector_types_convertible_p): Call langhook
13107         instead of comptypes.
13108
13109 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13110
13111         PR tree-opt/35402
13112         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
13113         integral and scalar float variables which have a
13114         NULL DECL_INITIAL.
13115
13116 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
13117
13118         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
13119         dwarf_register_span hook when emitting unwind information for
13120         register-to-memory saves.
13121         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
13122         (rs6000_frame_related): Remove call to spe_synthesize_frame.
13123
13124 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
13125
13126         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
13127         for the same VAR_DECL.
13128
13129 2008-03-06  Tom Tromey  <tromey@redhat.com>
13130
13131         * treelang: Delete.
13132         * doc/standards.texi (Standards): Don't mention treelang.
13133         * doc/invoke.texi (Overall Options): Don't mention treelang.
13134         * doc/install.texi (Prerequisites): Don't mention bison or
13135         treelang.
13136         (Configuration): Don't mention treelang.
13137         (Building): Likewise.
13138         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
13139
13140 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
13141
13142         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
13143         word-extractions out of a multi-word object.
13144
13145 2008-03-06  Richard Guenther  <rguenther@suse.de>
13146
13147         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
13148         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
13149         result type and precision.
13150         * expr.c (get_inner_reference): Set unsignedp based on the result
13151         type of BIT_FIELD_REF.
13152         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
13153         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
13154         (try_instantiate_multiple_fields): Likewise.  Use the correct type
13155         for BIT_FIELD_REF.
13156         (sra_build_assignment): Likewise.
13157         (sra_build_elt_assignment): Likewise.
13158         (sra_explode_bitfield_assignment): Likewise.
13159         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
13160         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
13161         set BIT_FIELD_REF_UNSIGNED.
13162         (vectorizable_load): Likewise.
13163
13164 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
13165
13166         * cse.c (cse_extended_basic_block): Invalidate artificial defs
13167         at bb start.
13168
13169 2008-03-06  Richard Guenther  <rguenther@suse.de>
13170
13171         * alias.c (struct alias_set_entry): Move has_zero_child field
13172         to pack with alias_set.
13173
13174 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
13175
13176         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
13177         32bit host.
13178
13179 2008-03-05  Ian Lance Taylor  <iant@google.com>
13180
13181         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
13182
13183 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
13184
13185         * fwprop.c (update_df): Support width and offset parameters of
13186         df_ref_create.
13187         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
13188         global_conflicts): Change DF_REF_EXTRACT to either
13189         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
13190         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
13191         * df-scan.c (df_ref_record, df_defs_record,
13192         df_ref_create_structure, df_def_record_1, df_uses_record,
13193         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
13194         df_bb_refs_collect, df_entry_block_defs_collect,
13195         df_exit_block_uses_collect): Support new width and offset fields.
13196         (ref_extract_pool): New storage pool.
13197         (df_free_ref): New function.
13198         (df_reg_chain_unlink, df_free_collection_rec,
13199         df_sort_and_compress_refs): Call df_free_ref.
13200         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
13201         of df_ref_extract.
13202         (df_ref_create_structure): Allocate df_ref_extract if offset and
13203         width fields are used.
13204         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
13205         (df_uses_record): Get offset and width from ZERO_EXTRACT 
13206         and SIGN_EXTRACT.
13207         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
13208         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
13209         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
13210         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
13211         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
13212         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
13213         (df_ref_extract): New structure.
13214         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
13215         (df_ref_create): Add width and offset parameters.
13216         
13217 2008-03-05  Richard Guenther  <rguenther@suse.de>
13218
13219         * tree-ssa-structalias.c (get_constraint_for_component_ref):
13220         Use ranges_overlap_p.
13221         (offset_overlaps_with_access): Rename
13222         to ranges_overlap_p and move ...
13223         * tree-flow-inline.h (ranges_overlap_p): ... here.
13224
13225         * tree.h (get_inner_reference, handled_component_p): Update
13226         comments.
13227
13228         * tree.h (record_component_aliases, get_alias_set,
13229         alias_sets_conflict_p, alias_sets_must_conflict_p,
13230         objects_must_conflict_p): Move declarations ...
13231         * alias.h (record_component_aliases, get_alias_set,
13232         alias_sets_conflict_p, alias_sets_must_conflict_p,
13233         objects_must_conflict_p): ... here.
13234         Include coretypes.h.
13235         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
13236
13237 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
13238
13239         * cfg.c: Include tree-flow.h.
13240         (remove_edge_raw): Call redirect_edge_var_map_clear.
13241         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
13242         * tree-flow-inline.h (redirect_edge_var_map_def): New.
13243         (redirect_edge_var_map_result): New.
13244         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
13245         PENDING_STMT use with redirect_edge_var_map_*.
13246         * tree-ssa.c (edge_var_maps): New definition.
13247         (redirect_edge_var_map_add): New.
13248         (redirect_edge_var_map_clear): New.
13249         (redirect_edge_var_map_dup): New.
13250         (redirect_edge_var_map_vector): New.
13251         (redirect_edge_var_map_destroy): New.
13252         (ssa_redirect_edge): Replace PENDING_STMT use with
13253         redirect_edge_var_map_*.
13254         (flush_pending_stmts): Same.
13255         (delete_tree_ssa): Destroy edge var map.
13256         * tree-flow.h (struct _edge_var_map): New.
13257         Define edge_var_map vector type.
13258         Declare redirect_edge_var_map_* prototypes.
13259         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
13260         * tree-cfg.c (reinstall_phi_args): Replace
13261         PENDING_STMT use with redirect_edge_var_map_*.
13262
13263 2008-03-05  Richard Guenther  <rguenther@suse.de>
13264
13265         PR tree-optimization/35472
13266         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
13267         whose single use_stmt has a overlapping set of loaded and
13268         stored symbols as that use_stmt might be a noop assignment then.
13269
13270 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
13271
13272         * gthr-rtems.h: Implement __gthread_mutex_destroy.
13273
13274 2008-03-05  Richard Guenther  <rguenther@suse.de>
13275
13276         PR c++/35336
13277         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
13278         should be constants.
13279         * tree-cfg.c (verify_expr): Verify it.
13280         * fold-const.c (fold_truthop): Remove code generating
13281         BIT_FIELD_REFs of structure bases.
13282         (fold_binary): Likewise.
13283         (fold_ternary): Position and size of BIT_FIELD_REFs are
13284         always host integers.
13285         (make_bit_field_ref): Remove.
13286         (optimize_bit_field_compare): Remove.
13287         (all_ones_mask_p): Remove.
13288
13289 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
13290
13291         PR gcc/33009
13292         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
13293         (split_block_and_df_analyze): New. Split basic block and rebuild
13294         dataflow.
13295         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
13296         SPLIT_BLOCK.
13297         (split_pattern_seq): Likewise.
13298         (erase_matching_seqs): Likewise.
13299         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
13300
13301 2008-03-04  Geoff Keating  <geoffk@apple.com>
13302
13303         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
13304         declaration and code.
13305         (tree_invalid_nonnegative_warnv_p): Likewise.
13306
13307 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
13308
13309         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
13310         examples.  Truncate option-names then causing overfull hbox.
13311
13312 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13313
13314         PR target/35222
13315         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
13316         on hpux10.
13317         * configure: Rebuilt.
13318
13319 2008-03-04  Rafael Espindola  <espindola@google.com>
13320
13321         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
13322         (tree_unary_nonnegative_warnv_p): New.
13323         (tree_binary_nonnegative_warnv_p): New.
13324         (tree_single_nonnegative_warnv_p): New.
13325         (tree_invalid_nonnegative_warnv_p): New.
13326         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
13327
13328 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13329
13330         PR 28322
13331         * opts.c (handle_option): Postpone 'unknown option' errors only for
13332         warning options.
13333
13334 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
13335
13336         PR target/35453
13337         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
13338         (_SIDD_XXX): This.
13339
13340 2008-03-04  Rafael Espindola  <espindola@google.com>
13341
13342         * fold-const.c (tree_unary_nonzero_warnv_p): New.
13343         (tree_binary_nonzero_warnv_p): New.
13344         (tree_single_nonzero_warnv_p): New.
13345         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
13346
13347 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
13348
13349         PR middle-end/35456
13350         * fold-const.c (fold_cond_expr_with_comparison): Prevent
13351         transformations for modes that have signed zeros.
13352         * ifcvt.c (noce_try_abs): Ditto.
13353
13354 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
13355
13356         * config/i386/i386.c (override_options): Force
13357         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
13358
13359 2008-03-04  Jan Hubicka  <jh@suse.cz>
13360
13361         PR c++/35262
13362         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
13363         in last commit.
13364
13365 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
13366
13367         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
13368         label to probe the stack.
13369
13370 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
13371
13372         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
13373         (__gthr_win32_mutex_destroy): Declare.
13374         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
13375         __gthr_win32_mutex_destroy.
13376         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
13377
13378 2008-03-03  Jan Hubicka  <jh@suse.cz>
13379
13380         PR c++/35262
13381         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
13382         aggressive on inlining cold calls.
13383
13384 2008-03-03  Richard Guenther  <rguenther@suse.de>
13385
13386         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
13387         struct copies into the expression table.
13388         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
13389         (try_to_simplify): Likewise.
13390         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
13391         integral and pointer arguments which do not change the
13392         precision to NOP_EXPRs.
13393         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
13394         VIEW_CONVERT_EXPR case.
13395
13396 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
13397
13398         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
13399         defined in a loop at depth 0 is invariant.
13400         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
13401         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
13402         be called at loop depth 0.
13403
13404 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
13405
13406         PR driver/35420
13407         * gcc.c (process_command): Update copyright notice dates.
13408         * gcov.c (print_version): Likewise.
13409         * gcov-dump.c (print_version): Likewise.
13410         * mips-tfile.c (main): Likewise.
13411         * mips-tdump.c (main): Likewise.
13412
13413 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13414
13415         PR 24924
13416         * c-common.c (flag_permissive): Delete.
13417         (constant_expression_warnings): Check flags first.
13418         (constant_expression_error): New.
13419         * c-common.h (flag_permissive): Delete.
13420         (constant_expression_error): Declare.
13421         * flags.h (flag_permissive): Declare. Update description.
13422         * diagnostic.c (pedwarn): Update.
13423         (permerror): New.
13424         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
13425         (permissive_error_kind): New.
13426         * toplev.c (flag_permissive): Define. Update description.
13427         * toplev.h (permissive_error_kind): Declare.
13428         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
13429         (pedwarn_c90): Use pedantic_warning_kind.
13430         * c-opts.c (c_common_post_options): flag_permissive does not affect
13431         flag_pedantic_errors.
13432
13433 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
13434
13435         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
13436         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
13437         __absvsi2, __absvDI2): Use unsigned arithmetic.
13438
13439 2008-03-02  Andi Kleen  <ak@suse.de>
13440             Richard Guenther  <rguenther@suse.de>
13441
13442         * struct-equiv.c: Remove file.
13443         * cfg_cleanup.c (condjump_equiv_p): Remove.
13444         * Makefile.in (OBJS-common): Remove struct-equiv.o.
13445         (struct-equiv.o): Remove rule.
13446         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
13447         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
13448         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
13449
13450 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13451
13452         * ifcvt.c (noce_process_if_block): Try to handle only the then
13453         block if the else block exists but isn't suitable.
13454
13455 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13456
13457         PR gcc/35063
13458         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
13459         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
13460         regression from previous patch.
13461
13462 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13463
13464         PR gcc/35063
13465         * gthr.h: Add __gthread_mutex_destroy as a function that must be
13466         implemented.
13467         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
13468         * gthr-single.h (__gthread_mutex_destroy): Likewise.
13469         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
13470         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
13471         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
13472         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
13473         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
13474         (__gthread_mutex_destroy_function): Rename to
13475         __gthread_mutex_destroy.
13476         * gthr-dce.h (__gthread_mutex_destroy): Call
13477         pthread_mutex_destroy.
13478         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
13479         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
13480         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
13481
13482 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13483
13484         * df-scan.c (df_ref_chain_change_bb): Simplify.
13485         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
13486         set_block_for_insn if there's any change.
13487         * df.h ((df_insn_change_bb): Fix prototype.
13488         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
13489         df_insn_change_bb, don't call set_block_for_insn.
13490         * emit-rtl.c (reorder_insns): Likewise.
13491         * haifa-sched.c (move_insn): Likewise.
13492
13493 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13494
13495         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
13496
13497 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13498
13499         * tree-flow-inline.h (next_readonly_imm_use): Return
13500         NULL_USE_OPERAND_P after the end.
13501
13502 2008-03-01  Richard Guenther  <rguenther@suse.de>
13503
13504         PR tree-optimization/35411
13505         * tree-sra.c (sra_build_assignment): Split conversion to
13506         final type to a separate statement if we are not assigning
13507         to a register.
13508
13509 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13510
13511         * fold-const.c (fold_convertible_p): Correct the logic to follow
13512         that in fold_convert().
13513
13514 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
13515
13516         PR c++/35315
13517         * tree-inline.c (build_duplicate_type): When we make a
13518         duplicate type, make it unique in the canonical types system.
13519
13520 2008-02-29  Tom Tromey  <tromey@redhat.com>
13521
13522         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
13523         input_file_stack_history, input_file_stack_restored): Remove.
13524         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13525         * input.h (struct file_stack): Remove.
13526         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13527         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
13528         Likewise.
13529         * diagnostic.h (struct diagnostic_context) <last_module>: Change
13530         type.
13531         (diagnostic_last_module_changed): Add 'map' argument.
13532         (diagnostic_set_last_function): Likewise.
13533         * diagnostic.c (undiagnostic_report_current_module): Iterate using
13534         line map, not input_file_stack.
13535         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
13536
13537 2008-02-29  Paul Brook  <paul@codesourcery.com>
13538
13539         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
13540
13541 2008-02-29  Paul Brook  <paul@codesourcery.com>
13542
13543         * config/arm/ieee754-df.S (muldf3): Use RET macros.
13544
13545 2008-02-29  Richard Guenther  <rguenther@suse.de>
13546
13547         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
13548         vn_lookup_or_add.
13549         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
13550         value for comparing for a store match.
13551         (simplify_unary_expression): Do nothing for SSA_NAMEs.
13552         (try_to_simplify): Do not do a full-blown reference lookup.
13553
13554 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13555
13556         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
13557         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
13558
13559         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
13560
13561 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
13562
13563         * tree-loop-linear.c (try_interchange_loops): Compare memory access
13564         strides against cache sizes.
13565
13566 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13567
13568         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
13569         constant to fpul.
13570
13571 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
13572
13573         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
13574         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
13575         is smaller than the original promoted value.
13576         (simplify_subreg): If OP is a SUBREG, try to preserve its
13577         SUBREG_PROMOTED_VAR_P information.
13578
13579 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
13580
13581         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
13582         (VN_INFO_GET): Allocate new objects on the obstack.
13583         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
13584         for rpo_numbers_temp, for consistency.
13585         (free_scc_vn): Free the obstack.
13586
13587 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
13588
13589         * doc/invoke.texi: Document -ftree-loop-distribution.
13590         * tree-loop-distribution.c: New.
13591         * tree-pass.h (pass_loop_distribution): New.
13592         * graphds.h (struct graph): Add htab_t indices.
13593         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
13594         * tree-vectorizer.c (rename_variables_in_loop): Extern.
13595         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
13596         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
13597         * tree-data-ref.c (debug_data_dependence_relations): New.
13598         (dump_data_dependence_relation): Also print data references.
13599         (free_data_ref): Extern.
13600         (same_access_functions): Moved...
13601         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
13602         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13603         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
13604         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
13605         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
13606         (stmts_from_loop): Skip LABEL_EXPR.
13607         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
13608         New.
13609         (build_rdg): Initialize rdg->indices htab.
13610         (free_rdg, stores_from_loop, ref_base_address,
13611         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
13612         have_similar_memory_accesses_1, ref_base_address_1,
13613         remove_similar_memory_refs): New.
13614         * tree-data-ref.h: Depend on tree-chrec.h.
13615         (debug_data_dependence_relations, free_data_ref): Declared.
13616         (same_access_functions): ... here.
13617         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
13618         New.
13619         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
13620         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
13621         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
13622         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13623         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
13624         rdg_vertex_for_stmt): Declared.
13625         (struct rdg_edge): Add level.
13626         (RDGE_LEVEL): New.
13627         (free_rdg, stores_from_loop, remove_similar_memory_refs,
13628         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
13629         Declared.
13630         (rdg_has_similar_memory_accesses): New.
13631         * tree-vect-analyze.c: Remove unused static decls.
13632         * lambda.h (dependence_level): New.
13633         * common.opt (ftree-loop-distribution): New.
13634         * tree-flow.h (mark_virtual_ops_in_bb, 
13635         slpeel_tree_duplicate_loop_to_edge_cfg,
13636         rename_variables_in_loop): Declared.
13637         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
13638         (OBJS-common): Add tree-loop-distribution.o.
13639         (tree-loop-distribution.o): New rule.
13640         * tree-cfg.c (mark_virtual_ops_in_bb): New.
13641         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
13642         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
13643
13644 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
13645
13646         PR target/33963
13647         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
13648         other than structures and unions.
13649
13650 2008-02-28  Richard Guenther  <rguenther@suse.de>
13651
13652         Revert:
13653         2008-02-26  Richard Guenther  <rguenther@suse.de>
13654
13655         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13656         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13657         (lookup_decl_from_uid): Declare.
13658         (remove_decl_from_map): Likewise.
13659         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13660         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13661         (decl_for_uid_map): New global hashtable mapping DECL_UID
13662         to the decl tree.
13663         (init_ttree): Allocate it.
13664         (insert_decl_to_uid_decl_map): New helper function.
13665         (make_node_stat): Insert new decls into the map.
13666         (copy_node_stat): Likewise.
13667         (lookup_decl_from_uid): New function.
13668         (remove_decl_from_map): Likewise.
13669         (print_decl_for_uid_map_statistics): New helper.
13670         (dump_tree_statistics): Call it.
13671
13672         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13673         (referenced_var_iterator): Adjust.
13674         (FOR_EACH_REFERENCED_VAR): Adjust.
13675         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13676         (num_referenced_vars): Adjust.
13677         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13678         (first_referenced_var): Remove.
13679         (end_referenced_vars_p): Likewise.
13680         (next_referenced_var): Likewise.
13681         (referenced_var_iterator_set): New helper function.
13682         * tree-dfa.c (referenced_var_lookup): Adjust.
13683         (referenced_var_check_and_insert): Likewise.
13684         (remove_referenced_var): Likewise.
13685         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13686         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13687         (verify_call_clobbering): Likewise.
13688         (verify_memory_partitions): Likewise.
13689         (init_tree_ssa): Allocate bitmap instead of hashtable for
13690         referenced_vars.
13691         (delete_tree_ssa): Adjust.
13692         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13693         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13694         (compute_tag_properties): Likewise.
13695         (set_initial_properties): Likewise.
13696         (find_partition_for): Likewise.
13697         (update_reference_counts): Likewise.
13698         (dump_may_aliases_for): Likewise.
13699         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13700         (add_call_clobber_ops): Likewise.
13701         (add_call_read_ops): Likewise.
13702         (get_asm_expr_operands): Likewise.
13703         * tree-into-ssa.c (dump_decl_set): Likewise.
13704         (update_ssa): Likewise.
13705         * tree-sra.c (scan_function): Likewise.
13706         (decide_instantiations): Likewise.
13707         (scalarize_parms): Likewise.
13708         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13709         (dsa_named_for): Likewise.
13710         * tree-ssa-structalias.c (update_alias_info): Likewise.
13711         (merge_smts_into): Likewise.
13712
13713 2008-02-27  David Daney  <ddaney@avtrex.com>
13714
13715         PR target/34409
13716         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
13717         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
13718         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
13719         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
13720         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
13721
13722 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
13723
13724         PR target/25477
13725         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
13726         (BUILT_IN_NEXTTOWARD): Remove.
13727         (BUILT_IN_NEXTTOWARDF): Ditto.
13728         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
13729         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
13730
13731 2008-02-27  Tom Tromey  <tromey@redhat.com>
13732
13733         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
13734         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
13735
13736 2008-02-27  Jan Beulich  <jbeulich@novell.com>
13737
13738         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
13739         update the respective field on newdecl.
13740
13741 2008-02-27  Revital Eres  <eres@il.ibm.com>
13742
13743         PR rtl-optimization/34999
13744         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
13745         crossing edges that ends with a call insn.
13746         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
13747         call insn and clear the EDGE_CROSSING flag of the crossing edge
13748         when fixing fallthru edges.
13749
13750 2008-02-27  Richard Guenther  <rguenther@suse.de>
13751
13752         PR middle-end/35390
13753         * fold-const.c (fold_unary): Return the correct argument,
13754         converted to the result type.
13755
13756 2008-02-27  Richard Guenther  <rguenther@suse.de>
13757
13758         PR middle-end/34971
13759         * expr.c (expand_expr_real_1): Assert on rotates that operate
13760         on partial modes.
13761         * fold-const.c (fold_binary): Use the types precision, not the
13762         bitsize of the mode if folding rotate expressions.  Build rotates
13763         only for full modes.
13764
13765 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
13766
13767         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
13768         and CPP_PRAGMA_EOL.
13769         * c-pragma.c (pragma_ns_name): New typedef.
13770         (registered_pp_pragmas): New variable.
13771         (c_pp_lookup_pragma): New function.
13772         (c_register_pragma_1): If flag_preprocess_only, do nothing
13773         for non-expanded pragmas, for expanded ones push pragma's
13774         namespace and name into registered_pp_pragmas vector.
13775         (c_invoke_pragma_handler): Register OpenMP pragmas even when
13776         flag_preprocess_only, don't register GCC pch_preprocess
13777         pragma if flag_preprocess_only.
13778         * c-opts.c (c_common_init): Call init_pragma even if
13779         flag_preprocess_only.
13780         * c-pragma.c (c_pp_lookup_pragma): New prototype.
13781         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
13782         cpp_register_pragma if flag_preprocess_only.
13783
13784 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13785
13786         PR c/28800
13787         * c-parser.c (c_parser_translation_unit): Warn for empty
13788         translation unit, not empty source file.
13789
13790 2008-02-26  Paul Brook  <paul@codesourcery.com>
13791
13792         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
13793         operand for Thumb-2.
13794         * config/arm/arm.h (reg_class): Add CORE_REGS.
13795         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
13796         (BASE_REG_CLASS): Use CORE_REGS.
13797         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
13798         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
13799         (REGNO_OK_FOR_INDEX_P): Exclude SP.
13800         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
13801         ARM_REGNO_OK_FOR_INDEX_P.
13802         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
13803         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
13804         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
13805         (ldm/stm peepholes): Ditto.
13806         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
13807         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
13808         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
13809         * config/arm/constraints.md: Enable "k" constraint on ARM.
13810
13811 2008-02-27  Ben Elliston  <bje@au.ibm.com>
13812
13813         * config/rs6000/rs6000.c: Annotate cache line size field in all
13814         instances of struct processor_costs.
13815
13816 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
13817
13818         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
13819         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
13820         jump_bypass): New counters.
13821         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
13822         * dce.c (gate_ud_dce): Same.
13823         (gate_fast_dce): Same.
13824         * dse.c (gate_dse1): New function.
13825         (gate_dse2): New function.
13826         (gate_dse): Merge results of new gate functions.
13827         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
13828         (gate_handle_jump_bypass): Add dbg_cnt.
13829         (gate_handle_gcse): Add dbg_cnt.
13830         * ifcvt.c (gate_handle_if_conversion): Same.
13831         (gate_handle_if_after_combine): Same.
13832         (gate_handle_if_after_reload): Same.
13833         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
13834
13835 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
13836
13837         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
13838         line sizes.
13839         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
13840
13841 2008-02-26  Jason Merrill  <jason@redhat.com>
13842
13843         PR c++/35315
13844         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
13845         alone if it's the naming decl for the type's main variant.
13846
13847 2008-02-26  Tom Tromey  <tromey@redhat.com>
13848
13849         * system.h (USE_MAPPED_LOCATION): Poison.
13850         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
13851         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
13852         (make_goto_expr_edges): Likewise.
13853         (remove_bb): Likewise.
13854         (execute_warn_function_return): Likewise.
13855         * basic-block.h (struct edge_def) <goto_locus>: Change type to
13856         location_t.
13857         * c-common.c (fname_decl): Remove old location code.
13858         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
13859         location code.
13860         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
13861         variant.
13862         (ASM_INPUT_SOURCE_LOCATION): Likewise.
13863         (gen_rtx_ASM_INPUT): Likewise.
13864         (gen_rtx_ASM_INPUT_loc): Likewise.
13865         (get_rtx_asm_OPERANDS): Remove.
13866         * cfglayout.c (insn_locators_alloc): Remove old location code.
13867         (set_curr_insn_source_location): Likewise.
13868         (curr_insn_locator): Likewise.
13869         * print-tree.c (print_node): Remove old location code.
13870         * tree-mudflap.c (mf_varname_tree): Remove old location code.
13871         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
13872         * cfgexpand.c (expand_gimple_cond_expr): Don't use
13873         location_from_locus.
13874         (construct_exit_block): Remove old location code.
13875         * emit-rtl.c (force_next_line_note): Remove old location code.
13876         * profile.c (branch_prob): Remove old location code.
13877         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
13878         LOC_LINE): Remove old-location variants.
13879         * langhooks.c (lhd_print_error_function): Remove old location
13880         code.
13881         * configure, config.in: Rebuilt.
13882         * configure.ac (--enable-mapped-location): Remove.
13883         * c-decl.c (c_init_decl_processing): Remove old location code.
13884         (finish_function): Likewise.
13885         * recog.c (decode_asm_operands): Remove old location code.
13886         * c-pch.c (c_common_read_pch): Remove old location code.
13887         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
13888         variants.
13889         * gimple-low.c (lower_function_body): Remove old location code.
13890         * toplev.c (unknown_location): Remove.
13891         (push_srcloc): Remove old-location variant.
13892         (process_options): Remove old location code.
13893         (lang_dependent_init): Likewise.
13894         * input.h (UNKNOWN_LOCATION): Move definition.
13895         (location_t): Undeprecate.
13896         (source_locus): Remove.
13897         (location_from_locus): Remove.
13898         (struct location_s): Remove.
13899         Remove all old-location code.
13900         (input_line, input_filename): Remove.
13901         * final.c (final_scan_insn): Remove old location code.
13902         * diagnostic.c (diagnostic_build_prefix): Remove
13903         USE_MAPPED_LOCATION test.
13904         * tree.h (gimple_stmt) <locus>: Now a location_t.
13905         (tree_exp) <locus>: Likewise.
13906         (DECL_IS_BUILTIN): Remove old-location variant.
13907         (annotate_with_file_line, annotate_with_locus): Likewise.
13908         (expr_locus, set_expr_locus): Update.
13909         * tree.c (build1_stat): Remove old location code.
13910         (last_annotated_node): Remove.
13911         (annotate_with_file_line): Remove old-location variant.
13912         (annotate_with_locus): Likewise.
13913         (expr_location): Remove old location code.
13914         (set_expr_location): Likewise.
13915         (expr_has_location): Likewise.
13916         (expr_locus): Likewise.
13917         (set_expr_locus): Likewise.
13918         (expr_filename): Don't use location_from_locus.
13919         (expr_lineno): Likewise.
13920         * rtl-error.c (location_for_asm): Remove old location code.
13921         * c-lex.c (cb_line_change): Remove old location code.
13922         (fe_file_change): Likewise.
13923         (cb_def_pragma): Likewise.
13924         (c_lex_with_flags): Likewise.
13925         * gengtype.c (do_typedef): Don't special-case location types.
13926         (define_location_structures): Remove.
13927         (main): Don't call define_location_structures.
13928         * tree-pretty-print.c (dump_implicit_edges): Remove old location
13929         code.
13930
13931 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13932
13933         PR 26264
13934         * builtins.def (BUILT_IN_STDARG_START): Remove.
13935         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
13936         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
13937         * tree-inline.c (inline_forbidden_p_1): Likewise.
13938         
13939 2008-02-26  Richard Guenther  <rguenther@suse.de>
13940
13941         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13942         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13943         (lookup_decl_from_uid): Declare.
13944         (remove_decl_from_map): Likewise.
13945         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13946         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13947         (decl_for_uid_map): New global hashtable mapping DECL_UID
13948         to the decl tree.
13949         (init_ttree): Allocate it.
13950         (insert_decl_to_uid_decl_map): New helper function.
13951         (make_node_stat): Insert new decls into the map.
13952         (copy_node_stat): Likewise.
13953         (lookup_decl_from_uid): New function.
13954         (remove_decl_from_map): Likewise.
13955         (print_decl_for_uid_map_statistics): New helper.
13956         (dump_tree_statistics): Call it.
13957
13958         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13959         (referenced_var_iterator): Adjust.
13960         (FOR_EACH_REFERENCED_VAR): Adjust.
13961         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13962         (num_referenced_vars): Adjust.
13963         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13964         (first_referenced_var): Remove.
13965         (end_referenced_vars_p): Likewise.
13966         (next_referenced_var): Likewise.
13967         (referenced_var_iterator_set): New helper function.
13968         * tree-dfa.c (referenced_var_lookup): Adjust.
13969         (referenced_var_check_and_insert): Likewise.
13970         (remove_referenced_var): Likewise.
13971         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13972         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13973         (verify_call_clobbering): Likewise.
13974         (verify_memory_partitions): Likewise.
13975         (init_tree_ssa): Allocate bitmap instead of hashtable for
13976         referenced_vars.
13977         (delete_tree_ssa): Adjust.
13978         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13979         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13980         (compute_tag_properties): Likewise.
13981         (set_initial_properties): Likewise.
13982         (find_partition_for): Likewise.
13983         (update_reference_counts): Likewise.
13984         (dump_may_aliases_for): Likewise.
13985         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13986         (add_call_clobber_ops): Likewise.
13987         (add_call_read_ops): Likewise.
13988         (get_asm_expr_operands): Likewise.
13989         * tree-into-ssa.c (dump_decl_set): Likewise.
13990         (update_ssa): Likewise.
13991         * tree-sra.c (scan_function): Likewise.
13992         (decide_instantiations): Likewise.
13993         (scalarize_parms): Likewise.
13994         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13995         (dsa_named_for): Likewise.
13996         * tree-ssa-structalias.c (update_alias_info): Likewise.
13997         (merge_smts_into): Likewise.
13998
13999 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14000
14001         PR 34351
14002         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
14003         * c-opts.c (c_common_handle_option): Wall enables
14004         Wvolatile-register-var.
14005         * common.opt: Move Wvolatile-register-var to...
14006         * c.opt: ...here.
14007         
14008 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14009
14010         * common.opt (Wlarger-than=): New.
14011         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
14012         -Wlarger-than=.
14013         * opts.c (common_handle_option): Handle -Wlarger-than=.
14014         * optc-gen.awk: Likewise.
14015         * opth-gen.awk: Likewise.
14016         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
14017         * tree-optimize.c (tree_rest_of_compilation): Likewise.
14018         
14019 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
14020
14021         * c-common.c (match_case_to_enum_1): Add appropriate
14022         OPT_W* parameter to warning.
14023         (c_do_switch_warnings): Likewise.
14024         * c-typeck.c (warning_init): Add one more parameter following
14025         'warning' function.
14026         (push_init_level): Update call to warning_init.
14027         (pop_init_level): Likewise.
14028         (add_pending_init): Likewise.
14029         (output_init_element: Likewise.
14030
14031 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14032
14033         PR 28322
14034         * toplev.c (toplev_main): If there are warnings or error, print
14035         errors for ignored options.
14036         * opts.c (ignored_options): New static variable.
14037         (postpone_unknown_option_error): New.
14038         (print_ignored_options): New.
14039         (handle_option): Postpone errors for unknown -Wno-* options.
14040         * opts.h (print_ignored_options): Declare.
14041         
14042 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
14043
14044         * config/mips/mips.md (loadgp_blockage, blockage): Change type
14045         to "ghost".
14046
14047 2008-02-25  Richard Guenther  <rguenther@suse.de>
14048
14049         Revert:
14050         2008-02-25  Richard Guenther  <rguenther@suse.de>
14051
14052         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
14053         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
14054         (lookup_decl_from_uid): Declare.
14055         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
14056         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
14057         (decl_for_uid_map): New global hashtable mapping DECL_UID
14058         to the decl tree.
14059         (init_ttree): Allocate it.
14060         (insert_decl_to_uid_decl_map): New helper function.
14061         (make_node_stat): Insert new decls into the map.
14062         (copy_node_stat): Likewise.
14063         (lookup_decl_from_uid): New function.
14064         (print_decl_for_uid_map_statistics): New helper.
14065         (dump_tree_statistics): Call it.
14066
14067         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
14068         (referenced_var_iterator): Adjust.
14069         (FOR_EACH_REFERENCED_VAR): Adjust.
14070         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
14071         (num_referenced_vars): Adjust.
14072         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
14073         (first_referenced_var): Remove.
14074         (end_referenced_vars_p): Likewise.
14075         (next_referenced_var): Likewise.
14076         (referenced_var_iterator_set): New helper function.
14077         * tree-dfa.c (referenced_var_lookup): Adjust.
14078         (referenced_var_check_and_insert): Likewise.
14079         (remove_referenced_var): Likewise.
14080         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
14081         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
14082         (verify_call_clobbering): Likewise.
14083         (verify_memory_partitions): Likewise.
14084         (init_tree_ssa): Allocate bitmap instead of hashtable for
14085         referenced_vars.
14086         (delete_tree_ssa): Adjust.
14087         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
14088         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
14089         (compute_tag_properties): Likewise.
14090         (set_initial_properties): Likewise.
14091         (find_partition_for): Likewise.
14092         (update_reference_counts): Likewise.
14093         (dump_may_aliases_for): Likewise.
14094         * tree-ssa-operands.c (add_virtual_operand): Likewise.
14095         (add_call_clobber_ops): Likewise.
14096         (add_call_read_ops): Likewise.
14097         (get_asm_expr_operands): Likewise.
14098         * tree-into-ssa.c (dump_decl_set): Likewise.
14099         (update_ssa): Likewise.
14100         * tree-sra.c (scan_function): Likewise.
14101         (decide_instantiations): Likewise.
14102         (scalarize_parms): Likewise.
14103         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
14104         (dsa_named_for): Likewise.
14105         * tree-ssa-structalias.c (update_alias_info): Likewise.
14106         (merge_smts_into): Likewise.
14107
14108 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
14109
14110         PR fortran/29549
14111         * doc/invoke.texi (-fcx-limited-range): Document new option.
14112         * toplev.c (process_options): Handle -fcx-fortran-rules.
14113         * common.opt: Add documentation for -fcx-fortran-rules.
14114
14115 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
14116
14117         PR c/35162
14118         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
14119         actual behaviour and C99.
14120         
14121 2008-02-26  Ben Elliston  <bje@au.ibm.com>
14122
14123         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
14124         (ASM_CPU_POWER6_SPEC): Likewise.
14125         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
14126         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
14127         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
14128
14129 2008-02-25  Richard Guenther  <rguenther@suse.de>
14130
14131         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
14132         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
14133         (lookup_decl_from_uid): Declare.
14134         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
14135         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
14136         (decl_for_uid_map): New global hashtable mapping DECL_UID
14137         to the decl tree.
14138         (init_ttree): Allocate it.
14139         (insert_decl_to_uid_decl_map): New helper function.
14140         (make_node_stat): Insert new decls into the map.
14141         (copy_node_stat): Likewise.
14142         (lookup_decl_from_uid): New function.
14143         (print_decl_for_uid_map_statistics): New helper.
14144         (dump_tree_statistics): Call it.
14145
14146         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
14147         (referenced_var_iterator): Adjust.
14148         (FOR_EACH_REFERENCED_VAR): Adjust.
14149         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
14150         (num_referenced_vars): Adjust.
14151         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
14152         (first_referenced_var): Remove.
14153         (end_referenced_vars_p): Likewise.
14154         (next_referenced_var): Likewise.
14155         (referenced_var_iterator_set): New helper function.
14156         * tree-dfa.c (referenced_var_lookup): Adjust.
14157         (referenced_var_check_and_insert): Likewise.
14158         (remove_referenced_var): Likewise.
14159         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
14160         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
14161         (verify_call_clobbering): Likewise.
14162         (verify_memory_partitions): Likewise.
14163         (init_tree_ssa): Allocate bitmap instead of hashtable for
14164         referenced_vars.
14165         (delete_tree_ssa): Adjust.
14166         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
14167         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
14168         (compute_tag_properties): Likewise.
14169         (set_initial_properties): Likewise.
14170         (find_partition_for): Likewise.
14171         (update_reference_counts): Likewise.
14172         (dump_may_aliases_for): Likewise.
14173         * tree-ssa-operands.c (add_virtual_operand): Likewise.
14174         (add_call_clobber_ops): Likewise.
14175         (add_call_read_ops): Likewise.
14176         (get_asm_expr_operands): Likewise.
14177         * tree-into-ssa.c (dump_decl_set): Likewise.
14178         (update_ssa): Likewise.
14179         * tree-sra.c (scan_function): Likewise.
14180         (decide_instantiations): Likewise.
14181         (scalarize_parms): Likewise.
14182         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
14183         (dsa_named_for): Likewise.
14184         * tree-ssa-structalias.c (update_alias_info): Likewise.
14185         (merge_smts_into): Likewise.
14186
14187 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
14188
14189         PR target/35258
14190         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
14191         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
14192         * alias.h (nonoverlapping_memrefs_p): Likewise.
14193
14194 2008-02-25  Jan Beulich  <jbeulich@novell.com>
14195
14196         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
14197         * config/i386/netware-libgcc.exp: Add __bswap?i2,
14198         __emultls_get_address, __emultls_register_common,
14199         __floatundi?f, and _Unwind_GetIPInfo.
14200         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
14201         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
14202         (gen_regparm_prefix): Likewise.
14203         (i386_nlm_encode_section_info): Sync with
14204         config/i386/winnt.c:i386_pe_encode_section_info().
14205         (i386_nlm_maybe_mangle_decl_assembler_name): New.
14206         i386_nlm_mangle_decl_assembler_name): New.
14207         (netware_override_options): New.
14208         * config/i386/netware.h (netware_override_options): Declare.
14209         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
14210         (i386_nlm_mangle_decl_assembler_name): Declare.
14211         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
14212
14213 2008-02-25  Ben Elliston  <bje@au.ibm.com>
14214
14215         PR other/32948
14216         * c-decl.c (grokdeclarator): Remove unused local variables
14217         `typedef_type' and `type_as_written'.
14218         * bb-reorder.c
14219         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
14220         unused local variable `has_hot_blocks'.
14221         (fix_crossing_conditional_branches): Remove unused local variable
14222         `prev_bb'.
14223         
14224 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
14225
14226         PR middle-end/19984
14227         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
14228         using DEF_C99_BUILTIN.
14229         (BUILT_IN_NANF): Ditto.
14230         (BUILT_IN_NANL): Ditto.
14231
14232 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
14233             Revital Eres  <eres@il.ibm.com>
14234
14235         * modulo-sched.c (calculate_must_precede_follow): Address TODO
14236         regarding the order of two dependent insns in the same row.
14237
14238 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
14239
14240         * stor-layout.c (layout_decl): Do not bump the alignment of a
14241         bit-field to more than byte alignment if it is packed.
14242
14243 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
14244
14245         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
14246         e300c2 and e300c3.
14247
14248 2008-02-24  Diego Novillo  <dnovillo@google.com>
14249
14250         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
14251
14252         PR 33738
14253         * tree-vrp.c (vrp_evaluate_conditional): With
14254         -Wtype-limits, emit a warning when comparing against a
14255         constant outside the natural range of OP0's type.
14256         * c.opt (Wtype-limits): Move ...
14257         * common.opt (Wtype-limits): ... here.
14258
14259 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
14260
14261         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
14262         * config/rs6000/e300c2c3.md: New file.
14263         * config/rs6000/rs6000.c (processor_costs): Add new costs for
14264         e300c2 and e300c3.
14265         (rs6000_override_options): Add e300c2 and e300c3 cases to
14266         processor_target_table. Do not allow usage of Altivec or Spe
14267         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
14268         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
14269         * config/rs6000/rs6000.h (processor_type): Add
14270         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
14271         (ASM_CPU_SPEC): Add e300c2 and e300c3.
14272         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
14273         and ppce300c3. Include e300c2c3.md.
14274
14275 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
14276
14277         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
14278         instead of TARGET_STRICT_ALIGN.
14279
14280 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
14281
14282         * explow.c (memory_address): Assert that the generated address is
14283         valid.
14284
14285 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
14286
14287         PR target/25477
14288         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
14289         * config/darwin-ppc-ldouble-patch.def: New file.
14290         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
14291         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
14292         SUBTARGET_INIT_BUILTINS if defined.
14293         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
14294         New functions.
14295
14296 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14297
14298         PR rtl-opt/33512
14299         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
14300         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
14301
14302 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14303
14304         PR pch/35027
14305         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
14306         file" warning condtional on -Winvalid-PCH.
14307
14308 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
14309
14310         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
14311
14312 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
14313
14314         PR target/22076
14315         PR target/34256 
14316         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
14317         prevent reload from using MMX registers.
14318         (*mov<mode>_internal): Ditto.
14319         (*movv2sf_internal_rex64): Ditto.
14320         (*movv2sf_internal): Ditto.
14321
14322 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14323
14324         PR documentation/31569
14325         * doc/install.texi2html: Use makeinfo --no-number-sections.
14326
14327 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
14328
14329         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
14330         ensure that we can address an entire entity > 8 bytes.  Don't
14331         generate reg+reg addressing for such data.
14332
14333 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
14334
14335         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
14336         strings when optimizing for size, unless the target cares about
14337         alignment.
14338
14339 2008-02-22  Tom Tromey  <tromey@redhat.com>
14340
14341         * regclass.c (current_pass): Remove declaration.
14342
14343 2008-02-22  Anatoly Sokolov <aesok@post.ru>
14344
14345         * config/avr/libgcc.S (__RAMPZ__): Define.
14346         (__do_copy_data): Add for devices with 128KB code memory.
14347
14348 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
14349
14350         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
14351         Use spe_abi.
14352         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
14353
14354 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
14355
14356         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
14357         GENNONACR_REGS.
14358
14359 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14360
14361         PR c/19999
14362         * c-typeck.c (build_binary_op): Warn about floating point
14363         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
14364
14365 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
14366
14367         PR target/34526
14368         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
14369         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
14370         add vrsave.
14371         (rs6000_override_options): Set altivec_abi as default, not override,
14372         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
14373         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
14374         is used; use new member spe_abi.
14375         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
14376         spe_abi and altivec_abi.
14377
14378 2008-02-22  Tomas Bily  <tbily@suse.cz>
14379
14380         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
14381
14382 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14383
14384         PR bootstrap/35273
14385         * config.build (build_file_translate): Set to `CMD //c' only if
14386         it works.
14387         * Makefile.in (build_file_translate): Improve comment.
14388
14389 2008-02-21  Jan Hubicka  <jh@suse.cz>
14390
14391         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
14392         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
14393         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
14394
14395 2008-02-21  Michael Matz  <matz@suse.de>
14396
14397         PR target/35264
14398         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
14399
14400 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
14401
14402         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
14403         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
14404         as insn constraint.
14405         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
14406         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
14407         SSE_VEC_FLOAT_MODE_P as insn constraint.
14408         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
14409         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
14410         sse4a_movntdf using MODEF mode iterator.
14411         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
14412         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
14413         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
14414         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
14415         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
14416         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
14417         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
14418
14419 2008-02-21  Richard Guenther  <rguenther@suse.de>
14420
14421         * tree.def (PAREN_EXPR): New tree code.
14422         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
14423         and PAREN_EXPR.
14424         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
14425         * expr.c (expand_expr_real_1): Likewise.
14426         * tree-inline.c (estimate_num_insns_1): Likewise.
14427         * tree-complex.c (expand_complex_move): Likewise.
14428         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
14429         as plain x.
14430
14431 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14432
14433         PR target/35225
14434         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
14435
14436 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14437
14438         PR target/35190
14439         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
14440
14441         * config/sh/sh.c (find_barrier): Don't go past
14442         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
14443
14444 2008-02-20  DJ Delorie  <dj@redhat.com>
14445
14446         * config/h8300/h8300.md (insv): Force source operand to be a register.
14447
14448         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
14449         as a jump, not as a plain insn.
14450         
14451 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
14452
14453         * doc/invoke.texi (Warning Options): Add new option
14454         -Wframe-larger-than=.
14455         (-Wframe-larger-than): Document.
14456
14457         * flags.h (warn_frame_larger_than, frame_larger_than_size):
14458         Add declarations for new option variables.
14459
14460         * final.c (final_start_function): Check the frame size
14461         before emission and issue a Wframe-larger-than warning.
14462
14463         * opts.c (warn_frame_larger_than, frame_larger_than_size):
14464         Add definitions for new option variables.
14465         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
14466
14467         * common.opt (Wframe-larger-than=): New option.
14468
14469 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14470
14471         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
14472         (<sse>_div<mode>3): Ditto.
14473         (<sse>_vmdiv<mode>3): Ditto.
14474         (<sse>_vmsqrt<mode>2): Ditto.
14475         (*smax<mode>3): Ditto.
14476         (sse5_frcz<mode>2): Ditto.
14477         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
14478         as insn constraint.
14479
14480 2008-02-20  Richard Guenther  <rguenther@suse.de>
14481
14482         PR middle-end/35265
14483         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
14484         be happy with INTEGRAL_TYPE_P.
14485
14486 2008-02-20  Richard Guenther  <rguenther@suse.de>
14487
14488         * fold-const.c (split_tree): Associate floatig-point expressions
14489         if flag_associative_math is set.
14490
14491 2008-02-20  Richard Guenther  <rguenther@suse.de>
14492
14493         * tree.h (fold_real_zero_addition_p): Declare.
14494         * fold-const.c (fold_real_zero_addition_p): Export.
14495         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
14496         floating-point operations with zero and one.
14497
14498 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
14499
14500         * doc/install.texi: Correct references to CFLAGS, replacing them
14501         with BOOT_CFLAGS.  Document flags used during bootstrap for
14502         target libraries.
14503                                 
14504 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14505
14506         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
14507         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
14508         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
14509         insn constraint.
14510         (smin<mode>3): Ditto from similar patterns.
14511         (smax<mode>3): Ditto.
14512         (*ieee_smin<mode>3): Ditto.
14513         (*ieee_smax<mode>3): Ditto.
14514         * config/i386/sse.md (sse): New mode attribute.
14515         (mov<mode>): Macroize expander from movv4sf and movv2df using
14516         SSEMODEF2P mode iterator.
14517         (<sse>_movnt<mode>): Ditto from similar patterns. Use
14518         SSE_VEC_FLOAT_MODE_P as insn constraint.
14519         (storent<mode>): Ditto.
14520         (storent<mode>): Macroize expander from storentsf and storentdf using
14521         MODEF mode iterator.
14522         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
14523         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
14524         (abs<mode>2): Ditto from similar patterns.
14525         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
14526         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
14527         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
14528         (<sse>_vmsqrt<mode>2): Ditto.
14529         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
14530         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
14531         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
14532         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
14533         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
14534         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
14535         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
14536         insn constraint.
14537         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
14538         iterator and SSE_FLOAT_MODE_P as insn constraint.
14539         (<sse>_ucomi): Ditto from similar patterns.
14540         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
14541         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
14542         SSE_VEC_FLOAT_MODE_P as insn constraint.
14543         (vcond<mode>): Ditto from similar patterns.
14544         (and<mode>3, *and<mode>3): Ditto.
14545         (<sse>_nand<mode>3): Ditto.
14546         (ior<mode>3, *ior<mode>3): Ditto.
14547         (xor<mode>3, *xor<mode>3): Ditto.
14548         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
14549         iterator and SSE_FLOAT_MODE_P as insn constraint.
14550         (*nand<mode>3): Ditto from similar patterns.
14551         (*ior<mode>3): Ditto.
14552         (*xor<mode>3): Ditto.
14553
14554 2008-02-20  Ira Rosen  <irar@il.ibm.com>
14555
14556         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
14557         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
14558         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
14559
14560 2008-02-19  Jan Hubicka  <jh@suse.cz>
14561
14562         * predict.c (tree_bb_level_predictions): Remove variable next
14563         mistakely introduced by previous commit.
14564
14565 2008-02-19  Jan Hubicka  <jh@suse.cz>
14566
14567         * predict.c (predict_paths_leading_to): Rewrite.
14568         (predict_paths_for_bb): New.
14569         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
14570
14571 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14572
14573         PR bootstrap/35218
14574         * Makefile.in (build_file_translate): New.
14575         (gcc-vers.texi): Use it for translating $(abs_srcdir).
14576         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
14577         * configure.ac (build_file_translate): Substitute it.
14578         * configure: Regenerate.
14579
14580 2008-02-19  Jan Hubicka  <jh@suse.cz>
14581
14582         PR rtl-optimization/34408
14583         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
14584         invalid sharing.
14585
14586 2008-02-19  Jan Hubicka  <jh@suse.cz>
14587
14588         PR middle-end/28779
14589         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
14590         call_expr.
14591
14592 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14593
14594         PR Ada/35186
14595         * config/i386/i386-modes.def: Revert the last DI alignment
14596         change until Ada people can look into it.
14597
14598 2008-02-19  Nick Clifton  <nickc@redhat.com>
14599
14600         * opts.c (print_specific_help): Fix typo in --help text.
14601
14602 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
14603
14604         PR target/35239
14605         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
14606         32-bit inline asm without asm alternatives for host GCC < 3.0.
14607
14608 2008-02-19  Richard Guenther  <rguenther@suse.de>
14609
14610         PR tree-optimization/34989
14611         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
14612         Allow propagation to INDIRECT_REF if we can simplify only.
14613
14614 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14615
14616         * c-common.c (warn_for_collisions_1): Use appropriate option when
14617         warning.
14618
14619 2008-02-19  Nick Clifton  <nickc@redhat.com>
14620
14621         PR other/31349
14622         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
14623         (handle_options): Fix indentation.
14624         (print_filtered_help): If no language-specific options were
14625         displayed tell the user how to list all the options supported by
14626         the language's front-end.
14627         (print_specific_help): Fix indentation and remove duplicate line.
14628         (common_handle_option): Handle the -v option.
14629         For --help enable the display of undocumented options if the -v
14630         switch has been included on the command line.
14631         For --help= check for overlaps in the arguments between the option
14632         classes and the language names and issue a warning when they
14633         cannot be disambiguated.
14634         * c.opt (v): Pass on to the common option handler.
14635
14636 2008-02-19  Revital Eres  <eres@il.ibm.com> 
14637
14638         * modulo-sched.c (sms_schedule): Change dump message when
14639         create_ddg function fails.
14640         (try_scheduling_node_in_cycle): Rename row to cycle.
14641         (print_partial_schedule): Rename CYCLE to ROW.
14642
14643 2008-02-19  Christian Bruel  <christian.bruel@st.com>
14644             Zdenek Dvorak  <ook@ucw.cz>
14645
14646         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
14647
14648 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14649
14650         PR target/33555
14651         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
14652         (*x86_movdicc_0_m1_se): Ditto.
14653
14654 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14655
14656         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
14657         (CMPtype): Define as __gcc_CMPtype.
14658         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
14659         (CMPtype): Define as __gcc_CMPtype.
14660
14661 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
14662
14663         Support valgrind 3.3 for --enable-checking=valgrind.
14664         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
14665         here.
14666         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
14667         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
14668         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
14669         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
14670         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
14671         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
14672         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
14673         respectively.
14674         * ggc-zone.c: Similar.
14675         * ggc-page.c: Similar.
14676
14677 2008-02-19  Paul Brook  <paul@codesourcery.com>
14678
14679         PR target/35071
14680         * config/arm/ieee754-df.S: Fix do_it typo.
14681         * config/arm/ieee754-sf.S: Fix do_it typo.
14682
14683 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14684
14685         PR target/35189
14686         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
14687         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
14688         (OPTION_MASK_ISA_SSE_SET): Likewise.
14689         (OPTION_MASK_ISA_SSE2_SET): Likewise.
14690         (OPTION_MASK_ISA_SSE3_SET): Likewise.
14691         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
14692         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
14693         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
14694         (OPTION_MASK_ISA_SSE4_SET): Likewise.
14695         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
14696         (OPTION_MASK_ISA_SSE5_SET): Likewise.
14697         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
14698         (OPTION_MASK_ISA_MMX_UNSET): Updated.
14699         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
14700         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
14701         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
14702         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
14703         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
14704         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
14705         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
14706         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
14707         (OPTION_MASK_ISA_SSE4): Removed.
14708         (ix86_handle_option): Turn on bits in ix86_isa_flags and
14709         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
14710         (override_options): Don't turn on implied SSE/MMX bits in
14711         ix86_isa_flags.
14712
14713 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14714
14715         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
14716         32bit host.
14717
14718 2008-02-18  Joey Ye  <joey.ye@intel.com>
14719
14720         PR middle-end/34921
14721         * tree-nested.c (insert_field_into_struct): Set type alignment
14722         to field alignment if the former is less than the latter.
14723
14724 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
14725
14726         * BASE-VER: Set to 4.4.0.
14727
14728 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14729
14730         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
14731         * doc/cfg.texi: Likewise.
14732         * doc/extend.texi: Likewise.
14733         * doc/gty.texi: Likewise.
14734         * doc/invoke.texi: Likewise.
14735         * doc/loop.texi: Likewise.
14736         * doc/md.texi: Likewise.
14737         * doc/passes.texi: Likewise.
14738         * doc/rtl.texi: Likewise.
14739         * doc/sourcebuild.texi: Likewise.
14740         * doc/tm.texi: Likewise.
14741         * doc/tree-ssa.texi: Likewise.
14742
14743 2008-02-17  Richard Guenther  <rguenther@suse.de>
14744
14745         PR middle-end/35227
14746         * tree-complex.c (init_parameter_lattice_values): Handle parameters
14747         without default definition.
14748
14749 2008-02-17  Richard Guenther  <rguenther@suse.de>
14750
14751         PR tree-optimization/35231
14752         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
14753         if A | B != 1.
14754
14755 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
14756
14757         Revert:
14758         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
14759         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14760         libgcc_cmp_return mode.
14761
14762 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14763
14764         PR c/28368
14765         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
14766
14767 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
14768
14769         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
14770         multilibs.
14771
14772 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14773
14774         * doc/c-tree.texi: Use `@.' where appropriate.
14775         * doc/extend.texi: Likewise.
14776         * doc/install.texi: Likewise.
14777         * doc/invoke.texi: Likewise.
14778         * doc/loop.texi: Likewise.
14779         * doc/makefile.texi: Likewise.
14780         * doc/md.texi: Likewise.
14781         * doc/passes.texi: Likewise.
14782         * doc/standards.texi: Likewise.
14783         * doc/tm.texi: Likewise.
14784
14785 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14786
14787         PR middle-end/35196
14788         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
14789         in entry_bb.
14790         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
14791         rather than in entry_bb.
14792
14793 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14794
14795         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14796         libgcc_cmp_return mode.
14797
14798 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14799
14800         PR middle-end/35130
14801         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
14802         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
14803
14804 2008-02-15  Richard Guenther  <rguenther@suse.de>
14805             Zdenek Dvorak  <ook@ucw.cz>
14806
14807         PR tree-optimization/35164
14808         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
14809         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
14810         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14811         Only propagate addresses which do not have abnormal SSA_NAMEs
14812         in their operands.
14813
14814 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
14815
14816         PR target/35088
14817         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
14818
14819 2008-02-15  Jan Hubicka  <jh@suse.cz>
14820
14821         PR middle-end/35149
14822         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
14823
14824 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14825
14826         PR middle-end/34621
14827         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
14828         when calculating alignment_pad.
14829
14830 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14831
14832         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
14833         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
14834         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
14835         and STACK_BOUNDARY define.
14836
14837 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
14838
14839         PR preprocessor/35061
14840         * c-pragma.c (handle_pragma_pop_macro): Check that
14841         pushed_macro_table has been allocated.
14842
14843 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
14844
14845         PR middle-end/35136
14846         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
14847         (force_gimple_operand): Likewise.
14848         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
14849         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
14850         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
14851         (find_interesting_uses_address): Check addressability and alignment
14852         of the base expression only after substituting bases of IVs into it.
14853
14854 2008-02-14  Michael Matz  <matz@suse.de>
14855
14856         PR target/34930
14857         * function.c (instantiate_virtual_regs_in_insn): Reload address
14858         before falling back to reloading the whole operand.
14859
14860 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
14861
14862         * config/s390/s390.c (s390_mainpool_start): Emit the pool
14863         before the first section switch note.
14864
14865 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14866
14867         * doc/bugreport.texi: Update copyright years.
14868         * doc/c-tree.texi: Likewise.
14869         * doc/cfg.texi: Likewise.
14870         * doc/cpp.texi: Likewise.
14871         * doc/cppinternals.texi: Likewise.
14872         * doc/fragments.texi: Likewise.
14873         * doc/frontends.texi: Likewise.
14874         * doc/gcc.texi: Likewise.
14875         * doc/gty.texi: Likewise.
14876         * doc/hostconfig.texi: Likewise.
14877         * doc/implement-c.texi: Likewise.
14878         * doc/libgcc.texi: Likewise.
14879         * doc/loop.texi: Likewise.
14880         * doc/makefile.texi: Likewise.
14881         * doc/options.texi: Likewise.
14882         * doc/passes.texi: Likewise.
14883         * doc/rtl.texi: Likewise.
14884         * doc/sourcebuild.texi: Likewise.
14885         * doc/standards.texi: Likewise.
14886         * doc/tree-ssa.texi: Likewise.
14887         * doc/trouble.texi: Likewise.
14888
14889         * doc/extend.texi: Use @: or add comma where appropriate.
14890         * doc/invoke.texi: Likewise.
14891         * doc/tm.texi: Likewise.
14892
14893 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
14894
14895         PR target/34393
14896         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
14897         to a reg.
14898
14899 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
14900
14901         * doc/md.texi (clz, ctz): Add reference.
14902         * doc/rtl.texi (clz, ctz): Likewise.
14903
14904 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14905
14906         PR other/35148
14907         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
14908         srcdir.
14909
14910 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
14911
14912         * config/s390/s390.c (struct constant_pool): New field
14913         emit_pool_after added.
14914         (s390_mainpool_start): Set the emit_pool_after flag according
14915         to the section switch notes.
14916         (s390_mainpool_finish): Consider emit_pool_after when emitting
14917         the literal pool at the end of the function.
14918         (s390_chunkify_start): Force literal pool splits at section
14919         switch notes.
14920
14921 2008-02-13  Michael Matz  <matz@suse.de>
14922
14923         PR debug/35065
14924         * var-tracking.c (clobber_variable_part): Correctly traverse the
14925         list.
14926
14927 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14928
14929         PR 29673
14930         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
14931         Add -fdump-ipa-inline.
14932         * tree-dump.c (dump_files): Remove tree-inlined dump.
14933         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
14934         
14935 2008-02-12  Richard Guenther  <rguenther@suse.de>
14936
14937         PR tree-optimization/35171
14938         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
14939         default defs.
14940
14941 2008-02-12  Richard Guenther  <rguenther@suse.de>
14942
14943         PR middle-end/35163
14944         * fold-const.c (fold_widened_comparison): Use get_unwidened in
14945         value-preserving mode.  Disallow final truncation.
14946
14947 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
14948
14949         PR middle-end/35136
14950         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
14951         code from here to...
14952         (force_gimple_operand): ...here.
14953
14954 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
14955
14956         PR c++/35144
14957         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
14958         non-compatible pointers.
14959         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
14960         different FIELD_DECLs, try harder by comparing field offsets, sizes
14961         and types.
14962
14963         PR inline-asm/35160
14964         * function.c (match_asm_constraints_1): Don't replace the same input
14965         multiple times.
14966
14967 2008-02-12  Anatoly Sokolov <aesok@post.ru>
14968
14969         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
14970         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
14971         (expand_epilogue): Restore RAMPZ register.
14972         * config/avr/avr.md (RAMPZ_ADDR): New constant.
14973
14974 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
14975
14976         * config/i386/cygwin.asm: (__alloca): Correct calling
14977         convention and alignment.
14978         (__chkstk): Force 8 byte stack alignment.
14979
14980 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
14981             Richard Guenther  <rguenther@suse.de>
14982
14983         PR tree-optimization/33992
14984         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
14985         the zero we compare against.
14986
14987 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
14988
14989         PR libfortran/35063
14990         * gthr-win32.h (__gthread_mutex_destroy_function): New function
14991         to CloseHandle after unlocking to prevent accumulation of handle
14992         count.
14993
14994 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14995
14996         PR middle_end/34150
14997         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
14998         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
14999         and update LABEL_NUSES during and after reload.
15000
15001 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
15002
15003         PR middle-end/34627
15004         * combine.c (simplify_if_then_else): Make sure the comparison is
15005         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
15006
15007 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
15008
15009         PR bootstrap/35051
15010         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
15011         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
15012         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
15013         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
15014         * tree.h (get_type_static_bounds): Likewise.
15015
15016 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15017
15018         * doc/invoke.texi (Option Summary, C++ Dialect Options)
15019         (Objective-C and Objective-C++ Dialect Options, Warning Options):
15020         Make -Wfoo language annotations match what the compiler outputs.
15021
15022 2008-02-08  Sa Liu  <saliu@de.ibm.com>
15023
15024         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
15025         intrinsics spu_convts, spu_convtu, spu_convtf.
15026
15027 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
15028
15029         * doc/extend.texi (Function Attributes) <noinline>: Mention
15030         asm ("") as method to keep calls.
15031
15032 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15033
15034         PR other/32754
15035         * doc/options.texi (Options): Replace references to opts.sh with
15036         optc-gen.awk.
15037         * opts-common.c: Likewise.
15038         * optc-gen.awk: Likewise.
15039         
15040 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
15041
15042         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
15043
15044 2008-02-07  Richard Henderson  <rth@redhat.com>
15045
15046         PR rtl-opt/33410
15047         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
15048         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
15049         funny mode.
15050
15051 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
15052
15053         PR tree-optimization/35085
15054         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
15055         for operand entry oe2 in addition to operand entry oe3 in order to
15056         expose more opportunities for vectorizer sum reduction.
15057
15058 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15059
15060         PR other/35107
15061         * Makefile.in (LIBS): Remove $(GMPLIBS).
15062         (cc1-dummy, cc1): Add $(GMPLIBS).
15063
15064 2008-02-06  Jan Hubicka  <jh@suse.cz>
15065
15066         PR target/23322
15067         * i386.md (moddf_integer): Do not produce partial memory stalls for
15068         targets where it hurts.
15069
15070 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
15071
15072         PR target/35083
15073         * optabs.c (expand_float): Do not check for decimal modes when
15074         expanding unsigned integer through signed conversion.
15075
15076 2008-02-06  Nick Clifton  <nickc@redhat.com>
15077
15078         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
15079         inside the clobber with a match_operand and duplicated operand
15080         number in the constraint.
15081         (ineqbranchsi): Delete redundant comment.
15082
15083 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
15084
15085         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
15086         builtin_define ("__USE_INIT_FINI__").
15087         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
15088         -msx multilibs.
15089         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
15090
15091 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15092
15093         PR documentation/30330
15094         * doc/invoke.texi (C++ Dialect Options)
15095         (Objective-C and Objective-C++ Dialect Options, Warning Options):
15096         For each warning option -Wfoo that allows -Wno-foo, ensure both
15097         -Wfoo and -Wno-foo are listed in the option index.  Fix index
15098         entry of -Wswitch-default, index -Wnormalized= including the
15099         `=', and -Wlarger-than-@var{len} including @var{len}.
15100
15101 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
15102
15103         * config/i386/i386.md (floatunssisf2): Use
15104         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
15105         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
15106         Macroize expander using MODEF mode iterator.
15107
15108 2008-02-05  Diego Novillo  <dnovillo@google.com>
15109
15110         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
15111
15112         PR 33738
15113         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
15114
15115 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15116
15117         PR other/35070
15118         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
15119
15120 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
15121
15122         PR target/35084
15123         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
15124         to indicate if a message should be generated.
15125         (init_cumulative_args): Updated.
15126         (function_value_32): Likewise.
15127
15128 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
15129
15130         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
15131
15132 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
15133
15134         PR target/35083
15135         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
15136         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
15137
15138 2008-02-04  Diego Novillo  <dnovillo@google.com>
15139
15140         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
15141
15142         PR 33738
15143         * tree-vrp.c (vrp_evaluate_conditional): With
15144         -Wtype-limits, emit a warning when comparing against a
15145         constant outside the natural range of OP0's type.
15146
15147 2008-02-04  Richard Guenther  <rguenther@suse.de>
15148
15149         PR middle-end/33631
15150         * expr.c (count_type_elements): Give for unions instead of
15151         guessing.
15152
15153 2008-02-04  Richard Guenther  <rguenther@suse.de>
15154
15155         PR middle-end/35043
15156         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
15157         to TYPE_DOMAINs base type instead of using bitsizetype here.
15158
15159 2008-02-03  Jason Merrill  <jason@redhat.com>
15160
15161         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
15162
15163 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15164
15165         PR other/29972
15166         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
15167         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
15168         (RS/6000 and PowerPC Options): Fix typos and markup.
15169         * doc/passes.texi (Tree-SSA passes): Likewise.
15170
15171 2008-02-02  Michael Matz  <matz@suse.de>
15172
15173         PR target/35045
15174         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
15175         from record_last_reg_set_info.
15176         (record_last_reg_set_info): Take an RTX argument, iterate over all
15177         constituent hardregs.
15178         (record_last_set_info, record_opr_changes): Change calls to
15179         new signature or to record_last_reg_set_info_regno.
15180
15181 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
15182
15183         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
15184
15185 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
15186
15187         PR rtl-optimization/34773
15188         * reg-notes.def (EQUAL): Mention significance of combination of
15189         REG_EQUAL and REG_RETVAL.
15190         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
15191         insn that has a REG_RETVAL.
15192
15193 2008-02-01  Roger Sayle  <roger@eyesopen.com>
15194
15195         PR bootstrap/33781
15196         * configure.ac (--enable-fixed-point): Disable unless explicitly
15197         requested on IRIX.
15198         * configure: Regenerate.
15199
15200 2008-02-01  Richard Guenther  <rguenther@suse.de>
15201
15202         PR other/35042
15203         * invoke.texi (-finline-limit): Remove no longer true parts
15204         of the documentation.  Note that there is no default value.
15205
15206 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
15207             Mark Mitchell  <mark@codesourcery.com>
15208             Ben Elliston  <bje@au.ibm.com>
15209
15210         PR c/29326
15211         * doc/extend.texi (Other Builtins): Document.
15212
15213 2008-01-31  Tom Browder <tom.browder@gmail.com>
15214
15215         * doc/c-tree.texi (Types): Fix grammar.
15216         (Expression trees): Ditto.
15217         * doc/passes.texi (Tree-SSA passes): Ditto.
15218         
15219         * doc/configterms.texi (Configure Terms): Fix typo.
15220         * doc/cpp.texi (Common Predefined Macros): Ditto.
15221         * doc/md.texi (Machine Constraints): Ditto.
15222         
15223         * doc/makefile.texi (Makefile): Add comma.
15224
15225 2008-01-31  Tom Browder  <tom.browder@gmail.com>
15226             Gerald Pfeifer  <gerald@pfeifer.com>
15227         
15228         * doc/sourcebuild.texi (Front End): Remove references to CVS
15229         and CVSROOT/modules.
15230         (Texinfo Manuals): Replace reference to CVS by one to SVN.
15231         (Back End): Remove reference to CVS.
15232
15233 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
15234
15235         PR target/34900
15236         * config/mips/mips.c (gen_load_const_gp): New function, taking a
15237         comment from...
15238         (mips16_gp_pseudo_reg): ...here.
15239         * config/mips/mips.md (load_const_gp): Replace with...
15240         (load_const_gp_<mode>): ...this :P-based insn.
15241
15242 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15243
15244         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
15245         options. Minor fixes.
15246         (-std): Move reference to standards closer to where language
15247         standards are first mentioned.
15248         
15249 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
15250
15251         PR rtl-optimization/34995
15252         * reload.c (alternative_allows_const_pool_ref): Take an rtx
15253         parameter and return a bool.  If the rtx parameter is nonnull,
15254         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
15255         (find_reloads): Update call accordingly.  Pass the new operand
15256         if it needed no address reloads, otherwise pass null.
15257
15258 2008-01-30  Richard Henderson  <rth@redhat.com>
15259
15260         PR c/34993
15261         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
15262         for unbounded arrays.
15263
15264 2008-01-30  Silvius Rus  <rus@google.com>
15265
15266         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
15267
15268 2008-01-30  Jan Hubicka  <jh@suse.cz>
15269
15270         PR target/34982
15271         * i386.c (init_cumulative_args): Use real function declaration when
15272         calling locally.
15273
15274 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
15275
15276         PR rtl-optimization/34998
15277         * global.c (build_insn_chain): Treat non-subreg_lowpart
15278         SUBREGs of pseudos as clobbering all the words covered by the
15279         SUBREG, not just all the bytes.
15280         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
15281         original df_ref rather than an extract parameter.
15282         (global_conflicts): Update call accordingly.
15283
15284 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
15285
15286         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
15287         the overflow check to make it easier to read.
15288         (__fixtfdi): Change the type of the ll member in union
15289         long_double to UDItype_x.
15290
15291 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
15292
15293         PR middle-end/34969
15294         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
15295         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
15296         * tree-inline.c (fold_marked_statements): Call
15297         cgraph_update_edges_for_call_stmt if folding a call statement.
15298         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
15299         debug_generic_stmt calls, reset it back afterwards.
15300
15301         PR c/35017
15302         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
15303         static decls.
15304         * c-typeck.c (build_external_ref): Don't pedwarn about
15305         static vars in current function's scope.
15306
15307 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
15308
15309         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
15310
15311 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
15312
15313         PR c/35002
15314         * ipa-struct-reorg.c: Fix spelling.
15315         * params.def: Ditto.
15316
15317 2008-01-29  Richard Guenther  <rguenther@suse.de>
15318
15319         PR middle-end/35006
15320         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
15321         field.
15322         * tree-inline.c (remap_type): Increment remapping_type_depth
15323         around remapping types.
15324         (copy_body_r): Only add referenced variables if they are referenced
15325         from code, not types.
15326
15327 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
15328
15329         PR c++/34055
15330         PR c++/34103
15331         PR c++/34219
15332         PR c++/34606
15333         PR c++/34753
15334         PR c++/34754
15335         PR c++/34755
15336         PR c++/34919
15337         PR c++/34961
15338         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
15339         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
15340
15341 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
15342
15343         PR target/34412
15344         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
15345         pointer for tiny stack.
15346
15347 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
15348
15349         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
15350
15351 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
15352
15353         * config/vx-common.h: Fix typo in comment.
15354
15355 2008-01-28  Ian Lance Taylor  <iant@google.com>
15356
15357         PR c++/34862
15358         PR c++/33407
15359         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
15360         coalesce pointers if they have different DECL_NO_TBAA_P values.
15361         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
15362         between variables with different DECL_NO_TBAA_P values.
15363
15364 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
15365
15366         PR 31535
15367         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
15368         are not legitimate small data references on SPE targets.
15369
15370 2008-01-28  David Daney  <ddaney@avtrex.com>
15371
15372         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
15373
15374 2008-01-28  David Daney  <ddaney@avtrex.com>
15375
15376         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
15377
15378 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
15379
15380         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
15381         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
15382         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
15383         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
15384         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
15385         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
15386         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
15387         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
15388
15389 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
15390
15391         * basic-block.h (condjump_equiv_p): Fix comment.
15392
15393 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
15394
15395         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
15396         print_generic_stmt_indented): Fix comment.
15397
15398 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
15399
15400         * configure.ac (__stack_chk_fail): Add detecion for availability
15401         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
15402         * configure: Regenerate.
15403
15404 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
15405
15406         PR middle-end/34688
15407         * final.c (output_addr_const): Handle TRUNCATE.
15408
15409 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
15410
15411         PR target/34711
15412         * tree-ssa-loop-ivopts.c (comp_cost): New type.
15413         (zero_cost, infinite_cost): New constants.
15414         (struct cost_pair): Change type of cost to comp_cost.
15415         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
15416         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
15417         New functions.
15418         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
15419         split_address_cost, ptr_difference_cost, difference_cost,
15420         get_computation_cost_at, get_computation_cost,
15421         determine_use_iv_cost_generic, determine_use_iv_cost_address,
15422         determine_use_iv_cost_condition, determine_use_iv_costs,
15423         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
15424         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
15425         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
15426         Change type of cost to comp_cost.
15427         (determine_iv_cost): Increase cost of non-original ivs, instead
15428         of decreasing the cost of original ones.
15429         (get_address_cost): Indicate the complexity of the addressing mode 
15430         in comp_cost.
15431         (try_add_cand_for): Prefer using ivs not specific to some object.
15432         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
15433
15434 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
15435             Janis Johnson  <janis187@us.ibm.com>
15436
15437         PR target/34814
15438         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
15439         (TARGET_INSTANTIATE_DECLS): Likewise.
15440         * target.h (expand_to_rtl_hook): New target hook.
15441         (instantiate_decls): Likewise.
15442         * function.c (instantiate_decl): Make non-static.  Rename to...
15443         (instantiate_decl_rtl): ... this.
15444         (instantiate_expr): Use instantiate_decl_rtl.
15445         (instantiate_decls_1): Likewise.
15446         (instantiate_decls): Likewise.
15447         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
15448         * function.h (instantiate_decl_rtl): Add prototype.
15449         * cfgexpand.c (target.h): New include.
15450         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
15451         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
15452         (TARGET_INSTANTIATE_DECLS): Likewise.
15453         (TARGET_INITIALIZER): New target hooks added.
15454         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
15455         New prototype.
15456         * config/rs6000/rs6000.c (tree-flow.h): New include.
15457         (machine_function): Add sdmode_stack_slot field.
15458         (rs6000_alloc_sdmode_stack_slot): New function.
15459         (rs6000_instantiate_decls): Likewise.
15460         (rs6000_secondary_memory_needed_rtx): Likewise.
15461         (rs6000_check_sdmode): Likewise.
15462         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
15463         (TARGET_INSTANTIATE_DECLS): Likewise.
15464         (rs6000_hard_regno_mode_ok): Allow SDmode.
15465         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
15466         (rs6000_emit_move): Handle SDmode.
15467         (function_arg_advance): Likewise.
15468         (function_arg): Likewise.
15469         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
15470         SDmode var args for 32-bit compiles.
15471         (rs6000_secondary_reload_class): Handle SDmode.
15472         (rs6000_output_function_epilogue): Likewise.
15473         (rs6000_function_value): Simplify if statement.
15474         (rs6000_libcall_value): Likewise.
15475         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
15476         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
15477         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
15478         (movsd_hardfloat): New define_insn.
15479         (movsd_softfloat): Likewise.
15480         (movsd_store): Likewise.
15481         (movsd_load): Likewise.
15482         (extendsddd2): Likewise.
15483         (extendsdtd2): Likewise.
15484         (truncddsd2): Likewise.
15485         (movdd_hardfloat64): Fixup comment.
15486         (UNSPEC_MOVSD_LOAD): New constant.
15487         (UNSPEC_MOVSD_STORE): Likewise.
15488
15489 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
15490
15491         PR c++/34965
15492         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
15493         TRUTH_XOR_EXPR.
15494         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
15495         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
15496         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
15497         and TRUTH_XOR_EXPR.
15498
15499 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
15500
15501         PR target/34794
15502         * config.gcc: Separate AIX 5.3 from AIX 6.1.
15503         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
15504         __LONGDOUBLE128 too.
15505         * config/rs6000/aix61.h: New file.
15506
15507 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15508
15509         PR rtl-optimization/34959
15510         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
15511         popcount and parity rtxes the same mode as their operand.
15512         Truncate or extend the result to the return value's mode
15513         if necessary.
15514
15515 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15516
15517         PR target/34981
15518         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
15519         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
15520         to GOT_VERSION_REGNUM.
15521         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
15522         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
15523         * config/mips/mips.c (mips_emit_call_insn): New function.
15524         (mips_call_tls_get_addr): Call mips_expand_call directly.
15525         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
15526         emit_call_insn.
15527         (mips16_build_call_stub): Likewise.  Return the call insn or null.
15528         (mips_expand_call): Update the call to mips16_build_call_stub
15529         accordingly and a remove redundant condition.  Assert that MIPS16
15530         stubs do not use lazy binding.  Use mips_emit_call_insn and return
15531         the call insn.
15532         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
15533         TARGET_USE_GOT.
15534         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
15535         (mips_avoid_hazard): Remove hazard_set handling.
15536         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
15537         (UNSPEC_RESTORE_GP): ...this.
15538         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
15539         (FAKE_CALL_REGNO): Rename to...
15540         (GOT_VERSION_REGNUM): ...this.
15541         (type): Add "ghost" value.  Add an associated insn reservation.
15542         (hazard_set): Remove.
15543         (exception_receiver): Rename to...
15544         (restore_gp): ...this and update the unspec identifier accordingly.
15545         (exception_receiver, nonlocal_got_receiver): New expanders.
15546         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
15547         FAKE_CALL_REGNO.  Remove hazard_set attribute.
15548         (set_got_version, update_got_version): New patterns.
15549
15550 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
15551
15552         PR target/34970
15553         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
15554
15555 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15556
15557         PR other/31955
15558         * doc/install.texi2html: Generate gcc-vers.texi.
15559
15560 2008-01-25  DJ Delorie  <dj@redhat.com>
15561
15562         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
15563
15564 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15565
15566         * config/c4x: Remove directory.
15567         * config.gcc (crx-*, mt-*): Mark obsolete.
15568         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
15569         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
15570         sh-*-rtemscoff*): Remove cases.
15571         * defaults.h (C4X_FLOAT_FORMAT): Remove.
15572         * real.c (encode_c4x_single, decode_c4x_single,
15573         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
15574         c4x_extended_format): Remove.
15575         * real.h (c4x_single_format, c4x_extended_format): Remove.
15576         * doc/extend.texi (interrupt, naked): Remove mention of attributes
15577         on C4x.
15578         (Pragmas): Remove comment about c4x pragmas.
15579         * doc/install.texi (c4x): Remove target-specific instructions.
15580         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
15581         * doc/md.texi (Machine Constraints): Remove C4x documentation.
15582         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
15583         refer to C4x source files as examples.
15584         (C4X_FLOAT_FORMAT): Remove documentation.
15585
15586 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
15587
15588         * config/bfin/bfin.c (override_options): Reorder tests so that
15589         flag_pic gets enabled for -msep-data.
15590
15591 2008-01-25  Richard Guenther  <rguenther@suse.de>
15592
15593         PR middle-end/32244
15594         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
15595         to its bitfield precision if required.
15596
15597 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15598
15599         PR middle-end/33880
15600         * tree-nested.c (walk_omp_for): New function.
15601         (convert_nonlocal_reference, convert_local_reference): Call
15602         walk_omp_for on OMP_FOR.
15603         (convert_call_expr): Call walk_body on OMP_FOR's
15604         OMP_FOR_PRE_INIT_BODY.
15605
15606 2008-01-25  Richard Guenther  <rguenther@suse.de>
15607
15608         PR tree-optimization/34966
15609         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
15610         default defs and PHI_NODEs we have to insert after the
15611         defining statement.
15612
15613 2008-01-24  Nick Clifton  <nickc@redhat.com>
15614
15615         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
15616         Provide a default definition.
15617         (LIBGCC2_UNITS_PER_WORD): Likewise.
15618
15619         * config/stormy16/stormy16.c: Include df.h for the prototype
15620         for df_regs_ever_live_p.
15621         (xstormy16_expand_builtin_va_start): Convert the stack offset
15622         into a component_ref and then use POINTER_PLUS_EXPR to add it
15623         to the incoming_virtual_args_rtx.
15624         (xstormy16_gimplify_va_arg_expr): Rename to
15625         xstormy16_gimplify_va_arg_expr.
15626         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
15627         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
15628         xstormy16_gimplify_va_arg_expr.
15629         Fix up some formatting issues.
15630
15631         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
15632         Move to predicates.md.
15633         (xs_hi_general_operand): Likewise.
15634         (xs_hi_nonmemory_operand): Likewise.
15635         * config/stormy16/predicates.md:
15636         (xstormy16_carry_plus_operand): New predicate.
15637         (xs_hi_general_operand): New predicate.
15638         (xs_hi_nonmemory_operand): New predicate.
15639         * config/stormy16/stormy16-protos.h:
15640         (xstormy16_carry_plus_operand): Delete prototype.
15641         (xs_hi_general_operand): Likewise.
15642         (xs_hi_nonmemory_operand): Likewise.
15643
15644         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
15645         modifiers as they are no longer needed and they can trigger
15646         reload spill failures.
15647
15648         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
15649         with a match_operand in order to help reload.
15650
15651         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
15652         constraint with 'e' for the 8th alternative as this version of
15653         the mov.w instruction only accepts the lower 8 registers.
15654
15655 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
15656
15657         PR target/34856
15658         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
15659         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
15660         vector elements.
15661
15662 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15663
15664         PR middle-end/33333
15665         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
15666
15667 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15668
15669         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
15670         New functions.
15671         (remove_structure): Update allocations list before removing structure.
15672         
15673 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15674
15675         * ipa-struct-reorg.c (is_safe_cond_expr, 
15676         create_new_stmts_for_cond_expr): Use integer_zerop function,
15677         that recognize not only zero-pointer, but zero-integer too.
15678
15679 2008-01-25  Ben Elliston  <bje@au.ibm.com>
15680
15681         PR other/22232
15682         * fixproto: Escape "." in sed expression that strips leading "./".
15683
15684 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15685
15686         PR driver/34904
15687         * gcc.c (SWITCH_OK): Removed.
15688         (SWITCH_LIVE): Changed to bit.
15689         (SWITCH_FALSE): Likewise.
15690         (SWITCH_IGNORE): Likewise.
15691         (switchstr): Change live_cond to unsigned int.
15692         (process_command): Replace SWITCH_OK with 0.
15693         (do_self_spec): Likewise.
15694         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
15695         (give_switch): Likewise.
15696         (used_arg): Likewise.
15697         (do_spec_1): Set the SWITCH_IGNORE bit.
15698         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
15699         bits.  Set the SWITCH_LIVE bit.
15700
15701 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15702
15703         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
15704
15705 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
15706
15707         PR tree-optimization/34472
15708         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
15709         parameter to a "bool *" and set *DATA to false if there is
15710         an unsafe access.  Do not delete the structure here.
15711         (check_cond_exprs): Delete it here instead.
15712         (check_cond_exprs, exclude_cold_structs): Do not increase
15713         I when removing a structure.
15714
15715 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
15716
15717         PR target/34856
15718         * config/i386/i386.c (ix86_expand_vector_init): Consider only
15719         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
15720
15721 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
15722
15723         PR middle-end/34934
15724         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
15725         a fixed vector for stack.
15726
15727 2008-01-24  Ben Elliston  <bje@au.ibm.com>
15728
15729         PR c++/25701
15730         * doc/gcc.texi (Software development): Add a direntry for g++.
15731         
15732 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
15733
15734         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
15735         stale and straggling -fforce-addr comments above.
15736
15737         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
15738         define.
15739         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
15740         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
15741
15742 2008-01-23  Michael Matz  <matz@suse.de>
15743
15744         PR debug/34895
15745         * dwarf2out.c (force_type_die): Use modified_type_die instead of
15746         gen_type_die.
15747
15748 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
15749
15750         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
15751         malloc result type.
15752
15753 2008-01-23 Anatoly Sokolov <aesok@post.ru>
15754
15755         * config/avr/avr.c (avr_current_arch): New variable.
15756         (avr_arch_types): Add 'avr31' and 'avr51' entries.
15757         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
15758         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
15759         (avr_override_options): Init 'avr_current_arch'. 
15760         (base_arch_s): Move from here...
15761         * config/avr/avr.h (base_arch_s): ... here. Add new members 
15762         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
15763         'mega' to 'have_jmp_call'.
15764         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
15765         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
15766         macros.
15767         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
15768         architectures.
15769         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
15770         MULTILIB_MATCHES): (Ditto.).
15771
15772 2008-01-23  Richard Guenther  <rguenther@suse.de>
15773
15774         PR middle-end/31529
15775         * cgraphunit.c (cgraph_reset_node): Always mark the node
15776         not reachable if it is not queued already.
15777
15778 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
15779
15780         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
15781         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
15782         (cputype_selected): New static variable.
15783         (bfin_handle_option): Set it if -mcpu is used.
15784         (override_option): Select default set of workarounds if no cpu type
15785         selected on the command line.
15786         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
15787
15788         From  Michael Frysinger  <michael.frysinger@analog.com>
15789         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
15790         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
15791
15792         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
15793         for bf547, bf523, bf524, and bf526.
15794         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
15795         bf526.
15796         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15797         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
15798         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
15799         __ADSPBF547__ and __ADSPBF54x__ for bf547.
15800         * doc/invoke.texi (Blackfin Options): Document that
15801         -mcpu now accept bf547, bf523, bf524, and bf526.
15802
15803 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15804
15805         PR rtl-optimization/34628
15806         * combine.c (try_combine): Stop and undo after the first combination
15807         if an autoincrement side-effect on the first insn has effectively
15808         been lost.
15809
15810 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
15811
15812         PR target/34529
15813         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
15814         Offset addresses are not valid for Altivec or paired float modes.
15815
15816 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
15817
15818         PR c++/34607
15819         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
15820         if DECL_INITIAL (decl) is error_mark_node.
15821
15822         PR c++/34914
15823         * c-common.c (handle_vector_size_attribute): Only allow
15824         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
15825         the same way as pointer, array etc. types.
15826         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
15827
15828         PR c++/34917
15829         * tree.c (build_type_attribute_qual_variant): Call
15830         build_qualified_type if attributes are equal, but quals are not.
15831
15832 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15833
15834         PR 32102
15835         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
15836         * flags.h (warn_strict_aliasing): Remove.
15837         (warn_strict_overflow): Remove.
15838         * opts.c (warn_strict_aliasing): Remove.
15839         (warn_strict_overflow): Remove.
15840         * c-opts.c (c_common_handle_option): -Wall only sets
15841         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
15842         (c_common_post_options): Give default values to -Wstrict-aliasing
15843         and -Wstrict-overflow if they are uninitialized.
15844         * common.opt (Wstrict-aliasing): Specify Var and Init.
15845         (Wstrict-overflow): Likewise.
15846
15847 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
15848
15849         PR rtl-optimization/26854
15850         PR rtl-optimization/34400
15851         PR rtl-optimization/34884
15852         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
15853         DF_RD->gen.
15854         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
15855         (df_rd_bb_info.expanded_lr_out): Deleted
15856         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
15857         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
15858         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15859         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15860         Removed code to allocate, initialize or free expanded_lr_out.
15861         (df_rd_bb_local_compute_process_def): Restructured to make more
15862         understandable.
15863         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
15864         sets if the sets are being trimmed.
15865
15866 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
15867
15868         PR bootstrap/32287
15869         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
15870         (as_vers): Likewise.
15871         * configure: Regenerated.
15872
15873 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15874
15875         PR middle-end/33092
15876         * tree-pass.h (pass_build_alias): New pass.
15877         * tree-ssa-alias.c (gate_build_alias): New.
15878         (pass_build_alias): New.
15879         * passes.c (init_optimization_passes): Add pass_build_alias after
15880         pass_create_structure_vars.
15881
15882 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
15883
15884         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
15885         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
15886         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
15887         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
15888         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
15889         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
15890         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
15891         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
15892         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
15893         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
15894         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
15895         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
15896         * config/s390/s390.md (FP_ALL): New mode iterator.
15897         (_d): New mode attribute.
15898         ("*signbit<mode>2>"): Changed mode of first operand.
15899         ("isinf<mode>2"): Changed mode of first operand.
15900         ("*TDC_insn"): Adaptation for DFP modes.
15901
15902 2008-01-22  Ben Elliston  <bje@au.ibm.com>
15903
15904         * tree.c (check_qualified_type): Improve function description.
15905
15906 2008-01-21  Jason Merrill  <jason@redhat.com>
15907
15908         PR c++/34196
15909         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
15910         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
15911         if it is set.
15912
15913 2008-01-21  DJ Delorie  <dj@redhat.com>
15914
15915         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
15916         return zero.
15917
15918 2008-01-21  Richard Guenther  <rguenther@suse.de>
15919
15920         PR middle-end/34856
15921         * tree-cfg.c (verify_expr): Allow all invariant expressions
15922         instead of just constant class ones as reference argument.
15923         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
15924         like any other constant.
15925         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15926
15927 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
15928
15929         * regmove.c (fixup_match_1): Update call crossed frequencies.
15930
15931 2008-01-21  Richard Guenther  <rguenther@suse.de>
15932
15933         PR c/34885
15934         * tree-inline.c (setup_one_parameter): Deal with mismatched
15935         types using a VIEW_CONVERT_EXPR.
15936
15937 2008-01-21  Alon Dayan  <alond@il.ibm.com>
15938             Olga Golovanevsky  <olga@il.ibm.com>
15939         
15940         PR tree-optimization/34701
15941         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
15942         when the structure size is not a power of 2.
15943
15944 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
15945
15946         * doc/install.texi: Add doc for --enable-checking=df.
15947         
15948 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15949
15950         PR rtl-optimization/34808
15951         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
15952
15953 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15954
15955         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
15956         input.
15957
15958 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
15959
15960         PR rtl-optimization/26854
15961         PR rtl-optimization/34400
15962         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
15963         DF_RD->gen.
15964         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
15965         (df_rd_bb_info.expanded_lr_out): New.
15966         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
15967         * loop_iv.c (iv_analysis_loop_init): Ditto.
15968         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15969         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15970         Added code to allocate, initialize or free expanded_lr_out.
15971         (df_rd_bb_local_compute_process_def): Restructured to make
15972         more understandable.
15973         (df_rd_confluence_n): Add code to do nothing with fake edges and
15974         code to no apply invalidate_by_call sets if the sets are being trimmed.
15975         (df_lr_local_finalize): Renamed to df_lr_finalize.
15976         (df_live_local_finalize): Renamed to df_live_finalize.
15977
15978 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15979
15980         PR target/34831
15981         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
15982         deciding whether to use reciprocal instructions.
15983
15984 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
15985
15986         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
15987         dwarf2out_note_section_used if cold_text_section is NULL.
15988
15989 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
15990
15991         PR gcov-profile/34610
15992         * tree-cfg.c (make_edges): Mark both outgoing edges from
15993         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
15994         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
15995         from OMP_FOR and OMP_CONTINUE outgoing edges.
15996
15997         * tree-profile.c (tree_profiling): Return early if
15998         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
15999         at the end.
16000         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
16001         from cfun to child_cfun.
16002         * function.h (struct function): Add after_tree_profile bit.
16003
16004 2008-01-19 Anatoly Sokolov <aesok@post.ru>
16005
16006         * config/avr/avr.S (_exit): Disable interrupt.
16007
16008 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
16009             Steven Bosscher  <stevenb.gcc@gmail.com>
16010
16011         PR rtl-optimization/26854
16012         PR rtl-optimization/34400
16013         * df-problems.c (df_live_scratch): New scratch bitmap.
16014         (df_live_alloc): Allocate df_live_scratch when doing df_live.
16015         (df_live_reset): Clear the proper bitmaps.
16016         (df_live_bb_local_compute): Only process the artificial defs once
16017         since the order is not important.
16018         (df_live_init): Init the df_live sets only with the variables
16019         found live by df_lr.
16020         (df_live_transfer_function): Use the df_lr sets to prune the
16021         df_live sets as they are being computed.  
16022         (df_live_free): Free df_live_scratch.
16023
16024 2008-01-18  Ian Lance Taylor  <iant@google.com>
16025
16026         * common.opt: Add fmerge-debug-strings.
16027         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
16028         flag_merge_debug_strings rather than flag_merge_constants.
16029         * doc/invoke.texi (Option Summary): Mention
16030         -fmerge-debug-strings.
16031         (Debugging Options): Document -fmerge-debug-strings.
16032
16033 2008-01-18  Ian Lance Taylor  <iant@google.com>
16034
16035         PR c++/33407
16036         * tree.h (DECL_IS_OPERATOR_NEW): Define.
16037         (struct tree_function_decl): Add new field operator_new_flag.
16038         * tree-inline.c (expand_call_inline): When inlining a call to
16039         operator new, force the return value to go into a variable, and
16040         set DECL_NO_TBAA_P on that variable.
16041         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
16042
16043 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
16044
16045         PR debug/34484
16046         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
16047         DWARF2_DEBUGGING_INFO.
16048         (dwarf2out_note_section_used): Ditto.  Add prototype.
16049         (have_multiple_function_sections, text_section_used,
16050         cold_text_section_used, *cold_text_sections): Move declarations
16051         before their uses.
16052
16053 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
16054
16055         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
16056         field and add signal_ra.
16057         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
16058         assignments to frame state pc.  Move end of stack check after
16059         MD_FALLBACK_FRAME_STATE_FOR.
16060         (uw_update_context_1): Use frame state signal_regs if set, instead
16061         of checking signal_frame flag.
16062         (uw_update_context): Use frame state signal_ra if set.
16063         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
16064         * config/xtensa/linux-unwind.h: New file.
16065
16066 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
16067
16068         * modulo-sched.c (get_sched_window): Fix comment typo.
16069
16070 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
16071
16072         PR tree-optimization/34648
16073         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
16074
16075 2008-01-17  Anatoly Sokolov <aesok@post.ru>
16076
16077         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
16078         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
16079
16080 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
16081
16082         PR rtl-optimization/34400
16083         * df-core.c (df_worklist_dataflow_overeager,
16084         df_worklist_dataflow_doublequeue): New functions.
16085         (df_worklist_dataflow): Two different worklist solvers.
16086         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
16087         New param.
16088
16089 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16090
16091         PR testsuite/34821
16092         * doc/invoke.texi: Document the dependence on pthread for fopenmp
16093         and ftree-parallelize-loops.
16094
16095 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
16096
16097         PR rtl-optimization/34826
16098         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
16099
16100 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
16101
16102         * global.c (find_reg): Mark the eh regs as used if necessary.
16103         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
16104         * ra.h (struct allocno): no_eh_reg field added.  Changed
16105         no_stack_reg type to bitfield.
16106
16107 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
16108
16109         * tree.c (substitute_in_expr): Add missing 'break'.
16110
16111 2008-01-17  Richard Guenther  <rguenther@suse.de>
16112
16113         PR tree-optimization/34825
16114         * tree-ssa-math-opts.c (is_division_by): Do not recognize
16115         x / x as division to handle.
16116
16117 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16118
16119         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
16120         "-pthread" is specified.
16121         * pa-hpux11.h (LIB_SPEC): Likewise.
16122
16123 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
16124             Peter Bergner  <bergner@vnet.ibm.com>
16125
16126         PR rtl-optimization/33796
16127         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
16128
16129 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16130
16131         PR libgfortran/34699
16132         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
16133         static links.
16134         * pa-hpux10.h (LINK_SPEC): Likewise.
16135         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
16136
16137 2008-01-16  Richard Guenther  <rguenther@suse.de>
16138
16139         PR middle-end/32628
16140         * fold-const.c (fold_convert_const_int_from_int): Do not
16141         set overflow if that occured only because of a sign extension
16142         change when converting from/to a sizetype with the same
16143         precision and signedness.
16144
16145 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
16146
16147         PR debug/34249
16148         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
16149         location address to the correct place.  Update copyright year.
16150
16151 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16152
16153         * lambda-code.c (lambda_transform_legal_p): Handle the case of
16154         no dependences in the dependence_relations vector.
16155
16156 2008-01-16  Jan Hubicka  <jh@suse.cz>
16157
16158         PR rtl-optimization/31396
16159         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
16160         * cfg.c (dump_reg_info): Print it.
16161         * regs.h (struct reg_info_t): add freq_calls_crossed.
16162         (REG_FREQ_CALLS_CROSSED): New macro.
16163         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
16164         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
16165         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
16166         regmove_optimize): Update call crossed frequencies.
16167         * local-alloc.c (struct qty): Add freq_calls_crossed.
16168         (alloc_qty): Copute freq_calls_crossed.
16169         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
16170         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
16171         * ra.h (struct allocno): Add freq_calls_crossed.
16172
16173 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16174
16175         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
16176         libgomp when compiling with ftree-parallelize-loops.
16177         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
16178
16179 2008-01-16  Richard Guenther  <rguenther@suse.de>
16180
16181         PR tree-optimization/34769
16182         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
16183         * tree.c (int_cst_value): Instead make this function more
16184         permissive in what it accepts as valid input.  Document this
16185         function always sign-extends the value.
16186
16187 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
16188             Richard Guenther  <rguenther@suse.de>
16189
16190         PR c/34668
16191         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
16192         (gimple_fold_indirect_ref_rhs): ... this.
16193         (gimple_fold_indirect_ref): New function with foldings
16194         that preserve lvalueness.
16195         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
16196         * tree-flow.h (gimple_fold_indirect_ref): Declare.
16197         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
16198         to fold an INDIRECT_REF, fall back to the old use of
16199         fold_indirect_ref_1.
16200
16201 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16202
16203         * tree-data-ref.c (subscript_dependence_tester_1): Call 
16204         free_conflict_function.
16205         (compute_self_dependence): Same.
16206
16207 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
16208
16209         PR debug/34249
16210         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
16211         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
16212         function global.
16213         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
16214         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
16215         for DWARF2_UNWIND_INFO targets.
16216
16217 2008-01-16  Richard Guenther  <rguenther@suse.de>
16218
16219         PR c/34768
16220         * c-typeck.c (common_pointer_type): Do not merge inconsistent
16221         type qualifiers for function types.
16222
16223 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
16224
16225         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
16226         loop_iterator li from previous commit.
16227
16228 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
16229
16230         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
16231
16232 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
16233
16234         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
16235         (parallelize_loops): Don't parallelize irreducible components.
16236
16237 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16238
16239         PR c++/24924
16240         * c-opts (c_common_post_options): Do not enable CPP
16241         flag_pedantic_errors by default.
16242         
16243 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
16244
16245         PR rtl-optimization/31944
16246         * cse.c (remove_pseudo_from_table): New function.
16247         (merge_equiv_classes): Use above function to remove pseudo-registers.
16248         (invalidate): Likewise.
16249
16250 2008-01-13  Richard Guenther  <rguenther@suse.de>
16251
16252         PR middle-end/34601
16253         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
16254         instead of TYPE_MODE to deal with calls from expand_one_error_var.
16255
16256 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
16257
16258         * gcse.c (cprop_jump): Call validate_unshare_change instead of
16259         validate_change to unshare the source of the PC set.
16260
16261 2008-01-12  Jan Hubicka  <jh@suse.cz>
16262
16263         PR middle-end/32135
16264         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
16265         references above array bounds.  This might trigger bounds checks for
16266         pointers to arrays.
16267
16268 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
16269
16270         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
16271         new_replaceable_dependencies.
16272
16273 2008-01-12  Doug Kwan  <dougkwan@google.com>
16274
16275         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
16276         instead of OPT_Wreturn_type in warning due to ignored return type
16277         qualifiers.
16278         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
16279         options included in -Wextra.
16280         * c.opt: New option -Wignored_qualifiers.
16281         * doc/invoke.texi (Warning Options, -Wextra): Add new option
16282         -Wignore_qualifiers.
16283         (-Wignored-qualifiers): Document.
16284         (-Wreturn-type): Remove description of functionality now handled
16285         by -Wignored-qualifiers.
16286
16287 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
16288
16289         PR ada/33788
16290         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
16291         NOP_EXPR if it is between integral types with the same precision.
16292
16293 2008-01-12  Jan Hubicka  <jh@suse.cz>
16294
16295         PR other/28023
16296         * invoke.texi (max-inline-recursive-depth): Fix default value.
16297
16298 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
16299
16300         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
16301         correct type.
16302
16303 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
16304         
16305         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
16306         
16307 2008-01-11  James E. Wilson  <wilson@specifix.com>
16308
16309         PR target/26015
16310         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
16311
16312 2008-01-11  Anatoly Sokolov <aesok@post.ru>
16313
16314         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
16315         save/restore frame pointer register and don't use 'call-prologues' 
16316         optimization in function with "OS_task" attribute.
16317
16318 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
16319
16320         PR middle-end/31309
16321         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
16322         when copying to memory.
16323
16324 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
16325
16326         PR rtl-optimization/30905
16327         * cfgcleanup.c: Include dce.h
16328         (crossjumps_occured): New global variable.
16329         (try_crossjump_bb): Exit loop after finding a fallthru edge.
16330         If something changed, set crossjumps_occured to true.
16331         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
16332         Don't add/remove fake edges to exit here...
16333         (cleanup_cfg): ...but do it here, when crossjumping.
16334         Run a fast DCE when successful crossjumps occured in the latest
16335         iteration of try_optimize_cfg.
16336
16337 2008-01-11  Richard Guenther  <rguenther@suse.de>
16338
16339         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
16340         (struct vn_unary_op_s): Likewise.
16341         (vn_reference_insert): Free old reference on hash collision.
16342
16343 2008-01-10  Raksit Ashok  <raksit@google.com>
16344
16345         PR rtl-optimization/27971
16346         * combine.c (find_split_point): Split PLUS expressions which are
16347         inside a MEM rtx, and whose first operand is complex.
16348
16349 2008-01-10  DJ Delorie  <dj@redhat.com>
16350
16351         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
16352         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
16353         (m32c_hard_regno_ok): Call the underlying function.
16354
16355 2008-01-10  Richard Guenther  <rguenther@suse.de>
16356
16357         PR middle-end/34683
16358         * tree-cfg.c (tree_merge_blocks): Do not go through the
16359         full-blown folding and stmt updating path if we just deal
16360         with virtual operands.
16361         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
16362         test for abnormal SSA_NAMEs.
16363
16364 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
16365
16366         PR middle-end/34641
16367         * reload.c (push_reload): Add assertions.  All constants from
16368         reg_equiv_constant should have been used for replacing the respective
16369         pseudo earlier.
16370         (find_reloads_address): Invoke find_reloads_address_part for
16371         constant taken from the reg_equiv_constant array.
16372
16373 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
16374
16375         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
16376         field (valnum) the first in the struct.  Replace bools with
16377         unit bit fields.
16378
16379 2008-01-10  Richard Guenther  <rguenther@suse.de>
16380
16381         PR tree-optimization/34651
16382         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
16383         types and ordering for masking and converting.
16384
16385 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
16386
16387         PR tree-optimization/34017
16388         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
16389         also for PHI_NODE expressions.
16390
16391 2008-01-09  Jan Hubicka  <jh@suse.cz>
16392
16393         PR tree-optimization/34708
16394         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
16395         based on number of case labels.
16396         (init_inline_once): Remove switch_cost.
16397         * tree-inline.h (eni_weights_d): Remove switch_cost.
16398
16399 2008-01-09  Richard Guenther  <rguenther@suse.de>
16400         Andrew Pinski  <andrew_pinski@playstation.sony.com>
16401
16402         PR middle-end/30132
16403         * gimplify.c (gimplify_cond_expr): Do not create an addressable
16404         temporary if an rvalue is ok or an lvalue is not required.
16405
16406 2008-01-09  Richard Guenther  <rguenther@suse.de>
16407
16408         PR middle-end/34458
16409         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
16410         adjust return type.
16411
16412 2008-01-09  Richard Guenther  <rguenther@suse.de>
16413
16414         PR middle-end/34679
16415         * tree.c (host_integerp): Check for sizetype only if the
16416         type is an integer type.
16417
16418 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
16419
16420         PR debug/26364
16421         * opts.c (decode_options): Disable inlining of functions called
16422         once if not in unit-at-a-time mode.
16423
16424 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
16425
16426         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
16427
16428 2008-01-08  Richard Guenther  <rguenther@suse.de>
16429
16430         PR middle-end/31863
16431         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
16432         out early if the result will be unused.
16433
16434 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16435
16436         PR target/34709
16437         Revert:
16438
16439         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16440         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16441         for TARGET_RECIP.       
16442         
16443 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
16444         
16445         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
16446         for vectorization tuned.
16447         
16448 2008-01-08  Richard Guenther  <rguenther@suse.de>
16449
16450         PR tree-optimization/34683
16451         * tree-ssa-operands.c (operand_build_cmp): Export.
16452         * tree-ssa-operands.h (operand_build_cmp): Declare.
16453         * tree-vn.c (vuses_compare): Remove.
16454         (sort_vuses): Use operand_build_cmp.
16455         (sort_vuses_heap): Likewise.
16456         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
16457         to re-use old VEC if available.  Do not sort already sorted VUSEs.
16458         (vdefs_to_vec): Do not sort already sorted VDEFs.
16459
16460 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
16461
16462         PR middle-end/34694
16463         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
16464
16465 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16466
16467         PR target/34702
16468         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
16469         limitations of reciprocal sequences on x86 targets.
16470
16471 2008-01-08  Richard Guenther  <rguenther@suse.de>
16472
16473         PR tree-optimization/34683
16474         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
16475
16476 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
16477
16478         PR target/34622
16479         * config/darwin.c (darwin_mergeable_string_section): Don't use
16480         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
16481
16482 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
16483
16484         PR target/34682
16485         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
16486         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
16487         predicates of op0 and op1 to register_operand.
16488         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
16489         expander using X87MODEF mode iterator.  Change predicates of
16490         op0 and op1 to register_operand.
16491         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
16492         corresponding patterns and macroize using MODEF macro.  Change
16493         predicates of op0 and op1 to register_operand and remove
16494         "m" constraint. Disparage "r" alternative with "!".
16495         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
16496         macroize using X87MODEF macro.  Change predicates of op0 and op1
16497         to register_operand and remove "m" constraint.  Disparage "r"
16498         alternative with "!".
16499         (absneg splitter with memory operands): Remove.
16500         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
16501         patterns and macroize using X87MODEF mode iterator.
16502         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
16503         Change predicate of op1 to register_operand.
16504         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
16505         for memory operands.
16506
16507 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
16508
16509         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
16510
16511 2008-01-07  Richard Guenther  <rguenther@suse.de>
16512
16513         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
16514         fields.
16515
16516 2008-01-07  Richard Guenther  <rguenther@suse.de>
16517
16518         PR tree-optimization/34683
16519         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
16520         VOPs of the needed size to save memory.  Use VEC_quick_push
16521         to save compile-time.
16522         (vdefs_to_vec): Likewise.
16523
16524 2008-01-07  Sa Liu  <saliu@de.ibm.com>
16525
16526         * config/spu/spu.md (divdf3): Genetate inline code for double
16527         division.  The implementation doesn't handle INF or NAN, therefore it
16528         only applies when -ffinite-math-only is given.
16529
16530 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
16531
16532         PR libstdc++/34680
16533         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
16534         * doc/cpp.texi ([Common Predefined Macros]): Document.
16535
16536 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
16537
16538         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
16539         order to use commutative addition instead of subtraction.
16540
16541 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16542             Mircea Namolaru  <namolaru@il.ibm.com>
16543             Vladimir Yanovsky  <yanov@il.ibm.com>
16544             Revital Eres  <eres@il.ibm.com>
16545
16546         PR tree-optimization/34263
16547         * tree-outof-ssa.c (process_single_block_loop_latch,
16548         contains_tree_r): New functions.
16549         (analyze_edges_for_bb): Call process_single_block_loop_latch
16550         function to empty single-basic-block latch block if possible.
16551
16552 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16553
16554         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16555         for TARGET_RECIP.
16556         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
16557
16558 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16559
16560         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
16561
16562 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16563
16564         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
16565
16566 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
16567
16568         PR tree-optimization/34618
16569         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
16570         flag from T.
16571
16572 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16573
16574         PR target/34673
16575         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
16576         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
16577         Update copyright year.
16578
16579         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
16580         Update copyright year.
16581         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
16582         using NR fixup.
16583
16584 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
16585
16586         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
16587         edge does not point to current bb before changing need_assert.
16588
16589 2008-01-04  Richard Guenther  <rguenther@suse.de>
16590
16591         PR middle-end/34029
16592         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
16593         for verifying purposes if they are is_gimple_min_invariant.
16594
16595 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
16596
16597         PR tree-optimization/34448
16598         PR tree-optimization/34465
16599         * gimplify.c (gimplify_init_constructor): Add new parameter
16600         notify_temp_creation.  Use it.
16601         (gimplify_modify_expr_rhs): Take volatiles into account when
16602         optimizing constructors.
16603         Do not optimize constructors if gimplify_init_constructor will dump to
16604         memory.
16605         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
16606         * gcc.c-torture/compile/pr34448.c: New.
16607
16608 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
16609
16610         PR gcov-profile/34609
16611         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
16612         return_slot if result is TREE_ADDRESSABLE.
16613
16614 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
16615
16616         * config/mips/mips.md (sqrt_condition): Tweak comment.
16617         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
16618
16619 2008-01-03  Tom Tromey  <tromey@redhat.com>
16620
16621         PR c/34457
16622         * c-common.c (c_type_hash): Handle VLAs.
16623
16624 2008-01-03  Jan Hubicka  <jh@suse.cz>
16625
16626         PR tree-optimization/31081
16627         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
16628         0 when inlining and not inlining to first basic block.
16629         (remap_decl): When var is initialized to 0, don't set default_def.
16630         (expand_call_inline): Set entry_bb.
16631         * tree-inline.h (copy_body_data): Add entry_bb.
16632
16633 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16634
16635         PR c++/34619
16636         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
16637         before returning.
16638
16639         PR tree-optimization/29484
16640         * tree-inline.c (inline_forbidden_p_2): New function.
16641         (inline_forbidden_p): Disallow inlining if some static var
16642         has an address of a local LABEL_DECL in its initializer.
16643         * doc/extend.texi (Labels as Values): Document &&foo behaviour
16644         vs. inlining.
16645
16646 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16647
16648         PR tree-optimization/34635
16649         * tree-data-ref.c (add_other_self_distances): Make sure that the
16650         evolution step is constant.
16651
16652 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16653
16654         PR middle-end/34608
16655         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
16656
16657 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
16658
16659         * tree-sra.c (scalarize_init): Insert the generate_element_init
16660         statements after the generate_element_zero statements.
16661
16662 2008-01-02  Richard Guenther  <rguenther@suse.de>
16663
16664         PR middle-end/34093
16665         PR middle-end/31976
16666         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
16667         for very large number of operands instead of ICEing.
16668
16669 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
16670
16671         PR target/34013
16672         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
16673         while stack probing.
16674
16675 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
16676
16677         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
16678         in C++0x mode.
16679
16680 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
16681
16682         PR libmudflap/26442
16683         * tree-mudflap.c (mx_register_decls): Guard warning by
16684         !DECL_ARTIFICIAL check.
16685
16686 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
16687
16688         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
16689         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
16690         sse5_perm<mode>): Fix constraints.