OSDN Git Service

2008-07-28 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-07-28  Richard Guenther  <rguenther@suse.de>
2
3         Merge from gimple-tuples-branch.
4
5         * ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
6         * gimple.def: New file.
7         * gsstruct.def: Likewise.
8         * gimple-iterator.c: Likewise.
9         * gimple-pretty-print.c: Likewise.
10         * tree-gimple.c: Removed.  Merged into ...
11         * gimple.c: ... here.  New file.
12         * tree-gimple.h: Removed.  Merged into ...
13         * gimple.h: ... here.  New file.
14
15         * Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
16         * configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
17         --enable-checking=gimple flag.
18         * config.in: Likewise.
19         * configure: Regenerated.
20
21         * tree-ssa-operands.h: Tuplified.
22         * tree-vrp.c: Likewise.
23         * tree-loop-linear.c: Likewise.
24         * tree-into-ssa.c: Likewise.
25         * tree-ssa-loop-im.c: Likewise.
26         * tree-dump.c: Likewise.
27         * tree-complex.c: Likewise.
28         * cgraphbuild.c: Likewise.
29         * tree-ssa-threadupdate.c: Likewise.
30         * tree-ssa-loop-niter.c: Likewise.
31         * tree-pretty-print.c: Likewise.
32         * tracer.c: Likewise.
33         * gengtype.c: Likewise.
34         * tree-loop-distribution.c: Likewise.
35         * tree-ssa-loop-unswitch.c: Likewise.
36         * cgraph.c: Likewise.
37         * cgraph.h: Likewise.
38         * tree-ssa-loop-manip.c: Likewise.
39         * value-prof.c: Likewise.
40         * tree-ssa-loop-ch.c: Likewise.
41         * tree-tailcall.c: Likewise.
42         * value-prof.h: Likewise.
43         * tree.c: Likewise.
44         * tree.h: Likewise.
45         * tree-pass.h: Likewise.
46         * ipa-cp.c: Likewise.
47         * tree-scalar-evolution.c: Likewise.
48         * tree-scalar-evolution.h: Likewise.
49         * target.h: Likewise.
50         * lambda-mat.c: Likewise.
51         * tree-phinodes.c: Likewise.
52         * diagnostic.h: Likewise.
53         * builtins.c: Likewise.
54         * tree-ssa-alias-warnings.c: Likewise.
55         * cfghooks.c: Likewise.
56         * fold-const.c: Likewise.
57         * cfghooks.h: Likewise.
58         * omp-low.c: Likewise.
59         * tree-ssa-dse.c: Likewise.
60         * ipa-reference.c: Likewise.
61         * tree-ssa-uncprop.c: Likewise.
62         * toplev.c: Likewise.
63         * tree-gimple.c: Likewise.
64         * tree-gimple.h: Likewise.
65         * tree-chrec.c: Likewise.
66         * tree-chrec.h: Likewise.
67         * tree-ssa-sccvn.c: Likewise.
68         * tree-ssa-sccvn.h: Likewise.
69         * cgraphunit.c: Likewise.
70         * tree-ssa-copyrename.c: Likewise.
71         * tree-ssa-ccp.c: Likewise.
72         * tree-ssa-loop-ivopts.c: Likewise.
73         * tree-nomudflap.c: Likewise.
74         * tree-call-cdce.c: Likewise.
75         * ipa-pure-const.c: Likewise.
76         * c-format.c: Likewise.
77         * tree-stdarg.c: Likewise.
78         * tree-ssa-math-opts.c: Likewise.
79         * tree-ssa-dom.c: Likewise.
80         * tree-nrv.c: Likewise.
81         * tree-ssa-propagate.c: Likewise.
82         * ipa-utils.c: Likewise.
83         * tree-ssa-propagate.h: Likewise.
84         * tree-ssa-alias.c: Likewise.
85         * gimple-low.c: Likewise.
86         * tree-ssa-sink.c: Likewise.
87         * ipa-inline.c: Likewise.
88         * c-semantics.c: Likewise.
89         * dwarf2out.c: Likewise.
90         * expr.c: Likewise.
91         * tree-ssa-loop-ivcanon.c: Likewise.
92         * predict.c: Likewise.
93         * tree-ssa-loop.c: Likewise.
94         * tree-parloops.c: Likewise.
95         * tree-ssa-address.c: Likewise.
96         * tree-ssa-ifcombine.c: Likewise.
97         * matrix-reorg.c: Likewise.
98         * c-decl.c: Likewise.
99         * tree-eh.c: Likewise.
100         * c-pretty-print.c: Likewise.
101         * lambda-trans.c: Likewise.
102         * function.c: Likewise.
103         * langhooks.c: Likewise.
104         * ebitmap.h: Likewise.
105         * tree-vectorizer.c: Likewise.
106         * function.h: Likewise.
107         * langhooks.h: Likewise.
108         * tree-vectorizer.h: Likewise.
109         * ipa-type-escape.c: Likewise.
110         * ipa-type-escape.h: Likewise.
111         * domwalk.c: Likewise.
112         * tree-if-conv.c: Likewise.
113         * profile.c: Likewise.
114         * domwalk.h: Likewise.
115         * tree-data-ref.c: Likewise.
116         * tree-data-ref.h: Likewise.
117         * tree-flow-inline.h: Likewise.
118         * tree-affine.c: Likewise.
119         * tree-vect-analyze.c: Likewise.
120         * c-typeck.c: Likewise.
121         * gimplify.c: Likewise.
122         * coretypes.h: Likewise.
123         * tree-ssa-phiopt.c: Likewise.
124         * calls.c: Likewise.
125         * tree-ssa-coalesce.c: Likewise.
126         * tree.def: Likewise.
127         * tree-dfa.c: Likewise.
128         * except.c: Likewise.
129         * except.h: Likewise.
130         * cfgexpand.c: Likewise.
131         * tree-cfgcleanup.c: Likewise.
132         * tree-ssa-pre.c: Likewise.
133         * tree-ssa-live.c: Likewise.
134         * tree-sra.c: Likewise.
135         * tree-ssa-live.h: Likewise.
136         * tree-predcom.c: Likewise.
137         * lambda.h: Likewise.
138         * tree-mudflap.c: Likewise.
139         * ipa-prop.c: Likewise.
140         * print-tree.c: Likewise.
141         * tree-ssa-copy.c: Likewise.
142         * ipa-prop.h: Likewise.
143         * tree-ssa-forwprop.c: Likewise.
144         * ggc-page.c: Likewise.
145         * c-omp.c: Likewise.
146         * tree-ssa-dce.c: Likewise.
147         * tree-vect-patterns.c: Likewise.
148         * tree-ssa-ter.c: Likewise.
149         * tree-nested.c: Likewise.
150         * tree-ssa.c: Likewise.
151         * lambda-code.c: Likewise.
152         * tree-ssa-loop-prefetch.c: Likewise.
153         * tree-inline.c: Likewise.
154         * tree-inline.h: Likewise.
155         * tree-iterator.c: Likewise.
156         * tree-optimize.c: Likewise.
157         * tree-ssa-phiprop.c: Likewise.
158         * tree-vect-transform.c: Likewise.
159         * tree-object-size.c: Likewise.
160         * tree-outof-ssa.c: Likewise.
161         * cfgloop.c: Likewise.
162         * system.h: Likewise.
163         * tree-profile.c: Likewise.
164         * cfgloop.h: Likewise.
165         * c-gimplify.c: Likewise.
166         * c-common.c: Likewise.
167         * tree-vect-generic.c: Likewise.
168         * tree-flow.h: Likewise.
169         * c-common.h: Likewise.
170         * basic-block.h: Likewise.
171         * tree-ssa-structalias.c: Likewise.
172         * tree-switch-conversion.c: Likewise.
173         * tree-ssa-structalias.h: Likewise.
174         * tree-cfg.c: Likewise.
175         * passes.c: Likewise.
176         * ipa-struct-reorg.c: Likewise.
177         * ipa-struct-reorg.h: Likewise.
178         * tree-ssa-reassoc.c: Likewise.
179         * cfgrtl.c: Likewise.
180         * varpool.c: Likewise.
181         * stmt.c: Likewise.
182         * tree-ssanames.c: Likewise.
183         * tree-ssa-threadedge.c: Likewise.
184         * langhooks-def.h: Likewise.
185         * tree-ssa-operands.c: Likewise.
186         * config/alpha/alpha.c: Likewise.
187         * config/frv/frv.c: Likewise.
188         * config/s390/s390.c: Likewise.
189         * config/m32c/m32c.c: Likewise.
190         * config/m32c/m32c-protos.h: Likewise.
191         * config/spu/spu.c: Likewise.
192         * config/sparc/sparc.c: Likewise.
193         * config/i386/i386.c: Likewise.
194         * config/sh/sh.c: Likewise.
195         * config/xtensa/xtensa.c: Likewise.
196         * config/stormy16/stormy16.c: Likewise.
197         * config/ia64/ia64.c: Likewise.
198         * config/rs6000/rs6000.c: Likewise.
199         * config/pa/pa.c: Likewise.
200         * config/mips/mips.c: Likewise.
201
202 2008-07-28  Simon Baldwin  <simonb@google.com>
203
204         * c-pragma.c (handle_pragma_message): New function.
205         (init_pragma): Register handle_pragma_message.
206         * doc/extend.texi (Diagnostic Pragmas): Added #pragma message
207         documentation.
208
209 2008-07-27  Victor Kaplansky  <victork@il.ibm.com>
210
211         PR tree-optimization/35252
212         * tree-vect-analyze.c (vect_build_slp_tree): Make IMAGPART_EXPR and
213         REALPART_EXPR to be considered as same load operation.
214
215 2008-07-27  Eric Botcazou  <ebotcazou@adacore.com>
216
217         PR tree-optimization/36830
218         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Hash operand #2.
219         (expressions_equal_p): Return false if only one operand is null.
220
221 2008-07-26  Gerald Pfeifer  <gerald@pfeifer.com>
222
223         * doc/install.texi (powerpc-*-netbsd*): Remove redundant texinfo
224         version requirements.
225
226 2008-07-26  Olivier Hainque  <hainque@adacore.com>
227
228         * collect2.c (symkind): New enum.  Symbol kinds we care about.
229         (is_ctor_dtor): Return symkind instead of int.  Adjust prototype,
230         code and head comment accordingly.
231         (scan_prog_file): Use symkind names instead of bare integers.
232         
233 2008-07-25  Jan Hubicka  <jh@suse.cz>
234
235         * cgraph.c (cgraph_function_possibly_inlined_p): Do not rely on DECL_INLINE.
236         * cgraphunit.c (record_cdtor_fn): Do not initialize DECL_INLINE
237         (cgraph_preserve_function_body_p): Do not rely on DECL_INLINE.
238         * dojump.c (clear_pending_stack_adjust): Likewise.
239         * print-tree.c (print_node): Ignore DECL_INLINE.
240         * tree-inline.c (inlinable_function_p): Likewise.
241         
242 2008-07-25  Michael Meissner  <gnu@the-meissners.org>
243
244         * doc/extend.texi (hot attribute): Document that the hot attribute
245         turns on -O3 for some ports.
246         (cold attribute): Document that the cold attribute turns on -Os
247         for some ports
248
249         * doc/tm.texi (OPTIMIZATION_OPTIONS): Update documentation to
250         reflect function specific option support.
251
252         * target.h (struct target_option_hooks): Add fields to say whether
253         the cold attribute implies -Os and the hot attribute implies -O3.
254
255         * target-def.h (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION):
256         By default, do not turn on -Os for cold functions.
257         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): By default, do
258         not turn on -O3 for hot functions.
259
260         * c-common.c (handle_hot_attribute): Use target hook to determine
261         if hot functions should enable -O3.
262         (handle_cold_attribute): Use target hook to determine if cold
263         functions should enable -Os.
264
265         * config/i386/i386.c (ix86_target_string): Add -m3dnowa support.
266         (override_options): Move disable scheduling to
267         optimization_options.
268         (optimization_options): Disable scheduling here, not
269         override_options.
270         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
271         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
272
273         * config/ia64/ia64.c (ia64_override_options): Move setting
274         scheduling flags to ia64_optimization_options.
275         (ia64_optimization_options): Disable scheduling options here, and
276         not in ia64_override_options.
277         (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Define.
278         (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Define.
279
280 2008-07-25  H.J. Lu  <hongjiu.lu@intel.com>
281
282         PR target/36936
283         * config/i386/i386.c (override_options): Don't clear TARGET_CMOVE.
284
285 2008-07-25  Martin Jambor  <mjambor@suse.cz>
286
287         PR tree-optimization/36926
288         * ipa-prop.c (ipa_analyze_call_uses): Call
289         ipa_is_ssa_with_stmt_def instead of SSA_NAME_IS_DEFAULT_DEF.
290
291 2008-07-25  Joseph Myers  <joseph@codesourcery.com>
292
293         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
294         movv2si_internal): Add mem = reg alternative.
295
296 2008-07-25  Andreas Tobler  <a.tobler@schweiz.org>
297
298         PR bootstrap/36918
299         * config/sparc/sparc.h (DEFAULT_PCC_STRUCT_RETURN): Define
300         DEFAULT_PCC_STRUCT_RETURN to 127.
301
302 2008-07-24  Jan Hubicka  <jh@suse.cz>
303
304         * cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
305         (build_cgraph_edges): Likewise.
306         * cgraph.c (cgraph_node): Do not update assembler hash.
307         (cgraph_remove_node): Drop non-unit-at-a-time code.
308         * tree-pass.h (pass_O0_always_inline): Remove.
309         * ipa-reference.c (gate_reference): Remove unit-at-a-time check.
310         * toplev.c (process_options): Flag unit-at-a-time does not imply
311         no section anchors.
312         * cgraphunit.c: Update comments.
313         (decide_is_function_needed): Drop non-unit-at-a-time mode.
314         (cgraph_assemble_pending_functions): Remove.
315         (cgraph_reset_node): Drop non-unit-at-a-time code.
316         (cgraph_finalize_function): Likewise.
317         (cgraph_analyze_function): Likewise.
318         (cgraph_finalize_compilation_unit): Likewise.
319         (cgraph_expand_function): Likewise.
320         (cgraph_optimize): Likesise.
321         (save_inline_function_body): Likewise.
322         * ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
323         * tree-ssa-alias.c (maybe_be_aliased): Likewise.
324         * ipa-inline.c: Update comments.
325         (enum inlining_mode): remove INLINE_SPEED.
326         (cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
327         (cgraph_mark_inline_edge): Likewise.
328         (try_inline): Likewise.
329         (cgraph_decide_inlining_incrementally): Likewise.
330         (cgraph_gate_inlining): Remove.
331         (cgraph_early_inlining): Remove flag_unit_at_a_time checks.
332         (cgraph_gate_early_inlining): Likewise.
333         (gate_inline_passes): Remove.
334         (pass_inline_parameters, pass_ipa_inline): Remove gates.
335         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline, 
336         pass_O0_always_inline): Remove.
337         * c-pch.c (c_pch_matching): Remove -funit-at-a-time.
338         * dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
339         * opts.c (no_unit_at_a_time_default): Remove.
340         (decode_options): Remove flag_unit_at_a_time reset and warning.
341         * opts.h (no_unit_at_a_time_default): Remove.
342         * c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
343         early in GNU dialect.
344         (merge_decls): Update comment; drop unit-at-a-time check.
345         (finish_decl): Likewise.
346         (grok_declaration): Remove flag_inline_trees code.
347         (finish_functions): Return on function returning non-void on all
348         statics.
349         * ipa-tye-escape.c (gate_type_escape_vars): Remove.
350         * cfgexpand.c (expand_one_static_var): Remove.
351         (expand_one_var): Remove expand_one_static_var call.
352         (expand_used_vars_for_block): Remove flag_unit_a_time check.
353         * c-opts.c (c_common_post_options): Remove flag_inline_trees code
354         and flag_unit_at_a-time compatibility checks.
355         * varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
356         * tree-inline.c (flag_inline_trees): Remove.
357         (inlinable_function_p): Don't check it.
358         (expand_call_inline): Remove non-unit-at-a-time code.
359         * tree-inline.h (flag_inline_trees): Remove.
360         * tree-optimize.c (execute_early_local_optimizations): Remove
361         unit-at-a-time checks.
362         (tree_rest_of_compilation): Likewise.
363         * combine.c (setup_incoming_promotions): Likewise.
364         * tree-profile.c (tree_gen_ic_func_profiler): Likewise.
365         * tree-ssa-structalias.c (delete_points_to_sets): Likewise.
366         * passes.c (pass_inline_parameters): Update comments; remove
367         O0_alwaysinline pass.
368         (execute_one_ipa_transform_pass): Do not reset in_gimple_form.
369         (execute_one_pass): Likewise.
370         * i386.c (ix86_function_regparm): Remove unit-at-a-time check.
371         (ix86_function_sseregparm): Likewise.
372         * arm.c (arm_function_in_section_p): Likewise.
373         * bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
374         * varpool.c: Update comments.
375         (decide_is_variable_needed): Remove unit-at-a-time checks.
376         (varpool_finalize_decl): Likewise.
377
378 2008-07-24  Kaz Kojima  <kkojima@gcc.gnu.org>
379
380         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_omit_frame_pointer
381         to 2 instead of -1.
382         (OVERRIDE_OPTIONS): Check if flag_omit_frame_pointer is equal
383         to 2.
384
385 2008-07-24  Kai Tietz  <kai.tietz@onevision.com>
386
387         * config/i386/i386.c (get_dllimport_decl): Treat user_label_prefix for
388         imp symbol extension.
389
390         2008-07-23  Ian Lance Taylor  <iant@google.com>
391
392         * tree-vrp.c (infer_value_range): Ignore asm statements when
393         looking for memory accesses for -fdelete-null-pointer-checks.
394
395 2008-07-24  Ben Elliston  <bje@au.ibm.com>
396
397         * config/spu/spu-c.c (__vector_keyword): New variable.
398         (vector_keyword): Likewise.
399         (spu_categorize_keyword): New function.
400         (spu_macro_to_expand): Likewise.
401         (spu_cpu_cpp_builtins): Enable context-sensitive macros if not
402         compiling an ISO C dialect.
403
404 2008-07-24  Ben Elliston  <bje@au.ibm.com>
405
406         * config/rs6000/rs6000-c.c: Move GTY(()) markers to match
407         conventional usage.
408
409 2008-07-23  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
410
411         * configure: Regenerate.
412         * configure.ac: Require texinfo 4.7.
413         * doc/install.texi: Document texinfo 4.7 requirement.
414
415 2008-07-23  Martin Jambor  <mjambor@suse.cz>
416
417         * ipa-cp.c (ipcp_print_edge_profiles): Test for node->analyzed
418         rather than for DECL_SAVED_TREE.
419         * ipa-prop.c: Include diagnostic.h.
420         (ipa_check_stmt_modifications): Check LHS of GIMPLE_MODIFY_EXPRs
421         thoroughly.
422         (ipa_detect_param_modifications): Function rewritten from scratch.
423         (ipa_compute_jump_functions): Changed accesses to modification flags.
424         (ipa_free_node_params_substructures): Update flags destruction.
425         (ipa_node_duplication_hook): Update flags duplication.
426         (ipa_print_all_params_modified): Updated flag access.
427         * ipa-prop.h (struct ipa_param_flags): New structure.
428         (struct ipa_node_params): New field modification_analysis_done,
429         modified_flags changed into param_flags.
430         (ipa_is_ith_param_modified): Changed to use new flags.
431         * Makefile.in (ipa-prop.o): Add $(DIAGNOSTIC_H) to dependencies.
432
433         * ipa-prop.c (ipa_print_all_jump_functions): Moved here from
434         ipa-cp.c and split into two functions.
435         (ipa_print_node_jump_functions): New function.
436         (compute_scalar_jump_functions): New function.
437         (type_like_member_ptr_p): New function.
438         (compute_pass_through_member_ptrs): New function.
439         (fill_member_ptr_cst_jump_function): New function.
440         (determine_cst_member_ptr): New function.
441         (compute_cst_member_ptr_arguments): New function.
442         (ipa_compute_jump_functions): Complete rewrite.
443         * ipa-prop.h (enum jump_func_type): Make explicit that we depend
444         on IPA_UNKNOWN being zero. Added value IPA_CONST_MEMBER_PTR.
445         (struct ipa_member_ptr_cst): New structure.
446         (union jump_func_value): New field member_cst.
447         * ipa-cp.c (ipcp_lat_is_insertable): New function.
448         (ipcp_lattice_from_jfunc): Produces bottom lattices for unhandled
449         jump function types.
450         (ipcp_print_all_lattices): Slight fprintf rearrangement.
451         (ipcp_print_all_structures): Call ipa_print_all_jump_functions
452         instead of ipcp_print_all_jump_functions.
453         (ipcp_insert_stage): Use ipcp_lat_is_insertable, create replace maps
454         only for replacable scalars.
455
456         * doc/invoke.texi (Optimize options): Add description of
457         -findirect-inlining.
458         * common.opt (flag_indirect_inlining): New flag.
459         * opts.c (decode_options): Set flag_indirect_inlining when 
460         optimize >= 3.
461
462         * ipa-inline.c: Include ipa-prop.h.
463         (inline_indirect_intraprocedural_analysis): New function.
464         (inline_generate_summary): Allocate parameter and argument info
465         structures, call inline_indirect_intraprocedural_analysis on each
466         node when doing indirect inlining and deallocate indirect inlining 
467         data structures in the end.
468         * ipa-prop.c (ipa_create_param_decls_array): Return if already done.
469         (free_all_ipa_structures_after_iinln): New function.
470         (free_all_ipa_structures_after_ipa_cp): Checks whether iinln will be 
471         done.
472         * Makefile.in (ipa-inline.o): Added $(IPA_PROP_H) to dependencies.
473
474         * cgraphbuild.c (compute_call_stmt_bb_frequency): New function.
475         (build_cgraph_edges): Call compute_call_stmt_bb_frequency instead
476         of computing the frequency separately.
477         (rebuild_cgraph_edges): Call compute_call_stmt_bb_frequency instead
478         of computing the frequency separately.
479         * ipa-cp.c (ipcp_print_all_structures): Replace a call to 
480         ipa_print_all_param_modified with a call to ipa_print_all_param_flags.
481         * ipa-prop.c (ipa_get_member_ptr_load_param): New function.
482         (ipa_get_stmt_member_ptr_load_param): New function.
483         (ipa_is_ssa_with_stmt_def): New function.
484         (ipa_note_param_call): New function.
485         (ipa_analyze_call_uses): New function.
486         (ipa_analyze_stmt_uses): New function.
487         (ipa_analyze_params_uses): New function.
488         (ipa_free_node_params_substructures): Also free the param_calls linked
489         list.
490         (ipa_node_duplication_hook): Also duplicate the param_calls linked list.
491         (ipa_print_node_param_flags): New function.
492         (ipa_print_all_params_modified): Renamed to ipa_print_all_param_flags.
493         (ipa_print_all_param_flags): Calls ipa_print_node_param_flags.
494         * ipa-prop.h (struct ipa_param_flags): New field called.
495         (struct ipa_param_call_note): New structure.
496         (struct ipa_node_params): New fields param_calls and
497         uses_analysis_done.
498         (ipa_is_ith_param_called): New function.
499         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
500         ipa_analyze_params_uses and dump parameter flags.
501
502         * ipa-inline.c (cgraph_decide_recursive_inlining): Call
503         ipa_propagate_indirect_call_infos if performing indirect inlining,
504         pass a new parameter new_edges to it.
505         (add_new_edges_to_heap): New fucntion.
506         (cgraph_decide_inlining_of_small_functions): New vector
507         new_indirect_edges for newly found indirect edges , call
508         ipa_propagate_indirect_call_infos after inlining.
509         (cgraph_decide_inlining): Call ipa_propagate_indirect_call_infos after
510         inlining if performing indirect inlining.  Call
511         free_all_ipa_structures_after_iinln when doing so too.
512         (inline_generate_summary): Do not call
513         free_all_ipa_structures_after_iinln here.
514         * ipa-prop.c (update_jump_functions_after_inlining): New function.
515         (print_edge_addition_message): New function.
516         (update_call_notes_after_inlining): New function.
517         (propagate_info_to_inlined_callees): New function.
518         (ipa_propagate_indirect_call_infos): New function.
519         * ipa-prop.h: Include cgraph.h
520         (struct ipa_param_call_note): Fields reordered, new field processed.
521         * cgraph.h (cgraph_edge): Shrink loop_nest field to 31 bits, add a new
522         flag indirect_call.
523         * cgraphunit.c (verify_cgraph_node): Allow indirect edges not to have
524         rediscovered call statements.
525         * cgraph.c (cgraph_create_edge): Initialize indirect_call to zero.
526         (dump_cgraph_node): Dump also the indirect_call flag.
527         (cgraph_clone_edge): Copy also the indirect_call flag.
528         * tree-inline.c (copy_bb): Do not check for fndecls from call
529         expressions, check for edge availability when moving clones.
530         (get_indirect_callee_fndecl): New function.
531         (expand_call_inline): If callee declaration is not apprent from
532         the statement, try calling get_indirect_callee_fndecl.  Do not
533         issue warnings or call sorry when not inlinings an indirect edge.
534         * Makefile.in (IPA_PROP_H): Added $(CGRAPH_H) to dependencies.
535
536         * ipa-prop.c (ipa_print_node_param_flags): Make the dump format a
537         bit more frandly to matching.
538         * testsuite/g++.dg/ipa/iinline-1.C: New testcase.
539         * testsuite/gcc.dg/ipa/iinline-1.c: New testcase.
540         * testsuite/gcc.dg/ipa/modif-1.c: New testcase.
541         
542 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
543
544         PR 36907
545         * opth-gen.awk: Suppress function specific features when building
546         target libraries.
547         * optc-gen.awk: Ditto.
548
549 2008-07-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
550
551         PR 35058
552         * diagnostic.c (pedwarn): Add opt parameter.
553         (pedwarn0): New.
554         * c-tree.h (pedwarn_init): Add opt parameter.
555         (pedwarn_c90): Likewise.
556         (pedwarn_c99): Likewise.
557         * c-errors.c (pedwarn_c99): Likewise.
558         (pedwarn_c90): Likewise.
559         * toplev.h (pedwarn): Update declaration.
560         (pedwarn0): Declare.
561         * c-lex.c: All calls to pedwarn changed.
562         * builtins.c: All calls to pedwarn changed.
563         * toplev.c: All calls to pedwarn changed.
564         * c-decl.c: All calls to pedwarn changed.
565         * c-typeck.c: All calls to pedwarn changed.
566         * c-common.c: All calls to pedwarn changed.
567         * c-parser.c: All calls to pedwarn changed.
568         
569 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
570             Karthik Kumar  <karthikkumar@gmail.com>
571
572         * attribs.c (file scope): Include c-common.h.
573         (decl_attributes): Add support for #pragma GCC optimize and
574         #pragma GCC option.
575
576         * targhooks.c (default_can_inline_p): New function that is the
577         default for the TARGET_CAN_INLINE_P target hook.
578
579         * targhooks.h (default_can_inline_p): Add declaration.
580
581         * tree.c (cl_optimization_node): New static tree for building
582         OPTIMIZATION_NODE tree.
583         (cl_target_option_node): New static tree for building
584         TARGET_OPTION_NODE tree.
585         (cl_option_hash_table): New hash table for hashing
586         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
587         (cl_option_hash_hash): New function to provide the hash value for
588         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
589         (cl_option_hash_eq): New function to provide an equality test for
590         OPTIMIZATION_NODE and TARGET_OPTION_NODE trees.
591         (tree_code_size): Add support for OPTIMIZATION_NODE and
592         TARGET_OPTION_NODE trees.
593         (tree_code_structure): Add support for OPTIMIZATION_NODE and
594         TARGET_OPTION_NODE trees.
595         (build_optimization_node): Build a tree that has all of the
596         current optimization options.
597         (build_target_option_node): Build a tree that has the target
598         options that might be changed on a per function basis.
599
600         * tree.h (file scope): Include options.h.
601         (DECL_FUNCTION_SPECIFIC_TARGET): New accessor macro.
602         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
603         (TREE_OPTIMIZATION): Ditto.
604         (TREE_TARGET_SPECIFIC): Ditto.
605         (struct tree_function_decl): Add fields for remembering the
606         current optimization options and target specific options.
607         (struct tree_optimization_option): New tree variant that remembers
608         the optimization options.
609         (struct tree_target_option): New tree variant that remembers the
610         target specific flags that might change for compiling a particular
611         function.
612         (union tree_node): Include tree_optimization_option and
613         tree_target_option fields.
614         (enum tree_index): Add TI_OPTIMIZATION_DEFAULT,
615         TI_OPTIMIZATION_CURRENT, TI_OPTIMIZATION_COLD,
616         TI_OPTIMIZATION_HOT, TI_TARGET_OPTION_DEFAULT,
617         TI_TARGET_OPTION_CURRENT, TI_CURRENT_OPTION_PRAGMA,
618         TI_CURRENT_OPTIMIZE_PRAGMA entries for saving function specific
619         optimization and target options.
620         (optimization_default_node): New macro to refer to global_trees
621         field.
622         (optimization_current_node): Ditto.
623         (optimization_cold_node): Ditto.
624         (optimization_hot_node): Ditto.
625         (target_option_default_node): Ditto.
626         (target_option_current_node): Ditto.
627         (current_option_pragma): Ditto.
628         (current_optimize_pragma): Ditto.
629
630         * target.h (struct gcc_target): Add valid_option_attribute_p,
631         target_option_save, target_option_restore, target_option_print,
632         target_option_pragma_parse, and can_inline_p hooks.
633
634         * toplev.h (parse_optimize_options): Add declaration.
635         (fast_math_flags_struct_set_p): Ditto.
636
637         * c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): New function to
638         adjust the current __OPTIMIZE__, etc. macros when #pragma GCC
639         optimize is used.
640
641         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Call
642         tree_can_inline_p hook to see if one function can inline another.
643         (cgraph_decide_inlining): Ditto.
644         (cgraph_decide_inlining_incrementally): Ditto.
645
646         * opts.c (decode_options): Add support for running multiple times
647         to allow functions with different target or optimization options
648         than was specified on the command line.
649         (fast_math_flags_struct_set_p): New function that is similar to
650         fast_math_flags_set_p, except it uses the values in the
651         cl_optimization structure instead of global variables.
652
653         * optc-gen.awk: Add support for TargetSave to allow a back end to
654         declare new fields that need to be saved when using function
655         specific options.  Include flags.h and target.h in the options.c
656         source.  Add support for Save to indicate which options can be set
657         for individual functions.  Generate cl_optimize_save,
658         cl_optimize_restore, cl_optimize_print, cl_target_option_save,
659         cl_target_option_restore, cl_target_option_print functions to
660         allow functions to use different optimization or target options.
661
662         * opt-functions.awk (var_type_struct): Return the type used for
663         storing the field in a structure.
664
665         * opth-gen.awk: Add support for TargetSave to allow a back end to
666         declare new fields that need to be saved when using function
667         specific options.  Add support for Save to indicate which options
668         can be set for individual functions.  Only generate one extern for
669         Mask fields.  Generate cl_optimization and cl_target_option
670         structures to remember optimization and target options.
671
672         * treestruct.def (TS_OPTIMIZATION): Add support for garbage
673         collecting new tree nodes.
674         (TS_TARGET_OPTION): Ditto.
675
676         * c-decl.c (merge_decls): Merge function specific target and
677         optimization options.
678
679         * function.c (invoke_set_current_function_hook): If the function
680         uses different optimization options, change the global variables
681         to reflect this.
682
683         * coretypes.h (struct cl_optimization): Add forward reference.
684         (struct cl_target_option): Ditto.
685
686         * c-pragma.c (option_stack): New static vector to remember the
687         current #pragma GCC option stack.
688         (handle_pragma_option): New function to support #pragma GCC option
689         to change target options.
690         (optimize_stack): New static vector to remember the current
691         #pragma GCC optimize stack.
692         (handle_pragma_optimize): New function to support #pragma GCC
693         optimize to change optimization options.
694         (init_pragma): Add support for #pragma GCC optimize and #pragma
695         GCC option.
696
697         * tree.def (OPTIMIZATION_NODE): New tree code for remembering
698         optimization options.
699         (TARGET_OPTION_NODE): New tree code for remembering certain target
700         options.
701
702         * print-tree.c (print_node): Add support for OPTIMIZATION_NODE and
703         TARGET_OPTION_NODE trees.
704
705         * common.opt (-O): Add Optimization flag.
706         (-Os): Ditto.
707         (-fmath-errno): Ditto.
708         (-falign-functions): Add UInteger flag to make sure flag gets full
709         int in cl_optimization structure.
710         (-falign-jumps): Ditto.
711         (-falign-labels): Ditto.
712         (-falign-loops): Ditto.
713         (-fsched-stalled-insns): Ditto.
714         (-fsched-stalled-insns-dep): Ditto.
715
716         * target-def.h (TARGET_VALID_OPTION_ATTRIBUTE_P): Add default
717         definition.
718         (TARGET_OPTION_SAVE): Ditto.
719         (TARGET_OPTION_RESTORE): Ditto.
720         (TARGET_OPTION_PRINT): Ditto.
721         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
722         (TARGET_CAN_INLINE_P): Ditto.
723         (TARGET_INITIALIZER): Add new hooks.
724
725         * tree-inline.c (tree_can_inline_p): New function to determine
726         whether one function can inline another.  Check if the functions
727         use compatible optimization options, and also call the backend
728         can_inline_p hook.
729
730         * tree-inline.h (tree_can_inline_p): Add declaration.
731
732         * c-common.c (c_common_attribute): Add support for option and
733         optimize attributes.
734         (handle_option_attribute): Add support for the option attribute to
735         allow the user to specify different target options for compiling a
736         specific function.
737         (handle_optimize_attribute): Add support for the optimize
738         attribute to allow the user to specify different optimization
739         options for compiling a specific function.
740         (handle_hot_attribute): Turn on -O3 optimization for this one
741         function if it isn't the default optimization level.
742         (handle_cold_attribute): Turn on -Os optimization for this one
743         function if it insn't the default optimization.
744         (const_char_p): New const char * typedef.
745         (optimize_args): New static vector to remember the optimization
746         arguments.
747         (parse_optimize_options): New function to set up the optimization
748         arguments from either the optimize attribute or #pragma GCC
749         optimize.
750
751         * c-common.h (c_cpp_builtins_optimize_pragma): Add declaration.
752         (builtin_define_std): Ditto.
753
754         * config.gcc (i[3467]86-*-*): Add i386-c.o to C/C++ languages.
755         Add t-i386 Makefile fragment to add i386-c.o and i386.o
756         dependencies.
757         (x86_64-*-*): Ditto.
758
759         * Makefile.in (TREE_H): Add options.h.
760         (options.o): Add $(TARGET_H) $(FLAGS_H) dependencies.
761
762         * doc/extend.texi (option attribute): Document new attribute.
763         (optimize attribute): Ditto.
764         (hot attribute): Document hot attribute sets -O3.
765         (cold attribute): Document cold attribute sets -Os.
766         (#pragma GCC option): Document new pragma.
767         (#pragma GCC optimize): Ditto.
768
769         * doc/options.texi (TargetSave): Document TargetSave syntax.
770         (UInteger): Document UInteger must be used for certain flags.
771         (Save): Document Save option to create target specific options
772         that can be saved/restored on a function specific context.
773
774         * doc/c-tree.texi (DECL_FUNCTION_SPECIFIC_TARGET): Document new
775         macro.
776         (DECL_FUNCTION_SPECIFIC_OPTIMIZATION): Ditto.
777
778         * doc/tm.texi (TARGET_VALID_OPTION_ATTRIBUTE_P): Document new
779         hook.
780         (TARGET_OPTION_SAVE): Ditto.
781         (TARGET_OPTION_RESTORE): Ditto.
782         (TARGET_OPTION_PRINT): Ditto.
783         (TARGET_OPTION_PRAGMA_PARSE): Ditto.
784         (TARGET_CAN_INLINE_P): Ditto.
785
786         * doc/invoke.texi (-mfpmath=sse+387): Document as an alias for
787         -mfpmath=sse,387.
788         (-mfpmath=both): Ditto.
789
790 2008-07-23  Michael Meissner  <gnu@the-meissners.org>
791             Karthik Kumar  <karthikkumar@gmail.com>
792
793         * config/i386/i386.h (TARGET_ABM): Move switch into
794         ix86_isa_flags.
795         (TARGET_POPCNT): Ditto.
796         (TARGET_SAHF): Ditto.
797         (TARGET_AES): Ditto.
798         (TARGET_PCLMUL): Ditto.
799         (TARGET_CMPXCHG16B): Ditto.
800         (TARGET_RECIP): Move switch into target_flags.
801         (TARGET_FUSED_MADD): Ditto.
802         (ix86_arch_features): Make an unsigned char type.
803         (ix86_tune_features): Ditto.
804         (OVERRIDE_OPTIONS): Add bool argument to override_options call.
805         (TARGET_CPU_CPP_BUILTINS): Move into ix86_target_macros.
806         (REGISTER_TARGET_PRAGMAS): Define, call ix86_register_pragmas.
807
808         * config/i386/i386.opt (arch): New TargetSave field to define
809         fields that need to be saved for function specific option
810         support.
811         (tune): Ditto.
812         (fpmath): Ditto.
813         (branch_cost): Ditto.
814         (ix86_isa_flags_explicit): Ditto.
815         (tune_defaulted): Ditto.
816         (arch_specified): Ditto.
817         (-m128-long-double): Add Save flag to save option for target
818         specific option support.
819         (-m80387): Ditto.
820         (-maccumulate-outgoing-args): Ditto.
821         (-malign-double): Ditto.
822         (-malign-stringops): Ditto.
823         (-mfancy-math-387): Ditto.
824         (-mhard-float): Ditto.
825         (-mieee-fp): Ditto.
826         (-minline-all-stringops): Ditto.
827         (-minline-stringops-dynamically): Ditto.
828         (-mms-bitfields): Ditto.
829         (-mno-align-stringops): Ditto.
830         (-mno-fancy-math-387): Ditto.
831         (-mno-push-args): Ditto.
832         (-mno-red-zone): Ditto.
833         (-mpush-args): Ditto.
834         (-mred-zone): Ditto.
835         (-mrtd): Ditto.
836         (-msseregparm): Ditto.
837         (-mstack-arg-probe): Ditto.
838         (-m32): Ditto.
839         (-m64): Ditto.
840         (-mmmx): Ditto.
841         (-m3dnow): Ditto.
842         (-m3dnowa): Ditto.
843         (-msse): Ditto.
844         (-msse2): Ditto.
845         (-msse3): Ditto.
846         (-msse4.1): Ditto.
847         (-msse4.2): Ditto.
848         (-msse4): Ditto.
849         (-mno-sse4): Ditto.
850         (-msse4a): Ditto.
851         (-msse5): Ditto.
852         (-mrecip): Move flag into target_flags.
853         (-mcld): Ditto.
854         (-mno-fused-madd): Ditto.
855         (-mfused-madd): Ditto.
856         (-mabm): Move flag into ix86_isa_flags.
857         (-mcx16): Ditto.
858         (-mpopcnt): Ditto.
859         (-msahf): Ditto.
860         (-maes): Ditto.
861         (-mpclmul): Ditto.
862
863         * config/i386/i386-c.c: New file for #pragma support.
864         (ix86_target_macros_internal): New function to #define or #undef
865         target macros based when the user uses the #pragma GCC option to
866         change target options.
867         (ix86_pragma_option_parse): New function to add #pragma GCC option
868         support.
869         (ix86_target_macros): Move defining the target macros here from
870         TARGET_CPU_CPP_BUILTINS in i386.h.
871         (ix86_register_pragmas): Register the #pragma GCC option hook.  If
872         defined, initialize any subtarget #pragmas.
873
874         * config/i386/darwin.h (REGISTER_SUBTARGET_PRAGMAS): Rename from
875         REGISTER_TARGET_PRAGMAS.
876
877         * config/i386/t-i386: New file for x86 dependencies.
878         (i386.o): Make dependencies mirror the include files used.
879         (i386-c.o): New file, add dependencies.
880
881         * config/i386/i386-protos.h (override_options): Add bool
882         argument.
883         (ix86_valid_option_attribute_tree): Add declaration.
884         (ix86_target_macros): Ditto.
885         (ix86_register_macros): Ditto.
886
887         * config/i386/i386.c (ix86_tune_features): Move initialization of
888         the target masks to initial_ix86_tune_features to allow functions
889         to have different target options.  Make type unsigned char,
890         instead of unsigned int.
891         (initial_ix86_tune_features): New static vector to hold processor
892         masks for the tune variables.
893         (ix86_arch_features): Move initialization of the target masks to
894         initial_ix86_arch_features to allow functions to have different
895         target options.  Make type unsigned char, instead of unsigned
896         int.
897         (initial_ix86_arch_features): New static vector to hold processor
898         masks for the arch variables.
899         (enum ix86_function_specific_strings): New enum to describe the
900         string options used for attribute((option(...))).
901         (ix86_target_string): New function to return a string that
902         describes the target options.
903         (ix86_debug_options): New function to print the current options in
904         the debugger.
905         (ix86_function_specific_save): New function hook to save the
906         function specific global variables in the cl_target_option
907         structure.
908         (ix86_function_specific_restore): New function hook to restore the
909         function specific variables from the cl_target_option structure to
910         the global variables.
911         (ix86_function_specific_print): New function hook to print the
912         target specific options in the cl_target_option structure.
913         (ix86_valid_option_attribute_p): New function hook to validate
914         attribute((option(...))) arguments.
915         (ix86_valid_option_attribute_tree): New function that is common
916         code between attribute((option(...))) and #pragma GCC option
917         support that parses the options and returns a tree holding the
918         options.
919         (ix86_valid_option_attribute_inner_p): New helper function for
920         ix86_valid_option_attribute_tree.
921         (ix86_can_inline_p): New function hook to decide if one function
922         can inline another on a target specific basis.
923         (ix86_set_current_function); New function hook to switch target
924         options if the user used attribute((option(...))) or #pragma GCC
925         option.
926         (ix86_tune_defaulted): Move to static file scope from
927         override_options.
928         (ix86_arch_specified): Ditto.
929         (OPTION_MASK_ISA_AES_SET): New macro for moving switches into
930         ix86_isa_flags.
931         (OPTION_MASK_ISA_PCLMUL_SET): Ditto.
932         (OPTION_MASK_ISA_ABM_SET): Ditto.
933         (OPTION_MASK_ISA_POPCNT_SET): Ditto.
934         (OPTION_MASK_ISA_CX16_SET): Ditto.
935         (OPTION_MASK_ISA_SAHF_SET): Ditto.
936         (OPTION_MASK_ISA_AES_UNSET): Ditto.
937         (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
938         (OPTION_MASK_ISA_ABM_UNSET): Ditto.
939         (OPTION_MASK_ISA_POPCNT_UNSET): Ditto.
940         (OPTION_MASK_ISA_CX16_UNSET): Ditto.
941         (OPTION_MASK_ISA_SAHF_UNSET): Ditto.
942         (struct ptt): Move to static file scope from override_options.
943         (processor_target_table): Ditto.
944         (cpu_names): Ditto.
945         (ix86_handle_option): Add support for options that are now isa
946         options.
947         (override_options): Add support for declaring functions that
948         support different target options than were specified on the
949         command line.  Move struct ptt, processor_target_table, cpu_names,
950         ix86_tune_defaulted, ix86_arch_specified to static file scope.
951         Add bool argument.  Fix up error messages so the appropriate error
952         is given for either command line or attribute.
953         (ix86_previous_fndecl): New static to remember previous function
954         declaration to see if we need to change target options.
955         (ix86_builtins_isa): New array to record the ISA of each builtin
956         function.
957         (def_builtin): Always create the builtin function, even if the
958         current ISA doesn't support it.
959         (ix86_init_mmx_sse_builtins): Remove TARGET_AES and TARGET_PCLMUL
960         tests for those builtins.
961         (ix86_init_builtins): Remove TARGET_MMX test for calling
962         ix86_init_mmx_sse_builtins.
963         (ix86_expand_builtin): If the current ISA doesn't support a given
964         builtin, signal an error.
965         (TARGET_VALID_OPTION_ATTRIBUTE_P): Set target hook.
966         (TARGET_SET_CURRENT_FUNCTION): Ditto.
967         (TARGET_OPTION_SAVE): Ditto.
968         (TARGET_OPTION_RESTORE): Ditto.
969         (TARGET_OPTION_PRINT): Ditto.
970         (TARGET_CAN_INLINE_P): Ditto.
971
972 2008-07-22  Rafael Avila de Espindola  <espindola@google.com>
973
974        * c-typeck.c (build_external_ref): Don't call assemble_external.
975        * final.c (output_operand): Call assemble_external.
976
977 2008-07-21  DJ Delorie  <dj@redhat.com>
978
979         * config/h8300/h8300.c (h8300_hard_regno_scratch_ok): New.
980         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
981
982 2008-07-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
983
984         * config/spu/spu.md ("div<mode>3"): Convert into expander, move
985         original insn and splitter contents into ...
986         ("*div<mode>3_fast"): ... this new pattern.  Enable only if
987         flag_unsafe_math_optimizations.  Add dummy scratch register.
988         ("*div<mode>3_adjusted"): New insn and splitter.  Enable only if
989         !flag_unsafe_math_optimizations.  Returns number with next
990         highest magnitude if this is still less or equal to the true
991         quotient in magnitude.
992
993 2008-07-21  Rafael Avila de Espindola  <espindola@google.com>
994
995         * Makefile.in: Replace toplev.h with TOPLEV_H.
996         * c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
997         * c-lex.c (fe_file_change): Don't set in_system_header.
998         * c-parser.c (c_token): Remove in_system_header.
999         (c_lex_one_token): Don't set in_system_header.
1000         (c_parser_set_source_position_from_token): Don't set in_system_header.
1001         * diagnostic.c (diagnostic_report_diagnostic): Use location from
1002         diagnostic_info.
1003         (warning_at): New.
1004         * diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
1005         * flags.h (in_system_header): Remove.
1006         * function.c (saved_in_system_header): Remove.
1007         (push_cfun): Don't set in_system_header.
1008         (pop_cfun): Don't set in_system_header.
1009         (push_struct_function): Don't set in_system_header.
1010         * input.h (expanded_location): Add sysp.
1011         (in_system_header_at): New.
1012         (in_system_header): New.
1013         * toplev.c (in_system_header): Remove.
1014         * toplev.h: Include input.h
1015         (warning_at): New.
1016         * tree-cfg.c (execute_warn_function_return): Call warning_at.
1017         * tree-ssa.c (warn_uninit): Call warning_at.
1018         (warn_uninitialized_var): Update calls to warn_uninit.
1019         (warn_uninitialized_phi): Update calls to warn_uninit.
1020         * tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
1021         (expand_location): Initialize xloc.sysp.
1022         * tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
1023         (tree_decl_with_vis): Remove in_system_header_flag.
1024
1025 2008-07-21  Andreas Krebbel  <krebbel1@de.ibm.com>
1026
1027         PR target/36822
1028         * recog.c (asm_operand_ok): Change the order of the extra
1029         memory constraint checks.
1030
1031 2008-07-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1032
1033         PR tree-opt/36879
1034         * tree-switch-conversion.c (build_one_array): Call
1035         varpool_mark_needed_node and varpool_finalize_decl 
1036         instead of assemble_variable.
1037
1038 2008-07-19  Jan Hubicka  <jh@suse.cz>
1039
1040         * cgraph.c (cgraph_add_new_function): Do early local passes.
1041         * tree-nrv.c (gate_pass_return_slot): New gate.
1042         (pass_nrv): Add the gate.
1043         * tree-ssa-coalese.c (hash_ssa_name_by_var, eq_ssa_name_by_var): New
1044         functions.
1045         (coalesce_ssa_name): Coalesce SSA names.
1046         * tree-ssa-live.c (remove_unused_locals): Be more conservative when
1047         not optimizing so unused user vars remains visible.
1048         * common.opt (flag_tree_ter): Always enable by default.
1049         * tree-ssa-ter.c: Include flags.h
1050         (is_replaceable_p): Check that locations match; when aliasing is missing
1051         be conservative about loads.
1052         * tree-optimize.c (gate_init_datastructures): Remove.
1053         (pass_init_datastructures): New.
1054         * passes.c: Reorder passes so we always go into SSA.
1055
1056 2008-07-19  Jan Hubicka  <jh@suse.cz>
1057
1058         * doc/extend.texi (flatten attribute): Remove note about unit-at-a-time
1059         * doc/invoke.texi (--combine): Likewise.
1060         (-finline-functions-called-once): Update levels when enabled.
1061         (-funit-at-a-time): Document new behaviour.
1062         (-ftoplevel-reorder): Document that it is enabled -O0 and imply
1063         -fno-section-anchors when disabled explicitly.
1064         (inline params): They are not ignored now.
1065         (precompiled headers): Remove unit-at-a-time as being incompatible.
1066         * opts.c (decode_options): Handle unit-at-a-time as alias;
1067         imply -fno-section-anchors when toplevel reorder is disabled
1068         explicitly.
1069         * common.opt (ftoplevel-reorder): Set default value to 2.
1070         (funit-at-a-time): Set default value to 1.
1071         * config/rs6000/rs6000.c (optimization_options): Set section anchors
1072         to 2.
1073
1074 2008-07-19  Jan Hubicka  <jh@suse.cz>
1075
1076         * builtins.c (expand_builtin_int_roundingfn,
1077         expand_builtin_int_roundingfn_2): Do not take subtarget argument;
1078         it is not useful.
1079
1080 2008-07-19  Richard Guenther  <rguenther@suse.de>
1081
1082         PR bootstrap/36864
1083         * tree-ssa-sccvn.h (get_constant_value_id): Declare.
1084         * tree-ssa-sccvn.c (get_constant_value_id): New function.
1085         * tree-ssa-pre.c (get_expr_value_id): For newly created
1086         constant value-ids make sure to add the expression to its
1087         expression-set.
1088
1089 2008-07-19  Jakub Jelinek  <jakub@redhat.com>
1090
1091         PR middle-end/36877
1092         * omp-low.c (expand_omp_atomic_fetch_op): Make sure the
1093         return value of the builtin is ignored.
1094
1095 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1096
1097         * doc/tm.texi (MALLOC_ABI_ALIGNMENT): New macro. Alignment, in
1098         bits, a C conformant malloc implementation has to provide.
1099         * defaults.h (MALLOC_ABI_ALIGNMENT): Default to BITS_PER_WORD.
1100
1101 2008-07-19  Joseph Myers  <joseph@codesourcery.com>
1102
1103         PR target/36780
1104         PR target/36827
1105         * reload.c (find_reloads_subreg_address): Only reload address if
1106         reloaded == 0, not for reloaded != 1.
1107
1108         Revert:
1109         2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1110         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1111         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1112         m32c_legitimize_reload_address.
1113
1114         2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1115         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1116         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1117
1118 2008-07-19  Olivier Hainque  <hainque@adacore.com>
1119
1120         * dwarf2out.c (add_subscript_info): New explicit COLLAPSE_P
1121         argument, saying whether nested array are to be collapsed
1122         into a single array type DIE with multiple subscripts.
1123         (gen_array_type_die): Factorize comments about the MIPS_DEBUG_INFO
1124         issues, centralize the nested array types collapsing control and
1125         disable the transformation for Ada.
1126         
1127 2008-07-18  Uros Bizjak  <ubizjak@gmail.com>
1128
1129         PR target/36786
1130         * config/i386/i386.md (x86_64_shift_adj_1): Rename from
1131         x86_64_shift_adj.
1132         (x86_64_shift_adj_2): New expander.
1133         (x86_64_shift_adj_3): Ditto.
1134         * config/i386/i386.c (ix86_split_ashr): Use gen_x86_64_shift_adj_3
1135         to split TImode operands.
1136         (ix86_split_ashl): Use gen_x86_64_shift_adj_2 to split TImode operands.
1137         (ix86_split_lshr): Ditto.
1138
1139 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
1140
1141         * c-common.c (c_stddef_cpp_builtins): Define __CHAR16_TYPE__
1142         and __CHAR32_TYPE__.
1143         * c-typeck.c (digest_init): Support char16_t and char32_t.
1144         (set_nonincremental_init_from_string): Idem.
1145
1146 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1147
1148         PR middle-end/36859
1149         * builtins.c (std_gimplify_va_arg_expr): Limit alignment to
1150         PREFERRED_STACK_BOUNDARY.
1151         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
1152
1153 2008-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1154
1155         PR middle-end/36858
1156         * function.c (locate_and_pad_parm): Cap boundary earlier.
1157
1158 2008-07-17  Julian Brown  <julian@codesourcery.com>
1159
1160         * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Make
1161         no-op for targets which don't use DLLs.
1162
1163 2008-07-17  Martin Jambor  <mjambor@suse.cz>
1164
1165         * ipa-cp.c (ipcp_print_all_lattices): New variable info, check
1166         that nodes are relevant by examining the node->analyzed flag.
1167         (ipcp_init_stage): Check which nodes are relevant, assert that the
1168         relevant ones are also required.
1169         (ipcp_propagate_stage): Check on the side arrays are properly
1170         allocated.
1171         (ipcp_print_all_jump_functions): Make sure not to touch any node
1172         that is not analyzed or an edge that does not have a corresponding
1173         entry in the on-the-side vectors.
1174         (ipcp_function_scale_print): Likewise.
1175         (ipcp_update_callgraph): Check that the node is relevant.
1176         (ipcp_insert_stage): Check that the node is relevant.  Check there is
1177         an info for every node and edge.
1178         * ipa-prop.c (ipa_init_func_list): Check the nodes are relevant.
1179         (ipa_print_all_tree_maps): Likewise and a new variable info.
1180         (ipa_print_all_params_modified): Likewise.
1181         * ipa-prop.h (ipa_edge_args_info_available_for_edge_p): New function.
1182
1183 2008-07-17  Roman Zippel <zippel@linux-m68k.org>
1184
1185         PR target/25343
1186         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __mc68000__.
1187
1188 2008-07-17  Paolo Bonzini  <bonzini@gnu.org>
1189
1190         PR rtl-optimization/36753
1191         * fwprop.c (use_killed_between): Don't shortcut
1192         single-definition global registers.
1193
1194 2008-07-16  Jan Hubicka  <jh@suse.cz>
1195
1196         * cgraph.h (varpool_empty_needed_queue): Declare.
1197         * cgraphunit.c (output_in_order): Mark all variables as needed;
1198         empty the queue.
1199         * varpool.c (varpool_assemble_node): Update debug queue.
1200         (varpool_assemble_pending_decls): Don't do it here.
1201         (varpool_empty_needed_queue):  New function.
1202
1203 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1204
1205         * recog.c (peephole2_optimize): Fix formatting.
1206
1207 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1208
1209         * c-pch.c (get_ident): Avoid C++ keywords.
1210         * combine-stack-adj.c (single_set_for_csa): Likewise.
1211         * final.c (asm_insn_count, final_scan_insn, alter_subreg,
1212         output_asm_insn): Likewise.
1213         * reload.c (push_secondary_reload, find_reusable_reload,
1214         push_reload, combine_reloads, find_reloads,
1215         debug_reload_to_stream): Likewise.
1216         * reload.h (struct reload): Likewise.
1217         * reload1.c (reload_reg_class_lower, find_reg, find_reload_regs,
1218         allocate_reload_reg, choose_reload_regs, emit_input_reload_insns,
1219         emit_output_reload_insns): Likewise.
1220         * targhooks.c (default_secondary_reload): Likewise.
1221         * varasm.c (section_entry_eq, object_block_entry_eq): Likewise.
1222
1223 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1224
1225         * recog.c (validate_change_1, validate_change,
1226         validate_unshare_change, validate_replace_rtx_1, struct
1227         funny_match, constrain_operands, peephole2_optimize): Avoid C++
1228         keywords.
1229         * reload.c (push_secondary_reload, secondary_reload_class,
1230         scratch_reload_class, find_valid_class, find_reusable_reload,
1231         push_reload, find_dummy_reload, find_reloads_address_1,
1232         find_reloads_address_part, find_equiv_reg): Likewise.
1233         * reload1.c (spill_failure, eliminate_regs_1, allocate_reload_reg,
1234         choose_reload_regs): Likewise.
1235         * rtlanal.c (replace_rtx, nonzero_bits1, num_sign_bit_copies1):
1236         Likewise.
1237         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
1238         * sched-ebb.c (add_deps_for_risky_insns): Likewise.
1239         * sched-rgn.c (concat_INSN_LIST): Likewise.
1240         * stor-layout.c (mode_for_size, mode_for_size_tree,
1241         smallest_mode_for_size): Likewise.
1242
1243 2008-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1244
1245         * cfg.c (dump_reg_info): Avoid C++ keywords.
1246         * dwarf2asm.c (dw2_force_const_mem,
1247         dw2_asm_output_encoded_addr_rtx): Likewise.
1248         * except.c (gen_eh_region, add_action_record, output_ttype): Likewise.
1249         * expmed.c (expand_shift): Likewise.
1250         * global.c (find_reg): Likewise.
1251         * graph.c (draw_edge): Likewise.
1252         * local-alloc.c (reg_meets_class_p, find_free_reg): Likewise.
1253         * optabs.c (expand_binop, expand_twoval_unop, expand_twoval_binop,
1254         widen_clz, widen_bswap, expand_parity, expand_unop,
1255         emit_cmp_and_jump_insn_1): Likewise.
1256         * postreload.c (reload_cse_simplify_operands): Likewise.
1257         * ra.h (add_neighbor): Likewise.
1258         * reg-stack.c (remove_regno_note, change_stack): Likewise.
1259         * regclass.c (memory_move_secondary_cost, dump_regclass, regclass,
1260         record_reg_classes, copy_cost, record_address_regs,
1261         invalid_mode_change_p): Likewise.
1262         * regrename.c (regrename_optimize, scan_rtx_reg,
1263         dump_def_use_chain, find_oldest_value_reg,
1264         replace_oldest_value_reg, copyprop_hardreg_forward_1): Likewise.
1265
1266 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1267
1268         * config/rs6000/rs6000.c (processor_target_table): Remove duplicate
1269         MASK_POWERPC64 for power4 in previous commit.
1270
1271 2008-07-16  Olivier Hainque  <hainque@adacore.com>
1272
1273         * collect2.c (scan_prog_file, COFF version): Use CONST_CAST
1274         instead of bare conversion to cast const-ness away.
1275
1276 2008-07-16  Anatoly Sokolov  <aesok@post.ru>
1277
1278         * config/xtensa/xtensa.h (FUNCTION_OUTGOING_VALUE,
1279         XTENSA_FUNCTION_VALUE, XTENSA_FUNCTION_VALUE): Remove.
1280         * config/xtensa/xtensa.c (xtensa_function_value): New function.
1281         (TARGET_FUNCTION_VALUE): Define.
1282
1283 2008-07-16  David Edelsohn  <edelsohn@gnu.org>
1284
1285         * config/rs6000/rs6000.c (processor_target_table): Add
1286         MASK_PPC_GPOPT for power4, power5, power5+, power6, and power6x.
1287
1288 2008-07-16  Joseph Myers  <joseph@codesourcery.com>
1289
1290         PR target/36827
1291         * config/m32c/m32c.c (BIG_FB_ADJ): Move definition earlier.
1292         (m32c_legitimate_address_p): Handle "++rii" addresses created by
1293         m32c_legitimize_reload_address.
1294
1295 2007-07-16  Rafael Avila de Espindola  <espindola@google.com>
1296
1297        * c-decl.c (merge_decls): Keep DECL_SOURCE_LOCATION and
1298        DECL_IN_SYSTEM_HEADER in sync.
1299
1300 2008-07-15  Daniel Berlin  <dberlin@dberlin.org>
1301
1302         * tree-ssa-sccvn.c (expressions_equal_p): Check type equality.
1303         * tree-ssa-pre.c (pre_expr_eq): Ditto
1304         (get_constant_for_value_id): Take a type as an argument.
1305         (fully_constant_expression): Pass in type.
1306         (find_or_generate_expression): Short circuit constant case.
1307         (create_expression_by_pieces): Remove special casing of
1308         pointer_plus.
1309         (do_regular_insertion): Short circuit constant case.
1310         (do_partial_partial_insertion): Ditto.
1311
1312 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1313
1314         PR target/36782
1315         * config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
1316
1317 2008-07-15  Bob Wilson  <bob.wilson@acm.org>
1318         
1319         * config/xtensa/libgcc-xtensa.ver: New file.
1320         * config/xtensa/t-linux (SHLIB_MAPFILES): Append libgcc-xtensa.ver.
1321         
1322 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1323
1324         * df-problems.c (df_set_note): Avoid C++ keywords.
1325         * df-scan.c (df_ref_change_reg_with_loc_1): Likewise.
1326         * dse.c (record_store, remove_useless_values): Likewise.
1327         * emit-rtl.c (gen_reg_rtx, update_reg_offset, gen_rtx_REG_offset,
1328         gen_reg_rtx_offset, operand_subword, change_address_1,
1329         change_address, adjust_address_1, offset_address,
1330         widen_memory_access, emit_copy_of_insn_after): Likewise.
1331         * explow.c (round_push, allocate_dynamic_stack_space): Likewise.
1332         * fwprop.c (should_replace_address, propagate_rtx_1,
1333         propagate_rtx, try_fwprop_subst, forward_propagate_and_simplify):
1334         Likewise.
1335         * gcse.c (cprop_jump, find_implicit_sets, bypass_block,
1336         gcse_emit_move_after, update_ld_motion_stores): Likewise.
1337         * lcm.c (compute_insert_delete, pre_edge_lcm,
1338         compute_rev_insert_delete, pre_edge_rev_lcm): Likewise.
1339         * lower-subreg.c (resolve_reg_notes): Likewise.
1340         * mode-switching.c (optimize_mode_switching): Likewise.
1341
1342 2008-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1343
1344         * bt-load.c (add_btr_def, migrate_btr_def,
1345         branch_target_load_optimize): Avoid C++ keywords.
1346         * caller-save.c (insert_restore, insert_save, insert_one_insn):
1347         Likewise.
1348         * combine.c (subst, simplify_set, make_extraction,
1349         make_compound_operation, known_cond, simplify_shift_const_1): Likewise.
1350         * cse.c (make_regs_eqv, merge_equiv_classes, validate_canon_reg,
1351         fold_rtx, equiv_constant, cse_insn, cse_process_notes_1): Likewise.
1352
1353 2008-07-15  Richard Guenther  <rguenther@suse.de>
1354
1355         PR middle-end/36369
1356         * c-common.c (strict_aliasing_warning): Do not warn for
1357         TYPE_REF_CAN_ALIAS_ALL pointers.
1358         (c_common_get_alias_set): may_alias types are not special.
1359         * tree.c (build_pointer_type_for_mode): Look up the may_alias
1360         attribute and set can_ref_all accordingly.
1361         (build_reference_type_for_mode): Likewise.
1362         * doc/extend.texi (may_alias): Clarify.
1363
1364 2008-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1365
1366         PR target/36780
1367         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Allow
1368         (plus (plus (reg) (const_int)) (const_int)) when reload_in_progress.
1369
1370 2008-07-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1371
1372         PR target/31568
1373         * config/rs6000/rs6000.c (print_operand <case 'y'>): Don't use
1374         gcc_assert, instead call output_operand_lossage.
1375
1376 2008-07-15  Kai Tietz  <kai.tietz@onevision.com>
1377
1378         * builtins.c (std_canonical_va_list): Treat structure based
1379         va_list types.
1380
1381 2008-07-15  Ben Elliston  <bje@au.ibm.com>
1382
1383         * emit-rtl.c (set_mem_attributes_minus_bitpos): Improve comment.
1384
1385 2007-07-14  Rafael Avila de Espindola  <espindola@google.com>
1386
1387         * c-decl.c (diagnose_mismatched_decls): Don't warn if TREE_NO_WARNING
1388         is set.
1389
1390 2008-07-14  Jan Hubicka  <jh@suse.cz>
1391
1392         * i386.md (sse5 cmov pattern): Update call of ix86_sse5_valid_op_p
1393         * sse.md (sse5 patterns): Update call of ix86_sse5_valid_op_p;
1394         fix predicates and constraints.
1395         * i386.c (ix86_sse5_valid_op_p): Add commutative parameter.
1396         * i386-protos.h (ix86_sse5_valid_op_p): Update declaration.
1397
1398 2008-07-14  Doug Kwan  <dougkwan@google.com>
1399
1400         * config.gcc (arm*-*-eabi*): Include arm/eabi.h and use
1401         additional option file arm/eabi.opt.
1402         * config/arm/eabi.h (File): New configuration file for EABI targets.
1403         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Add
1404         SUBSUBTARGET_EXTRA_SPECS.
1405         (SUBSUBTARGET_EXTRA_SPECS): Provide empty default.
1406         * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Renamed
1407         from STARTFILE_SPEC so that it can be referenced in an override.
1408         (STARTFILE_SPEC): Use UNKNOWN_ELF_STARTFILE_SPEC.
1409         (UNKNOWN_ELF_ENDFILE_SPEC): Renamed from ENDFILE_SPEC so that it
1410         can be referenced in an override.
1411         (ENDFILE_SPEC): Use UNKNOWN_ELF_ENDFILE_SPEC.
1412         * config/arm/bpabi.h (BPABI_LINK_SPEC): Renamed from LINK_SPEC
1413         so that it can be referenced in an override.
1414         (LINK_SPEC): Use BPABI_LINK_SPEC.
1415         * config/arm/eabi.opt (File): New.
1416
1417 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1418
1419         * Makefile.in (TARGET_DEF_H): Add targhooks.h.
1420         (FIXED_VALUE_H): New variable.
1421         (RTL_BASE_H): Use $(INPUT_H) and $(FIXED_VALUE_H) instead of
1422         input.h, fixed-value.h.
1423         (TREE_H): Use $(INPUT_H), add $(SYMTAB_H).
1424         (BASIC_BLOCK_H): Use $(BITMAP_H).
1425         (FUNCTION_H): Add varray.h.
1426         (IPA_REFERENCE_H): Use $(BITMAP_H).
1427         (CGRAPH_H): Add $(BASIC_BLOCK_H).
1428         (DF_H): Use $(BITMAP_H).
1429         (GGC_H): Add statistics.h.
1430         (INSN_ADDR_H): New.
1431         (INSN_ATTR_H): Use it.
1432         (SYSTEM_H): Add safe-ctype.h, filenames.h.
1433         (INPUT_H): New.
1434         (SYMTAB_H): Add $(OBSTACK_H).
1435         (CPP_INTERNAL_H): New.
1436         (TREE_DUMP_H): Add tree-pass.h.
1437         (TREE_FLOW_H): Use $(BITMAP_H)
1438         (PRETTY_PRINT_H): Use $(INPUT_H).
1439         (EBITMAP_H): Rename from typo-ed EBIMAP_H.
1440         (GSTAB_H): New.
1441         (BITMAP_H): New.
1442         (many object files): Fix lots of header dependencies throughout.
1443
1444 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1445
1446         * Makefile.in (write_entries_to_file, write_entries_to_file_split):
1447         New macros.
1448         (s-gtyp-input): Use them to write tmp-gi.list.
1449         (echo_to_gi.list): Remove.
1450
1451 2008-07-14  Richard Guenther  <rguenther@suse.de>
1452
1453         * tree-ssa-sccvn.c (pre_info): Remove.
1454         (switch_to_PRE_table): Likewise.
1455         (free_scc_vn): Do not clear SSA_NAME_VALUE.  Do not free pre_info.
1456         (set_hashtable_value_ids): Do not create value-ids for the
1457         optimistic tables.
1458         (run_scc_vn): Remove double test.  Remove bogus special-case
1459         in value-number printing.
1460         * tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
1461         * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
1462         SSA_NAME_VALUE.
1463         * tree-flow-inline.h (get_value_handle): Remove.
1464         * tree-flow.h (get_value_handle): Remove.
1465
1466 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1467
1468         * tree-switch-conversion.c (gen_inbound_check): Make sure the type
1469         in which we generate arithmetics is not a subrange.
1470
1471 2008-07-14  Martin Jambor  <mjambor@suse.cz>
1472
1473         * Makefile.in (IPA_PROP_H): Added ipa-prop.h to IPA_PROP_H variable.
1474
1475 2008-07-14  Richard Guenther  <rguenther@suse.de>
1476
1477         * tree-ssa-pre.c (insert_into_preds_of_block): Do not call convert.
1478
1479 2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1480
1481         PR target/36745
1482         * config/s390/s390.c: (s390_secondary_reload): Add a secondary
1483         reload for symbol refs moved to r0 with -fPIC.
1484         (legitimize_pic_address): Use the target register as temporary
1485         reg if possible.
1486         (emit_symbolic_move): Adjust comment.
1487         * config/s390/s390.md (reloadsi_PIC_addr, reloaddi_PIC_addr):
1488         New expanders.
1489
1490 2008-07-14  Ben Elliston  <bje@au.ibm.com>
1491
1492         * c-common.h (C_CPP_HASHNODE): New macro.
1493         * coretypes.h (struct cpp_token): Forward declare.
1494         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1495         the context-sensitive keyword method.
1496         * config/rs6000/rs6000-c.c (__vector_keyword, vector_keyword,
1497         __pixel_keyword, pixel_keyword, __bool_keyword, bool_keyword,
1498         expand_bool_pixel): New.
1499         (altivec_categorize_keyword): New function.
1500         (init_vector_keywords): New function.
1501         (rs6000_macro_to_expand): Likewise.
1502         (rs6000_cpu_cpp_builtins): Enable context-sensitive macros if not
1503         compiling an ISO C dialect.
1504
1505 2008-07-13  Daniel Berlin  <dberlin@dberlin.org>
1506
1507         * tree-ssa-pre.c (fully_constant_expression): Add fold_convert calls.
1508         (create_expression_by_pieces): Fix typo.
1509         (do_regular_insertion): Use debug counter here too.
1510
1511 2008-07-14  Hans-Peter Nilsson  <hp@axis.com>
1512
1513         PR target/35492.
1514         * config/cris/cris.h (CRIS_CONST_OK_FOR_LETTER_P): Renamed from
1515         CONST_OK_FOR_LETTER_P.  All port-local users changed.
1516         (CONST_OK_FOR_CONSTRAINT_P): Define; implement Kc as old K,
1517         implement Kp matching power-of-two.
1518         (CONSTRAINT_LEN): Define to match.
1519         * config/cris/cris.md: Replace all use of constraint K with Kc.
1520         ("*btst*): Use Kp for operand 0 of last alternative.
1521
1522 2008-07-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1523
1524         PR testsuite/36440
1525         * tree-call-cdce.c (check_target_format): Accept MIPS single, double
1526         and quad formats.
1527
1528 2008-07-13  Jan Hubicka  <jh@suse.cz>
1529
1530         * tree.c (decl_assembler_name_equal): Expect assembler name of decl
1531         to be mangled too.
1532
1533 2008-07-13  Richard Guenther  <rguenther@suse.de>
1534
1535         PR middle-end/36811
1536         * langhooks.c (lhd_print_error_function): Deal with recursive
1537         BLOCK trees.
1538
1539 2008-07-12  Jan Hubicka  <jh@suse.cz>
1540
1541         * cgraph.c (assembler_name_hash): New static var.
1542         (hash_node_by_assembler_name, eq_assembler_name): New.
1543         (cgraph_node_for_asm): Use hashtable.
1544         (cgraph_remove_node): Maintain hashtable.
1545         (change_decl_assembler_name): Sanity check that names are not changing
1546         after aliasing was processed.
1547         * cgraph.h (varpoon_node): Add next GGC marker.
1548         * tree.c (decl_assembler_name_equal): Constify.
1549         (decl_assembler_name_hash): New.
1550         * tree.h (decl_assembler_name_equal): Constify.
1551         (decl_assembler_name_hash): Update.
1552
1553 2008-07-12  David Daney  <ddaney@avtrex.com>
1554
1555         * config/mips/driver-native.c (host_detect_local_cpu): Handle
1556         sb1 and r5000 cpus.
1557
1558 2008-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
1559
1560         * doc/md.texi: Document the MIPS "v" constraint.
1561         * config/mips/mips.h (reg_class): Revert last change.
1562         (REG_CLASS_NAMES): Likewise.
1563         (REG_CLASS_CONTENTS): Likewise.
1564         * config/mips/mips.c (mips_regno_to_class): Likewise.
1565         * config/mips/constraints.md (v): Likewise, but add documentation.
1566         Add a comment to say that this constraint should not be used in
1567         gcc code.
1568
1569 2008-07-11  DJ Delorie  <dj@redhat.com>
1570
1571         * config/h8300/h8300.md (length): Fix branch offset limit.
1572
1573 2008-07-11  Anatoly Sokolov  <aesok@post.ru>    
1574
1575         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Remove prototype.
1576         * config/avr/avr.c (avr_peep2_scratch_safe): Remove.
1577         (avr_hard_regno_scratch_ok): New function.
1578         (TARGET_HARD_REGNO_SCRATCH_OK): Define.
1579         * config/avr/avr.md (all peepholes that request a scratch register):
1580         Remove avr_peep2_scratch_safe use.
1581
1582 2008-07-11  Tom Tromey  <tromey@redhat.com>
1583             Ian Lance Taylor  <iant@google.com>
1584
1585         * c-common.h (enum rid): Add RID_CXX_COMPAT_WARN.
1586         (struct c_common_resword): Define.
1587         (D_CONLY, D_CXXONLY, D_C99, D_CXX0X, D_EXT, D_EXT89): Define.
1588         (D_ASM, D_OBJC, D_CXX_OBJC, D_CXXWARN): Define.
1589         (c_common_reswords, num_c_common_reswords): Declare.
1590         * c-common.c (c_common_reswords): New global const array.
1591         (num_c_common_reswords): New const int.
1592         * c-parser.c (struct resword, reswords): Don't define.
1593         (D_C89, D_EXT, D_EXT89, D_OBJC): Don't define.
1594         (c_parse_init): Clarify mask code.  Use c_common_reswords rather
1595         than reswords.  If warning about C++ keywords, give them a special
1596         RID code.
1597         (c_lex_one_token): Warn about C++ keywords.  Call
1598         objc_is_reserved_word rather than OBJC_IS_AT_KEYWORD.
1599         (c_parser_external_declaration): Look for RID_xxx rather than
1600         RID_AT_xxx, for ObjC++ keywords which are also C++ keywords.
1601         (c_parser_statement_after_labels): Likewise.
1602         (c_parser_objc_class_instance_variables): Likewise.
1603         (c_parser_objc_class_declaration): Likewise.
1604         (c_parser_objc_try_catch_statement): Likewise.
1605         * c-decl.c (c_print_identifier): Ignore RID_CXX_COMPAT_WARN.
1606         (declspecs_add_type): Likewise.
1607
1608 2008-07-11  Angelo Graziosi  <angelo.graziosi@alice.it>
1609
1610         * ggc-page.c (alloc_page):
1611         Substituting xmalloc, xcalloc with
1612         XNEWVEC and XCNEWVAR macros which add the
1613         needed casts.
1614
1615 2008-07-11  Richard Guenther  <rguenther@suse.de>
1616
1617         PR tree-optimization/36765
1618         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1619         aliases from HEAP vars to SMTs.
1620
1621 2008-07-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1622
1623         * Makefile.in (LOOSE_WARN, STRICT_WARN): Update comments.
1624         * configure.ac (loose_warn): Move -Wc++-compat from here...
1625         (strict_warn): ...to here.
1626         * configure: Regenerate.
1627
1628 2008-07-10  Joseph Myers  <joseph@codesourcery.com>
1629
1630         * config.gcc (arm-*-coff*, armel-*-coff*, h8300-*-*,
1631         i[34567]86-*-aout*, i[34567]86-*-coff*, m68k-*-aout*,
1632         m68k-*-coff*, sh-*-*, mips-sgi-irix[56]*, pdp11-*-bsd,
1633         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Deprecate targets,
1634         excluding more specific h8300-*-* and sh-*-* targets.
1635
1636 2008-07-10  Daniel Berlin  <dberlin@dberlin.org>
1637
1638         * tree-ssa-pre.c (create_expression_by_pieces): Add fold_convert calls.
1639         (eliminate): Ditto.
1640         (execute_pre): Call loop_optimizer_finalize in early exit.
1641
1642 2008-07-10  Jakub Jelinek  <jakub@redhat.com>
1643
1644         PR middle-end/36790
1645         * omp-low.c (lower_omp_2): If task_shared_vars, test all DECL_P
1646         uids in the bitmap, not just VAR_DECL uids.
1647
1648         PR rtl-optimization/36419
1649         * combine-stack-adj.c (adjust_frame_related_expr): New function.
1650         (combine_stack_adjustments_for_block): Call it if needed.  Delete
1651         correct insn.
1652         * dwarf2out.c (dwarf2out_frame_debug_expr): Adjust
1653         DW_CFA_GNU_args_size if CSA pass merged some adjustments into
1654         prologue sp adjustment.
1655
1656 2008-07-10  Peter Maydell  <pmaydell@chiark.greenend.org.uk>
1657
1658         PR other/28322
1659         * opts.c (print_ignored_options): Report postponed diagnostics for
1660         unknown -Wno-* options as warnings, not errors.
1661         (postpone_unknown_option_error): Renamed to...
1662         (postpone_unknown_option_warning): ... this.
1663
1664 2008-07-09  Doug Kwan  <dougkwan@google.com>
1665
1666         Revert:
1667         2008-07-08  Doug Kwan  <dougkwan@google.com>
1668
1669         * config/arm/arm.opt (mandroid): New option.
1670         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1671         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1672         (CC1_SPEC): Same.
1673         (CC1PLUS_SPEC): Same.
1674         (LIB_SPEC): Same.
1675         (STARTFILE_SPEC): Same.
1676         (ENDFILE_SPEC): Same.
1677         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1678         used.
1679
1680 2008-07-09  Richard Sandiford  <rdsandiford@googlemail.com>
1681
1682         PR target/35802
1683         * config/mips/mips.h (reg_class): Remove V1_REG.
1684         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
1685         * config/mips/mips.c (mips_regno_to_class): Map $3 to M16_NA_REGS
1686         instead of V1_REGS.
1687         (mips_get_tp): New function.
1688         (mips_legitimize_tls_address): Use it.
1689         * config/mips/constraints.md (v): Delete.
1690         * config/mips/mips.md (TLS_GET_TP_REGNUM): New constant.
1691         (tls_get_tp_<mode>): Allow any GPR destination and clobber $3.
1692         After reload, split into a move and ...
1693         (*tls_get_tp_<mode>_split): ...this new instruction.
1694
1695 2008-07-09  David Daney  <ddaney@avtrex.com>
1696
1697         * config/mips/driver-native.c: Include coretypes.h and tm.h.
1698
1699 2008-07-09  Jakub Jelinek  <jakub@redhat.com>
1700
1701         * gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
1702         (push_gimplify_context): Don't allocate temp_htab nor c itself here.
1703         Add c argument.
1704         (pop_gimplify_context): Check c->temp_htab instead of optimize whether
1705         htab_delete should be called.  Don't free c.
1706         (lookup_tmp_var): Create temp_htab lazily.
1707         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
1708         gimplify_body, force_gimple_operand): Adjust push_gimplify_context
1709         callers.
1710         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
1711         lower_omp_ordered, lower_omp_critical, lower_omp_for,
1712         create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
1713         * tree-ssa-ccp.c (convert_to_gimple_builtin): Likewise.
1714         * tree-sra.c (generate_element_init): Likewise.
1715         * tree-mudflap.c (execute_mudflap_function_ops,
1716         execute_mudflap_function_decls): Likewise.
1717         * tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
1718         * tree-gimple.h (struct gimplify_ctx): New type.
1719         (push_gimplify_context): Adjust prototype.
1720
1721 2008-07-09  Daniel Berlin  <dberlin@dberlin.org>
1722
1723         * tree-ssa-pre.c (phi_translate_1): Update placement of
1724         add_to_value calls.
1725
1726 2008-07-09  Anatoly Sokolov  <aesok@post.ru>
1727
1728         * target.h (struct gcc_target): Add hard_regno_scratch_ok field.
1729         * target-def.h (TARGET_HARD_REGNO_SCRATCH_OK): New.
1730         (TARGET_INITIALIZER): Use TARGET_HARD_REGNO_SCRATCH_OK.
1731         * targhooks.c (default_hard_regno_scratch_ok): New function.
1732         * targhooks.h (default_hard_regno_scratch_ok): Declare function.
1733         * doc/tm.texi: Document TARGET_HARD_REGNO_SCRATCH_OK hook.
1734         * recog.c:  Include "target.h".
1735         (peep2_find_free_register): Add check for global regs. Add target
1736         specific check.
1737         * Makefile.in (recog.o): Depend on target.h.
1738
1739 2008-07-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1740
1741         * config/sh/sh.c (sh_canonical_va_list_type): New.
1742         (TARGET_CANONICAL_VA_LIST_TYPE): Define.
1743
1744 2008-07-09  Raksit Ashok <raksit@google.com>
1745
1746         * doc/invoke.texi (Option Summary): Mention new option
1747         -Wdisallowed-function-list=...
1748         (Warning Options): Document -Wdisallowed-function-list=...
1749         * common.opt (Wdisallowed-function-list=): New flag.
1750         * flags.h (warn_disallowed_functions): External definition of new
1751         boolean warning flag.
1752         (warn_if_disallowed_function_p): Declare new function.
1753         * opts.c (warning_disallowed_functions): New static variable.
1754         (warn_disallowed_functions): New boolean warning flag.
1755         (warn_if_disallowed_function_p): New function.
1756         (add_comma_separated_to_vector): Rename
1757         add_instrument_functions_exclude_list to this.
1758         (common_handle_option): Handle new option. Rename calls to
1759         add_instrument_functions_exclude_list into calls to
1760         add_comma_separated_to_vector.
1761         * c-parser.c (c_parser_postfix_expression_after_primary): New warning
1762         based on flag warn_disallowed_functions.
1763
1764 2008-07-09  Christian Bruel  <christian.bruel@st.com>
1765
1766         * final.c (get_attr_length_1): Call get_attr_length_1 with fallback_fn
1767          instead of get_attr_length.
1768
1769 2008-07-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1770
1771         * genattrtab.c (insert_right_side, evaluate_eq_attr): Avoid C++
1772         keywords.
1773         * genemit.c (gen_insn): Likewise.
1774         * gengtype.c (note_def_vec): Likewise.
1775         * gengtype.h (note_def_vec): Likewise.
1776         * genoutput.c (struct data, output_insn_data, process_template,
1777         gen_expand, gen_split, note_constraint): Likewise.
1778         * genrecog.c (new_decision, add_to_sequence, factor_tests,
1779         make_insn_sequence): Likewise.
1780         * gensupport.c (record_insn_name): Likewise.
1781
1782 2008-07-08  Doug Kwan  <dougkwan@google.com>
1783
1784         * config/arm/arm.opt (mandroid): New option.
1785         * config/arm/bpabi.h (ANDROID_LINK_SPEC): New macro.
1786         (LINK_SPEC): Enable Android specific behaviour when -mandroid is used.
1787         (CC1_SPEC): Same.
1788         (CC1PLUS_SPEC): Same.
1789         (LIB_SPEC): Same.
1790         (STARTFILE_SPEC): Same.
1791         (ENDFILE_SPEC): Same.
1792         (TARGET_BPABI_CPP_BUILTINS): Define __ANDROID__ when -mandroid is
1793         used.
1794
1795 2008-07-08  Raksit Ashok  <raksit@google.com>
1796
1797         * expr.c (emit_block_move_via_movmem): Fix expected_align parameter.
1798         (set_storage_via_setmem): Fix expected_align parameter.
1799         * doc/invoke.texi (i386 and x86-64 Options): Add a couple of options
1800         missing from the list.
1801         * doc/md.texi (movmem): Explicitly state that expected alignment is
1802         to be expressed in bytes.
1803         (setmem): Explicitly state that expected alignment is to be expressed
1804         in bytes.
1805
1806 2008-07-08  Joseph Myers  <joseph@codesourcery.com>
1807
1808         * reload.c (find_reloads_subreg_address): Do not require validity
1809         of address in original mode before reloading address.
1810
1811 2008-07-07  Tianwei Sheng  <tianweis@google.com>
1812
1813         * df-core.c (df_remove_problem): Adjust the access to avoid out of
1814         bounds array access.
1815
1816 2008-07-08  Jakub Jelinek  <jakub@redhat.com>
1817
1818         * tree-sra.c (sra_build_assignment): Handle CONVERT_EXPR_P dst.
1819
1820 2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
1821         
1822         Fix PR tree-optimization/23455
1823         Fix PR tree-optimization/35286
1824         Fix PR tree-optimization/35287
1825         * Makefile.in (OBJS-common): Remove tree-vn.o.
1826         (tree-vn.o): Remove.
1827         * dbgcnt.def: Add treepre_insert debug counter.
1828         * gcc/tree-flow.h (add_to_value): Updated for other changes.
1829         (debug_value_expressions): Ditto.
1830         (print_value_expressions): Ditto.
1831         * tree-pretty-print.c (dump_generic_node): Updated for
1832         VALUE_HANDLE removal.
1833         * tree-ssa-dom.c (record_equality): Ditto.
1834         (cprop_operand): Ditto.
1835         (lookup_avail_expr): Ditto.
1836         * tree-ssa-threadedge.c
1837         (record_temporary_equivalences_from_stmts_at_dest): Ditto.
1838         (simplify_control_stmt_condition): Ditto.
1839         * tree.c (tree_code_size): Ditto.
1840         (tree_node_structure): Ditto.
1841         (iterative_hash_expr): Ditto.
1842         * tree.def: Ditto.
1843         * tree.h (VALUE_HANDLE_ID): Ditto.
1844         (VALUE_HANDLE_EXPR_SET): Ditto.
1845         (struct tree_value_handle): Ditto.
1846         (union tree_node): Ditto.
1847         * treestruct.def: Ditto.
1848         * tree-vn.c: Removed.
1849         * tree-ssa-pre.c: Rewritten entirely.
1850         * tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
1851         (constant_value_ids): Ditto.
1852         (vn_nary_op_t): Moved to header.
1853         (vn_phi_t): Ditto.
1854         (vn_reference_op_t): Ditto
1855         (vn_reference_t): Ditto.
1856         (next_value_id): New variable.
1857         (VN_INFO): Add an assert.
1858         (vn_constant_eq): New function.
1859         (vn_constant_hash): Ditto.
1860         (get_or_alloc_constant_value_id): Ditto.
1861         (value_id_constant_p): Ditto.
1862         (vn_reference_compute_hash): De-staticify.
1863         (copy_reference_ops_from_ref): Don't use get_callee_fndecl.
1864         Disable some code with a FIXME.  Remove VALUE_HANDLE use.
1865         (valueize_refs): Update opcode if it changes from ssa name to constant.
1866         (vn_reference_lookup_1): Add new argument.
1867         (vn_reference_lookup):  Ditto.
1868         (vn_reference_lookup_pieces): New function.
1869         (vn_reference_insert): Add return type. Modify to deal with value ids.
1870         (vn_reference_insert_pieces):  New function.
1871         (vn_nary_op_compute_hash): De-staticify.
1872         (vn_nary_op_eq): Ditto.
1873         (vn_nary_op_lookup_pieces): New function.
1874         (vn_nary_op_lookup): Add new argument.  
1875         (vn_nary_op_insert_pieces): New function.
1876         (vn_nary_op_insert): Add return type. Modify to deal with value ids.
1877         (vn_phi_insert): Ditto.
1878         (visit_unary_op): Update for callee changes.
1879         (visit_binary_op): Ditto.
1880         (visit_reference_op_load): Ditto.
1881         (visit_reference_op_store): Ditto.
1882         (init_scc_vn): Init next_value_id, constant_to_value_id and
1883         constant_value_ids. 
1884         (free_scc_vn): Free them.
1885         (set_hashtable_value_ids): New function.
1886         (run_scc_vn): Use it.
1887         (get_max_value_id): New function.
1888         (get_next_value_id): Ditto.
1889         (expressions_equal_p): Moved from tree-vn.c
1890         (sort_vuses): Ditto.
1891         (sort_vuses_heap): Ditto.
1892         * tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
1893         above).
1894         * tree.c (iterative_hash_hashval_t): Made non-static
1895         * tree.h (iterative_hash_hashval_t): Declare it.
1896         
1897 2008-07-08  Martin Jambor  <mjambor@suse.cz>
1898
1899         * ipa-cp.c (ipcp_init_cloned_node): Call ipa_check_create_node_params
1900         instead of ipa_create_node_params.
1901         (ipcp_driver): Allocate infos with ipa_check_create_node_params and
1902         ipa_check_create_edge_args, free them with
1903         free_all_ipa_structures_after_ipa_cp, call ipa_register_cgraph_hooks.
1904
1905         * ipa-prop.c: Include flags.h and tree-inline.h.
1906         (ipa_node_params_vector): New variable.
1907         (ipa_edge_args_vector): New variable.
1908         (edge_removal_hook_holder): New variable.
1909         (node_removal_hook_holder): New variable.
1910         (edge_duplication_hook_holder): New variable.
1911         (node_duplication_hook_holder): New variable.
1912         (ipa_detect_param_modifications): Check for presence of modified flags.
1913         (ipa_compute_jump_functions): Check for presence of jump functions.
1914         (ipa_free_edge_args_substructures): New function.
1915         (ipa_create_node_params): Removed.
1916         (ipa_free_all_edge_args): Changed to deallocate the on-the-side vector.
1917         (ipa_free_node_params_substructures): New function.
1918         (ipa_free_all_node_params): Changed to deallocate the on-the-side
1919         vector.
1920         (ipa_edge_removal_hook): New function.
1921         (ipa_node_removal_hook): New function.
1922         (duplicate_array): New function.
1923         (ipa_edge_duplication_hook): New function.
1924         (ipa_node_duplication_hook): New function.
1925         (ipa_register_cgraph_hooks): New function.
1926         (ipa_unregister_cgraph_hooks): New function.
1927         (free_all_ipa_structures_after_ipa_cp): New function.
1928         
1929         * ipa-prop.h: Include vec.h.
1930         (ipa_node_params_t): New typedef with vector types for it.
1931         (ipa_edge_args_t):  New typedef with vector types for it.
1932         (IPA_NODE_REF): Changed to access an on-the-side vector.
1933         (IPA_EDGE_REF): Changed to access an on-the-side vector.
1934         (ipa_check_create_node_params): New function.
1935         (ipa_check_create_edge_args): New function.
1936         
1937         * Makefile.in (IPA_PROP_H): New variable for ipa-prop.h.  Converted
1938         all users.
1939         
1940 2008-07-07  Tom Tromey  <tromey@redhat.com>
1941
1942         * configure, config.in: Rebuilt.
1943         * configure.ac: Don't check for scandir or alphasort.
1944
1945 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1946
1947         * config/arm/arm.c (arm_init_neon_builtins): Register built-in
1948         types immediately after creating them.
1949
1950 2008-07-07  Joseph Myers  <joseph@codesourcery.com>
1951
1952         * config/arm/aout.h (DOLLARS_IN_IDENTIFIERS): Remove.
1953
1954 2008-07-07  Fernando Pereira <fernando@cs.ucla.edu>
1955
1956         * tree-ssa-structalias.c (compute_points_to_sets): Add call to
1957         dump_constraint_graph.
1958         (dump_constraint_edge): New function.
1959         (dump_constraint_graph): New function.
1960         (debug_constraint_graph): New function.
1961         (dump_constraint): Removed useless comparison.
1962         * tree-ssa-structalias.h (dump_constraint_edge): Declare.
1963         (dump_constraint_graph): Declare.
1964         (debug_constraint_graph): Declare.
1965         * tree-dump.c (struct dump_option_value_info): Declare TDF_GRAPH.
1966
1967 2008-07-07  Kai Tietz  <kai.tietz@onevision.com>
1968
1969         * config/i386/i386.c (is_va_list_char_pointer): New.
1970         (ix86_va_start): Replace compare with ms_va_list_type_node
1971         by is_va_list_char_pointer.
1972         (ix86_gimplify_va_arg): Likewise.
1973
1974 2008-07-07  Martin Jambor  <mjambor@suse.cz>
1975
1976         * cgraph.c (cgraph_edge_max_uid): New variable.
1977         (struct cgraph_edge_hook_list): New type.
1978         (struct cgraph_node_hook_list): New type.
1979         (struct cgraph_2edge_hook_list): New type.
1980         (struct cgraph_2node_hook_list): New type.
1981         (first_cgraph_edge_removal_hook): New variable.
1982         (first_cgraph_node_removal_hook): New variable.
1983         (first_cgraph_edge_duplicated_hook): New variable.
1984         (first_cgraph_node_duplicated_hook): New variable.
1985         (cgraph_add_edge_removal_hook): New function.
1986         (cgraph_remove_edge_removal_hook): New function.
1987         (cgraph_call_edge_removal_hooks):  New function.
1988         (cgraph_add_node_removal_hook):  New function.
1989         (cgraph_remove_node_removal_hook):  New function.
1990         (cgraph_call_node_removal_hooks):  New function.
1991         (cgraph_add_edge_duplication_hook):  New function.
1992         (cgraph_remove_edge_duplication_hook):  New function.
1993         (cgraph_call_edge_duplication_hooks):  New function.
1994         (cgraph_add_node_duplication_hook):  New function.
1995         (cgraph_remove_node_duplication_hook):  New function.
1996         (cgraph_call_node_duplication_hooks):  New function.
1997         (cgraph_create_edge): Assign to edge uid.
1998         (cgraph_remove_edge): Call edge removal hooks.
1999         (cgraph_node_remove_callees): Call edge removal hooks.
2000         (cgraph_node_remove_callers): Call edge removal hooks.
2001         (cgraph_remove_node): Call node removal hooks.
2002         (cgraph_clone_edge): Call edge duplication hooks.
2003         (cgraph_clone_node): Call node duplication hooks.
2004
2005         * cgraph.h (cgraph_edge): New field uid.
2006         (cgraph_edge_hook): New type.
2007         (cgraph_node_hook): New type.
2008         (cgraph_2edge_hook): New type.
2009         (cgraph_2node_hook): New type.
2010
2011 2008-07-07  Andreas Tobler  <a.tobler@schweiz.org>
2012
2013         * config.in: Regenerate.
2014
2015 2008-07-07  Vladimir Prus  <vladimir@codesourcery.com>
2016
2017         * gcc.c (print_sysroot): New.
2018         (option_map, display_help, process_command): Handle the
2019         -print-sysroot option.
2020         (main): Print the sysroot if requested.
2021         * doc/invoke.texi (Debugging Options): Document -print-sysroot.
2022         
2023 2008-07-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2024
2025         PR target/34780
2026         * unwind-pe.h (size_of_encoded_value): add attribute unused.
2027
2028 2008-07-07  Daniel Jacobowitz  <dan@codesourcery.com>
2029
2030         * function.c (assign_parm_remove_parallels): Check mode of entry_parm.
2031         (assign_parm_setup_block_p): Also check mode of entry_parm.
2032
2033 2008-07-07  Richard Guenther  <rguenther@suse.de>
2034
2035         * tree-ssa-structalias.h (set_used_smts): Remove.
2036         * tree-ssa-structalias.c (used_smts): Likewise.
2037         (set_used_smts): Likewise.
2038         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Remove
2039         call to set_used_smts.
2040
2041 2008-07-07  Richard Guenther  <rguenther@suse.de>
2042
2043         * tree-ssa-structalias.c (struct variable_info): Add is_full_var flag.
2044         (new_var_info): Set it to false.
2045         (solution_set_add): Correctly handle pointers outside a var and
2046         inside a field.
2047         (type_safe): Treat variables with is_full_var properly.
2048         (do_sd_constraint): Likewise.
2049         (do_ds_constraint): Likewise.
2050         (process_constraint): Remove zeroing offset for !use_field_sensitive.
2051         (get_constraint_for_ptr_offset): New function.
2052         (get_constraint_for_component_ref): For addresses at least include
2053         the last field of the variable.  Handle is_full_vars properly.
2054         (get_constraint_for_1): Factor common code, handle POINTER_PLUS_EXPR.
2055         (handle_ptr_arith): Remove.
2056         (find_func_aliases): Simplify assignment handling.
2057         (create_function_info_for): For parameter and result varinfos set
2058         is_full_var flag.
2059         (create_variable_info_for): Set is_full_var flag whenever we
2060         just created a single varinfo for a decl.
2061         (init_alias_vars): Initialize use_field_sensitive from
2062         max-fields-for-field-sensitive parameter.
2063
2064 2008-07-07  Richard Guenther  <rguenther@suse.de>
2065
2066         PR tree-optimization/36713
2067         * tree-flow-inline.h (is_call_used): New function.
2068         * tree-nrv.c (dest_safe_for_nrv_p): Use it.
2069         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2070         * tree-outof-ssa.c (create_temp): Set call-used flag if required.
2071
2072 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2073
2074         * config/m68k/m68k.c (m68k_return_in_memory): Fix arguments types.
2075         
2076 2008-07-07  Mark Shinwell  <shinwell@codesourcery.com>
2077
2078         * config/m68k/lb1sf68.asm: Add PIC macros for Linux targets.
2079
2080 2008-07-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2081             Nathan Sidwell  <nathan@codesourcery.com>
2082
2083         * config.gcc (m68k-*-linux*): Add with_arch.  Add sysroot-suffix.h
2084         to tm_file.  Add m68k/t-floatlib, m68k/t-linux & m68k/t-mlibs to
2085         tmake_file.
2086         * config/m68k/t-linux: New.
2087         * doc/install.texi: Document m68k-*-linux is now multilibbed by
2088         default.
2089
2090 2008-07-07  Nathan Sidwell  <nathan@codesourcery.com>
2091
2092         * config/m68k/t-cf (MULTILIB_EXTRA_OPTS): Add no-mac.
2093         * config/m68k/m68k-devices.def: Remove multilibs that only differ
2094         by MAC/EMAC.
2095
2096 2008-07-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2097
2098         * gcc.c (execute): Fix -Wc++-compat warning.
2099
2100 2008-07-06  H.J. Lu  <hongjiu.lu@intel.com>
2101
2102         PR target/36720
2103         * config/ia64/ia64.c (ia64_split_tmode): Fix typo in TImode
2104         constant for little endian.
2105
2106 2008-07-06  Richard Sandiford  <rdsandiford@googlemail.com>
2107
2108         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Check
2109         mips_base_mips16 instead of TARGET_MIPS16.
2110         (mips_base_mips16): Declare.
2111         * config/mips/mips.c (mips_base_mips16): Make global.
2112         (was_mips16_p): Remove GTY marker.
2113         (was_mips16_pch_p): New variable.
2114         (mips_set_mips16_mode): Check both was_mips16_p and was_mips16_pch_p.
2115         (mips_override_options): Force to non-MIPS16 mode initially.
2116         Do not complain about MIPS16 PIC incompatibilities here.
2117         Only allow -mgpopt if -mexplicit-relocs is in force for
2118         non-MIPS16 code.
2119
2120 2008-07-06  Andreas Tobler  <a.tobler@schweiz.org>
2121
2122         * configure.ac: Check for caddr_t, define to char * if not defined.
2123         * configure: Regenerate.
2124         * ggc-common.c (mmap_gt_pch_get_address): Fix -Wc++-compat warnings.
2125         (mmap_gt_pch_use_address): Likewise.
2126         * config/host-solaris.c (sol_gt_pch_use_address): Likewise.
2127
2128 2008-07-06  Richard Guenther  <rguenther@suse.de>
2129
2130         * tree-ssa-structalias.c (struct variable_info): Remove has_union.
2131         (new_var_info): Deal with it.
2132         (solution_set_add): Likewise.
2133         (bitpos_of_field): Make signed, fix.
2134         (struct fieldoff): Remove type and decl fields.  Make size field
2135         unsigned HOST_WIDE_INT.  Add has_unknown_size and may_have_pointers
2136         flags.
2137         (fieldoff_compare): Deal with it.
2138         (push_fields_onto_fieldstack): Remove has_union argument, glob
2139         adjacent non-pointer fields together.
2140         (create_function_info_for): Do not set has_union.
2141         (create_variable_info_for): Simplify.
2142
2143 2008-07-06  Kai Tietz  <kai.tietz@onevision.com>
2144
2145         * config.gcc (extra_headers): Add cross-stdarg.h for target
2146         x86_64-*-* and i?86-*-*.
2147         * config/i386/cross-stdarg.h: New.
2148         * builtins.c (std_fn_abi_va_list): New.
2149         (std_canonical_va_list_type): New.
2150         (stabilize_va_list): Replace va_list_type_node use by
2151         mtarget.canonical_va_list_type.
2152         (gimplify_va_arg_expr): Likewise.
2153         (expand_builtin_va_copy): Replace va_list_type_node use by
2154         mtarget.fn_abi_va_list.
2155         * tree-sra.c (is_va_list_type): New helper.
2156         (decl_can_be_decomposed_p): Replace
2157         va_list_type_node use by is_va_list_type.
2158         * tree-ssa-ccp.c (optimize_stdarg_builtin): Likewise.
2159         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
2160         * c-common.c (c_common_nodes_and_builtins): Use TARGET_ENUM_VA_LIST.
2161         * config/i386/i386-protos.h (ix86_get_valist_type): New.
2162         (ix86_enum_va_list): New.
2163         * config/i386/i386.c (sysv_va_list_type_node): New.
2164         (ms_va_list_type_node): New.
2165         (ix86_function_type_abi): Remove sorry.
2166         (ix86_build_builtin_va_list_abi): New.
2167         (ix86_build_builtin_va_list): Call ix86_build_builtin_va_list_abi
2168         for 64-bit targets.
2169         (ix86_va_start): Replace va_list_type_node by sysv_va_list_type_node.
2170         (ix86_init_builtins_va_builtins_abi): New.
2171         (ix86_init_builtins): Use ix86_init_builtins_va_builtins_abi
2172         for 64-bit targets.
2173         (ix86_handle_abi_attribute): New.
2174         (attribute_spec): Add sysv_abi and ms_abi.
2175         (ix86_fn_abi_va_list): New.
2176         (ix86_canonical_va_list_type): New.
2177         (ix86_enum_va_list): New.
2178         (TARGET_FN_ABI_VA_LIST): New.
2179         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2180         * config/i386/i386.h (TARGET_ENUM_VA_LIST): New.
2181         * doc/tm.texi (TARGET_FN_ABI_VA_LIST): New.
2182         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2183         (TARGET_ENUM_VA_LIST): New.
2184         * expr.h (std_fn_abi_va_list): New.
2185         (std_canonical_va_list_type): New.
2186         * target-def.h (TARGET_FN_ABI_VA_LIST): New.
2187         (TARGET_CANONICAL_VA_LIST_TYPE): New.
2188         (TARGET_INITIALIZER): Add TARGET_FN_ABI_VA_LIST and
2189         TARGET_CANONICAL_VA_LIST_TYPE.
2190         * target.h (struct gcc_target): Add fn_abi_va_list hook
2191         and canonical_va_list_type hook.
2192
2193 2008-07-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2194
2195         * fold-const.c (fold_convert_const): Treat OFFSET_TYPE the same as
2196         integral and pointer types.
2197
2198 2008-07-04  Roger Sayle  <roger@eyesopen.com>
2199
2200         * config/rs6000/host-darwin.c (darwin_rs6000_extra_signals): Cast
2201         the "void*" result of xmalloc to "char*" to fix bootstrap breakage.
2202
2203 2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2204
2205         PR target/36684
2206         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC.
2207
2208 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
2209
2210         * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
2211         build_gimple_modify_stmt.
2212         (build_arrays, gen_inbound_check): Likewise.  Force RHS to be
2213         gimple operand.  Use fold_build* instead of build*.
2214
2215 2008-07-04  Richard Guenther  <rguenther@suse.de>
2216
2217         * tree-ssa-structalias.c (lookup_vi_for_tree): Declare.
2218         (do_sd_constraint): Handle a dereference of ESCAPED and CALLUSED
2219         properly to compute the reachability set if we do field-sensitive PTA.
2220         * invoke.texi (max-fields-for-field-sensitive): Document default.
2221         * opts.c (decode_options): Set max-fields-for-field-sensitive to
2222         100 for optimize >= 2.
2223
2224 2008-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2225
2226         * ggc-zone.c (lookup_page_table_if_allocated,
2227         set_page_table_entry, zone_find_object_size, alloc_small_page,
2228         alloc_large_page, ggc_free, gt_ggc_m_S, ggc_marked_p, init_ggc,
2229         new_ggc_zone, init_ggc_pch, ggc_pch_this_base, ggc_pch_read): Fix
2230         -Wc++-compat and/or -Wcast-qual warnings.
2231
2232 2008-07-04  Alan Modra  <amodra@bigpond.net.au>
2233
2234         PR target/36634
2235         * config/rs6000/rs6000.md (call, call_value): Don't arrange for
2236         pic_offset_table_rtx to be marked as used here.
2237         (call_nonlocal_sysv, call_value_nonlocal_sysv): Add split for
2238         TARGET_SECURE_PLT to "use" pic_offset_table_rtx.
2239         (call_nonlocal_sysv_secure, call_value_nonlocal_sysv_secure): New insn.
2240         (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Assert
2241         !TARGET_SECURE_PLT.
2242
2243 2008-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2244
2245         * alloc-pool.c (hash_descriptor, eq_descriptor,
2246         alloc_pool_descriptor): Fix -Wc++-compat warnings.
2247         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_descriptor):
2248         Likewise.
2249         * ggc-common.c (hash_descriptor, eq_descriptor, hash_ptr, eq_ptr,
2250         loc_descriptor, ggc_prune_ptr, ggc_free_overhead,
2251         final_cmp_statistic, cmp_statistic, dump_ggc_loc_statistics): Likewise.
2252         * varray.c (hash_descriptor, eq_descriptor, varray_descriptor):
2253         Likewise.
2254
2255 2008-07-03  Eric Botcazou  <ebotcazou@adacore.com>
2256
2257         * tree-flow.h (loop_only_exit_p): Declare.
2258         * tree-ssa-loop-niter.c (loop_only_exit_p): Make public.
2259         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Reinstate direct check on
2260         the number of iterations if it is constant.  Otherwise, if this is the
2261         only possible exit of the loop, use the conservative estimate on the
2262         number of iterations of the entire loop if available.
2263
2264 2008-07-03  Richard Sandiford  <rdsandiford@googlemail.com>
2265
2266         * Makefile.in (libgcc.mvars): Add LIBGCC_SYNC and LIBGCC_SYNC_CFLAGS.
2267         * libgcc-std.ver (GCC_4.4.0): New version, inherited from GCC_4.3.0.
2268         Add synchronization functions.
2269         * config/sync.c: New file.
2270         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC): Define.
2271         (LIBGCC_SYNC_CFLAGS): Likewise.
2272
2273 2008-07-03  Uros Bizjak  <ubizjak@gmail.com>
2274
2275         PR target/36710
2276         * config/i386/i386.md (mode): Add TF to "mode" attribute.
2277         (*pushtf_sse): New insn pattern.
2278         (pushtf splitters): New splitters.
2279
2280 2008-07-03  Michael Meissner  <gnu@the-meissners.org>
2281
2282         PR middle-end/35736
2283         * predict.c (build_predict_expr): Use void_type_node for the tree
2284         type, instead of NULL_TREE.
2285
2286 2008-07-03  H.J. Lu  <hongjiu.lu@intel.com>
2287
2288         * config/i386/i386.c (contains_aligned_value_p): Return true
2289         for TCmode.
2290         (ix86_data_alignment): Align TCmode to 128bits.
2291         (ix86_local_alignment): Likewise.
2292
2293 2008-07-03  Andrew Haley  <aph@redhat.com>
2294
2295         PR bootstrap/33304
2296         * vec.h (VEC_TA): New.
2297         (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
2298         DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
2299         * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
2300         (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
2301         (C_COMMON_FIXED_TYPES): Remove first arg.
2302         (C_COMMON_FIXED_MODE_TYPES): Likewise.
2303         * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
2304         MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
2305         not to use empty macro arguments.
2306
2307 2008-07-02  Joseph Myers  <joseph@codesourcery.com>
2308
2309         * config/alpha/vms_tramp.asm, config/arm/crti.asm,
2310         config/arm/crtn.asm, config/bfin/crti.s, config/bfin/crtlibid.s,
2311         config/bfin/crtn.s, config/fr30/crti.asm, config/fr30/crtn.asm,
2312         config/frv/lib1funcs.asm, config/i386/sol2-c1.asm,
2313         config/i386/sol2-ci.asm, config/i386/sol2-cn.asm,
2314         config/i386/sol2-gc1.asm, config/ia64/crti.asm,
2315         config/ia64/crtn.asm, config/m68hc11/larith.asm,
2316         config/m68hc11/m68hc11-crt0.S, config/m68k/crti.s,
2317         config/m68k/crtn.s, config/mcore/crti.asm, config/mcore/crtn.asm,
2318         config/rs6000/crtresfpr.asm, config/rs6000/crtresgpr.asm,
2319         config/rs6000/crtresxfpr.asm, config/rs6000/crtresxgpr.asm,
2320         config/rs6000/crtsavfpr.asm, config/rs6000/crtsavgpr.asm,
2321         config/rs6000/crtsavres.asm, config/rs6000/e500crtres32gpr.asm,
2322         config/rs6000/e500crtres64gpr.asm,
2323         config/rs6000/e500crtres64gprctr.asm,
2324         config/rs6000/e500crtrest32gpr.asm,
2325         config/rs6000/e500crtrest64gpr.asm,
2326         config/rs6000/e500crtresx32gpr.asm,
2327         config/rs6000/e500crtresx64gpr.asm,
2328         config/rs6000/e500crtsav32gpr.asm,
2329         config/rs6000/e500crtsav64gpr.asm,
2330         config/rs6000/e500crtsav64gprctr.asm,
2331         config/rs6000/e500crtsavg32gpr.asm,
2332         config/rs6000/e500crtsavg64gpr.asm,
2333         config/rs6000/e500crtsavg64gprctr.asm, config/rs6000/eabi-ci.asm,
2334         config/rs6000/eabi-cn.asm, config/rs6000/eabi.asm,
2335         config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm,
2336         config/rs6000/tramp.asm, config/sparc/sol2-ci.asm,
2337         config/sparc/sol2-cn.asm: Remove .file directives.
2338
2339 2008-07-02  Richard Sandiford  <rdsandiford@googlemail.com>
2340
2341         * resource.c (mark_referenced_resources): Look inside
2342         UNSPEC_VOLATILEs and ASM_INPUTs.
2343
2344 2008-07-02  Ian Lance Taylor  <iant@google.com>
2345
2346         * rtlanal.c (add_reg_note): New function.
2347         * rtl.h (add_reg_note): Declare.
2348         * auto-inc-dec.c (attempt_change): Use add_reg_note.
2349         * bb-reorder.c (add_reg_crossing_jump_notes): Likewise.
2350         * builtins.c (expand_builtin_longjmp): Likewise.
2351         (expand_builtin_nonlocal_goto): Likewise.
2352         * calls.c (emit_call_1, expand_call): Likewise.
2353         * cfgexpand.c (add_reg_br_prob_note): Likewise.
2354         * cfglayout.c (fixup_reorder_chain): Likewise.
2355         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2356         (commit_one_edge_insertion): Likewise.
2357         * combine.c (move_deaths, distribute_notes): Likewise.
2358         * df-problems.c (df_set_note): Likewise.
2359         * emit-rtl.c (link_cc0_insns, try_split): Likewise.
2360         (set_unique_reg_note): Likewise.
2361         (emit_copy_of_insn_after): Likewise.
2362         * expr.c (expand_expr_real): Likewise.
2363         * gcse.c (add_label_notes): Likewise.
2364         * haifa-sched.c (create_check_block_twin): Likewise.
2365         * jump.c (mark_jump_label_1): Likewise.
2366         * loop-doloop.c (add_test, doloop_modify): Likewise.
2367         * loop-unswitch.c (compare_and_jump_seq): Likewise.
2368         * lower-subreg.c (move_eh_region_note): Likewise.
2369         * optabs.c (emit_libcall_block): Likewise.
2370         * predict.c (predict_insn): Likewise.
2371         (combine_predictions_for_insn): Likewise.
2372         * recog.c (peephole2_optimize): Likewise.
2373         * regmove.c (try_auto_increment): Likewise.
2374         * reg-stack.c (emit_pop_insn, move_for_stack_reg): Likewise.
2375         * reload.c (find_reloads): Likewise.
2376         * reload1.c (fixup_eh_region_note): Likewise.
2377         (reload_as_needed, add_auto_inc_notes, copy_eh_notes): Likewise.
2378         * reorg.c (delete_prior_computation): Likewise.
2379         (delete_computation, dbr_schedule): Likewise.
2380         * config/pa/pa.c (legitimize_pic_address): Likewise.
2381         * config/sh/sh.c (sh_reorg): Likewise.
2382
2383 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2384
2385         PR target/36669
2386         * config/libgcc-glibc.ver: Add %exclude.
2387         * config/m32r/libgcc-glibc.ver: Likwise.
2388         * config/s390/libgcc-glibc.ver: Likwise.
2389         * config/sh/libgcc-glibc.ver: Likwise.
2390         * config/sparc/libgcc-sparc-glibc.ver: Likwise.
2391
2392         * config/i386/libgcc-glibc.ver: New.
2393
2394         * config/i386/libgcc-x86_64-glibc.ver: Removed.
2395
2396 2008-07-02  H.J. Lu  <hongjiu.lu@intel.com>
2397
2398         * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp
2399         from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*,
2400         i[34567]86-*-linux*, x86_64-*-linux*.  Add
2401         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for
2402         i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*,
2403         x86_64-*-linux*.  Add i386/t-linux to tmake_file for
2404         i[34567]86-*-linux*, x86_64-*-linux*.
2405
2406         * libgcc-std.ver: Add empty GCC_4.4.0.
2407
2408         * mkmap-symver.awk: Support multiple versions per symbol.
2409
2410         * config/i386/i386.c (ix86_init_builtins): Always define
2411         __builtin_fabsq and __builtin_copysignq with fallbacks.
2412         (ix86_expand_builtin): Emit normal call for __builtin_fabsq
2413         and __builtin_copysignq if SSE2 isn't available.
2414
2415         * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined.
2416         (LIBGCC2_TF_CEXT): Likwise.
2417         (TF_SIZE): Likwise.
2418
2419         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1.
2420
2421         * config/i386/sfp-machine.h: Moved to libgcc.
2422
2423         * config/i386/sfp-machine.h: New.
2424         * config/i386/t-linux: Likwise.
2425
2426         * config/i386/t-darwin: Remove softfp_wrap_start and
2427         softfp_wrap_end.
2428         * config/i386/t-darwin64: Likewise.
2429
2430         * config/i386/t-fprules-softfp64: Renamed to ...
2431         * config/i386/t-fprules-softfp: This.
2432
2433         * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start
2434         and softfp_wrap_end.
2435
2436 2008-07-02  Jason Merrill  <jason@redhat.com>
2437
2438         * tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.
2439
2440         * tree.c (ctor_to_list): New fn.
2441         * tree.h: Declare it.
2442         (CONSTRUCTOR_ELT): New macro.
2443         (CONSTRUCTOR_NELTS): New macro.
2444
2445 2008-07-02  Richard Guenther  <rguenther@suse.de>
2446
2447         * tree-ssa-structalias.c (struct variable_info): Reorder
2448         to fill padding on 64bit hosts.  Make collapsed_to an int.
2449         (get_varinfo_fc): Deal with that.
2450         (new_var_info): Likewise.
2451         (collapse_rest_of_var): Likewise.
2452
2453 2008-07-02  Joshua Sumali  <jsumali@redhat.com>
2454
2455         * doc/install.texi (--enable-java-home): Document.
2456         (--enable-aot-compile-rpm): Likewise.
2457         (--with-arch-directory): Likewise.
2458         (--with-os-directory): Likewise.
2459         (--with-origin-name): Likewise.
2460         (--with-arch-suffix): Likewise.
2461         (--with-jvm-root-dir): Likewise.
2462         (--with-jvm-jar-dir): Likewise.
2463         (--with-python-dir): Likewise.
2464
2465 2008-07-02  Richard Guenther  <rguenther@suse.de>
2466
2467         * tree-ssa-forwprop.c (can_propagate_from): Exclude loads
2468         from decls explicitly.  Merge operand checking from tuples.
2469
2470 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2471
2472         * tree-switch-conversion.c: Included timevar.h which I forgot before.
2473         
2474 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2475
2476         * tree-switch-conversion.c: Included timevar.h
2477         (pass_convert_switch): Added a timevar id (TV_TREE_SWITCH_CONVERSION).
2478
2479         * timevar.def: Added TV_TREE_SWITCH_CONVERSION.
2480
2481 2008-07-02  Martin Jambor  <mjambor@suse.cz>
2482
2483         * tree-switch-conversion.c: Corrected various comments and
2484         whitespace issues
2485         (build_constructors): Fixed minor formatting mistakes.
2486
2487         * invoke.texi (Optimize Options): Corrected the
2488         switch-conversion-max-branch-ratio parameter.
2489
2490 2008-07-02  Mark Shinwell  <shinwell@codesourcery.com>
2491
2492         * final.c (asm_insn_count): Return zero for an empty asm body.
2493
2494 2008-07-02  Richard Guenther  <rguenther@suse.de>
2495
2496         * bitmap.h (bitmap_set_bit): Return bool.
2497         (bitmap_clear_bit): Likewise.
2498         * bitmap.c (bitmap_set_bit): Return if the bit changed.  Only
2499         write to the bitmap if it would.
2500         (bitmap_clear_bit): Likewise.
2501         * tree-ssa-structalias.c (add_implicit_graph_edge): Use
2502         bitmap_set_bit return value.
2503         (add_pred_graph_edge): Likewise.
2504         (add_graph_edge): Likewise.
2505         (do_sd_constraint): Likewise.
2506         (do_ds_constraint): Likewise.
2507
2508 2008-07-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2509
2510         * config/alpha/alpha.c (alpha_need_linkage, alpha_use_linkage):
2511         Fix -Wc++-compat and/or -Wcast-qual warnings.
2512         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration,
2513         gen_regparm_prefix): Likewise.
2514         * vmsdbgout.c (write_modbeg, lookup_filename,
2515         vmsdbgout_source_line, vmsdbgout_init): Likewise.
2516
2517 2008-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
2518
2519         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Undef to let
2520         defaults.h definition apply.
2521
2522 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2523
2524         * function.c (assign_parm_remove_parallels): New.
2525         (assign_parm_setup_block_p): Do not return true for non-BLKmode
2526         PARALLELs.
2527         (assign_parm_setup_block): Do not handle them.
2528         (assign_parm_setup_reg, assign_parm_setup_stack): Call
2529         assign_parm_remove_parallels.
2530
2531 2008-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
2532
2533         * c-typeck.c (convert_for_assignment): Use
2534         vector_targets_convertible_p.
2535         * c-common.c (vector_targets_convertible_p): New.
2536         * c-common.h (vector_targets_convertible_p): New prototype.
2537         * config/rs6000/rs6000.c (rs6000_is_opaque_type): Do not check
2538         opaque_p_V2SI_type_node.
2539
2540 2008-07-01  Steve Ellcey  <sje@cup.hp.com>
2541
2542         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Do not allow
2543         RFmode constants.
2544
2545 2008-07-01  Uros Bizjak  <ubizjak@gmail.com>
2546
2547         * config/i386/i386.c (ix86_build_signbit_mask): Generate TImode and
2548         TFmode constants via two element DImode vector for hosts with
2549         HOST_BITS_PER_WIDE_INT < 64.
2550         (ix86_init_builtins): Define __builtin_fabsq and __builtin_copysignq
2551         also for HOST_BITS_PER_WIDE_INT < 64.
2552
2553 2008-07-01  Richard Guenther  <rguenther@suse.de>
2554
2555         PR tree-optimization/36666
2556         * tree-ssa-structalias.c (get_constraint_for_1): Declare.
2557         (get_constraint_exp_from_ssa_var): Split into ...
2558         (get_constraint_exp_for_temp): ... this ...
2559         (get_constraint_for_ssa_var): ... and that.
2560         Return constraint expressions for all touched sub-fields
2561         if the results address is not taken.
2562         (process_constraint): Remove assertion that aggregate
2563         assignments do not happen at this place.
2564         (get_constraint_for_component_ref): Add address_p argument.
2565         Return constraint expressions for all touched sub-fields
2566         if the results address is not taken.
2567         (do_deref): Use get_constraint_exp_for_temp.
2568         (get_constraint_for_1): Rename from ...
2569         (get_constraint_for): ... this.  Add the old function as wrapper.
2570         (do_structure_copy): Use get_constraint_for_1.
2571
2572 2008-07-01  Martin Jambor  <mjambor@suse.cz>
2573
2574         * Makefile.in (tree-switch-conversion.o): Add.
2575         (OBJS-common): Add tree-swtch-conversion.o.
2576         * passes.c (init_optimization_passes): Add pass_convert_switch.
2577         * tree-pass.h: (pass_convert_switch): Add.
2578         * tree-switch-conversion.c: New file.
2579         * gcc.dg/tree-ssa/cswtch.c: New testcase.
2580         * common.opt (ftree-cswtch): New option.
2581         * params.h (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2582         * params.def (PARAM_SWITCH_CONVERSION_BRANCH_RATIO): New parameter.
2583         * opts.c (decode_options): Set flag_tree_switch_conversion when
2584         optimization level is >= 2.
2585         * doc/invoke.texi (Optimize Options): Added description of
2586         -ftree-swtch-conversion and switch-conversion-max-branch-ratio.
2587
2588 2008-06-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2589
2590         * config/darwin-driver.c (darwin_default_min_version): Fix
2591         -Wc++-compat warnings.
2592
2593 2008-06-30  Uros Bizjak  <ubizjak@gmail.com>
2594
2595         * config/i386/i386.md (*movti_rex64): Add "!" to "r" constraint
2596         of operand 0.
2597
2598 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2599
2600         * ifcvt.c (cond_move_process_if_block): Free vectors on false return.
2601         
2602 2008-06-30  Kenneth Zadeck <zadeck@naturalbridge.com>
2603
2604         PR rtl-optimization/34744
2605         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): New macros.
2606         (df_scan_free_internal): Free data structures not
2607         allocated in storage pools.
2608         (df_mw_hardreg_chain_delete_eq_uses): Use df_scan_free_mws_vec.
2609         (df_refs_add_to_chains): Use df_scan_free_ref_vec and
2610         df_scan_free_mws_vec.
2611         * dse.c (dse_step6): Free offset_map_p and offset_map_n
2612         unconditionally.
2613
2614 2008-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2615
2616         * config/i386/i386.c (contains_aligned_value_p): Return true
2617         for __float128.
2618         (ix86_function_arg_boundary): Return its natural boundary
2619         for __float128.
2620         (return_in_memory_32): Don't check TDmode.
2621         (ix86_split_to_parts): Support splitting into 4 parts and
2622         support TFmode for 32bit target.
2623         (ix86_split_long_move): Support splitting into 4 parts.
2624         (bdesc_args): Enable IX86_BUILTIN_FABSQ and IX86_BUILTIN_COPYSIGNQ
2625         for SSE2.
2626         (ix86_init_mmx_sse_builtins): Move __float80 and __float128 to ...
2627         (ix86_init_builtins): Here.
2628         (ix86_scalar_mode_supported_p): Always return true for TFmode.
2629         (ix86_c_mode_for_suffix): Always return TFmode and XFmode for
2630         'q' and 'w', respectively. 
2631
2632         * config/i386/i386.md (movtf): Check TARGET_SSE2 instead of
2633         TARGET_64BIT.
2634         (movtf_internal): Likewise.
2635         (<code>tf2): Likewise.
2636         (*absnegtf2_sse): Likewise.
2637         (copysign<mode>3): Likewise.
2638         (copysign<mode>3_const): Likewise.
2639         (copysign<mode>3_var): Likewise.
2640         (define_split UNSPEC_COPYSIGN): Likewise.
2641         * config/i386/sse.md (*nandtf3): Likewise.
2642         (<code>tf3): Likewise.
2643         (*<code>tf3): Likewise.
2644
2645 2008-06-30  Joey Ye  <joey.ye@intel.com>
2646             H.J. Lu  <hongjiu.lu@intel.com>
2647
2648         * global.c (compute_regsets): Set frame_pointer_needed here.
2649         * reload1.c (init_elim_table): Don't set frame_pointer_needed here.
2650
2651 2008-06-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2652
2653         * doc/install.texi (specific): Expand Windows build notes.
2654
2655 2008-06-30  Ira Rosen  <irar@il.ibm.com>
2656
2657         PR tree-optimization/36648
2658         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Divide
2659         number of prolog iterations by step. Fix the comment.
2660
2661 2008-06-30  Richard Guenther  <rguenther@suse.de>
2662
2663         PR middle-end/36671
2664         * tree-ssa-structalias.c (handle_lhs_call): Add flags argument,
2665         handle calls from ECF_MALLOC functions.
2666         (handle_pure_call): ECF_MALLOC functions do not return
2667         call-used memory.
2668         (find_func_aliases): Handle all calls, adjust calls to handle_lhs_call.
2669
2670 2008-06-29  Andreas Schwab  <schwab@suse.de>
2671
2672         * config/m68k/m68k.c (print_operand): Always print a float
2673         constant in hex.
2674         * config/m68k/m68k.h (ASM_OUTPUT_FLOAT_OPERAND)
2675         (ASM_OUTPUT_DOUBLE_OPERAND, ASM_OUTPUT_LONG_DOUBLE_OPERAND):
2676         Remove macros.
2677
2678         * config/rs6000/x-linux64: Remove never used file.
2679
2680 2008-06-29  Richard Guenther  <rguenther@suse.de>
2681
2682         * tree-ssa-structalias.h (compute_points_to_sets): Adjust
2683         prototype.
2684         (struct alias_info): Move ...
2685         * tree-ssa-alias.c: ... here.
2686         (update_alias_info): Declare.
2687         (compute_may_aliases): Call it.
2688         (update_alias_info): New function.
2689         * tree-ssa-structalias.c (update_alias_info): Move ...
2690         * tree-ssa-alias.c (update_alias_info_1): ... here.
2691         * tree-ssa-structalias.c (process_constraint_1): Remove
2692         unused from_call argument.  Rename to ...
2693         (process_constraint): ... this.  Delete old wrapper.
2694         (make_constraint_to): Adjust callers.
2695         (handle_const_call): Likewise.
2696         (handle_pure_call): Likewise.
2697         (init_base_vars): Likewise.
2698         (handle_lhs_call): Likewise.  Remove unnecessary constraint.
2699         (find_func_aliases): We don't need structure copies for
2700         complex types.
2701         (make_constraint_from_anything): Remove.
2702         (create_variable_info_for): For globals make constraints
2703         from escaped, not from anything.
2704         (compute_points_to_sets): Do not call update_alias_info.
2705         (ipa_pta_execute): Use make_constraint_from.
2706
2707 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2708
2709         * Makefile.in (CXX_COMPAT_WARN, cxx_compat_warn): Delete.
2710         (bitmap.o-warn, dominance.o-warn): New.
2711         * configure.ac (cxx_compat_warn): Delete.
2712         (loose_warn): Add -Wcast-qual and -Wc++-compat.
2713         * system.h: Remove #pragma diagnostic for -Wcast-qual and
2714         -Wc++-compat.
2715         * configure: Regenerate.
2716
2717         * optabs.c (libfunc_decl_hash, libfunc_decl_eq): Fix -Wcast-qual
2718         warnings.
2719
2720 2008-06-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2721
2722         * alloc-pool.c (create_alloc_pool): Fix -Wc++-compat warnings.
2723         * df-scan.c (df_notes_rescan): Likewise.
2724         * ggc-page.c (set_page_table_entry): Likewise.
2725         * intl.c (gcc_gettext_width): Likewise.
2726         * varasm.c (get_unnamed_section, get_noswitch_section,
2727         get_section): Likewise.
2728
2729 2008-06-28  Andrew Jenner  <andrew@codesourcery.com>
2730
2731         * regrename.c (build_def_use): Don't copy RTX.
2732
2733 2008-06-28  Sandra Loosemore  <sandra@codesourcery.com>
2734
2735         * doc/extend.texi (Variable Attributes): Use @ref instead of @xref.
2736         (Type Attributes): Fix nesting of @table and @subsection.  Adjust
2737         punctuation.  Use @ref instead of @xref.
2738         (Function Names): Remove stray @display/@end display.
2739         (C++ Attributes): Use @ref instead of @xref.
2740         (Deprecated Features): Fix punctuation around @xref.
2741         (Backwards Compatibility): Likewise.
2742         * doc/rtl.texi (Incdec): Remove stray @table/@end table.
2743
2744 2008-06-28  Joseph Myers  <joseph@codesourcery.com>
2745
2746         * config/rs6000/predicates.md (easy_fp_constant): Reject TFmode
2747         constants for E500 double.
2748
2749 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2750
2751         * doc/rtl.texi (const_vector): Document const_fixed as legitimate
2752         element type of const_vector.
2753
2754 2008-06-28  Uros Bizjak  <ubizjak@gmail.com>
2755
2756         * config/i386/i386.md (addti3, adddi3, addsi3, addhi3, addqi3):
2757         Remove FLAGS_REG clobber from expander pattern.
2758         (subti3, subdi3, subsi3, subhi3, subqi3): Ditto.
2759         (anddi3, andsi3, andhi3, andqi3): Ditto.
2760         (iordi3, iorsi3, iorhi3, iorqi3): Ditto.
2761         (xordi3, xorsi3, xorhi3, xorqi3): Ditto.
2762         (negti2, negdi2, negsi2, neghi2, negqi2): Ditto.
2763         (ashlsi3, ashlhi3, ashlqi3): Ditto.
2764         (ashrsi3, ashrhi3, ashrqi3): Ditto.
2765         (lshrsi3, lshrhi3, lshrqi3): Ditto.
2766         (rotldi3, rotlsi3, rotlhi3, rotlqi3): Ditto.
2767         (rotrdi3, rotrsi3, rotrhi3, rotrqi3): Ditto.
2768
2769 2008-06-28  Richard Guenther  <rguenther@suse.de>
2770
2771         * tree-ssa-structalias.c (callused_id, var_callused,
2772         callused_tree): Add.
2773         (handle_pure_call): New function.
2774         (find_func_aliases): Call it.
2775         (find_what_p_points_to): Handle the call-used set.
2776         (clobber_what_escaped): Likewise.
2777         (compute_call_used_vars): New function.
2778         (init_base_vars): Init the call-used variable.
2779         (do_sd_constraint): Do not propagate the solution from CALLUSED
2780         but use CALLUSED as a placeholder.
2781         (solve_graph): Likewise.
2782         * tree-flow-inline.h (gimple_call_used_vars): New function.
2783         * tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
2784         (compute_call_used_vars): Declare.
2785         * tree-ssa-alias.c (set_initial_properties): Call
2786         compute_call_used_vars.
2787         (reset_alias_info): Clear call-used variables.
2788         (add_call_clobber_ops): Assert we are not called for const/pure
2789         functions.  Remove handling of them.
2790         (add_call_read_ops): Handle pure functions by adding the
2791         call-used set of variables as VUSEs.
2792         * tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
2793         (delete_tree_ssa): Free it.
2794         * tree-dfa.c (remove_referenced_var): Clear the var from the
2795         call-used bitmap.
2796
2797 2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
2798
2799         * tree.c (build_varargs_function_type_list): New.
2800         (build_function_type_list_1): New.
2801         (build_function_type_list): Use build_function_type_list_1.
2802         * tree.h (build_varargs_function_type_list): New.
2803
2804 2008-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2805
2806         PR target/34856
2807         * config/spu/spu.c (spu_builtin_splats): Do not generate
2808         invalid CONST_VECTOR expressions.
2809         (spu_expand_vector_init): Likewise.
2810
2811 2008-06-28  Richard Sandiford  <rdsandiford@googlemail.com>
2812
2813         * optabs.c (libfunc_decls): New variable.
2814         (libfunc_decl_hash, libfunc_decl_eq): New functions.
2815         (init_one_libfunc): Reuse decls and SYMBOL_REFs when asked
2816         for the same function twice.
2817
2818 2008-06-27  Uros Bizjak  <ubizjak@gmail.com>
2819
2820         * config/i386/i386.md (ashlti3, ashrti3, lshrti3): Expand using
2821         ix86_expand_binary_operator directly.
2822         (*ashlti3_1): Rename from ashlti3_1.  Use nonmemory_operand predicate
2823         for operand 2.
2824         (*ashrti3_1): Ditto.
2825         (*lshrti3_1): Ditto.
2826         (*ashlti3_2, *ashrti3_2, *lshrti3_2): Remove insn patterns.
2827         (ashlti, ashrti and lshrti splitters): Handle nonmemory operand 2
2828         using only one splitter.  Conditionaly execute splitter before or
2829         after peephole2 pass.
2830         (ashlti, ashrti and lshrti peephole2): Define peephole2 patterns.
2831         (x86_shld): Rename from x86_shld_1.  Compress operand 2 constraints.
2832         Use only one alternative in asm template.
2833         (x86_64_shld): Compress operand 2 constraints. Use only one alternative
2834         in asm template.
2835         (*ashldi3_cmp_rex64): Use const_1_to_63_operand operand predicate and
2836         "J" operand constraint for operand 2.
2837         (*ashldi3_cconly_rex64): Ditto.
2838         (*ashrdi3_cmp_rex64): Ditto.
2839         (*ashrdi3_cconly_rex64): Ditto.
2840         (*lshrdi3_cmp_rex64): Ditto.
2841         (*lshrdi3_cconly_rex64): Ditto.
2842         * config/i386/predicates.md (const_1_to_63_operand): New predicate.
2843         * config/i386/i386.md (print_operand) ['s']: Print ", " using fputs.
2844         (split_ashr, split_ashl, split_lshr): Use gen_x86_shrd instead of
2845         gen_x86_shrd_1.
2846
2847 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
2848
2849         * gimplify.c (omp_is_private): Don't return true if decl is not
2850         already private on #pragma omp for or #pragma omp parallel for.
2851
2852         PR debug/36617
2853         * tree-cfg.c (struct move_stmt_d): Replace block field with
2854         orig_block and new_block fields.
2855         (move_stmt_r): Only set TREE_BLOCK to p->new_block if
2856         if it used to be NULL, p->orig_block or if p->orig_block is NULL.
2857         (move_block_to_fn): Replace vars_map and new_label_map arguments
2858         with struct move_stmt_d pointer.
2859         (replace_block_vars_by_duplicates): New function.
2860         (move_sese_region_to_fn): Add ORIG_BLOCK argument.  Adjust
2861         move_block_to_fn caller.  If ORIG_BLOCK is non-NULL, move over
2862         all subblocks of ORIG_BLOCK to the new function.  Call
2863         replace_block_vars_by_duplicates.
2864         * tree-flow.h (move_sese_region_to_fn): Adjust prototype.
2865         * omp-low.c (expand_omp_taskreg): Set TREE_USED on DECL_INITIAL
2866         BLOCK of the new function.  Adjust move_sese_region_to_fn caller.
2867         Prune vars with original DECL_CONTEXT from child_cfun->local_decls.
2868         (expand_omp): Temporarily set input_location to the location of
2869         region's controlling stmt.
2870         (lower_omp_sections, lower_omp_for): Add a BLOCK into outermost
2871         BIND_EXPR, push ctx->block_vars and gimplification vars into
2872         the BIND_EXPR and its block's BLOCK_VARS instead of directly
2873         into dest function.
2874         (lower_omp_single): Set TREE_USED on the BIND_EXPR's BLOCK if
2875         there are any BLOCK_VARS.
2876         (lower_omp_taskreg): Set BLOCK on a BIND_EXPR containing the
2877         OMP_PARALLEL or OMP_TASK stmt.
2878         (lower_omp): Save and restore input_location around the lower_omp_1
2879         call.
2880
2881 2008-06-27  Richard Guenther  <rguenther@suse.de>
2882
2883         PR tree-optimization/36400
2884         PR tree-optimization/36373
2885         PR tree-optimization/36344
2886         * tree-ssa-structalias.c (var_escaped, escaped_tree, escaped_id,
2887         var_nonlocal, nonlocal_tree, nonlocal_id): New globals
2888         (update_alias_info): Remove call clobbering code.
2889         (make_constraint_to): New helper function.
2890         (make_escape_constraint): Likewise.
2891         (handle_rhs_call): Use it on all pointer containing arguments.
2892         Also mark the static chain escaped.
2893         (handle_lhs_call): Make constraints from NONLOCAL and ESCAPED
2894         instead of ANYTHING.
2895         (make_constraint_from): New helper split out from ...
2896         (make_constraint_from_anything): ... here.
2897         (find_func_aliases): Add constraints for escape sites.
2898         (intra_create_variable_infos): Make constraints from NONLOCAL
2899         for parameters.
2900         (find_what_p_points_to): Interpret NONLOCAL and ESCAPED the same
2901         as ANYTHING.
2902         (clobber_what_p_points_to): Remove.
2903         (clobber_what_escaped): New function.
2904         (init_base_vars): Init NONLOCAL and ESCAPED.
2905         (do_sd_constraint): Do not propagate the solution from ESCAPED
2906         but use ESCAPED as a placeholder.
2907         (solve_graph): Likewise.
2908         * tree-flow.h (clobber_what_p_points_to): Remove.
2909         (clobber_what_escaped): Declare.
2910         * tree-ssa-alias.c (set_initial_properties): Call it.
2911         Remove code clobbering escaped pointers.
2912
2913 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2914
2915         * function.c (allocate_struct_function): Only allocate a unique
2916         funcdef_no if the decl is nonzero.
2917
2918 2008-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
2919
2920         * config/mips/mips-protos.h (mips_split_const_insns): Declare.
2921         * config/mips/mips.c (mips_split_const_insns): New function.
2922         * config/mips/mips.md (move_type): New attribute.
2923         (mode): Move attribute definition earlier in file.  Add "TI" and "TF".
2924         (dword_mode): New attribute.
2925         (type): Avoid long line.  Map "move_type"s to "type"s,
2926         choosing "multi" for doubleword moves if appropriate.
2927         Swap MTC/MFC comments to match their declaration order.
2928         (extended_mips16): Default to "yes" if "move_type" is "sll0",
2929         "type" is "branch" or "jal" is "direct".
2930         (length): Handle "extended_mips16" first.  Make the default
2931         "0" for "ghost" instructions.  Set the length from "move_type".
2932         (truncdisi2, truncdihi2, truncdiqi2): Use "move_type" instead
2933         of "type", with "sll0" for the register alternative.  Remove the
2934         "extended_mips16" attribute.
2935         (zero_extendsidi2, *clear_upper32): Use "move_type" instead
2936         of "type", with "shift_shift" for the register alternative.
2937         Remove the "length" attribute.
2938         (*extend<SHORT:mode><GPR:mode>2, *extendqihi2): Likewise.
2939         (*zero_extend<SHORT:mode><GPR:mode>2): Use "move_type" instead
2940         of "type", with "andi" for the register alternative.
2941         (*zero_extendqihi2): Likewise.
2942         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): Use a "move_type"
2943         of "andi" instead of a "type" of "arith".
2944         (*zero_extend<SHORT:mode><GPR:mode>2_mips16): Use "move_type"
2945         instead of "type".
2946         (*zero_extendqihi2_mips16, mov_<load>l, mov_<load>r, mov_<store>l)
2947         (mov_<store>r, *mov<mode>_ra): Likewise.
2948         (extendsidi2): Use "move_type" instead of "type", with "move"
2949         for the register alternative.
2950         (*extend<SHORT:mode><GPR:mode>2_mips16e): Use "move_type" instead
2951         of "type", with "signext" for the register alternative.
2952         (*extend<SHORT:mode><GPR:mode>2_se<SHORT:size>): Likewise.
2953         (*extendqihi2_mips16e, *extendqihi2_seb): Likewise.
2954         (fix_truncdfsi2_insn, fix_truncsfsi2_insn, fix_truncdfdi2)
2955         (fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2, floatdisf2)
2956         (floatdisf2, *branch_equality<mode>_mips16): Likewise.
2957         (unnamed branch insn): Likewise.
2958         (*movdi_gp32_fp64): Fold into...
2959         (*movdi_32bit): ...here.
2960         (*movdf_hardfloat_64bit, *movdf_hardfloat_32bit): Combine into...
2961         (*movdf_hardfloat): ...this new pattern.
2962         (*movdf_softfloat): Remove redundant FPR alternatives.
2963         (*movti, *movti_mips16, *movtf, *movtf_mips16): Add "mode" attributes.
2964         (*movv2sf_hardfloat_64bit, *movv2sf_hardfloat_32bit): Combine into...
2965         (*movv2sf): ...this new pattern.  Use "DF" rather than "SF" for
2966         the "move" attribute.
2967         (*movdi_32bit): Use "move_type" instead of "type" and remove the
2968         "length" attribute.  Use "fpload" and "fpstore" instead of "load"
2969         and "store" for COP loads and stores.
2970         (*movdi_32bit_mips16, *movdi_64bit, *movsi_internal, movcc)
2971         (*movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16)
2972         (*movsf_hardfloat, *movsf_softfloat, *movsi_mips16, *movdf_hardfloat)
2973         (*movdf_softfloat, *movdf_mips16, *movti, *movti_mips16, *movtf)
2974         (*movtf_mips16, *movv2sf): Likewise.
2975         (mfhi<GPR:mode>_<HILO:mode>, mflo<GPR:mode>_<HILO:mode>)
2976         (load_low<mode>, load_high<mode>, store_word<mode>, mthc1<mode>)
2977         (mfhc1<mode>): Use "move_type" instead of "move".
2978         (*low<mode>_mips16): Use "extended_mips16" instead of "length".
2979         (loadgp_blockage): Remove the "length" attribute.
2980         (blockage, set_got_version, update_got_version): Likewise.
2981         (call_internal): Remove the "extended_mips16" attribute.
2982         (call_value_internal, call_value_multiple_internal): Likewise.
2983         * config/mips/loongson.md (mov<mode>_internal): Use "move_type"
2984         instead of "move".
2985         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Remove
2986         the "length" attribute.
2987
2988 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2989
2990         * c-format.c (handle_format_attribute): Fix -Wc++-compat and/or
2991         -Wcast-qual warnings.
2992         * c-pragma.c (dpm_eq, handle_pragma_push_macro,
2993         handle_pragma_pop_macro): Likewise.
2994         * collect2.c (resolve_lib_name): Likewise.
2995         * config/arc/arc.c (arc_init): Likewise.
2996         * config/arm/arm.c (neon_builtin_compare,
2997         locate_neon_builtin_icode): Likewise.
2998         * config/arm/pe.c (arm_mark_dllexport, arm_pe_unique_section): Likewise.
2999         * config/bfin/bfin.c (bfin_init_machine_status,
3000         bfin_optimize_loop): Likewise.
3001         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3002         * config/cris/cris.c (cris_init_expanders): Likewise.
3003         * config/darwin-c.c (frameworks_in_use, add_framework): Likewise.
3004         * config/darwin.c (machopic_indirection_eq,
3005         machopic_indirection_name, machopic_output_indirection): Likewise.
3006         * config/frv/frv.c (frv_init_machine_status, frv_compare_insns,
3007         frv_io_check_address, frv_io_handle_set, frv_io_handle_use_1,
3008         frv_optimize_membar): Likewise.
3009         * config/i386/cygwin.h (mingw_scan,
3010         GCC_DRIVER_HOST_INITIALIZATION): Likewise.
3011         * config/i386/cygwin1.c (mingw_scan): Likewise.
3012         * config/i386/i386.c (machopic_output_stub): Likewise.
3013         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix,
3014         i386_pe_unique_section): Likewise.
3015         * config/ia64/ia64.c (ia64_init_machine_status,
3016         ia64_h_i_d_extended, get_free_bundle_state, bundling, ia64_reorg):
3017         Likewise.
3018         * config/iq2000/iq2000.c, iq2000_init_machine_status): Likewise.
3019         * config/m68hc11/m68hc11.c (m68hc11_encode_label): Likewise.
3020         * config/m68k/m68k.c (m68k_handle_option,
3021         m68k_sched_md_init_global): Likewise.
3022         * config/mcore/mcore.c (mcore_mark_dllexport, mcore_mark_dllimport,
3023         mcore_unique_section): Likewise.
3024         * config/mips/mips.c (mips_block_move_straight,
3025         mips16_rewrite_pool_refs, mips_sim_wait_regs_2, mips_sim_record_set):
3026         Likewise.
3027         * config/mmix/mmix.c (mmix_init_machine_status,
3028         mmix_encode_section_info): Likewise.
3029         * config/pa/pa.c (pa_init_machine_status, hppa_encode_label): Likewise.
3030         * config/rs6000/rs6000.c (rs6000_init_machine_status,
3031         print_operand_address, output_toc, redefine_groups,
3032         rs6000_elf_encode_section_info, machopic_output_stub): Likewise.
3033         * config/s390/s390.c (s390_init_machine_status): Likewise.
3034         * config/score/score.c (score_block_move_straight,
3035         score_block_move_loop_body): Likewise.
3036         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
3037         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
3038         * emit-rtl.c (find_auto_inc): Likewise.
3039         * gcc.c (translate_options, process_command): Likewise.
3040         * reorg.c (dbr_schedule): Likewise.
3041         * sdbout.c (sdbout_start_source_file, sdbout_init): Likewise.
3042         * xcoffout.c (xcoffout_declare_function): Likewise.
3043
3044 2008-06-27  Daniel Berlin  <dberlin@dberlin.org>
3045
3046         * tree-ssa-structalias.c (find_func_aliases): Trivial fix to get
3047         ipa-pta working again.
3048
3049 2008-06-27  David Edelsohn  <edelsohn@gnu.org>
3050
3051         * config/rs6000/t-aix52: Append large data option to LDFLAGS for
3052         genautomata.
3053
3054 2008-06-27  Edmar Wienskoski  <edmar@freescale.com>
3055
3056         * config.gcc (powerpc*-*-*): Add new core e500mc.
3057         * config/rs6000/e500mc.md: New file.
3058         * config/rs6000/rs6000.c (processor_costs): Add new costs for
3059         e500mc.
3060         (rs6000_override_options): Add e500mc case to
3061         processor_target_table. Altivec and Spe options not allowed
3062         with e500mc. Add isel instruction to e500mc by
3063         default. Initialize rs6000_cost for e500mc.
3064         (rs6000_issue_rate): Set issue rate for e500mc.
3065         * config/rs6000/rs6000.h (processor_type): Add
3066         PROCESSOR_PPCE500MC.
3067         (ASM_CPU_SPEC): Add e500mc.
3068         Set TARGET_ISEL to rs6000_isel.
3069         * config/rs6000/e500.h: Remove redefinition of TARGET_ISEL.
3070         (CHECK_E500_OPTIONS): Remove TARGET_ISEL.
3071         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc.
3072         Include e500mc.md.
3073         * doc/invoke.texi: Add e500mc to list of cpus.
3074
3075 2008-06-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3076
3077         PR c/34867
3078         * c-lex.c (lex_charconst): Initialize unsignedp.
3079
3080 2008-06-27  Olivier Hainque  <hainque@adacore.com>
3081
3082         * gimplify.c (gimplify_modify_expr_to_memset): Assert our
3083         documented assumptions.
3084
3085 2008-06-26  H.J. Lu  <hongjiu.lu@intel.com>
3086
3087         * dwarf2out.c: Remove trailing white spaces.  Break long line
3088         in comments.
3089
3090 2008-06-26  Richard Sandiford  <rdsandiford@googlemail.com>
3091
3092         * libfuncs.h (LTI_synchronize): New libfunc_index.
3093         (synchronize_libfunc): Declare.
3094         * builtins.c (expand_builtin_synchronize): Consider using
3095         synchronize_libfunc before falling back on an asm blockage.
3096         * config/mips/mips.c: Include libfuncs.h
3097         (mips_init_libfuncs): Initialize synchronize_libfunc for TARGET_MIPS16.
3098
3099 2008-06-26  Nathan Froyd  <froydnj@codesourcery.com>
3100
3101         * config/rs6000/rs6000.c (emit_allocate_stack): Add copy_r11
3102         parameter.  Copy stack_reg to r11 where appropriate.
3103         (no_global_regs_above): Add gpr parameter.
3104         (rs6000_stack_info): Only add padding for SPE save area if we
3105         are saving SPE GPRs and CR.
3106         (saveres_routine_syms): New variable.
3107         (FIRST_SAVRES_REGISTER, LAST_SAVRES_REGISTER, N_SAVRES_REGISTERS):
3108         Define.
3109         (rs6000_savres_routine_sym): New function.
3110         (rs6000_emit_stack_reset, rs6000_restore_saved_cr): New functions,
3111         split out of...
3112         (rs6000_emit_epilogue): ...here.  Use rs6000_use_multiple_p and
3113         rs6000_savres_strategy.  Restore GPRs out-of-line if appropriate.
3114         Tweak FPR out-of-line saving.
3115         (rs6000_make_savres_rtx): New function.
3116         (rs6000_use_multiple_p): New function.
3117         (rs6000_savres_strategy): New function.
3118         (rs6000_emit_prologue): Use rs6000_savres_strategy.  Save GPRs
3119         out-of-line if appropriate.
3120         * config/rs6000/sysv4.h (FP_SAVE_INLINE): Save FPRs out-of-line
3121         if we are optimizing for size.
3122         (GP_SAVE_INLINE): Define.
3123         (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): Only use _l on 64-bit targets.
3124         * config/rs6000/darwin.h (GP_SAVE_INLINE): Define.
3125         * config/rs6000/aix.h (GP_SAVE_INLINE): Define.
3126         * config/rs6000/rs6000.md (*save_gpregs_<mode>): New insn.
3127         (*save_fpregs_<mode>): Add use of r11.
3128         (*restore_gpregs_<mode>): New insn.
3129         (*return_and_restore_gpregs_<mode>): New insn.
3130         (*return_and_restore_fpregs_<mode>): Adjust to clobber LR and
3131         use r11.
3132         * config/rs6000/spe.md (*save_gpregs_spe): New insn.
3133         (*restore_gpregs_spe): New insn.
3134         (*return_and_restore_gpregs_spe): New insn.
3135         * config/rs6000/predicates.md (save_world_operation): Fix check.
3136
3137 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
3138
3139         * tree-into-ssa (insert_phi_nodes_for): 'var' must be a DECL at
3140         this point, so assert that.
3141
3142 2008-06-26  Steven Bosscher  <steven@gcc.gnu.org>
3143
3144         * cfganal.c: Include vec.h and vecprim.h.
3145         (compute_idf): Import from...
3146         * tree-into-ssa (compute_idf): ...here.
3147         * basic-block.h (compute_idf): Export.
3148
3149 2008-06-26  Joseph Myers  <joseph@codesourcery.com>
3150
3151         * c-decl.c (merge_decls): Use !current_function_decl to check for
3152         extern declaration of C99 inline function being at file scope.
3153
3154 2008-06-25  John David Anglin  <dave.anglin@gcc-cnrc.gc.ca>
3155
3156         * config.gcc (hppa[12]*-*-hpux10*): Don't use fixproto.
3157
3158 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3159
3160         * alias.c (record_alias_subset, init_alias_analysis): Fix
3161         -Wc++-compat and/or -Wcast-qual warnings.
3162         * attribs.c (lookup_attribute_spec): Likewise.
3163         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
3164         copy_bb, connect_traces,
3165         find_rarely_executed_basic_blocks_and_cr): Likewise.
3166         * bt-load.c (find_btr_def_group, add_btr_def, new_btr_user,
3167         note_btr_set, migrate_btr_defs): Likewise.
3168         * builtins.c (result_vector, expand_builtin_memcpy,
3169         expand_builtin_mempcpy_args, expand_builtin_strncpy,
3170         builtin_memset_read_str, expand_builtin_printf,
3171         fold_builtin_memchr, rewrite_call_expr, fold_builtin_printf):
3172         Likewise.
3173         * caller-save.c (mark_set_regs): Likewise.
3174         * calls.c (expand_call, emit_library_call_value_1): Likewise.
3175         * cgraph.c (cgraph_edge): Likewise.
3176         * combine.c (likely_spilled_retval_1): Likewise.
3177         * coverage.c (htab_counts_entry_hash, htab_counts_entry_eq,
3178         htab_counts_entry_del, get_coverage_counts): Likewise.
3179         * cselib.c (new_elt_list, new_elt_loc_list, entry_and_rtx_equal_p,
3180         new_cselib_val): Likewise.
3181         * dbgcnt.c (dbg_cnt_process_opt): Likewise.
3182         * dbxout.c (dbxout_init, dbxout_type, output_used_types_helper):
3183         Likewise.
3184         * df-core.c (df_compact_blocks): Likewise.
3185         * df-problems.c (df_grow_bb_info, df_chain_create): Likewise.
3186         * df-scan.c (df_grow_reg_info, df_ref_create,
3187         df_insn_create_insn_record, df_insn_rescan, df_notes_rescan,
3188         df_ref_compare, df_ref_create_structure, df_bb_refs_record,
3189         df_record_entry_block_defs, df_record_exit_block_uses,
3190         df_bb_verify): Likewise.
3191         * df.h (DF_REF_EXTRACT_WIDTH_CONST, DF_REF_EXTRACT_OFFSET_CONST,
3192         DF_REF_EXTRACT_MODE_CONST): New.
3193         * dominance.c (get_immediate_dominator, get_dominated_by,
3194         nearest_common_dominator, root_of_dom_tree,
3195         iterate_fix_dominators, first_dom_son, next_dom_son): Fix
3196         -Wc++-compat and/or -Wcast-qual warnings.
3197         * dse.c (clear_alias_set_lookup, get_group_info, gen_rtx_MEM,
3198         record_store, replace_read, check_mem_read_rtx, scan_insn,
3199         dse_step1, dse_record_singleton_alias_set): Likewise.
3200         * dwarf2asm.c (dw2_force_const_mem): Likewise.
3201
3202 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3203
3204         * dwarf2out.c (new_cfi, queue_reg_save, dwarf2out_begin_prologue,
3205         dwarf2out_frame_init, new_loc_descr, new_die, lookup_decl_die,
3206         lookup_decl_loc, add_var_loc_to_decl, compute_section_prefix,
3207         assign_symbol_names, htab_cu_hash, htab_cu_eq, htab_cu_del,
3208         build_abbrev_table, new_loc_list, output_comp_unit, add_arange,
3209         add_ranges_num, add_ranges_by_labels, file_info_cmp,
3210         file_name_acquire, output_file_names, add_const_value_attribute,
3211         premark_used_types_helper, file_table_eq, file_table_hash,
3212         lookup_filename, dwarf2out_var_location, dwarf2out_source_line,
3213         dwarf2out_init, file_table_relative_p): Fix -Wc++-compat and/or
3214         -Wcast-qual warnings.
3215         * ebitmap.c (ebitmap_array_grow, ebitmap_array_init,
3216         ebitmap_alloc, ebitmap_ior, ebitmap_and_compl): Likewise.
3217         * emit-rtl.c (get_mem_attrs, get_reg_attrs, gen_rtvec,
3218         gen_reg_rtx, start_sequence, init_emit): Likewise.
3219         * et-forest.c (et_new_occ, et_new_tree): Likewise.
3220         * except.c (init_eh_for_function, gen_eh_region,
3221         remove_unreachable_regions, add_ehl_entry, duplicate_eh_regions_1,
3222         arh_to_landing_pad, arh_to_label, add_action_record,
3223         add_call_site, switch_to_exception_section): Likewise.
3224         * expmed.c (synth_mult): Likewise.
3225         * expr.c (gen_group_rtx, emit_group_load, emit_group_store,
3226         store_expr): Likewise.
3227         * final.c (shorten_branches, final_scan_insn, debug_queue_symbol):
3228         Likewise.
3229         * function.c (assign_stack_temp_for_type,
3230         allocate_struct_function, match_asm_constraints_1): Likewise.
3231         * gcov-io.c (gcov_allocate): Likewise.
3232         * gcse.c (GNEW, GCNEW, GNEWVEC, GCNEWVEC, GRESIZEVEC, GNEWVAR,
3233         GCNEWVAR, GRESIZEVAR, GOBNEW, GOBNEWVAR): New.
3234         (gcse_main, alloc_gcse_mem, alloc_gcse_mem, alloc_reg_set_mem,
3235         record_one_set, insert_expr_in_table, insert_set_in_table,
3236         dump_hash_table, compute_hash_table_work, alloc_hash_table,
3237         pre_ldst_expr_hash, pre_ldst_expr_eq, find_rtx_in_ldst,
3238         reg_set_info, reg_clear_last_set): Fix -Wc++-compat and/or
3239         -Wcast-qual warnings.
3240
3241 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3242
3243         * cse.c (approx_reg_cost_1, cse_insn): Fix -Wc++-compat and/or
3244         -Wcast-qual warnings.
3245         * gcc.c (process_command): Likewise.
3246         * genattrtab.c (oballoc): Use XOBNEW.
3247         (oballocvec): Define.
3248         (attr_hash_add_rtx, attr_hash_add_string, attr_string,
3249         get_attr_value, fill_attr, make_length_attrs, gen_attr, gen_insn,
3250         gen_delay, find_attr, gen_insn_reserv, gen_bypass_1): Fix
3251         -Wc++-compat and/or -Wcast-qual warnings.
3252         * genautomata.c (XCREATENODE, XCREATENODEVEC, XCREATENODEVAR,
3253         XCOPYNODE, XCOPYNODEVEC, XCOPYNODEVAR): New.
3254         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
3255         gen_presence_absence_set, gen_automaton, gen_regexp_el,
3256         gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof,
3257         gen_regexp_sequence, gen_reserv, gen_insn_reserv, process_excls,
3258         add_excls, process_presence_absence_names,
3259         process_presence_absence_patterns, add_presence_absence,
3260         process_regexp, add_advance_cycle_insn_decl, get_free_alt_state,
3261         get_free_state, add_arc, get_free_automata_list_el,
3262         form_reserv_sets_list, copy_insn_regexp, transform_1, transform_2,
3263         transform_3, cache_presence, create_ainsns, create_automata,
3264         create_state_ainsn_table, dfa_insn_code_enlarge,
3265         output_trans_func, output_min_issue_delay_func,
3266         output_dead_lock_func, output_reset_func,
3267         output_get_cpu_unit_code_func, output_dfa_start_func,
3268         expand_automata): Likewise.
3269         * genextract.c (gen_insn): Likewise.
3270         * gengtype-lex.l: Likewise.
3271         * gengtype.c (read_input_list, adjust_field_type,
3272         process_gc_options): Likewise.
3273         * genoutput.c (note_constraint): Likewise.
3274         * genpreds.c (mangle, add_constraint): Likewise.
3275         * genrecog.c (process_define_predicate, new_decision,
3276         add_to_sequence): Likewise.
3277         * gensupport.c (record_insn_name): Likewise.
3278
3279 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3280
3281         * config/i386/driver-i386.c (detect_caches_amd,
3282         detect_caches_intel, host_detect_local_cpu): Fix -Wc++-compat
3283         and/or -Wcast-qual warnings.
3284         *ggc-common.c (ggc_mark_roots, gt_pch_note_object,
3285         gt_pch_note_reorder, relocate_ptrs, write_pch_globals,
3286         gt_pch_save): Likewise.
3287         * ggc-page.c (push_depth, push_by_depth, alloc_anon, alloc_page,
3288         gt_ggc_m_S, clear_marks, ggc_pch_read): Likewise.
3289         * global.c (compute_regsets): Likewise.
3290         * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file,
3291         finish_graph_dump_file): Likewise.
3292         * haifa-sched.c (schedule_block, extend_h_i_d, extend_ready,
3293         unlink_bb_notes): Likewise.
3294         * integrate.c (get_hard_reg_initial_val): Likewise.
3295         * ipa-prop.c (ipa_push_func_to_list): Likewise.
3296         * ipa-struct-reorg.c (gen_var_name, gen_cluster_name): Likewise.
3297         * local-alloc.c (update_equiv_regs): Likewise.
3298         * loop-invariant.c (check_invariant_table_size,
3299         hash_invariant_expr, eq_invariant_expr, find_or_insert_inv):
3300         Likewise.
3301         * loop-iv.c (check_iv_ref_table_size, analyzed_for_bivness_p,
3302         altered_reg_used, mark_altered): Likewise.
3303         * loop-unroll.c (si_info_eq, ve_info_eq, allocate_basic_variable,
3304         insert_var_expansion_initialization,
3305         combine_var_copies_in_loop_exit, apply_opt_in_copies,
3306         release_var_copies): Likewise.
3307         * matrix-reorg.c (mat_acc_phi_hash, mat_acc_phi_eq, mtt_info_eq,
3308         analyze_matrix_decl, add_allocation_site, analyze_transpose,
3309         analyze_accesses_for_phi_node, check_var_notmodified_p,
3310         check_allocation_function, find_sites_in_func,
3311         record_all_accesses_in_func, transform_access_sites,
3312         transform_allocation_sites): Likewise.
3313         * omp-low.c (new_omp_region, create_omp_child_function_name,
3314         check_omp_nesting_restrictions, check_combined_parallel,
3315         lower_omp_2, diagnose_sb_1, diagnose_sb_2): Likewise.
3316         * optabs.c (no_conflict_move_test, gen_libfunc, gen_fp_libfunc,
3317         gen_intv_fp_libfunc, gen_interclass_conv_libfunc,
3318         gen_intraclass_conv_libfunc, set_optab_libfunc, set_conv_libfunc):
3319         Likewise.
3320         * opts-common.c (prune_options): Likewise.
3321         * opts.c (add_input_filename, print_filtered_help,
3322         get_option_state): Likewise.
3323         * params.c (add_params): Likewise.
3324         * passes.c (set_pass_for_id, next_pass_1,
3325         do_per_function_toporder, pass_fini_dump_file): Likewise.
3326         * postreload.c (reload_cse_simplify_operands): Likewise.
3327         * predict.c (tree_predicted_by_p, tree_predict_edge,
3328         clear_bb_predictions, combine_predictions_for_bb): Likewise.
3329
3330 2008-06-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3331
3332         * ra.h (add_neighbor): Fix -Wc++-compat and/or -Wcast-qual
3333         warnings.
3334         * recog.c (check_asm_operands, validate_change_1): Likewise.
3335         * reg-stack.c (check_asm_stack_operands, subst_asm_stack_regs,
3336         subst_asm_stack_regs): Likewise.
3337         * regclass.c (regclass, som_hash, som_eq, record_subregs_of_mode,
3338         cannot_change_mode_set_regs, invalid_mode_change_p): Likewise.
3339         * regmove.c (reg_is_remote_constant_p): Likewise.
3340         * regrename.c (regrename_optimize, scan_rtx_reg,
3341         kill_clobbered_value, kill_set_value, kill_autoinc_value):
3342         Likewise.
3343         * regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
3344         regstat_compute_calls_crossed): Likewise.
3345         * reload1.c (init_reload, new_insn_chain,
3346         has_nonexceptional_receiver, reload, copy_reloads,
3347         calculate_needs_all_insns, init_elim_table): Likewise.
3348         * rtl-factoring.c (compute_rtx_cost, fill_hash_bucket): Likewise.
3349         * rtl.c (shallow_copy_rtx_stat): Likewise.
3350         * rtlanal.c (parms_set): Likewise.
3351         * sbitmap.c (sbitmap_alloc, sbitmap_alloc_with_popcount,
3352         sbitmap_resize, sbitmap_vector_alloc): Likewise.
3353         * sched-ebb.c (earliest_block_with_similiar_load,
3354         add_deps_for_risky_insns): Likewise.
3355         * sched-rgn.c (find_rgns, gather_region_statistics, extend_rgns,
3356         schedule_region): Likewise.
3357         * see.c (eq_descriptor_pre_extension,
3358         hash_descriptor_pre_extension, hash_del_pre_extension,
3359         eq_descriptor_properties, hash_descriptor_properties,
3360         hash_del_properties, see_seek_pre_extension_expr,
3361         see_initialize_data_structures, see_print_register_properties,
3362         see_print_pre_extension_expr, see_delete_merged_def_extension,
3363         see_delete_unmerged_def_extension, see_emit_use_extension,
3364         see_pre_delete_extension, see_map_extension, see_commit_changes,
3365         see_analyze_merged_def_local_prop,
3366         see_analyze_merged_def_local_prop,
3367         see_analyze_unmerged_def_local_prop, see_analyze_use_local_prop,
3368         see_set_prop_merged_def, see_set_prop_unmerged_def,
3369         see_set_prop_unmerged_use, see_print_one_extension,
3370         see_merge_one_use_extension, see_merge_one_def_extension,
3371         see_store_reference_and_extension, see_update_uses_relevancy,
3372         see_update_defs_relevancy): Likewise.
3373         * statistics.c (hash_statistics_hash, hash_statistics_eq,
3374         hash_statistics_free, curr_statistics_hash): Likewise.
3375         * stmt.c (parse_output_constraint, decl_overlaps_hard_reg_set_p,
3376         expand_asm_operands, expand_return, case_bit_test_cmp,
3377         expand_case): Likewise.
3378         * stor-layout.c (start_record_layout): Likewise.
3379         * stringpool.c (ggc_alloc_string, gt_pch_n_S,
3380         gt_pch_save_stringpool): Likewise.
3381         * tree-data-ref.c (hash_stmt_vertex_info,
3382         have_similar_memory_accesses_1, ref_base_address_1): Likewise.
3383         * tree-ssa-phiopt.c (name_to_bb_hash): Likewise.
3384
3385 2008-06-25  Uros Bizjak  <ubizjak@gmail.com>
3386
3387         PR target/36627
3388         * config/i386/i386.md : Change constraints of HImode and QImode
3389         immediate operands from "i" to "n".  Change SImode "ni" constraint to
3390         "i" and SImode "rmi" constraint to "g".  Remove all constraints
3391         from const0_operand and const1_operand predicated operands.
3392         (i): Change QImode and HImode attribute from "i" to "n".
3393         (*subqi_2): Change HImode operands to QImode.
3394         (*subqi_3): Ditto.
3395
3396 2008-06-25  Olivier Hainque  <hainque@adacore.com>
3397
3398         * Makefile.in (GTFILES_H): Use | instead of ; as separator in
3399         sed substitutions.
3400
3401 2008-06-25  Richard Guenther  <rguenther@suse.de>
3402
3403         * tree-ssa-structalias.c (fieldoff_compare): Make sure to
3404         not overflow the result type.
3405
3406 2008-06-25  Richard Guenther  <rguenther@suse.de>
3407
3408         * tree-vn.c (vn_add): Handle TRUTH_*_EXPR.
3409         (vn_lookup): Likewise.
3410
3411 2008-06-25  Richard Guenther  <rguenther@suse.de>
3412
3413         PR tree-optimization/35518
3414         * fold-const.c (fold_ternary): Strip trivial BIT_FIELD_REFs.
3415         * tree-sra.c (instantiate_element): Use fold_build3 to build
3416         BIT_FIELD_REFs.
3417         (try_instantiate_multiple_fields): Likewise.
3418
3419 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3420
3421         * config/rs6000/rs6000.md: Change all string instruction's clobber to
3422         be early clobbers.
3423
3424 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3425
3426         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Set
3427         use_backchain_to_restore_sp to true
3428         if the offset of the link register save area would go over the 32k - 1
3429         offset limit of the load
3430         instructions.
3431
3432 2008-06-25  Hans-Peter Nilsson  <hp@axis.com>
3433
3434         * doc/invoke.texi (Optimize Options) <fstrict-aliasing>: Add
3435         anchor for the type-punning blurb.  Cross-reference "Structures
3436         unions enumerations and bit-fields implementation".  Provide a
3437         cast-through-pointer example.  Make final sentence self-contained.
3438         * doc/implement-c.texi (Structures unions enumerations and
3439         bit-fields implementation): Cross-reference the type-punning blurb
3440         in the -fstrict-aliasing documentation.
3441
3442 2008-06-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3443
3444         PR middle-end/36594
3445         * builtins.c (expand_builtin_nonlocal_goto): Stabilize the address of
3446         the memory instead of the memory itself for the save area.
3447
3448 2008-06-24  Olivier Hainque  <hainque@adacore.com>
3449             Nicolas Roche  <roche@adacore.com>
3450
3451         * gengtype.c (srcdir_len): size_t instead of int.
3452         (get_file_realbasename): New function.  For F a filename, the real
3453         basename of F, with all the path components stripped.
3454         (get_file_srcdir_relative_path): New function.  For F a filename, the
3455         relative path to F from $(srcdir).
3456         (get_file_basename): Rewrite using get_file_srcdir_relative_path and
3457         get_file_realbasename.  Adjust the head comment.
3458         (get_prefix_langdir_index): New function. For F a filename, return the
3459         lang_dir_names[] relative index of the language directory that is
3460         a prefix in F.
3461         (get_file_langdir): For F a filename, return the name of the language
3462         directory where F is located.
3463         (get_file_gtfilename): New function. The gt- output file name for an
3464         input filename F.
3465         (get_output_file_with_visibility): Replace in-line computations with
3466         uses of get_file_gtfilename and get_prefix_langdir_index.
3467         * Makefile.in (GTFILES_H): Adjust to match what gengtype generates.
3468
3469 2008-06-24  Jakub Jelinek  <jakub@redhat.com>
3470
3471         PR tree-optimization/36504
3472         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Skip
3473         references without base address.
3474
3475 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3476
3477         PR middle-end/36584
3478         * calls.c (expand_call): Increase alignment for recursive functions.
3479
3480 2008-06-23  Anatoly Sokolov  <aesok@post.ru>
3481
3482         * config/avr/avr.c (avr_function_value): Add new 'outgoing' argument.
3483         (TARGET_FUNCTION_VALUE): New define.
3484         * config/avr/avr-protos.h (avr_function_value): Remove declaration.
3485         * config/avr/avr.h (FUNCTION_VALUE): Remove.
3486
3487 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3488
3489         * config/i386/i386.md (fmodxf3): Change sequence of move instructions.
3490         (fmod<mode>3): Ditto.
3491         (remainderxf3): Ditto.
3492         (remainder<mode>3): Ditto.
3493
3494 2008-06-23  Jakub Jelinek  <jakub@redhat.com>
3495
3496         PR target/36533
3497         * emit-rtl.c (set_reg_attrs_from_value): Do nothing if
3498         REG is a hard register.
3499
3500         PR tree-optimization/36508
3501         * tree-ssa-pre.c (compute_antic): Allow num_iterations up to
3502         499, don't check it at all in release compilers.
3503
3504 2008-06-23  Uros Bizjak  <ubizjak@gmail.com>
3505
3506         * config/i386/i386.md (*fop_<mode>_1_i387): Use SSE_FLOAT_MODE_P
3507         together with SSE_TARGET_MATH to disable insn pattern.
3508         (*fop_<MODEF:mode>_2_i387): Ditto.
3509         (*fop_<MODEF:mode>_3_i387): Ditto.
3510
3511 2008-06-22  Andy Hutchinson  <hutchinsonandy@aim.com>
3512
3513         * config/avr/avr.h (SUPPORTS_INIT_PRIORITY): Define.
3514         
3515 2008-06-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3516
3517         PR middle-end/34906
3518         * gimplify.c (gimplify_asm_expr): Check the return code of
3519         parse_output_constraint call, set function return and is_inout
3520         value if it failed.
3521
3522 2008-06-22  Ian Lance Taylor  <iant@google.com>
3523
3524         * c-lex.c (narrowest_unsigned_type): Change itk to int.
3525         (narrowest_signed_type): Likewise.
3526         * c-typeck.c (c_common_type): Change local variable mclass to enum
3527         mode_class, twice.
3528         (parser_build_binary_op): Compare the TREE_CODE_CLASS with
3529         tcc_comparison, not the tree code itself.
3530         * c-common.c (def_fn_type): Pass int, not an enum, to va_arg.
3531         (c_expand_expr): Cast modifier to enum expand_modifier.
3532         * c-common.h (C_RID_CODE): Add casts.
3533         (C_SET_RID_CODE): Define.
3534         * c-parser.c (c_parse_init): Use C_SET_RID_CODE.
3535         (c_lex_one_token): Add cast to avoid warning.
3536         (c_parser_objc_type_name): Rename local typename to type_name.
3537         (check_no_duplicate_clause): Change code parameter to enum
3538         omp_clause_code.
3539         (c_parser_omp_var_list_parens): Change kind parameter to enum
3540         omp_clause_code.
3541         (c_parser_omp_flush): Pass OMP_CLAUSE_ERROR, not 0, to
3542         c_parser_omp_list_var_parens.
3543         (c_parser_omp_threadprivate): Likewise.
3544         * cp/lex.c (init_reswords): Use C_SET_RID_CODE.
3545         * cp/parser.c (cp_lexer_get_preprocessor_token): Likewise.
3546         * c-format.c (NO_FMT): Define.
3547         (printf_length_specs): Use NO_FMT.
3548         (asm_fprintf_length_specs): Likewise.
3549         (gcc_diag_length_specs): Likewise.
3550         (scanf_length_specs): Likewise.
3551         (strfmon_length_specs): Likewise.
3552         (gcc_gfc_length_specs): Likewise.
3553         (printf_flag_specs): Change 0 to STD_C89.
3554         (asm_fprintf_flag_specs): Likewise.
3555         (gcc_diag_flag_specs): Likewise.
3556         (gcc_cxxdiag_flag_specs): Likewise.
3557         (scanf_flag_specs): Likewise.
3558         (strftime_flag_specs): Likewise.
3559         (strfmon_flag_specs): Likewise.
3560         (print_char_table): Likewise.
3561         (asm_fprintf_char_table): Likewise.
3562         (gcc_diag_char_table): Likewise.
3563         (gcc_tdiag_char_table): Likewise.
3564         (gcc_cdiag_char_table): Likewise.
3565         (gcc_cxxdiag_char_table): Likewise.
3566         (gcc_gfc_char_table): Likewise.
3567         (scan_char_table): Likewise.
3568         (time_char_table): Likewis.
3569         (monetary_char_table): Likewise.
3570         * c-format.h (BADLEN): Likewise.
3571
3572 2008-06-21  Ian Lance Taylor  <iant@google.com>
3573
3574         * tree.h (enum tree_code): Include all-tree.def, not tree.def.
3575         Define END_OF_BASE_TREE_CODES around inclusion.
3576         * tree.c (tree_code_type): New global array.
3577         (tree_code_length, tree_code_name): Likewise.
3578         * Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
3579         $(lang_tree_files).
3580         (all-tree.def, s-alltree): New targets.
3581         (gencheck.h, s-gencheck): Remove.
3582         (tree.o): Depend upon all-tree.def.
3583         (build/gencheck.o): Remove gencheck.h dependency.
3584         (mostlyclean): Don't remove gencheck.h.
3585         * c-common.h (enum c_tree_code): Remove.
3586         * c-lang.c (tree_code_type): Remove.
3587         (tree_code_length, tree_code_name): Remove.
3588         * gencheck.c (tree_codes): Include all-tree.def, rather than
3589         tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
3590         after it is used.
3591         * tree-browser.c (tb_tree_codes): Include all-tree.def, rather
3592         than tree.def.
3593         * cp/cp-tree.h (enum cplus_tree_code): Remove.
3594         (operator_name_info): Size to MAX_TREE_CODES.
3595         (assignment_operator_name_info): Likewise.
3596         * cp/cp-lang.c (tree_code_type): Remove.
3597         (tree_code_length, tree_code_name): Remove.
3598         * cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
3599         (assignment_operator_name_info): Likewise.
3600         * cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
3601         MAX_TREE_CODES.
3602         * cp/mangle.c (write_expression): Likewise.
3603         * cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
3604         * fortran/f95-lang.c (tree_code_type): Remove.
3605         (tree_code_length, tree_code_name): Remove.
3606         * java/java-tree.h (enum java_tree_code): Remove.
3607         * java/lang.c (tree_code_type): Remove.
3608         (tree_code_length, tree_code_name): Remove.
3609         * java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
3610         * objc/objc-act.h (enum objc_tree_code): Remove.
3611         * objc/objc-lang.c (tree_code_type): Remove.
3612         (tree_code_length, tree_code_name): Remove.
3613         * objcp/objcp-lang.c (tree_code_type): Remove.
3614         (tree_code_length, tree_code_name): Remove.
3615         * ada/ada-tree.h (enum gnat_tree_code): Remove.
3616         * ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
3617         * ada/misc.c (tree_code_type): Remove.
3618         (tree_code_length, tree_code_name): Remove.
3619
3620 2008-06-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3621
3622         * tree-ssa-pre.c (fini_antic): Bitmap_sets have to be freed before
3623         the grand_bitmap_obstack.
3624
3625 2008-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3626
3627         * ggc.h (GGC_RESIZEVAR): New, reorder macros.
3628         * tracer.c (tail_duplicate): Fix for -Wc++-compat.
3629         * tree-affine.c (aff_combination_expand, free_name_expansion): Likewise.
3630         * tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
3631         move_stmt_r, new_label_mapper): Likewise.
3632         * tree-complex.c (cvc_lookup): Likewise.
3633         * tree-dfa.c (create_function_ann): Likewise.
3634         * tree-dump.c (dump_register): Likewise.
3635         * tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
3636         find_phi_replacement_condition): Likewise.
3637         * tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
3638         tree_function_versioning): Likewise.
3639         * tree-into-ssa.c (cmp_dfsnum): Likewise.
3640         * tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
3641         * tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
3642         get_nonlocal_debug_decl, convert_nonlocal_reference,
3643         convert_nonlocal_omp_clauses, get_local_debug_decl,
3644         convert_local_reference, convert_local_omp_clauses,
3645         convert_nl_goto_reference, convert_nl_goto_receiver,
3646         convert_tramp_reference, convert_call_expr): Likewise.
3647         * tree-outof-ssa.c (contains_tree_r): Likewise.
3648         * tree-parloops.c (reduction_phi, initialize_reductions,
3649         eliminate_local_variables_1, add_field_for_reduction,
3650         add_field_for_name, create_phi_for_local_result,
3651         create_call_for_reduction_1, create_loads_for_reductions,
3652         create_stores_for_reduction, create_loads_and_stores_for_name):
3653         Likewise.
3654         * tree-phinodes.c (allocate_phi_node): Likewise.
3655         * tree-predcom.c (order_drefs, execute_pred_commoning_cbck): Likewise.
3656         * tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element): Likewise.
3657         * tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
3658         * tree-ssa-coalesce.c (compare_pairs): Likewise.
3659         * tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
3660         memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
3661         record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
3662         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
3663         * tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
3664         vn_nary_op_insert): Likewise.
3665         * tree-ssa.c (redirect_edge_var_map_add,
3666         redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
3667         * tree-vectorizer.c (vectorize_loops): Likewise.
3668         * tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
3669         build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
3670         tree_cons_stat, build1_stat, build_variant_type_copy,
3671         decl_init_priority_lookup, decl_fini_priority_lookup,
3672         decl_priority_info, decl_restrict_base_lookup,
3673         decl_restrict_base_insert, decl_debug_expr_lookup,
3674         decl_debug_expr_insert, decl_value_expr_lookup,
3675         decl_value_expr_insert, type_hash_eq, type_hash_lookup,
3676         type_hash_add, get_file_function_name, tree_check_failed,
3677         tree_not_check_failed, tree_range_check_failed,
3678         omp_clause_range_check_failed, build_omp_clause,
3679         build_vl_exp_stat): Likewise.
3680         * value-prof.c (gimple_histogram_value,
3681         gimple_duplicate_stmt_histograms): Likewise.
3682         * var-tracking.c (attrs_list_insert, attrs_list_copy,
3683         unshare_variable, variable_union_info_cmp_pos, variable_union,
3684         dataflow_set_different_1, dataflow_set_different_2,
3685         vt_find_locations, variable_was_changed, set_variable_part,
3686         emit_notes_for_differences_1, emit_notes_for_differences_2): Likewise.
3687         * varasm.c (prefix_name, emutls_decl, section_entry_eq,
3688         section_entry_hash, object_block_entry_eq,
3689         object_block_entry_hash, create_block_symbol,
3690         initialize_cold_section_name, default_function_rodata_section,
3691         strip_reg_name, set_user_assembler_name, const_desc_eq,
3692         build_constant_desc, output_constant_def, lookup_constant_def,
3693         const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
3694         create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
3695         default_internal_label): Likewise.
3696         * varray.c (varray_init, varray_grow): Likewise.
3697         * vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
3698
3699 2008-06-20  Uros Bizjak  <ubizjak@gmail.com>
3700
3701         * config/i386/i386.md (*jcc_fused_1): Handle all valid compare
3702         operators for "test" insn.  Macroize insn using SWI mode macro.
3703         (*jcc_fused_2): Ditto.
3704         (*jcc_fused_3): Macroize insn using SWI mode macro.
3705         (*jcc_fused_4): Ditto.
3706
3707 2008-06-20  Bernhard Fischer  <aldot@gcc.gnu.org>
3708
3709         * tree-ssa-pre.c: Fix typo in comment.
3710         (init_antic, fini_antic): Add explicit funtions for
3711         initializing and deinitializing ANTIC and AVAIL sets.
3712         (create_expression_by_pieces): Fix typo in comment.
3713         Remove redundant set of new_stuff and use NULL_TREE instead of NULL.
3714         (execute_pre): Eventually dump details about ANTIC_IN.
3715
3716 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3717
3718         * collect2.c (main, add_to_list): Fix for -Wc++-compat.
3719         * gcc.c (translate_options, init_spec, store_arg, read_specs,
3720         add_to_obstack, file_at_path, find_a_file, execute,
3721         add_preprocessor_option, add_assembler_option, add_linker_option,
3722         process_command, insert_wrapper, do_option_spec, do_self_spec,
3723         spec_path, do_spec_1, is_directory, main, used_arg,
3724         getenv_spec_function): Likewise.
3725         * tlink.c (symbol_hash_lookup, file_hash_lookup,
3726         demangled_hash_lookup, symbol_push, file_push, frob_extension):
3727         Likewise.
3728
3729 2008-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
3730
3731         * doc/rtl.texi: Updated subreg section.
3732
3733 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
3734
3735         PR c++/36523
3736         * cgraphunit.c (cgraph_process_new_functions): Don't clear
3737         node->needed and node->reachable.
3738         * cgraphbuild.c (record_reference): Handle OMP_PARALLEL and OMP_TASK.
3739         * omp-low.c (delete_omp_context): Call finalize_task_copyfn.
3740         (expand_task_call): Don't call expand_task_copyfn.
3741         (expand_task_copyfn): Renamed to...
3742         (finalize_task_copyfn): ... this.
3743
3744 2008-06-19  Jan Hubicka  <jh@suse.cz>
3745
3746         * builtins.c (expand_builtin_nonlocal_goto): Stabilize r_sp before
3747         clobbering framepointer.
3748
3749 2008-06-19  Jan Hubicka  <jh@suse.cz>
3750
3751         * tree-optimize.c (execute_early_local_optimizations): Set
3752         cgraph_state only at first invocation.
3753
3754 2008-06-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3755
3756         * system.h (-Wc++-compat): Activate as a warning, no an error.
3757
3758 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3759
3760         * config/i386/i386.md (*jcc_fused_1): Use ASM_COMMENT_START
3761         instead of "#" in insn asm template.
3762         (*jcc_fused_2): Ditto.
3763
3764 2008-06-19  Uros Bizjak  <ubizjak@gmail.com>
3765
3766         * config/i386/i386.h (ix86_tune_indices)
3767         [X86_TUNE_FUSE_CMP_AND_BRANCH]: New.
3768         (TARGET_FUSE_CMP_AND_BRANCH): New define.
3769         * config/i386/i386.md (*jcc_fused_1): New insn pattern
3770         (*jcc_fused_2): Ditto.
3771         * config/i386/i386.c (ix86_tune_features): Add m_CORE2 to
3772         X86_TUNE_FUSE_CMP_AND_BRANCH targets.
3773         (print operand): Handle 'E' and 'e' code.
3774
3775 2008-06-19  Anatoly Sokolov  <aesok@post.ru>
3776
3777         * config/avr/avr.c (avr_mcu_t): Add attiny13a.
3778         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3779         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3780
3781 2008-06-19  Bernhard Fischer  <aldot@gcc.gnu.org>
3782
3783         * cgraphunit.c (cgraph_finalize_function): Remove redundant setting of
3784         node->decl.
3785         (cgraph_expand_function): Use local copy of decl.
3786         (cgraph_expand_all_functions): Remove redundant initialization of
3787         order_pos.
3788         (cgraph_optimize): Reword internal_error message.
3789
3790 2008-06-19  Chung-Lin Tang  <ctang@marvell.com>
3791
3792         * arm-protos.h (arm_return_in_memory): Remove public
3793         arm_return_in_memory() prototype.
3794         * arm.c (arm_return_in_memory): Add static prototype, add target
3795         hook macro, change definition and comments.
3796         * arm.h (TARGET_RETURN_IN_MEMORY): Remove.
3797
3798 2008-06-19  Ben Elliston  <bje@au.ibm.com>
3799
3800         * dfp.h, dfp.c, config/dfp-bit.h, config/dfp-bit.c, real.h,
3801         real.c: Remove references to IEEE 754R.
3802         * doc/install.texi (Configuration): IEEE 754R -> IEEE 754-2008.
3803         * doc/libgcc.texi (Decimal float library routines): Likewise.
3804
3805 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3806
3807         * targhooks.h (struct gcc_target): New member unwind_word_mode.
3808         (default_unwind_word_mode): Add prototype.
3809         * targhooks.c (default_unwind_word_mode): New function.
3810         (default_eh_return_filter_mode): Return targetm.unwind_word_mode ()
3811         instead of word_mode.
3812         * target-def.h (TARGET_UNWIND_WORD_MODE): New macro.
3813         (TARGET_INITIALIZER): Use it.
3814
3815         * c-common.c (handle_mode_attribute): Support "unwind_word"
3816         mode attribute.
3817         * unwind-generic.h (_Unwind_Word, _Unwind_Sword): Use it.
3818
3819         * except.c (init_eh): Use targetm.unwind_word_mode () instead of
3820         word_mode to access SjLj_Function_Context member "data".
3821         (sjlj_emit_dispatch_table): Likewise.  Also, perform type
3822         conversion from targetm.eh_return_filter_mode () to
3823         targetm.unwind_word_mode () if they differ.
3824
3825         * builtin-types.def (BT_UNWINDWORD): New primitive type.
3826         (BT_FN_UNWINDWORD_PTR): New function type.
3827         (BT_FN_WORD_PTR): Remove.
3828         * builtins.def (BUILT_IN_EXTEND_POINTER): Use BT_FN_UNWINDWORD_PTR.
3829         * except.c (expand_builtin_extend_pointer): Convert pointer to
3830         targetm.unwind_word_mode () instead of word_mode.
3831
3832         * config/spu/spu-protos.h (spu_eh_return_filter_mode): Remove.
3833         * config/spu/spu.c (spu_eh_return_filter_mode): Remove.
3834         (spu_unwind_word_mode): New function.
3835         (TARGET_EH_RETURN_FILTER_MODE): Do not define.
3836         (TARGET_UNWIND_WORD_MODE): Define.
3837         * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS): Remove -D__word__=SI.
3838
3839 2008-06-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3840
3841         * config/spu/spu.c (reg_align): Remove.
3842         (regno_aligned_for_load): Also accept ARG_POINTER_REGNUM.
3843         (spu_split_load): Use regno_aligned_for_load instead of reg_align.
3844         (spu_split_store): Likewise.
3845
3846 2008-06-18  Bernhard Fischer  <aldot@gcc.gnu.org>
3847
3848         * gcc/tree-vn.c: Fix typo in comment.
3849
3850 2008-06-18  Jan Hubicka  <jh@suse.cz>
3851
3852         * cgraphunit.c (cgraph_optimize): Output debug info when doing
3853         toplevel reorder too.
3854
3855 2008-06-18  Jan Hubicka  <jh@suse.cz>
3856
3857         * c-opts.c (c_common_post_options): PCH is not compatible with
3858         no-unit-at-a-time.
3859         * opts.c (handle_options): Enable unit-at-a-time at O0 along with
3860         -fno-toplevel-reorder by default now.
3861
3862 2008-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3863
3864         PR documentation/30739
3865         * doc/install.texi (Prerequisites): Document dependency on awk.
3866
3867 2008-06-18  Uros Bizjak  <ubizjak@gmail.com>
3868             Ian Lance Taylor  <iant@google.com>
3869
3870         PR rtl-optimization/35604
3871         * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We
3872         only want to change jump destinations, not eventual label comparisons.
3873
3874 2008-06-16  Jan Hubicka  <jh@suse.cz>
3875
3876         * cgraphunit.c (cgraph_expand_pending_functions): Give up at
3877         syntax errors.
3878         (cgraph_analyze_function): Likewise.
3879
3880 2008-06-16  Jan Hubicka  <jh@suse.cz>
3881
3882         * cgraph.h (cgraph_mark_if_needed): New function.
3883         * cgraphunit.c (cgraph_mark_if_needed): New function.
3884         * c-decl.c (duplicate_decl): Use it.
3885
3886 2008-06-16  Jan Hubicka  <jh@suse.cz>
3887
3888         * cgraph.c (cgraph_add_new_function): When in expansion state, do
3889         lowering.
3890
3891 2008-06-16  Jan Hubicka  <jh@suse.cz>
3892
3893         * tree-outof-ssa.c (pass_out_of_ssa): Do not depend on PROP_alias.
3894
3895 2008-06-16  Daniel Jacobowitz  <dan@codesourcery.com>
3896             Kazu Hirata  <kazu@codesourcery.com>
3897             Maxim Kuvyrkov  <maxim@codesourcery.com
3898
3899         * config.gcc (mips64el-st-linux-gnu): Use mips/st.h and mips/t-st.
3900         * config.host: Use driver-native.o and mips/x-native for mips*-linux*.
3901         * config/mips/linux.h (host_detect_local_cpu): Declare, add to
3902         EXTRA_SPEC_FUNCTIONS.
3903         (MARCH_MTUNE_NATIVE_SPECS, BASE_DRIVER_SELF_SPECS): New macros.
3904         (DRIVER_SELF_SPECS): Adjust.
3905         * config/mips/linux64.h (DRIVER_SELF_SPECS): Update.
3906         * config/mips/st.h, config/mips/t-st: New.
3907         * config/mips/driver-native.c, config/mips/x-native: New.
3908         * doc/invoke.texi (MIPS): Document 'native' value for -march and
3909         -mtune options.
3910
3911 2008-06-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3912
3913         * config/mips/mips.h (ISA_HAS_CONDMOVE): Slice ISA_HAS_FP_CONDMOVE
3914         from it.
3915         (ISA_HAS_FP_CONDMOVE): New macro.
3916         (ISA_HAS_FP_MADD4_MSUB4, ISA_HAS_FP_MADD3_MSUB3): New macros.
3917         (ISA_HAS_NMADD_NMSUB): Rename to ISA_HAS_NMADD4_NMSUB4.
3918         (ISA_HAS_NMADD3_NMSUB3): New macro.
3919         * config/mips/mips.c (mips_rtx_costs): Update.
3920         * config/mips/mips.md (MOVECC): Don't use FP conditional moves when
3921         compiling for ST Loongson 2E/2F.
3922         (madd<mode>): Rename to madd4<mode>.  Update.
3923         (madd3<mode>): New pattern.
3924         (msub<mode>): Rename to msub4<mode>.  Update.
3925         (msub3<mode>): New pattern.
3926         (nmadd<mode>): Rename to nmadd4<mode>.  Update.
3927         (nmadd3<mode>): New pattern.
3928         (nmadd<mode>_fastmath): Rename to nmadd4<mode>_fastmath.  Update.
3929         (nmadd3<mode>_fastmath): New pattern.
3930         (nmsub<mode>): Rename to nmsub4<mode>.  Update.
3931         (nmsub3<mode>): New pattern.
3932         (nmsub<mode>_fastmath): Rename to nmsub4<mode>_fastmath.  Update.
3933         (nmsub3<mode>_fastmath): New pattern.
3934         (mov<SCALARF:mode>_on_<MOVECC:mode>, mov<mode>cc): Update.
3935
3936 2008-06-18  Steven Bosscher  <steven@gcc.gnu.org>
3937
3938         * df.h (struct df_ref): Replace 'insn' field with 'insn_info' field.
3939         (DF_REF_INSN_INFO): New.
3940         (DF_REF_INSN, DF_REF_INSN_UID): Rewrite macros using DF_REF_INSN_INFO.
3941         (DF_REF_IS_ARTIFICIAL): Artificial refs are now identified as refs
3942         with a NULL DF_REF_INSN_INFO.
3943         (DF_INSN_INFO_GET, DF_INSN_INFO_SET): Renamed from DF_INSN_GET and
3944         DF_INSN_SET.
3945         (DF_INSN_INFO_LUID, DF_INSN_INFO_DEFS, DF_INSN_INFO_USES,
3946         DF_INSN_INFO_EQ_USES): New.
3947         (DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, DF_INSN_EQ_USES,
3948         DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
3949         DF_INSN_UID_EQ_USES): Rewrite using DF_INSN_INFO_* macros.
3950         * df-core.c: Update comment for above changes.
3951         (df_insn_debug_regno): Use DF_INSN_INFO_GET instead of INSN_UID and
3952         DF_INSN_UID_* macros.
3953         (df_ref_debug): Check for NULL DF_REF_INSN_INFO.
3954         * df-scan.c (df_ref_record): Take a df_insn_info instead of an
3955         insn rtx.  Update all callers.
3956         (df_def_record_1, df_defs_record, df_uses_record, df_get_call_refs,
3957         df_ref_create_structure, df_insn_refs_collect): Likewise.
3958         (df_ref_equal_p): Compare DF_REF_INSN_INFO pointers for the refs.
3959         * df-problems.c (df_chain_dump): Test for non-NULL DF_REF_INSN_INFO.
3960         (df_live_bb_local_compute): Retrieve DF_INSN_INFO, use DF_INSN_INFO_*
3961         macros to access the insn refs.
3962         (df_chain_top_dump, df_chain_bottom_dump, df_byte_lr_alloc): Likewise.
3963         * fwprop.c (use_killed_between): Use DF_REF_INSN accessor macro.
3964         (all_uses_available): Retrieve DF_INSN_INFO for def_insn, and use it
3965         for accessing the refs.
3966         (try_fwprop_subst): Likewise.
3967         * ddg.c (add_cross_iteration_register_deps): Use DF_REF_INSN macro.
3968         * web.c (union_defs): Retrieve DF_INSN_INFO for def_insn, and use it
3969         for accessing the refs.
3970         * loop-invariant.c (invariant_for_use): Use DF_REF_BB macro.
3971         (check_dependencies): Use DF_INSN_INFO_GET, use DF_INSN_INFO_* macros
3972         to look at the insn refs.
3973         (record_uses): Likewise.
3974         * dce.c (deletable_insn_p): Don't tolerate artificial DEFs in this
3975         function anymore.
3976         (mark_artificial_uses): Don't mark_insn for artificial refs.
3977         (mark_reg_rependencies): Likewise.
3978
3979         * doc/rtl.texi: Remove documentation of ADDRESSOF.
3980
3981 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3982
3983         * configure: Regenerate.
3984
3985 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3986
3987         * config/avr/avr.c (avr_mcu_t): Remove atmega32hvb.
3988         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3989         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3990
3991 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3992
3993         * config/avr/avr.c (avr_mcu_t): Add attiny167.
3994         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
3995         * gcc/config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
3996
3997 2008-06-17  Eric B. Weddington  <eric.weddington@atmel.com>
3998
3999         * config/avr/avr.c (avr_mcu_t): Add atmega32u4.
4000         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. 
4001         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
4002
4003 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
4004
4005         * tree-ssa-sccvn.c: Fix format of comments.
4006
4007 2008-06-17  Bernhard Fischer  <aldot@gcc.gnu.org>
4008
4009         * cgraph.c: Remove unneeded forward declarations of eq_node()
4010         and hash_node().
4011
4012 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
4013
4014         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
4015         REG_RETVAL notes.
4016         (see_update_relevancy): Likewise.
4017         * fwprop.c (try_fwprop_subst): Likewise.
4018         * rtlanal.c (noop_move_p): Likewise.
4019         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
4020         notes to non-existing libcall blocks.
4021         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
4022         Remove orig_set.
4023         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
4024         (dead_libcall_p): Remove.
4025         (delete_trivially_dead_insns): Don't use it.
4026         * web.c (union_defs): Remove comment about keeping nops.
4027         * gcse.c (hash_scan_insn): Don't take libcall pointers.
4028         (compute_hash_table_work): Don't track libcall notes.
4029         (do_local_cprop): Don't take libcall pointers.  Don't update
4030         libcall notes.
4031         (adjust_libcall_notes): Deleted.
4032         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
4033         ever have existed in the first place).
4034         (replace_store_insn): Don't try to remove libcall notes.
4035         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
4036         (resolve_reg_notes): Don't call them.
4037         (resolve_simple_move): Likewise.
4038         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
4039         Don't remove REG_RETVAL notes.
4040         * emit-rtl.c (try_split): Don't update libcall notes.
4041         (emit_copy_of_insn_after): Dito.
4042         * cselib.c (cselib_current_insn_in_libcall): Remove.
4043         (cselib_process_insn): Don't set/clear it.
4044         (new_elt_loc_list): Don't record it.
4045         (cselib_init): Don't initialize it.
4046         * cselib.c (struct elt_loc_list): Remove in_libcall field.
4047         * loop-invariant.c (find_invariant_insn): Don't look for libcall
4048         notes.
4049         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
4050         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
4051         (init_deps): Don't initialize it.
4052         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
4053         * combine.c (delete_noop_moves): Don't update libcall notes.
4054         (can_combine_p): Remove now pointless #if 0 block.
4055         (try_combine): Remove another obsolete #if 0 block.
4056         (distribute_notes): Don't distribute libcall notes.
4057         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
4058         * dce.c (libcall_dead_p): Remove.
4059         (delete_unmarked_insns): Don't handle libcall blocks.
4060         (preserve_libcall_for_dce): Remove.
4061         (prescan_insns_for_dce): Don't special-case libcall block insns.
4062         * reload1 (reload): Don't handle libcall notes. 
4063         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
4064         documentation.
4065
4066 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
4067
4068         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
4069         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
4070         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
4071
4072 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
4073
4074         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
4075         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
4076         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
4077
4078 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4079
4080         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
4081
4082 2008-06-16  Ira Rosen  <irar@il.ibm.com>
4083
4084         PR tree-optimization/36493
4085         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
4086         the arguments list. Use VECTYPE to create vector pointer.
4087         (vectorizable_store): Fail if accesses through a pointer to vectype
4088         do not alias the original memory reference operands.
4089         Call vect_create_data_ref_ptr without the removed argument.
4090         (vectorizable_load): Likewise.
4091         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
4092         removed argument.
4093
4094 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
4095
4096         PR target/36336
4097         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
4098         reg_equiv_constant.
4099
4100 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
4101
4102         * config/mips/loongson2ef.md: New file.
4103         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
4104         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
4105         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
4106         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
4107         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
4108         and loongson_2f.
4109         (loongson2ef.md): New include.
4110         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
4111         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
4112         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
4113         (loongson_gt_<mode>, loongson_extract_halfword)
4114         (loongson_insert_halfword_0, loongson_insert_halfword_2)
4115         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
4116         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
4117         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
4118         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
4119         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
4120         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
4121         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
4122         (vec_interleave_low<mode>): Define type attribute.
4123         * config/mips/mips.c (mips_ls2): New static variable.
4124         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
4125         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
4126         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
4127         Implement target scheduling hooks.
4128         (mips_multipass_dfa_lookahead): Update to handle tuning for
4129         Loongson 2E/2F.
4130         (mips_sched_init): Initialize data for Loongson scheduling.
4131         (mips_ls2_variable_issue): New static function.
4132         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
4133         Add sanity check.
4134         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
4135         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
4136         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
4137         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
4138         Handle ST Loongson 2E/2F cores.
4139         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
4140
4141 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4142
4143         * omp-low.c (extract_omp_for_data): Fix comment typo.
4144         * c.opt: Fix typo.
4145
4146 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4147
4148         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
4149         FIXME note about gcc/config.guess.
4150         * doc/options.texi (Option file format): Remove non-ASCII bytes.
4151         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
4152         * doc/cppopts.texi: Likewise.
4153         * doc/extend.texi: Likewise.
4154         * doc/gcc.texi: Likewise.
4155         * doc/gccint.texi: Likewise.
4156         * doc/gcov.texi: Likewise.
4157         * doc/gty.texi: Likewise.
4158         * doc/hostconfig.texi: Likewise.
4159         * doc/install.texi: Likewise.
4160         * doc/invoke.texi: Likewise.
4161         * doc/loop.texi: Likewise.
4162         * doc/makefile.texi: Likewise.
4163         * doc/md.texi: Likewise.
4164         * doc/passes.texi: Likewise.
4165         * doc/tm.texi: Likewise.
4166         * doc/tree-ssa.texi: Likewise.
4167         * doc/trouble.texi: Likewise.
4168
4169 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
4170             Nathan Sidwell  <nathan@codesourcery.com>
4171             Maxim Kuvyrkov  <maxim@codesourcery.com>
4172             Richard Sandiford  <rdsandiford@googlemail.com>
4173         
4174         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
4175         * config/mips/mips-protos.h (mips_expand_vector_init): New.
4176         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
4177         builtins.
4178         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
4179         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
4180         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
4181         V8QImode cases.
4182         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
4183         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
4184         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
4185         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
4186         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
4187         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
4188         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
4189         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
4190         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
4191         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
4192         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
4193         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
4194         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
4195         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
4196         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
4197         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
4198         (mips_builtins): Add Loongson builtins.
4199         (mips_loongson_2ef_bdesc): New.
4200         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
4201         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
4202         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
4203         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
4204         New.
4205         (mips_expand_vector_init): New.
4206         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
4207         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
4208         if appropriate.
4209         * config/mips/mips.md: Add unspec numbers for Loongson
4210         builtins.  Include loongson.md.
4211         (MOVE64): Include Loongson vector modes.
4212         (SPLITF): Include Loongson vector modes.
4213         (HALFMODE): Handle Loongson vector modes.
4214         * config/mips/loongson.md: New.
4215         * config/mips/loongson.h: New.
4216         * config.gcc: Add loongson.h header for mips*-*-* targets.
4217         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
4218
4219 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
4220
4221         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
4222         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
4223         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
4224         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
4225         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
4226         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
4227         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
4228         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
4229         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
4230         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
4231         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
4232         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
4233         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
4234         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
4235         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
4236         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
4237         Remove use_fixproto=yes.
4238         (ia64*-*-hpux*): Remove comment about using fixproto.
4239         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
4240
4241 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4242
4243         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
4244         library rebuilds.
4245         * configure: Regenerate.
4246
4247 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
4248
4249         PR middle-end/36520
4250         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
4251         before evaluating it.
4252
4253 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
4254
4255         PR c/36507
4256         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
4257         nested inline functions.
4258         (start_decl, start_function): Don't invert DECL_EXTERNAL
4259         for nested inline functions.
4260
4261 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4262
4263         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
4264         splits that must be made for correctness.
4265
4266 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
4267
4268         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
4269         (AVAIL_NON_MIPS16): Likewise.
4270         (mips_builtin_description): Replace target_flags with a predicate.
4271         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
4272         (dspr2_32): New availability predicates.
4273         (MIPS_BUILTIN): New macro.
4274         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
4275         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
4276         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
4277         Replace the TARGET_FLAGS parameters with AVAIL parameters.
4278         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
4279         (mips_dsp_32only_bdesc): Merge into...
4280         (mips_builtins): ...this new array.
4281         (mips_bdesc_map, mips_bdesc_arrays): Delete.
4282         (mips_init_builtins): Update after above changes.
4283         (mips_expand_builtin_1): Merge into...
4284         (mips_expand_builtin): ...here and update after above changes.
4285
4286 2008-06-12  Paul Brook  <paul@codesourcery.com>
4287
4288         * longlong.h (__arm__): Define count_leading_zeros.
4289         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
4290         (clzsi2, clzdi2): New functions.
4291         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
4292         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
4293         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
4294         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
4295         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
4296         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
4297         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
4298         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
4299         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
4300         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
4301
4302 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
4303
4304         * config/m68k/m68k.c (m68k_tune_flags): New.
4305         (override_options): Compute m68k_tune_flags.
4306         (MULL_COST, MULW_COST): Update for various variants of CFV2.
4307         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
4308
4309 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4310
4311         PR middle-end/36506
4312         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus warning.
4313
4314 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4315
4316         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
4317         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
4318
4319 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4320
4321         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
4322         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
4323
4324 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
4325
4326         PR middle-end/36506
4327         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
4328         reductions.
4329
4330 2008-06-12  Richard Guenther  <rguenther@suse.de>
4331
4332         PR tree-optimization/36345
4333         * tree-flow.h (struct ptr_info_def): Align escape_mask,
4334         add memory_tag_needed flag.
4335         (may_alias_p): Declare.
4336         * tree-ssa-alias.c (may_alias_p): Export.
4337         (set_initial_properties): Use memory_tag_needed flag.
4338         (update_reference_counts): Likewise.
4339         (reset_alias_info): Reset memory_tag_needed flag.
4340         (create_name_tags): Check memory_tag_needed flag.
4341         (dump_points_to_info_for): Dump it.
4342         * tree-ssa-structalias.c (struct variable_info): Remove
4343         directly_dereferenced flag.
4344         (new_var_info): Do not initialize it.
4345         (process_constraint_1): Do not set it.
4346         (update_alias_info): Set is_dereferenced flag.
4347         (set_uids_in_ptset): Use may_alias_p.
4348         (set_used_smts): Check memory_tag_needed flag.
4349         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
4350         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
4351         memory_tag_needed flag.
4352         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
4353         from broken design.
4354
4355 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
4356
4357         * config/i386/i386.c (ix86_compute_frame_layout): Disable
4358         red zone for w64 abi.
4359         (ix86_expand_prologue): Likewise.
4360         (ix86_force_to_memory): Likewise.
4361         (ix86_free_from_memory): Likewise.
4362
4363 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
4364
4365         PR target/36425
4366         * config/rs6000/rs6000.c (rs6000_override_options): Set
4367         rs6000_isel conditionally to the absence of comand line override.
4368         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
4369         Remove duplicate rs6000_isel setting.
4370         * config/rs6000/eabispe.h: Ditto.
4371
4372 2008-06-11  Richard Guenther  <rguenther@suse.de>
4373
4374         * alias.c (get_alias_set): Use the element alias-set for arrays.
4375         (record_component_aliases): For arrays and vectors do nothing.
4376         * c-common.c (strict_aliasing_warning): Handle the cases
4377         of alias set zero explicitly.
4378         * Makefile.in (dfp.o-warn): Add -Wno-error.
4379
4380 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4381
4382         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
4383         tune_32 tune_64.
4384         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
4385         tune_32 tune_64 to supported_defaults.  Allow values not
4386         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
4387         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
4388         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
4389         with_cpu_64 to generic for 64-bit-supporting configurations, not
4390         with_cpu.  Remove FIXMEs.
4391         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
4392         --with-arch-64, --with-tune-32, --with-tune-64): Document.
4393         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
4394         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
4395         arch_32 and arch_64.
4396
4397 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
4398             Olivier Hainque  <hainque@adacore.com>
4399
4400         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
4401         Use DECL_SIZE_UNIT to retrieve the size of the field.
4402
4403 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
4404
4405         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
4406         with function calls after declarations.  Lay out
4407         neon_float_type_node before further use.
4408
4409 2008-06-11  Richard Guenther  <rguenther@suse.de>
4410
4411         * tree-flow.h (may_point_to_global_var): Declare.
4412         * tree-ssa-alias.c (may_point_to_global_var): New function.
4413         * tree-ssa-sink.c (is_hidden_global_store): Use it.
4414
4415 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
4416
4417         * configure.ac: Teach that fido supports .debug_line.
4418         * configure: Regenerate.
4419
4420 2008-06-10  Tom Tromey  <tromey@redhat.com>
4421
4422         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
4423         debug hook.
4424
4425 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4426
4427         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
4428         (encode_decimal64, decode_decimal64, encode_decimal128,
4429         decode_decimal128): Reverse order of 32-bit parts of value if host
4430         and target endianness differ.
4431
4432 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
4433
4434         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
4435         Avoid division by 0.
4436         (tree_mod_pow2_value_transform): Likewise.
4437         (tree_ic_transform): Likewise.
4438         (tree_stringops_transform): Likewise.
4439         (tree_mod_subtract_transform): Likewise.
4440         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
4441         (copy_edges_for_bb): Likewise.
4442         (initialize_cfun): Likewise.
4443
4444 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4445
4446         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
4447         nonmemory_operand. Add "N" operand constraint.
4448         (*btsi): Ditto.
4449         (*jcc_btdi_mask_rex64): New instruction and split pattern.
4450         (*jcc_btsi_mask): Ditto.
4451         (*jcc_btsi_mask_1): Ditto.
4452
4453 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
4454
4455         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
4456         TYPE_CANONICAL for copied element type.
4457
4458 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
4459
4460         PR target/36473
4461         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
4462         Add m_CORE2 and m_GENERIC.
4463         * config/i386/predicates.md (bt_comparison_operator): New predicate.
4464         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
4465         (*btsi): Ditto.
4466         (*jcc_btdi_rex64): New instruction and split pattern.
4467         (*jcc_btsi): Ditto.
4468         (*jcc_btsi_1): Ditto.
4469         (*btsq): Fix Intel asm dialect operand order.
4470         (*btrq): Ditto.
4471         (*btcq): Ditto.
4472
4473 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
4474
4475         PR middle-end/36447
4476         * simplify-rtx.c (simplify_subreg): Add check for shift count 
4477         greater than size.
4478
4479 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
4480
4481         * doc/md.texi: Synchronize with later constraints.md change.
4482         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
4483         with a C implementation.
4484         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
4485         MFLO handling.
4486         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
4487         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
4488         when moving to and from MD_REGNUM.
4489         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
4490         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
4491         Handle byte and halfword moves.
4492         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
4493         separately.
4494         * config/mips/constraints.md (h): Turn into NO_REGS.
4495         (l, x): Update documentation.
4496         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
4497         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
4498         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
4499         (HILO): New mode iterator.
4500         (MOVE128): Add TI.
4501         (any_div): New code iterator.
4502         (u): Extend code attribute to div and udiv.
4503         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
4504         d_operand in the splitters.  Remove redundant CONST_INT checks.
4505         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
4506         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
4507         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
4508         accordingly, using normal moves instead of unspecs to move LO into
4509         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
4510         (<u>mulsidi3): Handle expansion in C code.
4511         (<u>mulsidi3_32bit_internal): Rename to...
4512         (<u>mulsidi3_32bit): ...this.
4513         (<u>mulsidi3_32bit_r4000): Fix insn separator.
4514         (*<u>mulsidi3_64bit): Rename to...
4515         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
4516         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
4517         to set LO and HI to the multiplication result.  Use a normal move
4518         for MFLO and an unspec for MFHI.
4519         (*<u>mulsidi3_64bit_parts): Replace with...
4520         (<u>mulsidi3_64bit_hilo): ...this new instruction.
4521         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
4522         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
4523         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
4524         instead of HI.  Split the instruction into a separate multiplication
4525         and MFHI if !TARGET_FIX_R4000.
4526         (<su>muldi3_highpart): Likewise.
4527         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
4528         and the "=h" clobber.
4529         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
4530         (<u>mulditi3): New expander.
4531         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
4532         (madsi): Remove "=h" clobber.
4533         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
4534         Force the modulus result to be a GPR and split the instruction into
4535         a division followed by an MFHI after reload.
4536         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
4537         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
4538         the MIPS16 HIGH define_split.
4539         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
4540         of acc<->gpr moves to "multi".
4541         (*movdi_64bit): Replace the single "x" alternative with
4542         alternatives for moving into and out of "a".
4543         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
4544         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
4545         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
4546         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
4547         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
4548         (movti): New expander.
4549         (*movti, *movti_mips16): New insns.
4550         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
4551         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
4552         (mthi<GPR:mode>_<HILO:mode>): Likewise.
4553         * config/mips/predicates.md (fpr_operand): Delete.
4554         (d_operand): New predicate.
4555
4556 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
4557
4558         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
4559         failure on some Bourne shells.
4560         (x86_64-*-*): Ditto.
4561
4562 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
4563
4564         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
4565
4566 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
4567
4568         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
4569         (sparc-sun-solaris2*): Likewise.
4570
4571 2008-06-09  Arnaud Charlet  <charlet@adacore.com
4572
4573         * doc/install.texi: Update requirements to build the Ada compiler.
4574
4575 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
4576
4577         * df-scan.c (struct df_scan_problem_data): Remove the
4578         mw_link_pool alloc pool.
4579         (df_scan_free_internal): Don't free it.
4580         (df_scan_alloc): Don't allocate it.
4581         * df.h (struct df_link): Update comment.
4582
4583 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
4584
4585         * except.h: Correct checks for when SJLJ exceptions must be used.
4586
4587 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4588
4589         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
4590         default.
4591         
4592 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
4593
4594         PR tree-optimization/36218
4595         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
4596         configure for the build system.
4597         (BUILD_LDFLAGS): Define.
4598         * configure: Regenerate.
4599         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
4600
4601 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
4602
4603         PR target/36424
4604         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
4605         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
4606         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
4607
4608 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
4609
4610         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
4611
4612 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
4613
4614         * config.gcc (Obsolete configurations): Remove list of
4615         configurations.
4616         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
4617         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
4618         targets matched by those patterns.
4619         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
4620         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
4621         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
4622         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
4623         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
4624         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
4625         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
4626         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
4627         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
4628         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
4629         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
4630         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
4631         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
4632         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
4633         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
4634         Make code for Solaris 7 and greater unconditional for Solaris.
4635         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
4636         Remove --with-* handling.
4637         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
4638         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
4639         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
4640         LINK_OS_WINDISS_SPEC): Remove.
4641         * config/rs6000/sysv4.opt (mwindiss): Remove.
4642         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
4643         * configure: Regenerate.
4644         * doc/cpp.texi: Don't mention BeOS.
4645         * doc/extend.texi (interrupt): Don't mention MS1.
4646         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
4647         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
4648         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
4649         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
4650         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
4651         Remove.
4652         * doc/invoke.texi (MT Options): Remove.
4653         (-mwindiss): Remove.
4654         (CRIS Options): Remove cris-axis-aout references.
4655         (HPPA Options): Don't mention hppa1.1-*-pro.
4656         * doc/md.texi: (MorphoTech family): Remove.
4657         * libgcc2.c: Don't handle UWIN.
4658         * config/alpha/t-unicosmk: Remove.
4659         * config/alpha/unicosmk.h: Remove.
4660         * config/arm/kaos-arm.h: Remove.
4661         * config/arm/kaos-strongarm.h: Remove.
4662         * config/arm/strongarm-coff.h: Remove.
4663         * config/arm/strongarm-elf.h: Remove.
4664         * config/arm/strongarm-pe.h: Remove.
4665         * config/arm/t-strongarm-pe: Remove.
4666         * config/arm/t-xscale-coff: Remove.
4667         * config/arm/t-xscale-elf: Remove.
4668         * config/arm/xscale-coff.h: Remove.
4669         * config/arm/xscale-elf.h: Remove.
4670         * config/chorus.h: Remove.
4671         * config/cris/aout.h: Remove.
4672         * config/cris/aout.opt: Remove.
4673         * config/cris/t-aout: Remove.
4674         * config/i386/beos-elf.h: Remove.
4675         * config/i386/kaos-i386.h: Remove.
4676         * config/i386/ptx4-i.h: Remove.
4677         * config/i386/sco5.h: Remove.
4678         * config/i386/sco5.opt: Remove.
4679         * config/i386/sysv4-cpp.h: Remove.
4680         * config/i386/sysv5.h: Remove.
4681         * config/i386/t-beos: Remove.
4682         * config/i386/t-sco5: Remove.
4683         * config/i386/t-uwin: Remove.
4684         * config/i386/uwin.asm: Remove.
4685         * config/i386/uwin.h: Remove.
4686         * config/kaos.h: Remove.
4687         * config/mips/windiss.h: Remove.
4688         * config/mt: Remove directory.
4689         * config/pa/pa-osf.h: Remove.
4690         * config/pa/pa-pro-end.h: Remove.
4691         * config/pa/t-pro: Remove.
4692         * config/ptx4.h: Remove.
4693         * config/rs6000/beos.h: Remove.
4694         * config/rs6000/kaos-ppc.h: Remove.
4695         * config/rs6000/t-beos: Remove.
4696         * config/rs6000/windiss.h: Remove.
4697         * config/sh/kaos-sh.h: Remove.
4698         * config/sol2-6.h: Remove.
4699         * config/sparc/sol26-sld.h: Remove.
4700         * config/sparc/sysv4-only.h: Remove.
4701         * config/vax/bsd.h: Remove.
4702         * config/vax/t-memfuncs: Remove.
4703         * config/vax/ultrix.h: Remove.
4704         * config/vax/vaxv.h: Remove.
4705         * config/windiss.h: Remove.
4706
4707 2008-06-06  Uros Bizjak <ubizjak@gmail.com>
4708
4709         PR rtl-optimization/36438
4710         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
4711         for vector shifts with constant scalar shift operands.
4712
4713 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
4714
4715         * doc/invoke.texi: Document -march=xlr.
4716         * config/mips/xlr.md: New file.
4717         * config/mips/mips.md: Include it.
4718         (cpu): Add "xlr".
4719         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
4720         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
4721         (mips_rtx_cost_data): Likewise.
4722
4723 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
4724
4725         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
4726         PRE_INC and PRE_DEC cases.
4727
4728 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4729
4730         PR rtl-optimization/36419
4731         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
4732         the emitting jump insn.
4733
4734         PR target/36362
4735         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
4736         is not bool, boolify the whole *expr_p and convert to the desired type.
4737
4738 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
4739
4740         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
4741         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
4742         Add omp_private_outer_ref hook, add another argument to
4743         omp_clause_default_ctor hook.
4744         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
4745         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
4746         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
4747         hook_tree_tree_tree_tree_null.
4748         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
4749         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
4750         * hooks.c (hook_tree_tree_tree_tree_null): New function.
4751         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
4752         * tree.def (OMP_TASK): New tree code.
4753         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
4754         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
4755         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
4756         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
4757         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
4758         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
4759         OMP_CLAUSE_COLLAPSE_EXPR): Define.
4760         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4761         (OMP_DIRECTIVE_P): Add OMP_TASK.
4762         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
4763         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
4764         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
4765         and OMP_CLAUSE_UNTIED entries.
4766         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
4767         num_ops to 2.
4768         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4769         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
4770         * tree-pretty-print.c (dump_omp_clause): Handle
4771         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
4772         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
4773         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
4774         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
4775         warning about unsigned iterators.  Change decl/init/cond/incr
4776         arguments to TREE_VECs, check arguments for all collapsed loops.
4777         (c_finish_omp_taskwait): New function.
4778         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
4779         ws_clauses.
4780         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
4781         default_function_array_conversion on init.  Add par_clauses argument.
4782         If decl is present in parallel's lastprivate clause, change it to
4783         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
4784         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
4785         collapse count in clauses.
4786         (c_parser_omp_for, c_parser_omp_parallel): Adjust
4787         c_parser_omp_for_loop callers.
4788         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
4789         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
4790         (c_parser_omp_clause_name): Handle collapse and untied clauses.
4791         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
4792         functions.
4793         (c_parser_omp_clause_schedule): Handle schedule(auto).
4794         Include correct location in the error message.
4795         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
4796         and PRAGMA_OMP_CLAUSE_UNTIED.
4797         (OMP_TASK_CLAUSE_MASK): Define.
4798         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
4799         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
4800         * tree-nested.c (convert_nonlocal_omp_clauses,
4801         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
4802         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
4803         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4804         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
4805         OMP_CLAUSE_DECL.
4806         (conver_nonlocal_reference, convert_local_reference,
4807         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
4808         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
4809         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
4810         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
4811         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
4812         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
4813         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
4814         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
4815         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4816         OMP_CLAUSE_UNTIED.
4817         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
4818         * c-common.h (c_finish_omp_taskwait): New prototype.
4819         * gimple-low.c (lower_stmt): Handle OMP_TASK.
4820         * tree-parloops.c (create_parallel_loop): Create 1 entry
4821         vectors for OMP_FOR_{INIT,COND,INCR}.
4822         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4823         (make_edges): Handle OMP_TASK.
4824         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
4825         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4826         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
4827         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
4828         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
4829         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4830         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
4831         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
4832         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
4833         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
4834         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
4835         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
4836         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
4837         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
4838         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
4839         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
4840         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
4841         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
4842         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
4843         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
4844         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
4845         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
4846         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
4847         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
4848         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
4849         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
4850         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
4851         original iterator is present in lastprivate clause or if
4852         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
4853         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4854         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
4855         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
4856         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
4857         if it is set, lookup var in outer contexts too.  Handle
4858         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
4859         to be implicitly determined firstprivate for task regions.
4860         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
4861         if it is set, lookup var in outer contexts too.  Set
4862         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
4863         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
4864         OMP_CLAUSE_UNTIED.  Take region_type as last argument
4865         instead of in_parallel and in_combined_parallel.
4866         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
4867         Adjust callers.
4868         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
4869         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
4870         (new_omp_context): Set default_kind to
4871         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
4872         (omp_region_type): New enum.
4873         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
4874         fields, add region_type.
4875         (new_omp_context): Take region_type as argument instead of is_parallel
4876         and is_combined_parallel.
4877         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
4878         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
4879         ctx->is_combined_parallel checks.
4880         (gimplify_omp_task): New function.
4881         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
4882         OMP_CLAUSE_UNTIED.
4883         * omp-low.c (extract_omp_for_data): Use schedule(static)
4884         for schedule(auto).  Handle pointer and unsigned iterators.
4885         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
4886         Add loops argument.  Extract data for collapsed OMP_FOR loops.
4887         (expand_parallel_call): Assert sched_kind isn't auto,
4888         map runtime schedule to index 3.
4889         (struct omp_for_data_loop): New type.
4890         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
4891         Add loop, loops, collapse and iter_type fields.
4892         (workshare_safe_to_combine_p): Disallow combined for if
4893         iter_type is unsigned long long.  Don't combine collapse > 1 loops
4894         unless all bounds and steps are constant.  Adjust extract_omp_for_data
4895         caller.
4896         (expand_omp_for_generic): Handle pointer, unsigned and long long
4897         iterators.  Handle collapsed OMP_FOR loops.  Adjust
4898         for struct omp_for_data changes.  If libgomp function doesn't return
4899         boolean_type_node, add comparison of the return value with 0.
4900         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
4901         pointer, unsigned and long long iterators.  Adjust for struct
4902         omp_for_data changes.
4903         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
4904         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
4905         unsigned long long.  Allocate loops array, pass it to
4906         extract_omp_for_data.  For collapse > 1 loops use always
4907         expand_omp_for_generic.
4908         (omp_context): Add sfield_map and srecord_type fields.
4909         (is_task_ctx, lookup_sfield): New functions.
4910         (use_pointer_for_field): Use is_task_ctx helper.  Change first
4911         argument's type from const_tree to tree.  Clarify comment.
4912         In OMP_TASK disallow copy-in/out sharing.
4913         (build_sender_ref): Call lookup_sfield instead of lookup_field.
4914         (install_var_field): Add mask argument.  Populate both record_type
4915         and srecord_type if needed.
4916         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
4917         in srecord_type.
4918         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
4919         and DECL_FIELD_OFFSET.
4920         (scan_sharing_clauses): Adjust install_var_field callers.  For
4921         firstprivate clauses on explicit tasks allocate the var by value in
4922         record_type unconditionally, rather than by reference.
4923         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
4924         Use is_taskreg_ctx instead of is_parallel_ctx.
4925         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
4926         (create_omp_child_function_name): Add task_copy argument, use
4927         *_omp_cpyfn* names if it is true.
4928         (create_omp_child_function): Add task_copy argument, if true create
4929         *_omp_cpyfn* helper function.
4930         (scan_omp_parallel): Adjust create_omp_child_function callers.
4931         Rename parallel_nesting_level to taskreg_nesting_level.
4932         (scan_omp_task): New function.
4933         (lower_rec_input_clauses): Don't run constructors for firstprivate
4934         explicit task vars which are initialized by *_omp_cpyfn*.  
4935         Pass outer var ref to omp_clause_default_ctor hook if
4936         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
4937         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
4938         OMP_CLAUSE_REDUCTION_INIT.
4939         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
4940         avoid duplicate setting of fields.  Handle
4941         OMP_CLAUSE_PRIVATE_OUTER_REF.
4942         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
4943         copy-out if TREE_READONLY, only copy-in.
4944         (expand_task_copyfn): New function.
4945         (expand_task_call): New function.
4946         (struct omp_taskcopy_context): New type.
4947         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
4948         New functions.
4949         (lower_omp_parallel): Rename to...
4950         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4951         Call create_task_copyfn if srecord_type is needed.  Adjust
4952         sender_decl type.
4953         (task_shared_vars): New variable.
4954         (check_omp_nesting_restrictions): Warn if work-sharing,
4955         barrier, master or ordered region is closely nested inside OMP_TASK.
4956         Add warnings for barrier if closely nested inside of work-sharing,
4957         ordered, or master region.
4958         (scan_omp_1): Call check_omp_nesting_restrictions even for
4959         GOMP_barrier calls.  Rename parallel_nesting_level to
4960         taskreg_nesting_level.  Handle OMP_TASK.
4961         (lower_lastprivate_clauses): Even if some lastprivate is found on a
4962         work-sharing construct, continue looking for them on parent parallel
4963         construct.
4964         (lower_omp_for_lastprivate): Add lastprivate clauses
4965         to the beginning of dlist rather than end.  Adjust for struct
4966         omp_for_data changes.
4967         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
4968         not after it.  Handle collapsed OMP_FOR loops, adjust for
4969         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
4970         (get_ws_args_for): Adjust extract_omp_for_data caller.
4971         (scan_omp_for): Handle collapsed OMP_FOR
4972         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
4973         (lower_omp_single_simple): If libgomp function doesn't return
4974         boolean_type_node, add comparison of the return value with 0.
4975         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
4976         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
4977         (parallel_nesting_level): Rename to...
4978         (taskreg_nesting_level): ... this.
4979         (is_taskreg_ctx): New function.
4980         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
4981         of is_parallel_ctx.
4982         (execute_lower_omp): Rename parallel_nesting_level to
4983         taskreg_nesting_level.
4984         (expand_omp_parallel): Rename to...
4985         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
4986         Call omp_task_call for OMP_TASK regions.
4987         (expand_omp): Adjust caller, handle OMP_TASK.
4988         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
4989
4990         * bitmap.c (bitmap_default_obstack_depth): New variable.
4991         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
4992         if argument is NULL and bitmap_default_obstack is already initialized.
4993         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
4994         at the end.
4995         * matrix-reorg.c (matrix_reorg): Likewise.
4996
4997 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
4998
4999         * config/i386/i386.md (*indirect_jump): Macroize using P
5000         mode iterator.  Remove !TARGET_64BIT from insn constraints.
5001         (*tablejump_1): Ditto.
5002         (*indirect_jump_rex64): Remove insn pattern.
5003         (*tablejump_1_rex64): Ditto.
5004         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
5005         and eh_return_si insn patterns.
5006
5007 2008-06-06  Richard Guenther  <rguenther@suse.de>
5008
5009         * tree-ssa-structalias.c (merge_smts_into): Remove.
5010         (find_what_p_points_to): Do not bother to compute the
5011         points-to set for pt_anything pointers.
5012         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
5013         for pt_anything pointers is ok.
5014
5015 2008-06-06  Jan Hubicka  <jh@suse.cz>
5016
5017         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
5018
5019 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5020
5021         * cgraph.c: Fix typos in comments.
5022         (cgraph_availability_names): Fix string typo.
5023         * fold-const.c: Fix typos in comments.
5024         (fold_binary): Fix typo in warning.
5025         * genautomata.c: Fix typos in comments.
5026         (check_presence_pattern_sets): Fix typo in local variable.
5027         (output_description): Fix typo in output.
5028         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
5029         * hwint.h: Likewise.
5030         * matrix-reorg.c (check_allocation_function): Likewise.
5031         * omega.c (smooth_weird_equations): Likewise.
5032         * auto-inc-dec.c: Fix typos in comments.
5033         * bb-reorder.c: Likewise.
5034         * builtins.c: Likewise.
5035         * c-common.c: Likewise.
5036         * c-cppbuiltin.c: Likewise.
5037         * c-parser.c: Likewise.
5038         * c-pretty-print.c: Likewise.
5039         * cfgcleanup.c: Likewise.
5040         * cfgexpand.c: Likewise.
5041         * cfghooks.c: Likewise.
5042         * cfglayout.c: Likewise.
5043         * cfgloopmanip.c: Likewise.
5044         * cgraphunit.c: Likewise.
5045         * coverage.c: Likewise.
5046         * dbxout.c: Likewise.
5047         * df-byte-scan.c: Likewise.
5048         * df-core.c: Likewise.
5049         * df-problems.c: Likewise.
5050         * df-scan.c: Likewise.
5051         * dfp.c: Likewise.
5052         * dominance.c: Likewise.
5053         * domwalk.c: Likewise.
5054         * dse.c: Likewise.
5055         * dwarf2out.c: Likewise.
5056         * emit-rtl.c: Likewise.
5057         * et-forest.c: Likewise.
5058         * function.c: Likewise.
5059         * function.h: Likewise.
5060         * gcc.c: Likewise.
5061         * gcov-io.c: Likewise.
5062         * gcov.c: Likewise.
5063         * gcse.c: Likewise.
5064         * genattrtab.c: Likewise.
5065         * ggc-page.c: Likewise.
5066         * gimplify.c: Likewise.
5067         * gthr-lynx.h: Likewise.
5068         * haifa-sched.c: Likewise.
5069         * ipa-cp.c: Likewise.
5070         * ipa-inline.c: Likewise.
5071         * ipa-prop.h: Likewise.
5072         * ipa-pure-const.c: Likewise.
5073         * ipa-struct-reorg.c: Likewise.
5074         * ipa-struct-reorg.h: Likewise.
5075         * ipa-type-escape.c: Likewise.
5076         * ipa.c: Likewise.
5077         * loop-doloop.c: Likewise.
5078         * mips-tfile.c: Likewise.
5079         * mkmap-flat.awk: Likewise.
5080         * mkmap-symver.awk: Likewise.
5081         * modulo-sched.c: Likewise.
5082         * omp-low.c: Likewise.
5083         * optabs.c: Likewise.
5084         * optabs.h: Likewise.
5085         * opts.c: Likewise.
5086         * passes.c: Likewise.
5087         * postreload-gcse.c: Likewise.
5088         * postreload.c: Likewise.
5089         * predict.c: Likewise.
5090         * pretty-print.h: Likewise.
5091         * profile.c: Likewise.
5092         * protoize.c: Likewise.
5093         * ra-conflict.c: Likewise.
5094         * real.c: Likewise.
5095         * recog.c: Likewise.
5096         * regclass.c: Likewise.
5097         * regs.h: Likewise.
5098         * reload.c: Likewise.
5099         * rtl-error.c: Likewise.
5100         * rtlanal.c: Likewise.
5101         * scan.h: Likewise.
5102         * sched-rgn.c: Likewise.
5103         * see.c: Likewise.
5104         * stmt.c: Likewise.
5105         * target.h: Likewise.
5106         * tree-dfa.c: Likewise.
5107         * tree-eh.c: Likewise.
5108         * tree-flow-inline.h: Likewise.
5109         * tree-inline.c: Likewise.
5110         * tree-into-ssa.c: Likewise.
5111         * tree-loop-distribution.c: Likewise.
5112         * tree-nested.c: Likewise.
5113         * tree-parloops.c: Likewise.
5114         * tree-pass.h: Likewise.
5115         * tree-pretty-print.c: Likewise.
5116         * tree-profile.c: Likewise.
5117         * tree-scalar-evolution.c: Likewise.
5118         * tree-sra.c: Likewise.
5119         * tree-ssa-alias-warnings.c: Likewise.
5120         * tree-ssa-ccp.c: Likewise.
5121         * tree-ssa-coalesce.c: Likewise.
5122         * tree-ssa-dom.c: Likewise.
5123         * tree-ssa-dse.c: Likewise.
5124         * tree-ssa-forwprop.c: Likewise.
5125         * tree-ssa-live.c: Likewise.
5126         * tree-ssa-live.h: Likewise.
5127         * tree-ssa-loop-im.c: Likewise.
5128         * tree-ssa-loop-ivopts.c: Likewise.
5129         * tree-ssa-loop-niter.c: Likewise.
5130         * tree-ssa-loop-prefetch.c: Likewise.
5131         * tree-ssa-phiopt.c: Likewise.
5132         * tree-ssa-phiprop.c: Likewise.
5133         * tree-ssa-sccvn.c: Likewise.
5134         * tree-ssa-ter.c: Likewise.
5135         * tree-ssa-threadupdate.c: Likewise.
5136         * tree-ssa.c: Likewise.
5137         * tree-vect-analyze.c: Likewise.
5138         * tree-vect-transform.c: Likewise.
5139         * tree-vectorizer.c: Likewise.
5140         * tree-vn.c: Likewise.
5141         * tree-vrp.c: Likewise.
5142         * tree.c: Likewise.
5143         * tree.def: Likewise.
5144         * tree.h: Likewise.
5145         * unwind-dw2-fde.c: Likewise.
5146         * unwind.inc: Likewise.
5147         * value-prof.c: Likewise.
5148         * vmsdbgout.c: Likewise.
5149
5150 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
5151
5152         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
5153         always place FP constants in the TOC for TARGET_POWERPC64.
5154         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
5155
5156 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
5157
5158         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
5159         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
5160         enable for TARGET_E500_DOUBLE.
5161         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
5162         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
5163         floating-point modes like integer modes for E500 double.
5164         (rs6000_legitimate_offset_address_p): Likewise.
5165         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
5166         addressing for DDmode for E500 double.
5167         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
5168         modes as using 64-bits of registers for E500 double.
5169         (spe_build_register_parallel): Do not handle DDmode or TDmode.
5170         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
5171         specially for E500 double.
5172         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
5173         TDmode for E500 double.
5174         (rs6000_gimplify_va_arg): Only handle SDmode in registers
5175         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
5176         (rs6000_split_multireg_move): Do not handle TDmode specially for
5177         E500 double.
5178         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
5179         using 64-bit registers for E500 double.
5180         (emit_frame_save): Do not handle DDmode specially for E500 double.
5181         (gen_frame_mem_offset): Likewise.
5182         (rs6000_function_value): Do not call spe_build_register_parallel
5183         for DDmode or TDmode.
5184         (rs6000_libcall_value): Likewise.
5185         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
5186         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
5187         for E500 double.
5188
5189 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
5190
5191         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
5192         in comments.
5193
5194 2008-06-04  Junjie Gu <jgu@tensilica.com>
5195
5196         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
5197         comparison for frame pointers.
5198
5199 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
5200
5201         PR target/27386
5202         * config/avr/avr.h (PUSH_ROUNDING): Remove.
5203
5204 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
5205
5206         PR target/30243
5207         * builtins.c (expand_builtin_signbit): Don't take lowpart when
5208         register is already smaller or equal to required mode. 
5209
5210 2008-06-04  Xinliang David Li  <davidxl@google.com>
5211
5212         * tree-call-cdce.c: New file. 
5213         (cond_dead_built_in_calls): New static variable.
5214         (input_domain): New struct.
5215         (check_pow): New function.
5216         (check_builtin_call): Ditto.
5217         (check_target_format): Ditto.
5218         (is_call_dce_candidate): Ditto.
5219         (gen_one_condition): Ditto.
5220         (gen_conditions_for_domain): Ditto.
5221         (get_domain): Ditto.
5222         (gen_conditions_for_pow_cst_base): Ditto.
5223         (gen_conditions_for_pow_int_base): Ditto.
5224         (gen_conditions_for_pow): Ditto.
5225         (get_no_error_domain): Ditto.
5226         (gen_shrink_wrap_conditions): Ditto.
5227         (shrink_wrap_one_built_in_call): Ditto.
5228         (shink_wrap_conditional_dead_built_in_calls): Ditto.
5229         (tree_call_cdce): Ditto.
5230         (gate_call_cdce): Ditto.
5231         (pass_call_cdce): New gimple pass.
5232         * passes.c: (init_optimization_passes): New pass.
5233         * tree-pass.h: New pass declaration.
5234         * opts.c (decode_options): New flag setting.
5235         * common.opt: Add -ftree-builtin-call-dce flag.
5236         * Makefile.in: Add new source file.
5237         * tempvar.def: New tv_id.
5238         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
5239
5240 2008-06-04  Richard Guenther  <rguenther@suse.de>
5241
5242         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
5243         (is_call_clobbered): Always check var_ann->call_clobbered.
5244         (mark_call_clobbered): Always set var_ann->call_clobbered.
5245         (clear_call_clobbered): Always clear var_ann->call_clobbered.
5246         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
5247         (reset_alias_info): Clear call clobbering info on MTAGs and
5248         globals as well.
5249         (set_pt_anything): Set pt_global_mem.
5250         (create_tag_raw): Adjust comment.
5251         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
5252
5253 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
5254             Maxim Kuvyrkov  <maxim@codesourcery.com>
5255
5256         * config/m68k/m68k.opt (mxgot): New option.
5257         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
5258         (m68k_output_addr_const_extra): New.
5259         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
5260         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
5261         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
5262         * doc/invoke.texi (M680x0 Options): Document -mxgot.
5263
5264 2008-06-04  Richard Guenther  <rguenther@suse.de>
5265
5266         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
5267         negative or non-representable offsets.
5268
5269 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
5270
5271         * config/i386/i386.c (ix86_gen_leave): New.
5272         (ix86_gen_pop1): Likewise.
5273         (ix86_gen_add3): Likewise.
5274         (ix86_gen_sub3): Likewise.
5275         (ix86_gen_sub3_carry): Likewise.
5276         (ix86_gen_one_cmpl2): Likewise.
5277         (ix86_gen_monitor): Likewise.
5278         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
5279         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
5280         ix86_gen_one_cmpl2 and ix86_gen_monitor.
5281         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
5282         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
5283         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
5284         (ix86_expand_epilogue): Updated.
5285         (print_operand): Handle integer register operand for 'z'.
5286         (ix86_expand_strlensi_unroll_1): Likewise.
5287         (ix86_expand_strlen): Likewise.
5288         (ix86_expand_builtin): Likewise.
5289         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
5290         mov{q}/mov{l} and add{q}/add{l}.
5291
5292 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5293
5294         * config/i386/i386.md (P): New mode iterator.
5295         (SFmode push_operand splitter): Macroize DImode and SImode pushes
5296         using P mode iterator.
5297         (DFmode push_operand splitter): Ditto.
5298         (XFmode push_operand splitter): Ditto.
5299         (DFmode float_extend SFmode push_operand splitter): Ditto.
5300         (XFmode float_extend SFmode push_operand splitter): Do not generate
5301         SImode pushes for 64bit target.  Macroize Dimode and SImode
5302         pushes using P mode iterator.
5303         (XFmode float_extend DFmode push_operand splitter): Ditto.
5304
5305 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5306
5307         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
5308         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
5309         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
5310         return type to int.
5311         (ix86_call_abi_override): Remove check for call_used_regs.
5312
5313 2008-06-03  Richard Guenther  <rguenther@suse.de>
5314
5315         * tree-ssa-structalias.c (find_func_aliases): Add constraints
5316         for the lhs of calls if the return type contains pointers.
5317
5318 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
5319
5320         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
5321         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
5322         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
5323         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
5324         of cfun and DEFAULT_ABI to deceide abi mode.
5325         (DEFAULT_ABI): New.
5326         (REG_PARM_STACK_SPACE): Removed.
5327         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
5328         (STACK_BOUNDARY): Use default target to deceide stack boundary.
5329         * config/i386/i386-protos.h (ix86_cfun_abi): New.
5330         (ix86_function_abi): Likewise.
5331         (ix86_function_type_abi): Likewise.
5332         (ix86_call_abi_override): Likewise.
5333         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
5334         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
5335         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
5336         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
5337         specific defines.
5338         (X86_64_REGPARM_MAX): New.
5339         (X86_64_SSE_REGPARM_MAX): New.
5340         (X64_REGPARM_MAX): New.
5341         (X64_SSE_REGPARM_MAX): New.
5342         (X86_32_REGPARM_MAX): New.
5343         (X86_32_SSE_REGPARM_MAX): New.
5344         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
5345         (ix86_function_regparm): Handle user calling abi.
5346         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
5347         by DEFAULT_ABI versus SYSV_ABI check.
5348         (ix86_reg_parm_stack_space): New.
5349         (ix86_function_type_abi): New.
5350         (ix86_call_abi_override): New.
5351         (ix86_function_abi): New.
5352         (ix86_cfun_abi): New.
5353         (init_cumulative_args): Call abi specific initialization.
5354         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
5355         (function_arg_64): Extend SSE_REGPARM_MAX check.
5356         (function_arg (): Remove TARGET_64BIT_MS_ABI.
5357         (ix86_pass_by_reference): Likewise.
5358         (ix86_function_value_regno_p): Likewise.
5359         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
5360         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
5361         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
5362         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
5363         (setup_incoming_varargs_64): Adjust regparm for call abi.
5364         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
5365         (ix86_va_start): Likewise.
5366         (ix86_gimplify_va_arg): Likewise.
5367         (ix86_expand_prologue): Likewise.
5368         (output_pic_addr_const): Likewise.
5369         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
5370         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
5371         (x86_output_mi_thunk): Likewise.
5372         (x86_function_profiler): Likewise.
5373         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
5374         (SYSV_ABI, MS_ABI): New constants.
5375         (DEFAULT_ABI): New.
5376         (init_regs): Add prototype of function in regclass.c file.
5377         (OVERRIDE_ABI_FORMAT): New.
5378         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
5379         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
5380         (OUTGOING_REG_PARM_STACK_SPACE): New.
5381         (ix86_reg_parm_stack_space): New prototype.
5382         (CUMULATIVE_ARGS): Add call_abi member.
5383         (machine_function): Add call_abi member.
5384         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
5385         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
5386
5387 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
5388
5389         PR target/34879
5390         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
5391         (avr_builtin_setjmp_frame_value): New function.
5392         * config/avr/avr.md (nonlocal_goto_receiver): Define.
5393         (nonlocal_goto): Define.
5394
5395 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
5396
5397         * config/mips/mips.c (mips_emit_loadgp): Return early if
5398         there is nothing do to, otherwise emit a blockage if
5399         !TARGET_EXPLICIT_RELOCS || crtl->profile.
5400         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
5401
5402 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5403
5404         * configure.ac: Drop unneeded backslash ending up in config.in.
5405         * acinclude.m4: Likewise.
5406         * config.in: Regenerate.
5407
5408 2008-05-26  Jan Hubicka  <jh@suse.cz>
5409
5410         * predict.c (maybe_hot_frequency_p): Break out of...
5411         (maybe_hot_bb_p): ... here.
5412         (maybe_hot_edge_p): New.
5413         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
5414         * basic-block.h (maybe_hot_edge_p): Declare.
5415
5416 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5417
5418         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
5419         (*cmpfp_<mode>_cc): Ditto.
5420         (*fp_jcc_8<mode>_387): Ditto.
5421         (*fop_<MODEF:mode>_2_i387): Ditto.
5422         (*fop_<MODEF:mode>_3_i387): Ditto.
5423         (*fop_xf_2_i387): Ditto.
5424         (*fop_xf_3_i387): Ditto.
5425
5426 2008-06-02  Tomas Bily  <tbily@suse.cz>
5427
5428         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
5429
5430 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5431
5432         * config/mips/mips.c (mips_valid_offset_p): New function.
5433         (mips_valid_lo_sum_p): Likewise.
5434         (mips_classify_address): Use them.
5435         (mips_force_address): New function.
5436         (mips_legitimize_address): Use it.
5437         * config/mips/mips.md (MOVE128): New mode iterator.
5438         (movtf): Require TARGET_64BIT.  Remove empty strings.
5439         (*movtf_internal): Rename to...
5440         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
5441         of "R" and use {,fp}{load,store} attributes instead of "multi".
5442         Use a separate define_split.
5443         (*movtf_mips16): New pattern.
5444
5445 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5446
5447         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
5448         * config/mips/mips.c (mips_expand_before_return): New function.
5449         (mips_expand_epilogue): Call it.
5450         * config/mips/mips.md (return): Turn into a define_expand.
5451         (*return): New insn.
5452
5453 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
5454
5455         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
5456         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
5457         functions.  Do not emit uses and clobbers of CONCATs; individually
5458         use and clobber their operands.
5459         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
5460         gen_clobber, emit_use and gen_use.
5461         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
5462         (expand_builtin_return): Likewise.
5463         * cfgbuild.c (count_basic_blocks): Likewise.
5464         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
5465         * explow.c (emit_stack_restore): Likewise.
5466         * expmed.c (extract_bit_field_1): Likewise.
5467         * expr.c (convert_move, emit_move_complex_parts): Likewise.
5468         (emit_move_multi_word, store_constructor): Likewise.
5469         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
5470         (thread_prologue_and_epilogue_insns): Likewise.
5471         * lower-subreg.c (resolve_simple_move): Likewise.
5472         * optabs.c (widen_operand, expand_binop): Likewise.
5473         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
5474         * reload.c (find_reloads): Likewise.
5475         * reload1.c (eliminate_regs_in_insn): Likewise.
5476         * stmt.c (expand_nl_goto_receiver): Likewise.
5477         * config/alpha/alpha.md (builtin_longjmp): Likewise.
5478         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
5479         * config/arm/arm.c (arm_load_pic_register): Likewise.
5480         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
5481         * config/arm/arm.md (untyped_return): Likewise.
5482         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
5483         * config/avr/avr.c (expand_prologue): Likewise.
5484         * config/bfin/bfin.c (do_unlink): Likewise.
5485         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
5486         * config/cris/cris.c (cris_expand_prologue): Likewise.
5487         * config/darwin.c (machopic_indirect_data_reference): Likewise.
5488         (machopic_legitimize_pic_address): Likewise.
5489         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
5490         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
5491         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
5492         (ix86_expand_convert_uns_didf_sse): Likewise.
5493         (ix86_expand_vector_init_general): Likewise.
5494         * config/ia64/ia64.md (eh_epilogue): Likewise.
5495         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
5496         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
5497         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
5498         (config/iq2000/iq2000.c): Likewise.
5499         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
5500         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
5501         (builtin_longjmp): Likewise.
5502         * config/mn10300/mn10300.md (call, call_value): Likewise.
5503         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
5504         * config/pdp11/pdp11.md (abshi2): Likewise.
5505         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
5506         * config/s390/s390.c (s390_emit_prologue): Likewise.
5507         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
5508         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
5509         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
5510         * config/sh/sh.c (prepare_move_operands): Likewise.
5511         (output_stack_adjust, sh_expand_epilogue): Likewise.
5512         (sh_set_return_address, sh_expand_t_scc): Likewise.
5513         * config/sparc/sparc.c (load_pic_register): Likewise.
5514         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
5515         * config/spu/spu.c (spu_expand_epilogue): Likewise.
5516         * config/v850/v850.c (expand_epilogue): Likewise.
5517
5518 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
5519
5520         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
5521         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
5522         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
5523         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
5524         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
5525         stack pointer register.
5526         (output_movhi): Remove code for interrupt specific writing to the 
5527         stack pointer register.
5528
5529 2008-05-31  Richard Guenther  <rguenther@suse.de>
5530
5531         PR tree-optimization/34244
5532         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
5533         (tree_expr_nonzero_warnv_p): Likewise.
5534         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
5535         ssa_name_nonnegative_p.
5536         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
5537         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
5538         not tree_expr_nonzero_warnv_p.
5539
5540         PR tree-optimization/36262
5541         Revert
5542         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
5543
5544         PR tree-optimization/34244
5545         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
5546         (record_numbers_of_iterations): New function.
5547         (execute_vrp): Cache the numbers of iterations of loops.
5548         * tree-scalar-evolution.c (scev_reset_except_niters):
5549         New function.
5550         (scev_reset): Use scev_reset_except_niters.
5551         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
5552
5553 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
5554
5555         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
5556         __WORKAROUND_RETS when appropriate.
5557
5558 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
5559
5560         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
5561         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
5562         mode iterator.
5563         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
5564         *fop_df_comm_sse insn patterns using MODEF mode iterator.
5565         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
5566         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
5567         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
5568         *fop_df_1_mixed insn patterns using MODEF mode iterator.
5569         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
5570         *fop_df_1_sse insn patterns using MODEF mode iterator.
5571         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
5572         *fop_df_1_i387 insn patterns using MODEF mode iterator.
5573         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
5574         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
5575         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
5576         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
5577         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
5578         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
5579         (*fop_xf_4_i387): Use <MODE> for mode attribute.
5580         (*fop_xf_5_i387): Ditto.
5581         (*fop_xf_6_i387): Ditto.
5582
5583 2008-05-30  Richard Guenther  <rguenther@suse.de>
5584
5585         * builtins.c (build_string_literal): Avoid generating
5586         a non-gimple_val result.
5587
5588 2008-05-30  DJ Delorie  <dj@redhat.com>
5589
5590         * exec-tool.in: Use an environment variable (private) instead of a
5591         file (shared) as a semaphore, so as to not break parallel builds.
5592
5593 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5594
5595         * optabs.c (maybe_encapsulate_block): Remove.
5596         (emit_libcall_block): Adjust accordingly.
5597         * optabs.h (maybe_encapsulate_block): Remove prototype.
5598
5599         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
5600         Don't use maybe_encapsulate_block.
5601
5602 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
5603
5604         * config/rs6000/rs6000.c (rs6000_legitimize_address,
5605         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
5606         rtx is a SYMBOL_REF before calling get_pool_constant.
5607
5608 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
5609
5610         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
5611
5612 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
5613
5614         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
5615         rather than OS names to choose INO_T_EQ definition.
5616         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
5617         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
5618
5619 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
5620
5621         PR target/36348
5622         * config/darwin-f.c: New.
5623         * config/t-darwin: Added rule to build darwin-f.o.
5624         * config.gcc: Defined new variable, fortran_target_objs.
5625         (*-*-darwin*): Set fortran_target_objs.
5626         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
5627         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
5628         * configure: Regenerated.
5629
5630 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
5631
5632         PR target/35771
5633         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
5634         canonical type if needed.
5635
5636 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5637
5638         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
5639
5640 2008-05-29  Richard Guenther  <rguenther@suse.de>
5641
5642         PR tree-optimization/36343
5643         PR tree-optimization/36346
5644         PR tree-optimization/36347
5645         * tree-flow.h (clobber_what_p_points_to): Declare.
5646         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
5647         pointed-to variable is dereferenced is irrelevant to whether
5648         the pointer can access the pointed-to variable.
5649         (clobber_what_p_points_to): New function.
5650         * tree-ssa-alias.c (set_initial_properties): Use it.
5651         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
5652         call clobber check for NMTs.
5653
5654 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5655         
5656         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
5657         for printing gcov_type.
5658
5659 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
5660
5661         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
5662         and the eh region information.
5663         * value-prof.c (gimple_move_stmt_histograms): New function.
5664         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
5665
5666 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
5667
5668         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
5669
5670 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
5671
5672         * value-prof.c (tree_ic_transform): Print counts.
5673         * tree-profile.c (tree_gen_ic_func_profiler):
5674         Clear __gcov_indreict_call_callee variable to avoid misattribution
5675         of the profile.
5676
5677 2008-05-28  Rafael Espindola  <espindola@google.com>
5678
5679         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
5680         invalid sharing.
5681
5682 2008-05-28  Richard Guenther  <rguenther@suse.de>
5683
5684         PR tree-optimization/36339
5685         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
5686         and clobbering code out of the loop.
5687
5688 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5689
5690         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
5691         letters defined.
5692
5693         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
5694         s390_contiguous_bitmask_p, s390_symref_operand_p,
5695         s390_check_symref_alignment, s390_reload_larl_operand,
5696         s390_reload_symref_address): New functions.
5697         (s390_branch_condition_mnemonic): Support compare and branch
5698         instructions.
5699         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
5700         and 'W' constraints.
5701         (s390_secondary_reload): Add secondary reloads for unaligned
5702         symbol refs or symbol refs to floating point or QI/TI mode
5703         integer values.
5704         (legitimate_address_p): Accept symbol references as addresses.
5705         (s390_expand_insv): Use rotate and insert selected bits
5706         instruction for insv when building for z10.
5707         (print_operand_address): Handle symbol ref addresses.
5708         (print_operand): Output modifier 'c' added for signed byte values.
5709         (s390_encode_section_info): Mark symbol refs with
5710         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
5711
5712         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
5713         (length attribute): RRF, RRR have 4 byte length.
5714         (FPALL, INTALL): New mode iterators added.
5715         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
5716         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
5717         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
5718         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
5719         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
5720         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
5721         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
5722         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
5723         instructions.
5724         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
5725         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
5726         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
5727         reload<INTALL:mode><P:mode>_toreg_z10,
5728         reload<FPALL:mode><P:mode>_tomem_z10,
5729         reload<FPALL:mode><P:mode>_toreg_z10,
5730         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
5731         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
5732         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
5733         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
5734         definition.
5735         (movmem, clrmem, cmpmem): New splitters added.
5736
5737         * config/s390/predicates.md (larl_operand): Use
5738         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
5739         SYMBOL_REF_ALIGN1_P.
5740         (s390_signed_integer_comparison,
5741         s390_unsigned_integer_comparison): New predicates.
5742
5743         * config/s390/s390-protos.h (s390_check_symref_alignment,
5744         s390_contiguous_bitmask_p, s390_reload_larl_operand,
5745         s390_reload_symref_address,
5746         s390_compare_and_branch_condition_mask): Prototypes added.
5747
5748         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
5749         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
5750         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
5751
5752 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5753
5754         * config/s390/s390.c (z10_cost): New cost function for z10.
5755         (s390_handle_arch_option, override_options): Support -march=z10 switch.
5756         (s390_issue_rate): Adjust issue rate for z10.
5757         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
5758         (processor_flags): Add PF_Z10.
5759         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
5760         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
5761         * gcc/config.gcc: Add z10.
5762
5763 2008-05-28  Richard Guenther  <rguenther@suse.de>
5764
5765         PR tree-optimization/36291
5766         * tree-flow. h (struct gimple_df): Remove var_anns member.
5767         * tree-flow-inline.h (gimple_var_anns): Remove.
5768         (var_ann): Simplify.
5769         * tree-dfa.c (create_var_ann): Simplify.
5770         (remove_referenced_var): Clear alias info from var_anns of globals.
5771         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
5772         (delete_tree_ssa): Clear alias info from var_anns of globals.
5773         Do not free var_anns.
5774         (var_ann_eq): Remove.
5775         (var_ann_hash): Likewise.
5776
5777 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
5778
5779         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
5780         and loongson2f entries.
5781         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
5782         * config/mips/mips.h (processor_type): Add Loongson-2E
5783         and Loongson-2F entries.
5784         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
5785         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
5786         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
5787         * doc/invoke.texi (MIPS Options): Document loongson2e
5788         and loongson2f processor names.
5789
5790 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5791
5792         PR target/35767
5793         PR target/35771
5794         * config/i386/i386.c (ix86_function_arg_boundary): Use
5795         alignment of canonical type.
5796         (ix86_expand_vector_move): Check unaligned memory access for
5797         all SSE modes.
5798
5799 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
5800
5801         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
5802         Moved to the front of file.
5803
5804 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
5805             H.J. Lu  <hongjiu.lu@intel.com>
5806
5807         * dwarf2out.c (current_fde): New.
5808         (add_cfi): Use it.
5809         (lookup_cfa:): Likewise.
5810         (dwarf2out_end_epilogue): Likewise.
5811         (dwarf2out_note_section_used): Likewise.
5812
5813 2008-05-27  Michael Matz  <matz@suse.de>
5814
5815         PR c++/27975
5816         * c.opt (Wenum-compare): New warning option.
5817         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
5818
5819 2008-05-27  Michael Matz  <matz@suse.de>
5820
5821         PR middle-end/36326
5822         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
5823         non-BLKmode types.
5824         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
5825         into memory as tail calls.
5826
5827 2008-05-27  Richard Guenther  <rguenther@suse.de>
5828
5829         PR tree-optimization/36339
5830         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
5831         pointers cause all addressable variables to be call clobbered.
5832
5833 2008-05-27  Richard Guenther  <rguenther@suse.de>
5834
5835         PR tree-optimization/36245
5836         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
5837
5838 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5839
5840         * config/s390/s390.md: Replace all occurences of the 'm'
5841         constraint with 'RT'.
5842
5843 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5844
5845         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
5846         definitions added.
5847         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
5848         "*movdi_64".
5849         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
5850         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
5851         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
5852
5853 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5854
5855         * reload.c: (find_reloads): Skip alternatives according to the
5856         "enabled" attribute. Constify the constraint variable.
5857         * recog.c (get_attr_enabled): Add default implementation.
5858         (extract_insn): Set the alternative_enabled_p array
5859         in the recog_data struct.
5860         (preprocess_constraints, constrain_operands): Skip
5861         alternatives according to the "enabled" attribute
5862         * recog.h (struct recog_data): New field alternative_enabled_p.
5863         (skip_alternative): New inline function.
5864         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
5865         (record_reg_classes): Skip alternative according to the
5866         "enabled" attribute.
5867
5868         * doc/md.texi: Add documention for the "enabled" attribute.
5869
5870 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
5871
5872         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
5873         * postreload.c (reload_cse_simplify_operands): Replace 'm'
5874         constraint with TARGET_MEM_CONSTRAINT.
5875         * recog.c (asm_operand_ok, preprocess_constraints,
5876         constrain_operands): Likewise.
5877         * regclass.c (record_reg_classes): Likewise.
5878         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
5879         * reload1.c (maybe_fix_stack_asms): Likewise.
5880         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
5881         * recog.h: Adjust comment.
5882         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
5883         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
5884         * doc/md.texi: Add a note to description of 'm' constraint.
5885         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
5886
5887 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
5888
5889         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
5890         that the bitfield is of integral type before testing its precision.
5891
5892 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
5893             Sa Liu  <saliu@de.ibm.com> 
5894
5895         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
5896         __modti3, __udivti3, __umodti3 and __udivmodti4.
5897         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
5898         that implement TImode mul and div functions.
5899         * config/spu/multi3.c: New. Implement __multi3.
5900         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
5901         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
5902         functions on SPU.
5903
5904 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
5905
5906         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
5907         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
5908         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
5909         tls_sysv_suffix): New mode and mode attribute iterators.
5910         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
5911         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
5912         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
5913         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
5914         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
5915         iterators.
5916
5917 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
5918
5919         PR tree-optimization/36329
5920         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
5921         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
5922         * cgraphbuild.c (initialize_inline_failed): Use the latter
5923         macro in lieu of the former.
5924         * ipa-inline.c (cgraph_mark_inline): Likewise.
5925         (cgraph_decide_inlining_of_small_function): Likewise.
5926         (cgraph_decide_inlining): Likewise.
5927         (cgraph_decide_inlining_incrementally): Likewise.
5928
5929 2008-05-26  Tristan Gingold  <gingold@adacore.com>
5930             Anatoly Sokolov  <aesok@post.ru>
5931
5932         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
5933         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
5934         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
5935         optimization for 'avr6' architecture.
5936
5937 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
5938
5939         PR target/34932
5940         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
5941
5942 2008-05-26  Richard Guenther  <rguenther@suse.de>
5943
5944         * tree-ssa-sccvn.c (expr_has_constants): Declare.
5945         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
5946
5947 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
5948
5949         PR middle-end/36253
5950         * caller-save.c (insert_restore): Verify alignment of spill space.
5951         (insert_save): Likewise.
5952         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
5953         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
5954         (STACK_SLOT_ALIGNMENT): Likewise.
5955         * function.c (LOCAL_ALIGNMENT): Removed.
5956         (get_stack_local_alignment): New.
5957         (assign_stack_local): Use it.  Set alignment on stack slot.
5958         (assign_stack_temp_for_type): Use get_stack_local_alignment.
5959         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
5960         (STACK_SLOT_ALIGNMENT): New.
5961         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
5962         stack slot in XFmode.
5963
5964         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
5965
5966 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
5967
5968         PR/36321
5969         * config/i386/i386.md (allocate_stack_worker_64): Make sure
5970         argument operand in rax isn't removed.
5971
5972 2008-05-26  Richard Guenther  <rguenther@suse.de>
5973
5974         PR middle-end/36300
5975         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
5976         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
5977
5978 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5979
5980         PR bootstrap/36331
5981         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
5982
5983 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
5984
5985         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
5986         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
5987
5988 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5989
5990         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
5991         build a trampoline if we don't want one.
5992         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
5993         return zero for nested functions if we don't want a trampoline.
5994
5995 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
5996
5997         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
5998
5999 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
6000
6001         PR fortran/18428
6002         * c.opt: Removed undocumented option '-lang-fortran'.
6003         * c-common.h: Removed global variable 'lang_fortran'.
6004         * c-opts.c (c_common_handle_option): Removed code to handle
6005         option '-lang-fortran'. Updated includes.
6006         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
6007         definition of '__GFORTRAN__'.
6008         (define__GNUC__): Reimplemented to use BASEVER and
6009         cpp_define_formatted.
6010         (builtin_define_with_value_n): Removed.
6011         * c-incpath.h: Renamed to ...
6012         * incpath.h: ... this.
6013         * c-incpath.c: Renamed to ...
6014         * incpath.c: ... this. Updated includes.
6015         * fix-header.c: Updated includes.
6016         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
6017         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
6018         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
6019
6020 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
6021
6022         * tree.h: Update the table of flags used on tree nodes.
6023         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
6024         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
6025         (FORCED_LABEL): Add access check.
6026         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
6027         (ASM_INPUT_P): Likewise.
6028         (ASM_VOLATILE_P): Likewise.
6029         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
6030         (OMP_SECTION_LAST): Access private_flag directly.
6031         (OMP_RETURN_NOWAIT): Likewise.
6032         (OMP_PARALLEL_COMBINED): Likewise.
6033         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
6034         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
6035         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
6036         deprecated_flag directly.
6037
6038 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6039
6040         * final.c (frame_pointer_needed): Removed.
6041         * flags.h (frame_pointer_needed): Likewise.
6042
6043         * function.h (rtl_data): Add frame_pointer_needed.
6044         (frame_pointer_needed): New.
6045
6046 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
6047
6048         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
6049
6050 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
6051
6052         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
6053         SRC is a REG.
6054
6055 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
6056
6057         * c-common.c (strip_array_types): Move function to..
6058         * tree.c: ..here.
6059         (get_inner_array_type): Delete.
6060         * c-common.h (strip_array_types): Move declaration to..
6061         * tree.h: ..here.
6062         (get_inner_array_type): Delete.
6063         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
6064         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
6065         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
6066         * config/pa/pa.c (emit_move_sequence): Likewise.
6067
6068 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6069
6070         * config/i386/i386.md (*sse_prologue_save_insn): Set length
6071         attribute to 34.
6072
6073 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
6074
6075         * function.c: Include target hook for nonlocal_goto frame value.
6076
6077 2008-05-24  Richard Guenther  <rguenther@suse.de>
6078
6079         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
6080         variable can be only accessed through a pointer or a union.
6081
6082 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6083
6084         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
6085         * doc/extend.texi: Likewise.
6086
6087 2008-05-23  DJ Delorie  <dj@redhat.com>
6088
6089         * config/m32c/jump.md (untyped_call): Add.
6090
6091         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
6092         for A24 to PSImode.
6093         (m32c_address_cost): Detail costs for indirect offsets.
6094
6095 2008-05-23  Rafael Espindola  <espindola@google.com>
6096
6097         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
6098         if a node is a SUBREG.
6099         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
6100         is a SUBREG.
6101
6102 2008-05-23  Paul Brook  <paul@codesourcery.com>
6103             Carlos O'Donell  <carlos@codesourcery.com>
6104
6105         * doc/extend.texi: Clarify use of __attribute__((naked)).
6106         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
6107         * target.h (gcc_target): Add allocate_stack_slots_for_args.
6108         * function.c (use_register_for_decl): Use
6109         targetm.calls.allocate_stack_slots_for_args.
6110         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
6111         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
6112         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
6113
6114 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
6115
6116         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
6117
6118 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
6119
6120         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
6121         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
6122         is only rounded once.
6123
6124 2008-05-23  Richard Guenther  <rguenther@suse.de>
6125
6126         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
6127
6128 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
6129             Jakub Jelinek  <jakub@redhat.com>
6130
6131         PR target/36079
6132         * configure.ac: Handle --enable-cld.
6133         * configure: Regenerated.
6134         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
6135         * config/i386/i386.h (struct machine_function): Add needs_cld field.
6136         (ix86_current_function_needs_cld): New define.
6137         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
6138         (cld): New isns pattern.
6139         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
6140         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
6141         * config/i386/i386.opt (mcld): New option.
6142         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
6143         TARGET_CLD and ix86_current_function_needs_cld.
6144         (override_options): Use -mcld by default for 32-bit code if
6145         USE_IX86_CLD.
6146
6147         * doc/install.texi (Options specification): Document --enable-cld.
6148         * doc/invoke.texi (Machine Dependent Options)
6149         [i386 and x86-64 Options]: Add -mcld option.
6150         (Intel 386 and AMD x86-64 Options): Document -mcld option.
6151
6152 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
6153         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
6154         (return_in_memory_64): Likewise.
6155         (return_in_memory_ms_64): Likewise.
6156
6157 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6158
6159         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
6160         * builtins.c (fold_builtin_fpclassify): New.
6161         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
6162         * builtins.def (BUILT_IN_FPCLASSIFY): New.
6163         * c-common.c (handle_type_generic_attribute): Adjust to accept
6164         fixed arguments before an elipsis.
6165         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
6166         * doc/extend.texi: Document __builtin_fpclassify.
6167
6168 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
6169
6170         * omp-low.c (gate_expand_omp_ssa): Remove.
6171         (pass_expand_omp_ssa): Remove.
6172         (gate_expand_omp): Do not check for flag_openmp_ssa.
6173         * common.opt (-fopenmp-ssa): Remove.
6174         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
6175
6176 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
6177
6178         * config/sh/sh.opt (mfixed-range): New option.
6179         * config/sh/sh-protos.h (sh_fix_range): Declare.
6180         * config/sh/sh.c (sh_fix_range): New function.
6181         * config/sh/sh.h (sh_fixed_range_str): Declare.
6182         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
6183         is not empty.
6184         * doc/invoke.texi (SH Options): Document -mfixed-range.
6185
6186 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
6187
6188         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
6189         it before the redeclaration.
6190
6191 2008-05-22  Anatoly Sokolov <aesok@post.ru>
6192
6193         * config/avr/avr.c (get_sequence_length): Add new function.
6194         (expand_prologue, expand_epilogue): Remove duplicate code.
6195
6196 2008-05-22  Rafael Espindola  <espindola@google.com>
6197
6198         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
6199         sharing.
6200
6201 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
6202
6203         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
6204         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
6205
6206         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
6207         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
6208         (vect_update_misalignment_for_peel): Likewise.
6209         (vector_alignment_reachable_p): Likewise.
6210         * tree-vect-transform.c (vectorizable_load): Likewise.
6211         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
6212         (get_vectype_for_scalar_type): Pass mode of scalar_type
6213         to UNITS_PER_SIMD_WORD.
6214
6215         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
6216         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
6217         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
6218         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
6219         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
6220
6221 2008-05-22  Ira Rosen  <irar@il.ibm.com>
6222
6223         PR tree-optimization/36293
6224         * tree-vect-transform.c (vect_transform_strided_load): Don't check
6225         if the first load must be skipped because of a gap.
6226
6227 2008-05-22  Richard Guenther  <rguenther@suse.de>
6228
6229         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
6230         more cases of offset disambiguation that is possible if
6231         strict-aliasing rules apply.
6232         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
6233         for basic offset and type-based disambiguation.
6234
6235 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6236
6237         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
6238         ix86_expand_vector_set on V16QImode for SSE4.1.
6239
6240 2008-05-21  Tom Tromey  <tromey@redhat.com>
6241
6242         * c.opt (Wimport): Mark as undocumented.
6243         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
6244         -Wno-import.
6245         (Warning Options): Likewise.
6246         * doc/cppopts.texi: Don't mention -Wimport.
6247
6248 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
6249
6250         PR tree-optimization/36287
6251         PR tree-optimization/36286
6252         * lambda-code.c (build_access_matrix): Do not use the loop->num
6253         for computing the number of induction variables: use the loop depth
6254         instead.
6255
6256 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
6257
6258         PR/36280
6259         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
6260         option -f(no-)leading-underscore.
6261
6262 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6263
6264         * config/i386/i386.c (ix86_expand_vector_init_general): Use
6265         GET_MODE_NUNITS (mode).
6266
6267 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
6268
6269         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
6270         (-mmulhw): Add 464 to description.
6271         (-mdlmzb): Likewise.
6272         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
6273         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
6274         464fp entries.
6275         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
6276         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
6277         * config/rs6000/rs6000.md: Update comments for 464.
6278
6279 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
6280
6281         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
6282
6283 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6284
6285         * config/i386/sse.md (vec_extractv4sf): Removed.
6286         (vec_extractv2df): Likewise.
6287         (vec_extractv2di): Likewise.
6288         (vec_extractv4si): Likewise.
6289         (vec_extractv8hi): Likewise.
6290         (vec_extractv16qi): Likewise.
6291         (vec_extract<mode>): New.
6292
6293 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6294
6295         * config/i386/sse.md (vec_setv4sf): Removed.
6296         (vec_setv2df): Likewise.
6297         (vec_setv2di): Likewise.
6298         (vec_setv4si): Likewise.
6299         (vec_setv8hi): Likewise.
6300         (vec_setv16qi): Likewise.
6301         (vec_set<mode>): New.
6302
6303 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6304
6305         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
6306         goto for vec_concat and vec_interleave.
6307
6308 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
6309
6310         * config/i386/sse.md (vec_initv4sf): Removed.
6311         (vec_initv2df): Likewise.
6312         (vec_initv2di): Likewise.
6313         (vec_initv4si): Likewise.
6314         (vec_initv8hi): Likewise.
6315         (vec_initv16qi): Likewise.
6316         (vec_init<mode>): New.
6317
6318 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
6319
6320         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
6321
6322 2008-05-21  Tom Tromey  <tromey@redhat.com>
6323
6324         * ggc-zone.c (lookup_page_table_if_allocated): New function.
6325         (zone_find_object_offset): Likewise.
6326         (gt_ggc_m_S): Likewise.
6327         (highest_bit): Likewise.
6328         * ggc-page.c (gt_ggc_m_S): New function.
6329         * stringpool.c (string_stack): Remove.
6330         (init_stringpool): Update.
6331         (ggc_alloc_string): Use ggc_alloc.
6332         (maybe_delete_ident): New function.
6333         (ggc_purge_stringpool): Likewise.
6334         (gt_ggc_m_S): Remove.
6335         * ggc-common.c (ggc_protect_identifiers): New global.
6336         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
6337         ggc_protect_identifiers.
6338         * ggc.h (ggc_protect_identifiers): Declare.
6339         (gt_ggc_m_S): Update.
6340         (ggc_purge_stringpool): Declare.
6341         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
6342         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
6343         special case.
6344         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
6345
6346 2008-05-21  David S. Miller  <davem@davemloft.net>
6347
6348         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
6349         tmake_file.
6350
6351 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6352
6353         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
6354         once finished.
6355
6356 2008-05-20  David Daney  <ddaney@avtrex.com>
6357
6358         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
6359         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
6360         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
6361         UNSPEC_UPDATE_GOT_VERSION): Renumber.
6362         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
6363         (atomic_hiqi_op): New define_code_iterator.
6364         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
6365         mips_expand_compare_and_swap_12.
6366         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
6367         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
6368         (sync_<optab><mode>, sync_old_<optab><mode>,
6369         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
6370         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
6371         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
6372         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
6373         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
6374         (test_and_set_12): New insn.
6375         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
6376         sync_new_<optab><mode>, sync_old_nand<mode>,
6377         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
6378         clobber to operand 0 for SI and DI mode insns.
6379         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
6380         mips_gen_fn_4): New typedefs.
6381         (mips_gen_fn_ptrs): Define new union type.
6382         (mips_expand_compare_and_swap_12): Remove declaration.
6383         (mips_expand_atomic_qihi): Declare function.
6384         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
6385         (mips_expand_atomic_qihi): ... this.  Use new generator function
6386         parameter.
6387         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
6388         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
6389         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
6390         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
6391         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
6392         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
6393         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
6394         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
6395         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
6396         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
6397         New macros.
6398
6399 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
6400
6401         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
6402         the missing break.
6403
6404 2008-05-20  Anatoly Sokolov <aesok@post.ru>
6405
6406         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
6407         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
6408         (avr_attribute_table): Add 'OS_main' function attribute.
6409         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
6410         functions with 'OS_main' attribute.
6411
6412 2008-05-20  Richard Guenther  <rguenther@suse.de>
6413
6414         PR tree-optimization/35204
6415         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
6416         helper, split out from ...
6417         (DFS): ... here.  Make the DFS walk non-recursive.
6418
6419 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
6420             Jan Sjodin  <jan.sjodin@amd.com>
6421
6422         PR tree-optimization/36181
6423         * tree-parloops.c (loop_has_vector_phi_nodes): New.
6424         (parallelize_loops): Don't parallelize when the loop has vector
6425         phi nodes.
6426
6427 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6428             Sebastian Pop  <sebastian.pop@amd.com>
6429
6430         * tree-loop-linear.c (gather_interchange_stats): Look in the access
6431         matrix, and never look at the tree representation of the memory
6432         accesses.
6433         (linear_transform_loops): Computes parameters and access matrices.
6434         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
6435         when fails.
6436         (access_matrix_get_index_for_parameter): New.
6437         * tree-data-ref.h (struct access_matrix): New.
6438         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
6439         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
6440         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
6441         am_vector_index_for_loop): New.
6442         (struct data_reference): Add field access_matrix.
6443         (DR_ACCESS_MATRIX): New.
6444         (compute_data_dependences_for_loop): Update declaration.
6445         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
6446         * lambda.h (lambda_vector_vec_p): Declared.
6447         * lambda-code.c: Depend on pointer-set.h.
6448         (lambda_collect_parameters_from_af, lambda_collect_parameters,
6449         av_for_af_base, av_for_af, build_access_matrix,
6450         lambda_compute_access_matrices): New.
6451         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
6452
6453 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
6454
6455         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
6456         $SOURCEDIR/include.
6457
6458 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6459             Sebastian Pop  <sebastian.pop@amd.com>
6460
6461         PR tree-optimization/36206
6462         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
6463         FOLD_CONVERSIONS.
6464         (instantiate_scev_1): Rename flags to fold_conversions.
6465         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
6466         outeside instantiation_loop.
6467         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
6468         (evolution_function_is_affine_or_constant_p): Removed.
6469         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
6470         instantiate_scev.
6471         (analyze_siv_subscript): Pass in the loop nest number.
6472         Call evolution_function_is_affine_in_loop instead of 
6473         evolution_function_is_affine_p.
6474         (analyze_overlapping_iterations): Pass in the loop nest number.
6475
6476 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
6477             Sebastian Pop  <sebastian.pop@amd.com>
6478
6479         PR tree-optimization/36206
6480         * tree-chrec.h (chrec_fold_op): New.
6481         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
6482         and other trees.
6483
6484 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
6485
6486         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
6487         (DIRS_EQ): New.
6488         (remove_duplicates): Do not set inode on non-inode systems.
6489         Use DIRS_EQ.
6490
6491 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
6492
6493         * config.gcc (tm_file): Update comments about relative pathnames.
6494
6495 2008-05-20  Richard Guenther  <rguenther@suse.de>
6496
6497         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
6498         * tree-ssa-sccvn.c (process_scc): Likewise.
6499         * tree-ssa-sink.c (execute_sink_code): Likewise.
6500         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
6501         * tree-vrp.c (process_assert_insertions): Likewise.
6502         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
6503         (perform_tree_ssa_dce): Likewise.
6504         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
6505         (dump_dominator_optimization_stats): Likewise.
6506         * tree-vectorizer.c (vectorize_loops): Likewise.
6507
6508 2008-05-20  Richard Guenther  <rguenther@suse.de>
6509
6510         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
6511
6512 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
6513
6514         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
6515         (ix86_i386elf_return_in_memory): Likewise.
6516         (ix86_i386interix_return_in_memory): Likewise.
6517         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
6518         (SUBTARGET_RETURN_IN_MEMORY): New.
6519         * config/i386/i386elf.h: Likewise.
6520         * config/i386/ptx4-i.h: Likewise.
6521         * config/i386/sol2-10.h: Likewise.
6522         * config/i386/sysv4.h: Likewise.
6523         * config/i386/vx-common.h: Likewise.
6524         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
6525         * config/i386/i386.c (ix86_return_in_memory): Made static and
6526         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
6527         (ix86_i386elf_return_in_memory): Removed.
6528         (ix86_i386interix_return_in_memory): Removed.
6529         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
6530         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
6531
6532 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
6533
6534         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
6535
6536 2008-05-19  Xinliang David Li  <davidxl@google.com>
6537
6538         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
6539         * opts.c: Ditto.
6540         * common.opt: Ditto.
6541         * doc/invoke.texi: Ditto.
6542
6543 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6544
6545         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
6546         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
6547
6548 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6549
6550         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
6551         sizes of operand array from 8/4 to 4/2.
6552         (ix86_expand_vector_init_general): Change size of operand array
6553         from 32 to 16.  Remove op0, op1 and half_mode.
6554
6555 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
6556
6557         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
6558         (ix86_expand_vector_init_interleave): Likewise.
6559         (ix86_expand_vector_init_general): Use them.  Assert
6560         word_mode == SImode when n_words == 4.
6561
6562 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
6563
6564         * config/i386/i386.c (ix86_secondary_reload): New static function.
6565         (TARGET_SECONDARY_RELOAD): New define.
6566         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
6567         * config/i386/i386.md (reload_outqi): Remove.
6568
6569 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6570
6571         PR middle-end/35509
6572         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
6573         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
6574         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
6575         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
6576         (fold_builtin_1): Likewise.
6577         * builtins.def (BUILT_IN_ISINF_SIGN): New.
6578         c-common.c (check_builtin_function_arguments): Handle
6579         BUILT_IN_ISINF_SIGN.
6580         * doc/extend.texi: Document __builtin_isinf_sign.
6581         * fold-const.c (operand_equal_p): Handle COND_EXPR.
6582
6583 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
6584
6585         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
6586         EH cleanup at the end of the pass, search for those that have been
6587         turned into forwarder blocks and do the cleanup on their successor.
6588
6589 2008-05-18  Richard Guenther  <rguenther@suse.de>
6590
6591         * tree-cfg.c (verify_gimple_expr): Allow conversions from
6592         pointers to sizetype and vice versa.
6593
6594 2008-05-18 Xinliang David Li   <davidxl@google.com>
6595
6596         * gcc/tree-ssa-dce.c: Coding style fix.
6597         (check_pow): Documentation comment. 
6598         (check_log): Documenation comment. Coding style fix.
6599         (is_unnecessary_except_errno_call): Ditto.
6600         (gen_conditions_for_pow): Ditto.
6601         (gen_conditions_for_log): Ditto.
6602         (gen_shrink_wrap_conditions): Ditto.
6603         (shrink_wrap_one_built_in_calls): Ditto.
6604         * gcc/doc/invoke.texi: Better documentation string.
6605         * ChangeLog: Fix wrong change log entries from 
6606         May 17 checkin on function call DCE.
6607
6608 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
6609
6610         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
6611
6612 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
6613
6614         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
6615         * df-problems.c (simulation routines): Fixed block comment to
6616         properly say how to add forwards scanning functions.
6617         
6618 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6619
6620         * tree-inline.c (setup_one_parameter): Remove dead code.
6621
6622 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
6623
6624         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
6625         a BIT_AND_EXPR only for an INTEGER_TYPE.
6626
6627 2008-05-17 Xinliang David Li   <davidxl@google.com>
6628
6629         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
6630         (check_pow, check_log, is_unnecessary_except_errno_call): New 
6631         functions to check for eliminating math functions that are pure 
6632         except for setting errno.
6633         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
6634         general condition expressions for shrink-wrapping pow/log calls.
6635         (gen_shrink_wrap_conditions): Ditto.
6636         (shrink_wrap_one_built_in_call): Ditto.
6637         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
6638         (mark_operand_necessary): If debugging, output if OP is necessary.
6639         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
6640         unnecessary.
6641         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
6642         opt level >= 2.
6643         * gcc/common.opt: New user flag -ftree-builtin-dce.
6644         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
6645
6646 2008-05-16  David S. Miller  <davem@davemloft.net>
6647
6648         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
6649         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
6650
6651 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
6652
6653         PR target/36246
6654         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
6655
6656 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6657
6658         * ifcvt.c (dead_or_predicable): Rename
6659         df_simulate_one_insn_backwards to df_simulate_one_insn.
6660         * recog.c (peephole2_optimize): Ditto.
6661         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
6662         Ditto.
6663         * df.h: Rename df_simulate_one_insn_backwards to
6664         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
6665         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
6666         scanning of defs and uses.
6667         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
6668         (df_simulate_one_insn_forwards): Removed.
6669
6670 2008-05-16  Doug Kwan  <dougkwan@google.com>
6671
6672         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
6673         QNaN & SNaN.
6674         (real_from_string): Handle NaNs and Inf as approriate.
6675
6676 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6677
6678         * doc/gty.texi (Source Files Containing Type Information): Note
6679         that headers should appear first in the gtfiles list.
6680
6681 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6682
6683         * tree.def (COND_EXEC): Properly documented this code.
6684
6685 2008-05-16  Diego Novillo  <dnovillo@google.com>
6686
6687         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
6688         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
6689         the new field.
6690
6691 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6692
6693         * tree-ssa-dse (max_stmt_uid): Removed.
6694         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
6695         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
6696         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
6697         * function.h (cfun.last_stmt_uid): New field.
6698         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
6699         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
6700         New functions.
6701         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
6702         (create_stmt_ann): Initialize the ann->uid field.
6703         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
6704         with new calls.
6705         * tree-flow.h (renumber_gimple_stmt_uids): New function.
6706
6707 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
6708
6709         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
6710         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
6711         (init_empty_tree_cfg): Call it.
6712
6713 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6714
6715         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
6716         Update all users.
6717
6718 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
6719
6720         * doc/invoke.text (-fdump-tree-*-verbose): New option.
6721         * tree-dump.c (dump_options): New verbose option.
6722         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
6723         Add verbose dump.
6724         * tree-pass.h (TDF_VERBOSE): New dump flag.
6725         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
6726         (tree-flow.h): Added include.
6727         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
6728
6729 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
6730
6731         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
6732
6733         From Jie Zhang  <jie.zhang@analog.com>
6734         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6735         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
6736         mcpu=bf561-none and mcpu=bf561-0.2.
6737         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6738         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6739         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
6740         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
6741         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
6742         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
6743         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
6744         option.
6745         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
6746         (cputype_selected): Remove.
6747         (bfin_handle_option): Don't use cputype_selected.
6748         (override_options): When no mcpu option, enable all workarounds.
6749         Don't use bfin_workarounds.
6750         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
6751         processor type.
6752         (DEFAULT_CPU_TYPE): Don't define.
6753
6754 2008-05-16  Richard Guenther  <rguenther@suse.de>
6755
6756         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
6757         on deletion of the last stmt.
6758
6759 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6760
6761         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
6762         V8HImode for SSE2 and V16QImode for SSE4.1.
6763
6764 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
6765
6766         * cgraph.h (compute_inline_parameters): Made public.
6767         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
6768         variable_generate_summary, function_write_summary,
6769         variable_write_summary, variable_read_summary.  Added generate_summary,
6770         write_summary, read_summary.
6771         * cgraphunit.c (cgraph_process_new_functions): Changed call from
6772         pass_ipa_inline.function_generate_summary, to
6773         compute_inline_parameters. 
6774         * ipa-inline.c (compute_inline_parameters): Made public and added
6775         node parameter.
6776         (compute_inline_parameters_for_current): New function.
6777         (pass_inline_param): Now calls compute_inline_parameters_for_current.
6778         (inline_generate_summary): Removed parameter and made to loop over
6779         all cgraph nodes.
6780         (pass_ipa_inline): Updated for new IPA_PASS structure.
6781         * passes.c (execute_ipa_summary_passes): Now is called once per
6782         pass rather than once per node*pass.
6783         
6784 2008-05-15  Anatoly Sokolov <aesok@post.ru>
6785
6786         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
6787         avr_have_mul_p, avr_asm_only_p): Remove variables.
6788         (avr_override_options): Remove initialization of removed variables.
6789         (avr_file_start):  Convert removed variables to fields of 
6790         'struct base_arch_s *avr_current_arch'. 
6791         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
6792         (AVR_HAVE_MUL): (Ditto.).
6793         (AVR_HAVE_MOVW): (Ditto.).
6794         (AVR_HAVE_LPMX): (Ditto.). 
6795         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
6796         avr_asm_only_p): Remove declaration.
6797
6798 2008-05-15  Diego Novillo  <dnovillo@google.com>
6799
6800         * config/arm/arm.c (arm_return_in_memory): Fix return type.
6801         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
6802
6803 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
6804
6805         PR middle-end/36194
6806         * combine.c (check_conversion): Rename back to check_promoted_subreg.
6807         Don't call record_truncated_value from here.
6808         (record_truncated_value): Turn it into a for_each_rtx callback.
6809         (record_truncated_values): New function.
6810         (combine_instructions): Call note_uses with record_truncated_values.
6811         Change name of check_conversion to check_promoted_subreg. 
6812
6813 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
6814
6815         * doc/sourcebuild.texi: Document support for torture tests.
6816
6817 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6818
6819         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
6820         to alternative 4 of operand 2.
6821
6822 2008-05-15  Richard Guenther  <rguenther@suse.de>
6823
6824         * tree-pass.h (current_pass): Declare.
6825         (get_pass_for_id): Likewise.
6826         * passes.c (passes_by_id, passes_by_id_size): New globals.
6827         (set_pass_for_id): New function.
6828         (get_pass_for_id): Likewise.
6829         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
6830         (execute_function_todo): Flush per function statistics.
6831         * toplev.c (compile_file): Init statistics.
6832         (general_init): Do early statistics initialization.
6833         (finalize): Finish statistics.
6834         * statistics.h (statistics_early_init): Declare.
6835         (statistics_init): Likewise.
6836         (statistics_fini): Likewise.
6837         (statistics_fini_pass): Likewise.
6838         (statistics_counter_event): Likewise.
6839         (statistics_histogram_event): Likewise.
6840         * statistics.c: New file.
6841         * Makefile.in (OBJS-common): Add statistics.o.
6842         (statistics.o): Add dependencies.
6843         * doc/invoke.texi (-fdump-statistics): Document.
6844
6845         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
6846         (insert): Likewise.
6847         (execute_pre): Use statistics_counter_event.
6848         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
6849         (substitute_and_fold): Increment it.  Use statistics_counter_event.
6850
6851 2008-05-15  Diego Novillo  <dnovillo@google.com>
6852
6853         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
6854
6855         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
6856         * tree-ssa-alias.c (new_type_alias): Remove references to
6857         sub-variables from comment.
6858         * tree-ssa-operands.c (swap_tree_operands): Likewise.
6859
6860 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
6861
6862         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
6863         attribute to 1 only for insertps alternative.
6864
6865 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6866
6867         * config/bfin/bfin.md (loadbytes): New pattern.
6868         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
6869         (bfin_init_builtins): Initialize it.
6870         (bdesc_1arg): Add it.
6871
6872 2008-05-15  Sa Liu  <saliu@de.ibm.com>
6873
6874         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
6875         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
6876         * testsuite/lib/target-supports.exp: Add
6877         check_effective_target_fortran_integer_16.
6878
6879 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
6880
6881         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
6882         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
6883         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
6884         (TARGET_RETURN_IN_MEMORY): Define.
6885
6886 2008-05-15  Richard Guenther  <rguenther@suse.de>
6887
6888         PR middle-end/36244
6889         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
6890         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
6891         represent unmodifiable vars.
6892
6893 2008-05-15  Richard Guenther  <rguenther@suse.de>
6894
6895         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
6896         INDIRECT_REF and TARGET_MEM_REF.
6897         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6898         TARGET_MEM_REF.
6899
6900 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
6901             H.J. Lu  <hongjiu.lu@intel.com>
6902
6903         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
6904         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
6905         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
6906         insn alternatives.  Add missing alternatives.
6907         (*vec_concatv2di_rex64_sse4_1): Likewise.
6908         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
6909         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
6910         Require TARGET_SSE.
6911
6912 2008-05-15  Richard Guenther  <rguenther@suse.de>
6913
6914         PR tree-optimization/36009
6915         PR tree-optimization/36204
6916         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
6917         (determine_invariantness_stmt): Record the loop a store is
6918         always executed in.
6919         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
6920         dependency.
6921
6922 2008-05-15  Richard Guenther  <rguenther@suse.de>
6923
6924         PR tree-optimization/34330
6925         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
6926         through the pointer will alias the SMT.
6927
6928 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
6929
6930         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
6931
6932 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
6933
6934         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
6935
6936 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
6937             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
6938
6939         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
6940         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
6941         (vashl_optab): New optab for vector/vector shifts.
6942         (vashr_optab): Ditto.
6943         (vlshr_optab): Ditto.
6944         (vrotl_optab): Ditto.
6945         (vrotr_optab): Ditto.
6946         (optab_subtype): New enum for optab_for_tree_code call.
6947         (optab_for_tree_code): Add enum optab_subtype argument.
6948
6949         * optabs.c (optab_for_tree_code): Take an additional argument to
6950         distinguish between a vector shift by a scalar and vector shift by
6951         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
6952         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
6953         vector shift by a vector.
6954         (expand_widen_pattern_expr): Pass additional argument to
6955         optab_for_tree_code.
6956
6957         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
6958         vrotl_optab, vrotr_optab.
6959
6960         * expr.c (expand_expr_real_1): Update calls to
6961         optab_for_tree_code to distinguish between vector shifted by a
6962         scalar and vector shifted by a vector.
6963         * tree-vectorizer.c (supportable_widening_operation): Ditto.
6964         (supportable_narrowing_operation): Ditto.
6965         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
6966         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
6967         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
6968         (vect_create_epilog_for_reduction): Ditto.
6969         (vectorizable_reduction): Ditto.
6970         (vectorizable_operation): Ditto.
6971         (vect_strided_store_supported): Ditto.
6972         (vect_strided_load_supported): Ditto.
6973         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
6974         * expmed.c (expand_shift): Ditto.
6975
6976         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
6977         scalar type.
6978         (ashr@var{m}3): Ditto.
6979         (vashl@var{m}3): Document new vector/vector shift standard name.
6980         (vashr@var{m}3): Ditto.
6981         (vlshr@var{m}3): Ditto.
6982         (vrotl@var{m}3): Ditto.
6983         (vrotr@var{m}3): Ditto.
6984
6985         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
6986         (PPERM_INVERT): Ditto.
6987         (PPERM_REVERSE): Ditto.
6988         (PPERM_REV_INV): Ditto.
6989         (PPERM_ZERO): Ditto.
6990         (PPERM_ONES): Ditto.
6991         (PPERM_SIGN): Ditto.
6992         (PPERM_INV_SIGN): Ditto.
6993         (PPERM_SRC1): Ditto.
6994         (PPERM_SRC2): Ditto.
6995
6996         * config/i386/sse.md (mulv2di3): Add SSE5 support.
6997         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
6998         allows a memory operand to be the value being added, and split it
6999         to improve vectorization.
7000         (sse5_pmacsdqh_mem): Ditto.
7001         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
7002         (sse5_mulv2div2di3_high): Ditto.
7003         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
7004         (vec_pack_trunc_v4si): Ditto.
7005         (vec_pack_trunc_v2di): Ditto.
7006         (sse5_pcmov_<mode>): Remove code that tried to use use
7007         andps/andnps instead of pcmov.
7008         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
7009         pmacsdqh instructions.
7010         (vec_widen_smult_lo_v4si): Ditto.
7011
7012         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
7013         (PPERM_INVERT): Ditto.
7014         (PPERM_REVERSE): Ditto.
7015         (PPERM_REV_INV): Ditto.
7016         (PPERM_ZERO): Ditto.
7017         (PPERM_ONES): Ditto.
7018         (PPERM_SIGN): Ditto.
7019         (PPERM_INV_SIGN): Ditto.
7020         (PPERM_SRC1): Ditto.
7021         (PPERM_SRC2): Ditto.
7022         (ix86_expand_sse_movcc): Move the SSE5 test after the if
7023         true/false tests.
7024         (ix86_expand_int_vcond): If SSE5 generate all possible integer
7025         comparisons.
7026         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
7027         says ignore whether the last reference is a memory operand.
7028
7029 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
7030             Paolo Bonzini <bonzini at gnu dot org>
7031
7032         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
7033         shift patterns.
7034
7035         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
7036         (vlshr<mode>3): Rename from vlshr<mode>3.
7037         (vashr<mode>3): Rename from vashr<mode>3.
7038         (mulv4sf3): Change the names of vector shift patterns.
7039         (mulv4si3): Ditto.
7040         (negv4sf2): Ditt.
7041
7042         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
7043         shift insns.
7044
7045         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
7046         (SI_SHLHI): Ditto.
7047         (SI_SHL): Ditto.
7048         (SI_SHLI): Ditto.
7049         (SI_ROTH): Ditto.
7050         (SI_ROTHI): Ditto.
7051         (SI_ROT): Ditto.
7052         (SI_ROTI): Ditto.
7053         (SPU_RL_0): Ditto.
7054         (SPU_RL_1): Ditto.
7055         (SPU_RL_2): Ditto.
7056         (SPU_RL_3): Ditto.
7057         (SPU_RL_4): Ditto.
7058         (SPU_RL_5): Ditto.
7059         (SPU_RL_6): Ditto.
7060         (SPU_RL_7): Ditto.
7061         (SPU_SL_0): Ditto.
7062         (SPU_SL_1): Ditto.
7063         (SPU_SL_2): Ditto.
7064         (SPU_SL_3): Ditto.
7065         (SPU_SL_4): Ditto.
7066         (SPU_SL_5): Ditto.
7067         (SPU_SL_6): Ditto.
7068         (SPU_SL_7): Ditto.
7069
7070         * config/spu/spu.md (v): New iterator macro to add v for vector types.
7071         (floatunssidf2_internal): Change vector/vector shift names.
7072         (floatunsdidf2_internal): Ditto.
7073         (mulv8hi3): Ditto.
7074         (ashrdi3): Ditto.
7075         (ashrti3): Ditto.
7076         (cgt_df): Ditto.
7077         (cgt_v2df): Ditto.
7078         (dftsv): Ditto.
7079         (vashl<mode>3): Rename from ashl<mode>3.
7080         (vashr<mode>3): Rename from ashr<mode>3.
7081         (vlshr<mode>3): Rename from lshr<mode>3.
7082         (vrotl<mode>3): Rename from rotl<mode>3.
7083
7084 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
7085
7086         PR target/36224
7087         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
7088         multiply gives the wrong value when doing widening multiplies.
7089         (vec_widen_smult_lo_v4si): Ditto.
7090
7091 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
7092
7093         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
7094         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
7095         emit_library_call_value. 
7096         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
7097         * tree.h (ECF_LIBCALL_BLOCK): Removed.
7098         * calls.c (initialize_argument_information, precompute_arguments, 
7099         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
7100         (precompute_arguments): Removed flags parameter.
7101         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
7102         
7103 2008-05-14  Richard Guenther  <rguenther@suse.de>
7104
7105         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
7106         Make sure to register the store if the use is a PHI_NODE.
7107
7108 2008-05-14  Olivier Hainque  <hainque@adacore.com>
7109
7110         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
7111         memory if the component is to be referenced in BLKmode according
7112         to get_inner_reference.
7113
7114 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
7115
7116         * calls.c (emit_library_call_value_1): Restore code clearing
7117         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
7118
7119 2008-05-14  Olivier Hainque  <hainque@adacore.com>
7120             Nicolas Roche  <roche@adacore.com>
7121
7122         * configure.ac: Add support for a "gcc_subdir" variable in
7123         config-lang.in, to denote a subdirectory where the language/GCC
7124         integration files are to be found.
7125         * configure: Regenerate.
7126
7127 2008-05-14  Ira Rosen  <irar@il.ibm.com>
7128
7129         PR tree-optimization/36098
7130         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
7131         value for the first load in the group in case of a gap.
7132         (vect_build_slp_tree): Check that there are no gaps in loads.
7133
7134 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
7135
7136         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
7137         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
7138         expand_copysign_bit, ): Change call to emit_no_conflict_block to
7139         emit_insn and remove unneeded code to construct extra args.
7140         (emit_no_conflict_block): Removed.
7141         * optabls.h: (emit_no_conflict_block): Removed.
7142         * cse.c (cse_extended_basic_block): Remove search for
7143         REG_NO_CONFLICT note.
7144         * global.c: Removed incorrect comment added in revision 117.
7145         * expr.c (convert_move): Change call to emit_no_conflict_block to
7146         emit_insn.
7147         * recog.c: Change comments so that they do not mention
7148         REG_NO_CONFLICT.
7149         * local_alloc.c (combine_regs): Removed last parameter.
7150         (no_conflict_p): Removed.
7151         (block_alloc): Removed note, no_conflict_combined_regno and set
7152         local vars. Removed all code to process REG_NO_CONFLICT blocks.
7153         (combine_regs): Removed already_dead and code to look for
7154         REG_NO_CONFLICT notes.
7155         * lower_subreg (remove_retval_note): Removed code to look for
7156         REG_NO_CONFLICT block.
7157         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
7158         (resolve_clobber): Remove code to process libcalls that have
7159         REG_NO_CONFLICT notes.
7160         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
7161         case.
7162         * combine.c (can_combine_p, distribute_notes):  Removed
7163         REG_NO_CONFLICT case.
7164         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
7165         to emit_insns.
7166         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
7167         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
7168         Ditto.
7169         * reg-notes.def (NO_CONFLICT): Removed.
7170
7171 2008-05-14  David S. Miller  <davem@davemloft.net>
7172
7173         * config/sparc/sparc.c (sparc_profile_hook): If
7174         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
7175         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
7176         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
7177
7178 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
7179
7180         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
7181
7182 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
7183
7184         PR target/36222
7185         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
7186         and op1 expansion before vector concat to have less live pseudos.
7187
7188 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
7189
7190         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
7191         ix86_expand_vector_set if supported.
7192
7193 2008-05-13  Diego Novillo  <dnovillo@google.com>
7194             Kenneth Zadeck  <zadeck@naturalbridge.com>
7195
7196         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
7197
7198         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
7199         phinodes_print_statistics, init_ssanames, fini_ssanames,
7200         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
7201         release_ssa_name, release_defs, replace_ssa_name_symbol,
7202         ssanames_print_statistics): Move ...
7203         * tree-flow.h: ... here.
7204         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
7205         Use FN instead of cfun.
7206         (make_ssa_name_fn): Rename from make_ssa_name.
7207         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
7208         * tree-flow-inline.h (make_ssa_name): Move from
7209         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
7210         * omp-low.c (expand_omp_parallel):
7211         * tree-flow-inline.h (redirect_edge_var_map_result):
7212         * tree-ssa.c (init_tree_ssa): Add argument FN.
7213         Use it instead of cfun.  Update all users.
7214
7215 2008-05-13  Tom Tromey  <tromey@redhat.com>
7216
7217         PR preprocessor/22168:
7218         * doc/cpp.texi (Top): Update menu.
7219         (Alternatives to Wrapper #ifndef): New node.
7220         (Other Directives): Document deprecation.
7221         (Obsolete Features): Remove menu.
7222         (Assertions): Merge node into Obsolete Features.
7223         (Obsolete once-only headers): Move earlier; rename to Alternatives
7224         to Wrapper #ifndef.
7225         * doc/cppopts.texi: Update.
7226         * c.opt (Wdeprecated): Enable for C and ObjC.
7227         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
7228         (C++ Dialect Options): Move -Wno-deprecated from here to...
7229         (Warning Options): ... here.
7230
7231 2008-05-13  Richard Guenther  <rguenther@suse.de>
7232
7233         PR middle-end/36227
7234         * fold-const.c (fold_sign_changed_comparison): Do not allow
7235         changes in pointer-ness.
7236
7237 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
7238
7239         PR target/24713
7240         * config/sh/sh.c (sh_expand_prologue): Don't clear
7241         RTX_FRAME_RELATED_P for push insns.
7242
7243 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
7244
7245         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
7246
7247 2008-05-12  Anatoly Sokolov <aesok@post.ru>
7248
7249         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
7250         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
7251         Use 'machine->is_leaf' instead of 'leaf_func_p'.
7252
7253 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
7254
7255         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
7256         (*vec_concatv4sf_sse): This.
7257         (*sse2_concatv2si): Renamed to ...
7258         (*vec_concatv2si_sse2): This.
7259         (*sse1_concatv2si): Renamed to ...
7260         (*vec_concatv2si_sse): This.
7261         (*vec_concatv2di_rex): Renamed to ...
7262         (*vec_concatv2di_rex64): This.
7263         (*vec_concatv2si_sse4_1): New.
7264         (*vec_concatv2di_rex64_sse4_1): Likewise.
7265
7266 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
7267
7268         PR rtl-optimization/36111
7269         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
7270         that was created for swappable operands.
7271
7272 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
7273
7274         PR ada/36001
7275         * Makefile.in: Substitute GNATMAKE and GNATBIND.
7276         * configure.ac: Add call to ACX_PROG_GNAT.
7277
7278 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
7279
7280         * optc-gen.awk: Fix comment typo.
7281
7282 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
7283
7284         * pretty-print.c (pp_integer_with_precision): Use
7285         HOST_LONG_LONG_FORMAT.
7286
7287 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
7288
7289         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
7290                 
7291 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
7292
7293         * config/i386/i386.c (bdesc_ptest): Removed.
7294         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
7295         (bdesc_args): Add __builtin_ia32_ptestz128,
7296         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
7297         (ix86_init_mmx_sse_builtins): Updated.
7298         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
7299         (ix86_expand_builtin): Updated.
7300
7301 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
7302
7303         * tree-cfg.c (valid_fixed_convert_types_p): New function.
7304         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
7305
7306 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         * value-prof.c (interesting_stringop_to_profile): Do not
7309         return early for BUILT_IN_MEMPCPY.
7310
7311 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7312
7313         * calls.c (expand_call): Don't use callgraph to increase
7314         preferred_stack_boundary.
7315
7316         * cgraph.h (cgraph_rtl_info): Use unsigned on
7317         preferred_incoming_stack_boundary.
7318
7319         * final.c (rest_of_clean_state): Use unsigned on
7320         preferred_stack_boundary.
7321
7322 2008-05-09  Tom Tromey  <tromey@redhat.com>
7323
7324         PR preprocessor/22231:
7325         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
7326         proceeding.
7327
7328 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
7329
7330         PR tree-optimization/36129
7331         * tree-ssa-ccp.c: Include value-prof.h.
7332         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
7333         built-in function was folded to a constant.
7334         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
7335
7336 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
7337             Sebastian Pop  <sebastian.pop@amd.com>
7338
7339         * tree-scalar-evolution.c: Document instantiate_scev.
7340         (instantiate_parameters_1): Renamed instantiate_scev_1.
7341         Don't use the same loop for instantiation_loop and evolution_loop.
7342         (instantiate_scev): New.
7343         (instantiate_parameters): Moved...
7344         (resolve_mixers): Update call to instantiate_scev_1 to pass the
7345         same loop twice.  Maintains the semantics for this function.
7346         * tree-scalar-evolution.h (instantiate_scev): Declare.
7347         (instantiate_parameters): ...here.  Now static inline.
7348         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
7349         instead of resolve_mixers.
7350
7351 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
7352
7353         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
7354
7355 2008-05-09  Tomas Bily  <tbily@suse.cz>
7356
7357         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
7358         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
7359         * tree-ssa-structalias.c (get_constraint_for): Likewise.
7360         * c-common.c (c_common_truthvalue_conversion): Likewise.
7361         * tree-object-size.c (compute_object_offset): Likewise.
7362         * tree-inline.c (estimate_num_insns_1): Likewise.
7363         * varasm.c (const_hash_1, compare_constant, copy_constant)
7364         (compute_reloc_for_constant, output_addressed_constants)
7365         (initializer_constant_valid_p): Likewise.
7366         * c-omp.c (check_omp_for_incr_expr): Likewise.
7367         * gimplify.c (gimplify_expr): Likewise.
7368         * c-typeck.c (c_finish_return): Likewise.
7369         * tree-vectorizer.c (supportable_widening_operation)
7370         (supportable_narrowing_operation): Likewise.
7371         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
7372         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
7373         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
7374         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
7375         (descr_info_loc): Likewise.
7376         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
7377         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
7378         (fold_unary): Likewise.
7379         * builtins.c (get_pointer_alignment): Likewise.
7380         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
7381         (instantiate_parameters_1): Likewise.
7382         * tree.c (expr_align, stabilize_reference): Likewise.
7383         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
7384         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7385         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
7386         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
7387         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
7388         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
7389         Likewise.
7390         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
7391         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
7392         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
7393         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
7394         (forward_propagate_comparison)
7395         (tree_ssa_forward_propagate_single_use_vars): Likewise.
7396         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
7397         * emit-rtl.c (component_ref_for_mem_expr)
7398         (set_mem_attributes_minus_bitpos): Likewise.
7399         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
7400         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
7401         Likewise.
7402         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
7403         (build_function_call, pointer_diff, build_compound_expr)
7404         (c_finish_return): Likewise.
7405         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
7406         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
7407         Likewise.
7408         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
7409         * expr.c (is_aligning_offset): Likewise.
7410         * tree-ssa-alias.c (is_escape_site): Likewise.
7411         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
7412         (check_all_va_list_escapes): Likewise.
7413         * tree-ssa-loop-ivopts.c (determine_base_object)
7414         (determine_common_wider_type): Likewise.
7415         * dojump.c (do_jump): Likewise.
7416         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
7417         * tree-gimple.c (is_gimple_cast): Likewise.
7418         * fold-const.c (decode_field_reference, )
7419         (fold_sign_changed_comparison, fold_unary, fold_comparison)
7420         (fold_binary): Likewise.
7421         * tree-ssa-alias-warnings.c (find_alias_site_helper)
7422         (already_warned_in_frontend_p): Likewise.
7423         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
7424         * tree.c (really_constant_p, get_unwidened): Likewise.
7425         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
7426         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
7427         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
7428         Likewise.
7429         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
7430         CONVERT_EXPR_P.
7431         (CONVERT_EXPR_P): Define.
7432         (CASE_CONVERT): Define.
7433         
7434 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
7435
7436         PR middle-end/36117
7437         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
7438         (delete_unmarked_insns): When deleting a call, call
7439         delete_unreachable_blocks.
7440         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7441         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
7442
7443 2008-05-08  Richard Guenther  <rguenther@suse.de>
7444
7445         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
7446         (-ftree-salias): Likewise.
7447         (salias-max-implicit-fields): Remove param documentation.
7448         (salias-max-array-elements): Likewise.
7449         * tree-pass.h (pass_create_structure_vars): Remove.
7450         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7451         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7452         * tree-ssa-alias.c (create_structure_vars): Remove.
7453         (gate_structure_vars): Likewise.
7454         (pass_create_structure_vars): Likewise.
7455         (gate_build_alias): Likewise.
7456         (pass_build_alias): Adjust to run always and dump the function.
7457         * common.opt (ftree-salias): Hide.
7458         * passes.c (init_optimization_passes): Remove
7459         pass_create_structure_vars, adjust comment.
7460         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
7461         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
7462         * opts.c (decode_options): Do not set flag_tree_salias.
7463         (common_handle_option): Add OPT_ftree_salias to the backward
7464         compatibility section.
7465
7466 2008-05-08  Richard Guenther  <rguenther@suse.de>
7467
7468         * tree-flow-inline.h (var_can_have_subvars): Move ...
7469         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
7470         * tree-flow.h (var_can_have_subvars): Remove.
7471         (push_fields_onto_fieldstack): Remove.
7472         (sort_fieldstack): Likewise.
7473         (struct fieldoff): Move ...
7474         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
7475         alias_set and base_for_components fields.
7476         (sort_fieldstack): Make static.
7477         (push_fields_onto_fieldstack): Likewise.  Remove code that
7478         handles anything but RECORD_TYPEs.  Remove alias_set and
7479         base_for_components handling.
7480         (create_variable_info_for): Adjust.
7481
7482 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
7483
7484         * common.opt (Wframe-larger-than=): Shorten the help message
7485         to one line.
7486         * doc/invoke.texi (Wframe-larger-than=): Add more description.
7487
7488 2008-05-08  Rafael Espindola  <espindola@google.com>
7489
7490         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
7491         trap.
7492         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
7493         trap and that both operands are gimple values.
7494         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
7495         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
7496         is a fp operation.
7497
7498 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7499
7500         * read-rtl.c (join_c_conditions): Return the first string if the
7501         two strings are equal.
7502
7503 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
7504
7505         * gensupport.h (pred_data): Add a "num_codes" field.
7506         (add_predicate_code): Declare.
7507         * gensupport.c (add_predicate_code): New function.
7508         (std_pred_table): Add an "allows_const_p" field.
7509         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
7510         Remove the (incomplete) list of such codes from the codes field.
7511         (init_predicate_table): Use add_predicate_code.  Add all
7512         RTX_CONST_OBJs if allows_const_p is true.
7513         * genrecog.c (process_define_predicate): Use add_predicate_code.
7514
7515 2008-05-08  David Daney  <ddaney@avtrex.com>
7516             Richard Sandiford  <rsandifo@nildram.co.uk>
7517         
7518         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
7519         special case of constant zero operands.
7520         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
7521         old and new values.  Special case constant zero values.
7522         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
7523         fails.
7524         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
7525         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
7526
7527 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
7528
7529         PR target/36090
7530         * simplify-rtx.c (simplify_plus_minus): Create CONST of
7531         similar RTX_CONST_OBJ before CONST_INT.
7532
7533 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
7534
7535         * stmt.c (expand_stack_restore): Change sa mode if needed.
7536
7537 2008-05-08  Richard Guenther  <rguenther@suse.de>
7538
7539         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
7540         return type to bool.
7541         (ix86_sol10_return_in_memory): Likewise.
7542         (ix86_i386elf_return_in_memory): Likewise.
7543         (ix86_i386interix_return_in_memory): Likewise.
7544         * config/i386/i386.c (ix86_return_in_memory): Likewise.
7545         (ix86_sol10_return_in_memory): Likewise.
7546         (ix86_i386elf_return_in_memory): Likewise.
7547         (ix86_i386interix_return_in_memory): Likewise.
7548
7549 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7550
7551         PR bootstrap/36180
7552         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
7553         fndecl argument.
7554         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
7555         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
7556         declared in front.
7557
7558 2008-05-08  Richard Guenther  <rguenther@suse.de>
7559
7560         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
7561         * tree-data-ref.h (struct dr_alias): Remove subvars field.
7562         (DR_SUBVARS): Remove.
7563         * tree-dfa.c (dump_subvars_for): Remove.
7564         (debug_subvars_for): Likewise.
7565         (dump_variable): Do not dump subvars.
7566         (remove_referenced_var): Do not remove subvars.
7567         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
7568         (lookup_subvars_for_var): Remove.
7569         (get_subvars_for_var): Likewise.
7570         (get_subvars_at): Likewise.
7571         (get_first_overlapping_subvar): Likewise.
7572         (overlap_subvar): Likewise.
7573         * tree-flow.h (subvar_t): Remove.
7574         (struct var_ann_d): Remove subvars field.
7575         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
7576         argument.  Remove special handling of SFTs.
7577         (compute_tag_properties): Likewise.
7578         (set_initial_properties): Likewise.
7579         (compute_call_clobbered): Likewise.
7580         (count_mem_refs): Likewise.
7581         (compute_memory_partitions): Likewise.
7582         (compute_flow_insensitive_aliasing): Likewise.
7583         (setup_pointers_and_addressables): Likewise.
7584         (new_type_alias): Likewise.
7585         (struct used_part): Remove.
7586         (used_portions): Likewise.
7587         (struct used_part_map): Likewise.
7588         (used_part_map_eq): Likewise.
7589         (used_part_map_hash): Likewise.
7590         (free_used_part_map): Likewise.
7591         (up_lookup): Likewise.
7592         (up_insert): Likewise.
7593         (get_or_create_used_part_for): Likewise.
7594         (create_sft): Likewise.
7595         (create_overlap_variables_for): Likewise.
7596         (find_used_portions): Likewise.
7597         (create_structure_vars): Likewise.
7598         * tree.def (STRUCT_FIELD_TAG): Remove.
7599         * tree.h (MTAG_P): Adjust.
7600         (struct tree_memory_tag): Remove base_for_components and
7601         unpartitionable flags.
7602         (struct tree_struct_field_tag): Remove.
7603         (SFT_PARENT_VAR): Likewise.
7604         (SFT_OFFSET): Likewise.
7605         (SFT_SIZE): Likewise.
7606         (SFT_NONADDRESSABLE_P): Likewise.
7607         (SFT_ALIAS_SET): Likewise.
7608         (SFT_UNPARTITIONABLE_P): Likewise.
7609         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
7610         (union tree_node): Remove sft field.
7611         * alias.c (get_alias_set): Remove special handling of SFTs.
7612         * print-tree.c (print_node): Remove handling of SFTs.
7613         * tree-dump.c (dequeue_and_dump): Likewise.
7614         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
7615         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
7616         * tree-predcom.c (set_alias_info): Do not set subvars.
7617         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
7618         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
7619         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
7620         (add_vars_for_offset): Remove.
7621         (add_virtual_operand): Remove special handling of SFTs.
7622         (add_call_clobber_ops): Likewise.
7623         (add_call_read_ops): Likewise.
7624         (get_asm_expr_operands): Likewise.
7625         (get_modify_stmt_operands): Likewise.
7626         (get_expr_operands): Likewise.
7627         (add_to_addressable_set): Likewise.
7628         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
7629         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
7630         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
7631         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
7632         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
7633         (tree_node_structure): Likewise.
7634         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
7635         handling of SFTs.
7636         (find_what_p_points_to): Likewise.
7637
7638 2008-05-08  Sa Liu  <saliu@de.ibm.com>
7639
7640         * config/spu/spu.md: Fixed subti3 pattern.
7641
7642 2008-05-08  Richard Guenther  <rguenther@suse.de>
7643
7644         PR middle-end/36154
7645         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
7646         sure to create a representative for trailing arrays for PTA.
7647
7648 2008-05-08  Richard Guenther  <rguenther@suse.de>
7649
7650         PR middle-end/36172
7651         * fold-const.c (operand_equal_p): Two objects which types
7652         differ in pointerness are not equal.
7653
7654 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
7655
7656         * calls.c (compute_argument_block_size): Add argument tree fndecl.
7657         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
7658         (emit_library_call_value_1): Add new variable fndecl initialized by
7659         NULL_TREE. It should be the decl type of orgfun, but this information
7660         seems not to be available here, so it uses the default calling abi.
7661         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
7662         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
7663         by TARGET_RETURN_IN_MEMORY.
7664         * config/i386/i386-interix.h: Likewise.
7665         * config/i386/i386.h: Likewise.
7666         * config/i386/i386elf.h: Likewise.
7667         * config/i386/ptx4-i.h: Likewise.
7668         * config/i386/sol2-10.h: Likewise.
7669         * config/i386/sysv4.h: Likewise.
7670         * config/i386/vx-common.h: Likewise.
7671         * config/cris/cris.h: Removed #if 0 clause.
7672         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
7673         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
7674         argument.
7675         (ix86_sol10_return_in_memory): Likewise.
7676         (ix86_i386elf_return_in_memory): New.
7677         (ix86_i386interix_return_in_memory): New.
7678         * config/mt/mt-protos.h (mt_return_in_memory): New.
7679         * config/mt/mt.c: Likewise.
7680         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7681         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
7682         * config/bfin/bfin.h: Likewise.
7683         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
7684         argument.
7685         * config/bfin/bfin.c: Likewise.
7686         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
7687         * config/alpha/unicosmk.h: Likewise.
7688         * config/i386/cygming.h: Likewise.
7689         * config/iq2000/iq2000.h: Likewise.
7690         * config/mips/mips.h: Likewise.
7691         * config/mn10300/mn10300.h: Likewise.
7692         * config/rs6000/rs6000.h: Likewise.
7693         * config/score/score.h: Likewise.
7694         * config/spu/spu.h: Likewise.
7695         * config/v850/v850.h: Likewise.
7696         * defaults.h: Likewise.
7697         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
7698         * expr.c (emit_block_move): Adjust use of
7699         OUTGOING_REG_PARM_STACK_SPACE.
7700         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
7701         OUTGOING_REG_PARM_STACK_SPACE.
7702         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
7703
7704 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
7705
7706         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
7707         on OMP_RETURN for OMP_FOR.
7708
7709         PR debug/35896
7710         * dwarf2out.c (dw_expand_expr, common_check): Removed.
7711         (fortran_common): New function.
7712         (gen_variable_die): Call fortran_common instead of common_check,
7713         adjust for it returning tree instead of rtx.  Formatting.
7714
7715 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
7716
7717         PR rtl/7335
7718         PR rtl/33826
7719         * see.c (see_copy_insn): Copy new pure const attributes for new call.
7720         * c-decl.c (merge_decls): Ditto.
7721         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
7722         to RTL_CONST_OR_PURE_CALL_P.
7723         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
7724         Initialized DECL_LOOPING_CONST_PURE.
7725         (process_call_operands): Set tree_side_effects properly.
7726         * tree.h (TREE_READONLY_DECL_P): Removed.
7727         (DECL_IS_PURE): Renamed to DECL_PURE_P.
7728         (DECL_LOOPING_OR_CONST_P): New macro.
7729         (struct tree_function_decl): Added looping_const_or_pure_p.
7730         (ECF_*) Renumbered.
7731         (ECF_LOOPING_OR_CONST_P): New macro.
7732         * rtlanal.c (pure_const_p): Removed.
7733         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
7734         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
7735         to RTL_CONST_CALL_P.
7736         * ipa-pure-const.c (pure_const_state_e): Added looping field.
7737         (check_decl, check_tree, check_call, scan_function): Initialize
7738         looping.
7739         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
7740         (static_execute): Set looping true for recursive functions.
7741         Undo setting state to IPA_NEITHER for recursive functions.
7742         * cse.c (cse_insn): 
7743         * ifcvt.c (noce_can_store_speculate_p): Changed
7744         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
7745         RTL_CONST_OR_PURE_CALL_P.
7746         * dse.c (scan_insn): Ditto.
7747         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
7748         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
7749         RTL_CONST_OR_PURE_CALL_P.
7750         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
7751         pure_call_p to RTL_CONST_CALL_P.
7752         * gimplify.c (gimplify_call_expr): Clear side effects for
7753         non-looping pure and constant calls.
7754         * calls.c (emit_call_1): Set rtl flags from ecf flags.
7755         (flags_from_decl_or_type): Set ecf flags from decl flags.
7756         (initialize_argument_information): Turn off
7757         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
7758         Change const to pure if callee_copies is true rather than just
7759         turning off const.
7760         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
7761         way of marking pure calls.
7762         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
7763         Remove hack that was supposed to fix pr7335 and remove old
7764         way of marking pure calls.
7765         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
7766         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
7767         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
7768         RTL_CONST_OR_PURE_CALL_P.
7769         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
7770         * loop-invariant.c (find_exits, find_invariant_bb): Changed
7771         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
7772         * sched-deps.c (schedule_analyze): Ditto.
7773         * rtl.h (struct rtx_def): Use call field, unchanging field, and
7774         return_val field of calls to represent pure and const function info.
7775         (CONST_OR_PURE_CALL_P): Deleted macro.
7776         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
7777         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
7778         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
7779         TREE_READONLY.
7780         * tree-optimize.c (execute_fixup_cfg): Added test for
7781         ECF_LOOPING_CONST_OR_PURE.
7782         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
7783         DECL_PURE_P.
7784         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
7785         effects for looping pure or const calls.
7786         (verify_gimple_expr): Added verification code. 
7787         * config/alpha/alpha.c (alpha_legitimize_address,
7788         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
7789         RTL_CONST_CALL_P.
7790         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
7791         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
7792         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
7793         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
7794         RTL_CONST_OR_PURE_CALL_P.
7795         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
7796         and const calls to be deleted.
7797
7798 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
7799
7800         PR target/35714
7801         * config/i386/mmx.md (mmx_subv2sf3): New expander.
7802         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
7803         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
7804         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
7805         to handle nonimmediate operands.
7806         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
7807         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
7808         to handle nonimmediate operands.
7809         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
7810         (mmx_pmulhrwv4hi3): New expander.  Use
7811         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7812         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
7813         (sse2_umulv1siv1di3): New expander.  Use
7814         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7815         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
7816         (mmx_eq<mode>3): New expander.  Use
7817         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7818         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
7819         (mmx_uavgv8qi3): New expander.  Use
7820         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7821         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
7822         (mmx_uavgv4hi3): New expander.  Use
7823         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7824
7825         * config/i386/sse.md
7826         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
7827         to handle nonimmediate operands.
7828         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
7829         to handle nonimmediate operands.
7830         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
7831         to handle nonimmediate operands.
7832         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
7833         to handle nonimmediate operands.
7834         (sse2_unpckhpd_exp): New expander.  Use
7835         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7836         (sse2_unpcklpd_exp): New expander.  Use
7837         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7838         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
7839         to handle nonimmediate operands.
7840         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
7841         to handle nonimmediate operands.
7842         (*sse2_<plusminus_insn><mode>3): Rename from
7843         sse2_<plusminus_insn><mode>3 insn pattern.
7844         (sse2_<plusminus_insn><mode>3): New expander.  Use
7845         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7846         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
7847         (sse2_umulv2siv2di3): New expander.  Use
7848         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7849         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
7850         (sse4_1_mulv2siv2di3): New expander.  Use
7851         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7852         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
7853         (sse2_pmaddwd): New expander.  Use
7854         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7855         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
7856         (sse2_eq<mode>3): New expander.  Use
7857         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7858         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
7859         (sse4_1_eqv2di3): New expander.  Use
7860         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7861         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7862         (sse2_uavgv16qi3): New expander.  Use
7863         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7864         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
7865         (sse2_uavgv16qi3): New expander.  Use
7866         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7867         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
7868         (sse2_uavgv8hi3): New expander.  Use
7869         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7870         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
7871         (ssse3_pmulhrswv8hi3): New expander.  Use
7872         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7873         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
7874         (ssse3_pmulhrswv4hi3): New expander.  Use
7875         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
7876
7877         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
7878         (<sse>_vmmul<mode>3): Ditto.
7879         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
7880         (divv2df3): Ditto.
7881         (ssse3_pmaddubsw128): Use register_operand for operand 1.
7882         (ssse3_pmaddubsw): Ditto.
7883
7884         * config/i386/i386.c (struct_builtin_description)
7885         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
7886         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
7887         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
7888         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
7889         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
7890         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
7891         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
7892         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
7893         (ix86_fixup_binary_operands): Assert that src1
7894         and src2 must have the same mode when swapped.
7895         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
7896         and ix86_binary_operator_ok.  Do not force operands in registers
7897         when optimizing.
7898
7899 2008-05-07  Jan Hubicka  <jh@suse.cz>
7900
7901         * cgraph.c (dump_cgraph_node): Update.
7902         * cgraph.h (cgraph_local_info): Break out inline summary.
7903         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
7904         hook.
7905         * ipa-inline (inline_summary): New accestor function.
7906         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
7907         cgraph_decide_inlining, compute_inline_parameters): Update.
7908         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
7909
7910 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
7911
7912         Cleanup ColdFire scheduling support and add V4 pipeline model.
7913
7914         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
7915         (define_attr cpu): Add cfv4 value.
7916         (define_attr type, define_attr type1): Merge into a single 'type'
7917         attribute.  Update all uses.
7918         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
7919         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
7920         Update all uses.
7921         (define_attr opx_mem, define_attr opy_mem): Remove.
7922         (define_attr op_mem): Clean up, update comment.
7923         (define_attr size): Use specific values instead of general int.
7924         (define_attr guess, define_attr split): Remove.  Update all uses.
7925         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
7926         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
7927         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
7928         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
7929         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
7930         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
7931         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
7932         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
7933         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
7934         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
7935         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
7936         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
7937         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
7938         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
7939         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
7940         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
7941         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
7942         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
7943         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
7944         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
7945         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
7946         Update or set attributes.
7947         (stack_tie): New fake instruction.
7948
7949         * config/m68k/m68k.h (TUNE_CFV4): New macro.
7950         (m68k_sched_attr_size): Update declaration.
7951         (m68k_sched_attr_type2): Remove.
7952         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
7953         Declare new bypass predicates.
7954
7955         * config/m68k/m68k.c (m68k_sched_issue_rate,
7956         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
7957         implementations.
7958         (TARGET_SCHED_ISSUE_RATE,
7959         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
7960         (override_options): Handle scheduling for ColdFire V4 core.
7961         (m68k_expand_prologue): Emit stack_tie.
7962         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
7963         'OP_TYPE_FPN'.  Update all uses.
7964         (sched_guess_p): Remove.
7965         (sched_address_type): Handle symbolic addresses.
7966         (sched_get_operand): New static function.
7967         (sched_operand_type): Merge into sched_attr_op_type.
7968         (sched_attr_op_type): Handle FP registers, handle quick constants,
7969         update.
7970         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
7971         (m68k_sched_attr_size): Update.  Move logic to ...
7972         (sched_get_attr_size_int): New static function.
7973         (sched_get_opxy_mem_type): New static function.
7974         (m68k_sched_attr_op_mem): Update.
7975         (m68k_sched_attr_type2): Remove.
7976         (sched_cfv4_bypass_data): New static variable.
7977         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
7978         (m68k_sched_issue_rate): Implement scheduler hook.
7979         (struct _sched_ib: enabled_p): New field.
7980         (m68k_sched_variable_issue): Update.  Handle V4.
7981         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
7982         sched_dump_class_func_t, sched_dump_split_class,
7983         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
7984         sched_dump_dfa_class, m68k_sched_dump): Remove.
7985         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
7986         hook.
7987         (m68k_sched_init_global): Remove statisctics dumping, introduce
7988         sanity check that all instructions have pipeline reservations.  Handle
7989         ColdFire V4 core.
7990         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
7991         Handle ColdFire V4 core.
7992         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
7993         New static functions.
7994         (m68k_sched_address_bypass_p): New bypass predicate.
7995         (sched_get_indexed_address_scale): New static function.
7996         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
7997
7998         * cf.md: Update comments.
7999         (define_attr type2): Remove.  Use 'type' attribute instead.
8000         Update all uses.
8001         (cf_ib): Rename to cfv123_ib.  Update all uses.
8002         (cf_oep): Rename to cfv123_oep.  Update all uses.
8003         (cf_chr): Rename to cfv123_chr.  Update all uses.
8004         (cf_mem): Rename to cfv123_mem.  Update all uses.
8005         (cf_mac): Move to more appropriate place.
8006         (cfv123_guess): New automaton and cpu_unit.
8007         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
8008         Update uses of 'size' attribute.  Handle before reload scheduling.
8009         (cfv123_guess): New dummy reservation for unhandled instructions.
8010         (cfv4_*): Pipeline description of ColdFire V4 core.
8011         (ignore): New reservation to handle 'ignore' type.
8012
8013 2008-05-07  Ian Lance Taylor  <iant@google.com>
8014
8015         PR middle-end/36013
8016         * gimplify.c (find_single_pointer_decl_1): Don't look through
8017         indirections.
8018         (find_single_pointer_decl): Adjust comments.
8019
8020 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
8021
8022         PR middle-end/36137
8023         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
8024         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
8025
8026         PR middle-end/36106
8027         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
8028         integral type rather than floating point, then VIEW_CONVERT_EXPR
8029         to the floating point type.
8030
8031 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
8032
8033         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
8034         TFmode op0 to register.
8035
8036 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
8037
8038         * c-decl.c (grokdeclarator): Comment typo.
8039
8040 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
8041
8042         * tree-flow.h: Remove prototype for computed_goto_p.
8043         * tree-cfg.c (computed_goto_p): Make static.
8044
8045 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
8046
8047         PR target/35657
8048         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
8049         (contains_aligned_value_p): This.  Handle _Decimal128.
8050         (ix86_function_arg_boundary): Only align _Decimal128 to its
8051         natural boundary and handle it properly.
8052
8053 2008-05-06  Martin Jambor  <mjambor@suse.cz>
8054
8055         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
8056         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
8057         (ipcp_method_set_orig_node): Removed.
8058         (ipcp_cval_get_cvalue_type): Removed.
8059         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
8060         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
8061         (ipcp_cval_set_cvalue_type): Removed.
8062         (ipcp_cval_get_cvalue): Removed.
8063         (ipcp_cval_set_cvalue): Removed.
8064         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
8065         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
8066         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
8067         (ipcp_cval_meet): Renamed to ipa_lattice_meet
8068         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
8069         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
8070         (ipcp_get_ith_lattice): Changed parameters.
8071         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
8072         (ipcp_lattice_from_jfunc): Changed parameters.
8073         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
8074         (ipcp_method_cval_print): Added temporary variable info.
8075         (ipcp_redirect): Removed already unused local variable caller.
8076         (ipcp_redirect): New temporary variable orig_callee_info
8077         (ipcp_redirect): Removed newly unused local variable callee.
8078         (ipcp_redirect): Removed (a bit confusing) local variable type.
8079         (ipcp_insert_stage): Added local variable info.
8080         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
8081         renamed too
8082         (ipcp_formal_create): Removed.
8083         (ipcp_method_cval_set): Removed.
8084         (ipcp_propagate_stage): Renamed lattice variables.
8085         (ipcp_method_cval_set_cvalue_type): Removed.
8086         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
8087         (ipcp_print_all_lattices): Changed printed strings to refer to 
8088         lattices rather than cvals.
8089         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
8090         (ipcp_propagate_const): Changed formal parameters.
8091         (build_const_val): Changed formal parameters.
8092         (ipcp_insert_stage): Removed useless variable cvalue
8093         (build_const_val): Changed formal parameters.
8094         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
8095         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
8096         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
8097         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
8098         (ipcp_print_func_profile_counts): Changed string from "method" to 
8099         "function"
8100         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
8101         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
8102         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
8103         (ipcp_structures_print): Renamed to ipcp_print_all_structures
8104         (ipcp_profile_print): Renamed to ipcp_print_profile_data
8105         (ipcp_lat_is_const): Changed parameters and made inline.
8106         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
8107         (ipcp_redirect): Renamed to ipcp_need_redirect_p
8108         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
8109         the predicate condition directly
8110         (ipcp_propagate_stage): Added local variable args. Removed local
8111         variable callee.  (Both are mere code simplifications.)
8112         (ipcp_method_dont_insert_const): Renamed to
8113         ipcp_node_not_modifiable_p.
8114         (ipcp_node_not_modifiable_p): Made inline.
8115         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
8116         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
8117         (ipcp_print_all_lattices): Removed variable cvalue
8118         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
8119         Updated comments.
8120
8121 2008-05-06  Olivier Hainque  <hainque@adacore.com>
8122
8123         * tree-sra.c (try_instantiate_multiple_fields): Early return
8124         if field has POINTER_TYPE.
8125
8126 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
8127
8128         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
8129         by using 'q' specifier for instruction.
8130         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
8131
8132 2008-05-06  Anatoly Sokolov <aesok@post.ru>
8133
8134         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
8135         Change mode of zero_extract from QImode to HImode.
8136         (sign bit tests peepholes): (Ditto.).
8137
8138 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
8139
8140         * config/i386/mmx.md: Remove double backslashes from asm templates.
8141         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
8142         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
8143         to handle nonimmediate operands.
8144         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
8145         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
8146         to handle nonimmediate operands.
8147         (*mmx_<code>v2sf3_finite): New insn pattern.
8148         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
8149         (mmx_<code>v2sf3): New expander.  Use
8150         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8151         (mmx_<plusminus_insn><mode>3): New expander.  Use
8152         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8153         (*mmx_<plusminus_insn><mode>3): New insn pattern.
8154         (mmx_add<mode>3): Removed.
8155         (mmx_ssadd<mode>3): Ditto.
8156         (mmx_usadd<mode>3): Ditto.
8157         (mmx_sub<mode>3): Ditto.
8158         (mmx_sssub<mode>3): Ditto.
8159         (mmx_ussub<mode>3): Ditto.
8160         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
8161         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
8162         to handle nonimmediate operands.
8163         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
8164         insn pattern.
8165         (mmx_smulv4hi3_highpart): New expander.  Use
8166         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8167         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
8168         insn pattern.
8169         (mmx_umulv4hi3_highpart): New expander.  Use
8170         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8171         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
8172         (mmx_<code>v4hi3): New expander.  Use
8173         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8174         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
8175         (mmx_<code>v8qi3): New expander.  Use
8176         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8177         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
8178         (mmx_<code><mode>3): New expander.  Use
8179         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
8180
8181 2008-05-05  Jan Hubicka  <jh@suse.cz>
8182
8183         PR tree-optimization/36118
8184         * passes.c (pass_init_dump_file): Fix dump header.
8185
8186 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8187
8188         PR middle-end/36141
8189         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
8190         VCE for function decls.
8191
8192 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
8193
8194         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
8195
8196 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
8197
8198         * config/i386/i386.md (sat_plusminus): New.
8199         (plusminus_insn): Likewise.
8200         (plusminus_mnemonic): Likewise.
8201         (addsub): Removed.
8202         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
8203         (*<addsub><mode>3_cc_overflow): Renamed to ...
8204         (*<plusminus_insn><mode>3_cc_overflow): This.
8205         (*<addsub>si3_zext_cc_overflow): Renamed to ...
8206         (*<plusminus_insn>si3_zext_cc_overflow): This.
8207
8208         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
8209         (<plusminus_insn><mode>3): This.
8210         (*<addsub><mode>3): Renamed to ...
8211         (*<plusminus_insn><mode>3): This.
8212         (<sse>_vm<addsub><mode>3): Renamed to ...
8213         (<sse>_vm<plusminus_insn><mode>3): This.
8214         (sse3_h<addsub>v4sf3): Renamed to ...
8215         (sse3_h<plusminus_insn>v4sf3): This.
8216         (sse3_h<addsub>v2df3): Renamed to ...
8217         (sse3_h<plusminus_insn>v2df3): This.
8218         (<plusminus_insn><mode>3): New.
8219         (*<plusminus_insn><mode>3): Likewise.
8220         (sse2_<plusminus_insn><mode>3): Likewise.
8221         (add<mode>): Removed.
8222         (*add<mode>3): Likewise.
8223         (sse2_ssadd<mode>3): Likewise.
8224         (sse2_usadd<mode>3): Likewise.
8225         (sub<mode>3): Likewise.
8226         (*sub<mode>3): Likewise.
8227         (sse2_sssub<mode>3): Likewise.
8228         (sse2_ussub<mode>3): Likewise.
8229
8230 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
8231
8232         * gthr-single.h: Add in required interface elements as per gthr.h.
8233         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
8234         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
8235         Generalize UNUSED macro. 
8236         (__gthread_once): Add.
8237         (__gthread_key_create): Add.
8238         (__gthread_key_delete): Add.
8239         (__gthread_getspecific): Add.
8240         (__gthread_setspecific): Add.
8241         
8242 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
8243
8244         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
8245         the same size types for the indirect reference on the rhs, then
8246         create a VCE.
8247
8248 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
8249
8250         * config/i386/i386.md
8251         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
8252         one insn template instead of template series.
8253         (*xordi_1_rex64): Ditto.
8254         (*xordi_2_rex64): Ditto.
8255
8256 2008-05-05  Ira Rosen  <irar@il.ibm.com>
8257
8258         PR tree-optimization/36119
8259         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
8260         in case of SLP.
8261
8262 2008-06-04  Jan Hubicka  <jh@suse.cz>
8263
8264         tree-optimization/36100
8265         * tree-pass.h (pass_O0_always_inline): Declare.
8266         * ipa-inline.c (inline_transform): Remove dead code.
8267         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
8268         pass_O0_always_inline): New.
8269         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
8270
8271 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
8272
8273         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
8274         mnemonic in this_param move for TARGET_64BIT.
8275
8276 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
8277
8278         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
8279         (*strmovsi_rex_1): Ditto.
8280         (*strsetsi_1): Ditto.
8281         (*strsetsi_rex_1): Ditto.
8282
8283         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
8284         adddicc expanders using SWI mode iterator.
8285
8286 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
8287
8288         PR target/36121
8289         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
8290         argument handling.
8291
8292 2008-05-04  David S. Miller  <davem@davemloft.net>
8293
8294         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
8295         (sparc*-*-linux*): Use linux.h in tm_file.
8296         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
8297         compiler defaulting to 32-bit.
8298         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
8299         no longer needed.
8300         * config/sparc/linux.h: Remove definitions now obtained
8301         properly from linux.h
8302         * config/sparc/linux64.h: Likewise.
8303         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
8304         don't want this setting for 32-bit builds in a biarch compiler.
8305         * doc/install.texi: Add sparc-linux to list of targets
8306         supporting --enable-targets=all.
8307
8308 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
8309
8310         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
8311
8312 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
8313
8314         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
8315         after V4SI_FTYPE_V8HI.
8316         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
8317         case V4SI_FTYPE_V2DF.
8318
8319 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
8320
8321         * doc/invoke.texi (max-flow-memory-locations): Removed.
8322         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
8323         
8324 2008-05-03  Richard Guenther  <rguenther@suse.de>
8325
8326         PR middle-end/34973
8327         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
8328
8329 2008-05-02  David S. Miller  <davem@davemloft.net>
8330
8331         * config.gcc (need_64bit_hwint): Document libcpp dependency.
8332
8333 2008-05-02  Simon Baldwin <simonb@google.com>
8334
8335         PR bootstrap/36108
8336         * c-common.h (warn_array_subscript_range): Removed.
8337         * c-common.c (warn_array_subscript_range): Ditto.
8338         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
8339         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
8340
8341 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8342
8343         * config/i386/i386.c (ix86_special_builtin_type): New.
8344         (bdesc_special_args): Likewise.
8345         (ix86_expand_special_args_builtin): Likewise.
8346         (ix86_init_mmx_sse_builtins): Updated.
8347         (ix86_expand_builtin): Updated.
8348         (ix86_expand_store_builtin): Removed.
8349         (ix86_expand_unop_builtin): Likewise.
8350
8351         * config/i386/mm3dnow.h (__v2sf): Moved to ...
8352         * config/i386/mmintrin.h (__v2sf): Here.
8353
8354         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
8355         const __v2sf.
8356         (_mm_loadl_pi): Likewise.
8357         (_mm_storeh_pi): Replace __v2si with __v2sf.
8358         (_mm_storel_pi): Likewise.
8359
8360         * doc/extend.texi: Correct __builtin_ia32_loadhps,
8361         __builtin_ia32_loadlps, __builtin_ia32_storehps,
8362         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
8363         __builtin_ia32_loadlpd.
8364
8365 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
8366
8367         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
8368         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
8369         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
8370         (ix86_init_mmx_sse_builtins): Updated.
8371         (ix86_expand_args_builtin): Likewise.
8372         (ix86_expand_builtin): Likewise.
8373         (ix86_expand_unop1_builtin): Renamed to ...
8374         (ix86_expand_unop_vec_merge_builtin): This.
8375
8376 2008-05-01  Jan Hubicka  <jh@suse.cz>
8377
8378         PR bootstrap/36100
8379         * ipa-inline.c (inline_generate_summary): Make static.
8380         (inline_transform): Do not call inlining at -O0; make static.
8381         * passes.c (execute_todo): Add sanity check.
8382         (execute_one_ipa_transform_pass): Execute proper flags.
8383
8384 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
8385
8386         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
8387         (DECL_NONADDRESSABLE_P): Likewise.
8388         * alias.c (record_component_aliases): Fix comment.
8389
8390 2008-05-01  Simon Baldwin <simonb@google.com>
8391
8392         * c-common.h (warn_array_subscript_range): New function.
8393         * c-common.c (warn_array_subscript_range): Ditto.
8394         * tree-vrp.c (check_array_ref): Corrected code to agree with
8395         comment, ignoring only arrays of size 0 or size 1.
8396         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
8397
8398 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8399
8400         * config/i386/i386.c (ix86_builtin_type): Replace
8401         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
8402         (bdesc_args): Updated.
8403         (ix86_init_mmx_sse_builtins): Likewise.
8404         (ix86_expand_args_builtin): Likewise.
8405
8406         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
8407         with __v1di.
8408
8409         * doc/extend.texi: Correct __builtin_ia32_palignr.
8410
8411 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8412
8413         PR target/36095
8414         * config/i386/i386.c (bdesc_crc32): Removed.
8415         (ix86_expand_crc32): Likewise.
8416         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
8417         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
8418         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
8419         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
8420         UINT_FTYPE_UINT_UCHAR.
8421         (bdesc_args): Updated. Add crc32 builtins.
8422         (ix86_init_mmx_sse_builtins): Updated.
8423         (ix86_expand_args_builtin): Updated to support subreg.
8424
8425         * doc/extend.texi: Correct __builtin_ia32_crc32di.
8426
8427 2008-05-01  Jan Hubicka  <jh@suse.cz>
8428
8429         * tree-pass.h (opt_pass): Add IPA_PASS.
8430         (varpool_node, cgraph_node): Forward declare.
8431         (ipa_opt_pass): Define.
8432         (pass_ipa_inline): Turn into ipa_opt_pass.
8433         (pass_apply_inline): Remove.
8434         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
8435         (apply_inline): Turn into ....
8436         (inline_transform): ... this one.
8437         (inline_generate_summary): New function.
8438         (pass_apply_inline): Remove.
8439         * function.h (ipa_opt_pass): Forward declare structure; typedef;
8440         vector.
8441         (struct function): Add ipa_transforms_to_apply.
8442         * passes.c (register_one_dump_file): Work on IPA_PASS.
8443         (init_optimization_passes): Remove pass_inline_parameters and
8444         pass_apply_inline.
8445         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
8446         (execute_one_pass) ... here; apply transforms when possible.
8447         (add_ipa_transform_pass, execute_ipa_summary_asses,
8448         execute_one_ipa_transform_pass): New.
8449         (execute_ipa_pass_list): Update for IPA_PASS type.
8450
8451 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8452
8453         * config/i386/i386.c (ix86_builtin_type): Add
8454         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
8455         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
8456         (bdesc_args): Add SSE4a builtins.
8457         (ix86_init_mmx_sse_builtins): Updated.
8458         (ix86_expand_args_builtin): Likewise.
8459         (ix86_expand_builtin): Likewise.
8460
8461 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8462
8463         * config/i386/i386.c (ix86_builtin_type): Add
8464         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
8465         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
8466         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
8467         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
8468         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
8469         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
8470         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
8471         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
8472         and DI_FTYPE_DI_DI_INT.
8473         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
8474         (ix86_init_mmx_sse_builtins): Updated.
8475         (ix86_expand_args_builtin): Likewise.
8476         (ix86_expand_builtin): Likewise.
8477         (ix86_expand_binop_imm_builtin): Removed.
8478
8479         * doc/extend.texi: Correct __builtin_ia32_palignr128.
8480
8481 2008-04-30  Richard Guenther  <rguenther@suse.de>
8482
8483         PR tree-optimization/32921
8484         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
8485
8486 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
8487
8488         * config/arm/arm.c (arm_unwind_emit): Use
8489         crtl->all_throwers_are_sibcalls instead of
8490         cfun->all_throwers_are_sibcalls.
8491         (arm_output_fn_unwind): Likewise.
8492         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
8493         instead of cfun->uses_pic_offset_table.
8494         (frv_expand_prologue): Likewise.
8495         (frv_frame_pointer_required): Likewise.
8496         (frv_expand_fdpic_call): Likewise.
8497         (frv_emit_movsi): Likewise.
8498         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
8499         cfun->returns_pcc_struct instead of
8500         current_function_returns_pcc_struct.
8501         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
8502         instead of cfun->calls_eh_return.
8503         (m32c_pushm_popm): Likewise.
8504         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
8505         "extern" declaration.
8506
8507 2008-04-30  Richard Guenther  <rguenther@suse.de>
8508
8509         PR tree-optimization/21636
8510         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
8511         constant address.
8512         (evaluate_stmt): Print the likely value.
8513         (ccp_visit_stmt): Avoid excessive vertical spacing.
8514
8515 2008-04-30  Rafael Espindola  <espindola@google.com>
8516
8517         * builtins.c (fold_call_expr): Return realret.
8518         * tree-ssa-threadedge.c
8519         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
8520         __builtin_object_size.
8521
8522 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
8523
8524         * gcc.c (wrapper_string): New variable.
8525         (insert_wrapper): New function.
8526         (execute): New option -wrapper.
8527         * doc/invoke.texi (Overall Options): New driver option -wrapper.
8528
8529 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
8530
8531         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
8532         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
8533         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
8534         from...
8535         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
8536         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
8537         config/rs6000/e500crtres64gprctr.asm,
8538         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
8539         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
8540         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
8541         config/rs6000/e500crtsav64gprctr.asm,
8542         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
8543         config/rs6000/e500crtsavg64gprctr.asm: New files.
8544         * config/rs6000/t-ppccomm: Add build rules for new files.
8545         (LIB2FUNCS_STATIC_EXTRA): Add new files.
8546         * config/rs6000/t-netbsd: Add build rules for new files.
8547         (LIB2FUNCS_STATIC_EXTRA): New variable.
8548         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
8549         (CRTSAVRES_DEFAULT_SPEC): Likewise.
8550         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
8551
8552 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
8553
8554         * config/i386/i386.c (ix86_builtin_type): Add
8555         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
8556         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
8557         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
8558         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
8559         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
8560         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
8561         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
8562         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
8563         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
8564         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
8565         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
8566         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
8567         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
8568         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
8569         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
8570         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
8571         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
8572         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
8573         V1DI_FTYPE_V2SI_V2SI.
8574         (bdesc_2arg): Moved to ...
8575         (bdesc_args): Here.
8576         (ix86_init_mmx_sse_builtins): Updated.
8577         (ix86_expand_args_builtin): Updated.  Take a pointer
8578         to const struct builtin_description.  Handle comparison
8579         builtin functions.
8580         (ix86_expand_sse_compare): Take a new argument for swapping operands.
8581         (ix86_expand_builtin): Updated.
8582
8583         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
8584         (ssse3_pmaddubsw128): This.
8585         (ssse3_pmaddubswv4hi3): Renamed to ...
8586         (ssse3_pmaddubsw): This.
8587
8588         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
8589         (__builtin_ia32_packssdw128): Likewise.
8590         (__builtin_ia32_packuswb128): Likewise.
8591         (__builtin_ia32_pmaddubsw): Likewise.
8592         (__builtin_ia32_pmaddubsw128): Likewise.
8593
8594 2008-04-30  Richard Guenther  <rguenther@suse.de>
8595
8596         PR tree-optimization/14847
8597         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
8598         (recognize_bits_test): Use it.
8599         (recognize_single_bit_test): Likewise.
8600
8601 2008-04-30  Martin Jambor  <mjambor@suse.cz>
8602
8603         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
8604         instead of setting number of formal parameters to zero.
8605         (ipcp_init_stage): Do not set the number of actual parameters to zero 
8606         either.
8607         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
8608         which are called with variable number of arguments.
8609         (ipcp_insert_stage): Explicitely skipping all nodes which are
8610         called with variable number of arguments.
8611         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
8612         number of parameters.
8613
8614         * ipa-prop.h (struct ipa_node_params): Added flag
8615         called_with_var_arguments
8616         (ipa_set_param_count): Added.  Changed sole setter to use it.
8617         (ipa_get_param_count): Added.  All readers of param_count
8618         converted to use it instead.
8619         (ipa_set_called_with_variable_arg): Added.
8620         (ipa_is_called_with_var_arguments): Added.
8621         (ipa_get_ith_param): Added.  All readers of param_decls converted
8622         to use it instead.
8623         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
8624         changed to use it. 
8625         (ipa_get_cs_argument_count): Added, all readers of argument_count
8626         changed to cal it.
8627         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
8628         to use it.
8629         
8630         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
8631         (struct ipcp_lattice): Renamed cval_type to type
8632         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
8633
8634         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
8635         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
8636         (ipcp_insert_stage): Changed the type of variable cvalue to tree
8637         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
8638         (build_const_val): Changed the type of parameter cvalue to tree
8639         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
8640         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
8641         
8642         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
8643         constant 
8644
8645         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
8646         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
8647         (ipa_add_method): Renamed to ipa_push_func_to_list
8648         (ipa_remove_method): Renamed to ipa_pop_func_from_list
8649         (ipa_callsite_param_count): Removed.
8650         (ipa_callsite_param_count_set): Removed.
8651         (ipa_callsite_param): Removed.
8652         (ipa_callsite_callee): Removed.
8653         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
8654         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
8655         (ipa_method_formal_count): Removed.
8656         (ipa_method_formal_count_set): Removed.
8657         (ipa_method_get_tree): Removed.
8658         (ipa_method_tree_map_create): Removed.
8659         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
8660         (ipa_create_param_decls_array): Creates the array itself
8661         (ipa_create_param_decls_array): Temporary variable info instead of 
8662         a few dereferences.
8663         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
8664         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
8665         (get_type): Removed.
8666         (ipa_jf_get_info_type): Removed.
8667         (ipa_node_create): Renamed to ipa_create_node_params
8668         (ipa_free): Renamed to ipa_free_all_node_params
8669         (ipa_nodes_create): Renamed to ipa_create_all_node_params
8670         (ipa_edges_create): Renamed to ipa_create_all_edge_args
8671         (ipa_edges_free): Renamed to ipa_free_all_edge_args
8672         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
8673         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
8674         ipa_free_all_edge_args
8675         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
8676         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
8677         (ipa_create_methodlist_node): Removed.
8678         (ipa_methodlist_method): Removed.
8679         (ipa_methodlist_method_set): Removed.
8680         (ipa_methodlist_next_method): Removed.
8681         (ipa_methodlist_next_method_set): Removed.
8682         (ipa_method_is_modified): Removed.
8683         (ipa_method_modify_create): Removed.
8684         (ipa_method_modify_init): Temporary variable info instead of a few 
8685         dereferences.
8686         (ipa_detect_param_modifications): Temporary variable info instead of 
8687         a few dereferences.
8688         (ipa_compute_jump_functions): Temporary variable info instead of 
8689         a few dereferences.
8690         (ipa_method_modify_set): Removed.
8691         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
8692         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
8693         than craph_node as the first parameter.
8694         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
8695         (ipa_method_modify_init): Removed.
8696         (ipa_compute_jump_functions): Added a temp variable instead of 
8697         repeatadly dereferencing the cgraph_edge.aux pointer
8698         (ipa_callsite_param_set_type): Removed.
8699         (ipa_compute_jump_functions): i renamed to index and moved to 
8700         an inner block
8701         (ipa_callsite_param_set_info_type_formal): Removed.
8702         (ipa_callsite_param_set_info_type): Removed.
8703         (ipa_callsite_param_map_create): Removed.
8704         (ipa_callsite_tree): Removed.
8705         (ipa_callsite_caller): Removed.
8706         (ipa_pop_func_from_list): return_method removed to return_func
8707
8708         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
8709         prefixed all values with IPA_. Changed all users.
8710         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
8711         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
8712         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
8713         (union parameter_info): Renamed to jump_func_value.
8714         (union jump_func_value): Renamed value to constant
8715         (struct ipa_jump_func): Renamed info_type to value
8716         (struct ipa_node): Renamed to ipa_node_params
8717         (struct ipa_node_params): Renamed ipa_arg_num to param_count
8718         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
8719         (struct ipa_node_params): Renamed ipa_mod to modified_flags
8720         (struct ipa_edge): Renamed to ipa_edge_args
8721         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
8722         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
8723         (struct ipa_methodlist): Renamed to ipa_func_list
8724         (struct ipa_func_list): method_p renamed to node, next_method
8725         renamed to next
8726         (ipa_methodlist_p): Removed, switched all users to struct pointer
8727         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
8728
8729 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
8730
8731         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
8732         (rs6000_emit_epilogue): Use backchain to restore only when we
8733         have a large frame.  Make use of frame pointer to restore if we
8734         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
8735
8736 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
8737
8738         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
8739         Add mode to zero_extract.
8740         (sign bit tests peepholes): (Ditto.).
8741
8742 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
8743
8744         * config/i386/i386.c (ix86_builtins): Replace Prescott New
8745         Instructions in comments with SSE3.
8746         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
8747         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
8748         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
8749         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
8750         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
8751         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
8752         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
8753         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
8754         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
8755         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
8756         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
8757         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
8758         (bdesc_sse_args): Renamed to ...
8759         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
8760         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
8761         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
8762         IX86_BUILTIN_FABSQ.
8763         (bdesc_1arg): Moved to ...
8764         (bdesc_args): Here.
8765         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
8766         Instructions in comments with SSE3.
8767         (ix86_expand_sse_operands_builtin): Renamed to ...
8768         (ix86_expand_args_builtin): This.  Updated.
8769         (ix86_expand_unop1_builtin): Update comments.
8770         (ix86_expand_builtin): Updated.
8771
8772 2008-04-29  Richard Guenther  <rguenther@suse.de>
8773
8774         PR tree-optimization/36078
8775         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
8776         Update virtual SSA form after cleaning up the CFG.
8777
8778 2008-04-29  Richard Guenther  <rguenther@suse.de>
8779
8780         PR middle-end/15255
8781         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
8782
8783 2008-04-29  Richard Guenther  <rguenther@suse.de>
8784
8785         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
8786         (compute_may_aliases): Do not call finalize_ref_all_pointers.
8787         (compute_flow_insensitive_aliasing): Do not treat
8788         PTR_IS_REF_ALL pointers special.
8789         (get_smt_for): Likewise.
8790         (may_alias_p): Re-structure.
8791         (is_escape_site): A ref-all pointer conversion is not an escape site.
8792         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
8793         PTR_IS_REF_ALL pointers special.
8794         * tree-ssa-structalias.h (struct alias_info): Remove
8795         ref_all_symbol_mem_tag field.
8796         (PTR_IS_REF_ALL): Remove.
8797
8798 2008-04-29  Richard Guenther  <rguenther@suse.de>
8799
8800         PR middle-end/36077
8801         * fold-const.c (extract_muldiv_1): In combining division constants
8802         make sure to never overflow.
8803
8804 2008-04-29  Nick Clifton  <nickc@redhat.com>
8805
8806         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
8807
8808 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8809
8810         PR bootstrap/35169
8811         * optc-gen.awk: Work around HP-UX/IA awk bug.
8812
8813 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
8814
8815         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
8816         2008-04-25 commit.
8817
8818 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8819
8820         PR target/36073
8821         * config/i386/i386.md
8822         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
8823         Change operand 1 predicate to nonimmediate_operand.
8824
8825 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
8826
8827         PR debug/36060
8828         * dwarf2out.c (struct die_struct): Mark as chain_circular through
8829         die_sub field.
8830         * gengtype.c (walk_type, write_func_for_structure): Handle
8831         chain_circular.
8832         * doc/gty.texi: Document chain_circular.
8833
8834 2008-04-28  Richard Guenther  <rguenther@suse.de>
8835
8836         PR tree-optimization/36066
8837         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
8838         SCEV and loop.
8839
8840 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
8841
8842         PR target/36064
8843         * config/i386/i386.md
8844         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
8845         Use match_scratch instead of match_operand for operands 3 and 4.
8846
8847 2008-04-27  Richard Guenther  <rguenther@suse.de>
8848
8849         PR tree-optimization/18754
8850         PR tree-optimization/34223
8851         * tree-pass.h (pass_complete_unrolli): Declare.
8852         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
8853         loop size before and after unconditionally of UL_NO_GROWTH in effect.
8854         Rewrite loop into loop closed SSA form if it is not already.
8855         (tree_unroll_loops_completely): Re-structure to iterate over
8856         innermost loops with intermediate CFG cleanups.
8857         Unroll outermost loops only if requested or the code does not grow
8858         doing so.
8859         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
8860         loops are available.
8861         (tree_vectorize): Instead do so here.
8862         (tree_complete_unroll): Also unroll outermost loops.
8863         (tree_complete_unroll_inner): New function.
8864         (gate_tree_complete_unroll_inner): Likewise.
8865         (pass_complete_unrolli): New pass.
8866         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
8867         uses outside of the loop.
8868         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
8869         form if it is available.  
8870         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
8871         * passes.c (init_optimization_passes): Schedule complete inner
8872         loop unrolling pass before the first CCP pass after final inlining.
8873
8874 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8875
8876         * targhooks.h (default_emutls_var_fields,
8877         default_emutls_var_init): Declare.
8878         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
8879         * target.h (struct gcc_target): Add struct emutls member.
8880         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
8881         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
8882         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
8883         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
8884         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
8885         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
8886         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
8887         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
8888         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
8889         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
8890         emit debug information.
8891         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
8892         * varasm.c: Include targhooks.h.
8893         (emutls_object_section, emutls_tmpl_section): New.
8894         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
8895         (EMUTLS_SEPARATOR): New.
8896         (prefix_name): New.
8897         (get_emutls_object_name): New.
8898         (default_emutls_var_fields): New, broken out of ...
8899         (get_emutls_object_type): ... here.  Adjust to use target hooks.
8900         (get_emutls_init_templ_addr): Adjust to use target hooks.
8901         (emutls_decl): Adjust to use target hooks.
8902         (emutls_finish): Likewise.
8903         (default_emutls_var_init): New, broken out of ...
8904         (assemble_variable): ... here.  Adjust to use target hooks.
8905         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
8906         SECCAT_EMUTLS_TMPL.
8907         * c-common.c (handle_section_attribute): Prevent overriding
8908         sections for emulated tls with special sections.
8909         * config/i386/i386.c (x86_64_elf_select_section): Add
8910         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
8911         (x86_64_elf_unique_section): Likewise.
8912         * config/vxworks.c: Include tree.h.
8913         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
8914         (vxworks_override_options): Set TLS scheme.
8915         * doc/tm.texi (Emulated TLS): New node.
8916
8917 2008-04-26  Simon Baldwin <simonb@google.com>
8918
8919         PR c/35652
8920         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
8921         with propagated string constants.
8922
8923 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
8924
8925         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
8926         constraint for operand 2 when operand 0 is memory operand.
8927         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
8928         operand 0 is memory operand.
8929         (fix_trunc<mode>_i387_with_temp): Ditto.
8930         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
8931         operand 2 when operand 1 is memory operand.
8932         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
8933         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
8934         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
8935         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8936         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
8937         operands 2,3 and 4 when operand 1 is memory operand.
8938         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
8939         is memory operand.
8940         (fistdi2_floor_with_temp): Ditto.
8941         (fist<mode>2_floor_with_temp): Ditto.
8942         (fistdi2_ceil_with_temp): Ditto.
8943         (fist<mode>2_ceil_with_temp): Ditto.
8944         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
8945
8946 2008-04-26  David Daney  <ddaney@avtrex.com>
8947
8948         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
8949         unspec_volitile.
8950         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
8951         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
8952         UNSPEC_UPDATE_GOT_VERSION): Renumber.
8953         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
8954         (compare_and_swap_12): New insn.
8955         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
8956         * config/mips/mips.c (mips_force_binary): New function.
8957         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
8958         (mips_expand_compare_and_swap_12): New function.
8959         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
8960
8961 2008-04-25  Jan Hubicka  <jh@suse.cz>
8962
8963         PR testsuite/35843
8964         * cfgexpand.c (pass_expand): Turn into RTL pass.
8965         * passes.c (execute_one_pass): Do pass typechecking after execution.
8966         * tree-pass.h (pass_expand): Turn into RTL pass.
8967
8968         * function.h (struct rtl_data): Move here fields
8969         accesses_prior_frames, calls_eh_return, saves_all_registers,
8970         has_nonlocal_goto, has_asm_statement, is_thunk,
8971         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
8972         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
8973         arg_pointer_save_area_init from struct function; turn into bool.
8974         (struct function): Move
8975         calls_eh_return, saves_all_registers, has_nonlocal_goto,
8976         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
8977         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
8978         tail_call_emit, arg_pointer_save_area_init
8979         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
8980         (current_function_returns_struct, current_function_returns_pcc_struct,
8981         current_function_calls_setjmp, current_function_calls_alloca,
8982         current_function_accesses_prior_frames,
8983         current_function_calls_eh_return, current_function_is_thunk,
8984         current_function_stdarg, current_function_profile,
8985         current_function_limit_stack, current_function_uses_pic_offset_table,
8986         current_function_uses_const_pool, current_function_has_nonlocal_label,
8987         current_function_saves_all_registers,
8988         current_function_has_nonlocal_goto,
8989         current_function_has_asm_statement): Remove accesor macros.
8990         * ra-conflict.c (global_conflicts): Update.
8991         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
8992         (suitable_for_tail_call_opt_p): Update.
8993         * builtins.c (expand_builtin_return_addr): Update.
8994         (expand_builtin_setjmp_setup): Update.
8995         (expand_builtin_nonlocal_goto): Update.
8996         * final.c (final_start_function): Update.
8997         (profile_function): Update.
8998         (leaf_function_p): Update.
8999         (only_leaf_regs_used): Update.
9000         * df-scan.c (df_get_exit_block_use_set): Update.
9001         * dojump.c (clear_pending_stack_adjust): Update.
9002         * tree-stdarg.c (gate_optimize_stdarg): Update.
9003         * gimple-low.c (lower_function_body): Update.
9004         * global.c (compute_regsets): Update.
9005         (global_alloc): Update.
9006         * dwarf2out.c (dwarf2out_begin_prologue): Update.
9007         * expr.c (expand_assignment): Update.
9008         * dse.c (dse_step0): Update.
9009         (dse_step1): Update.
9010         * c-decl.c (store_parm_decls): Update.
9011         * local-alloc.c (combine_regs): Update.
9012         (find_free_reg): Update.
9013         * function.c (assign_parms_augmented_arg_list): Update.
9014         (assign_parm_find_data_types): Update.
9015         (assign_parms): Update.
9016         (allocate_struct_function): Update.
9017         (expand_function_start): Update.
9018         (expand_function_end): Update.
9019         (get_arg_pointer_save_area): Update.
9020         (thread_prologue_and_epilogue_insns): Update.
9021         (rest_of_match_asm_constraints): Update.
9022         * stor-layout.c (variable_size): Update.
9023         * gcse.c (gcse_main): Update.
9024         (bypass_jumps): Update.
9025         * gimplify.c (gimplify_function_tree): Update.
9026         * calls.c (emit_call_1): Update.
9027         (expand_call): Update.
9028         * bt-load.c (compute_defs_uses_and_gen): Update.
9029         * except.c (sjlj_assign_call_site_values): Update.
9030         (sjlj_emit_function_enter): Update.
9031         (can_throw_external): Update.
9032         (set_nothrow_function_flags): Update.
9033         (expand_builtin_unwind_init): Update.
9034         (expand_eh_return): Update.
9035         (convert_to_eh_region_ranges): Update.
9036         (output_function_exception_table): Update.
9037         * emit-rtl.c (gen_tmp_stack_mem): Update.
9038         * cfgexpand.c (expand_used_vars): Update.
9039         (tree_expand_cfg): Update.
9040         * cfgcleanup.c (rest_of_handle_jump): Update.
9041         * explow.c (allocate_dynamic_stack_space): Update.
9042         * varasm.c (assemble_start_function): Update.
9043         (force_const_mem): Update.
9044         (mark_constant_pool): Update.
9045         * tree-optimize.c (tree_rest_of_compilation): Update.
9046         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
9047         * tree-cfg.c (notice_special_calls): Update.
9048         (is_ctrl_altering_stmt): Update.
9049         (tree_can_make_abnormal_goto): Update.
9050         (tree_purge_dead_abnormal_call_edges): Update.
9051         * config/alpha/predicates.md: Update.
9052         * config/alpha/alpha.c (alpha_sa_mask): Update.
9053         (alpha_sa_size): Update.
9054         (alpha_does_function_need_gp): Update.
9055         (alpha_expand_prologue): Update.
9056         (alpha_start_function): Update.
9057         (alpha_output_function_end_prologue): Update.
9058         (alpha_expand_epilogue): Update.
9059         * config/frv/frv.c (frv_stack_info): Update.
9060         (frv_expand_epilogue): Update.
9061         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
9062         (s390_register_info): Update.
9063         (s390_frame_info): Update.
9064         (s390_init_frame_layout): Update.
9065         (s390_can_eliminate): Update.
9066         (save_gprs): Update.
9067         * config/spu/spu.c (spu_split_immediate): Update.
9068         (need_to_save_reg): Update.
9069         (spu_expand_prologue): Update.
9070         (spu_expand_epilogue): Update.
9071         * config/sparc/sparc.md: Update.
9072         * config/sparc/sparc.c (eligible_for_return_delay): Update.
9073         (sparc_tls_got): Update.
9074         (legitimize_pic_address): Update.
9075         (sparc_emit_call_insn): Update.
9076         (sparc_expand_prologue): Update.
9077         (output_return): Update.
9078         (print_operand): Update.
9079         (sparc_function_ok_for_sibcall): Update.
9080         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
9081         * config/m32r/m32r.md: Update.
9082         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
9083         (m32r_compute_frame_size): Update.
9084         (m32r_expand_prologue): Update.
9085         (m32r_expand_epilogue): Update.
9086         (m32r_legitimize_pic_address): Update.
9087         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
9088         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
9089         * config/i386/i386.c (ix86_frame_pointer_required): Update.
9090         (gen_push): Update.
9091         (ix86_save_reg): Update.
9092         (ix86_compute_frame_layout): Update.
9093         (ix86_expand_prologue): Update.
9094         (ix86_expand_epilogue): Update.
9095         * config/sh/sh.c (output_stack_adjust): Update.
9096         (calc_live_regs): Update.
9097         (sh5_schedule_saves): Update.
9098         (sh_expand_prologue): Update.
9099         (sh_expand_epilogue): Update.
9100         (sh_setup_incoming_varargs): Update.
9101         (sh_allocate_initial_value): Update.
9102         (sh_get_pr_initial_val): Update.
9103         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
9104         * config/sh/sh.md (label:): Update.
9105         * config/avr/avr.c (out_movhi_mr_r): Update.
9106         * config/crx/crx.h (enum): Update.
9107         * config/xtensa/xtensa.h (along): Update.
9108         * config/stormy16/stormy16.c Update.
9109         (xstormy16_compute_stack_layout): Update.
9110         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
9111         (fr30_expand_prologue): Update.
9112         * config/cris/cris.c (cris_conditional_register_usage): Update.
9113         (cris_reg_saved_in_regsave_area): Update.
9114         (cris_initial_frame_pointer_offset): Update.
9115         (cris_simple_epilogue): Update.
9116         (cris_expand_prologue): Update.
9117         (cris_expand_epilogue): Update.
9118         (cris_expand_pic_call_address): Update.
9119         (cris_asm_output_symbol_ref): Update.
9120         (cris_asm_output_label_ref): Update.
9121         * config/cris/cris.md Update.
9122         * config/iq2000/iq2000.c (compute_frame_size): Update.
9123         (iq2000_expand_epilogue): Update.
9124         * config/mt/mt.h (save_direction): Update.
9125         * config/mn10300/mn10300.c (mn10300_function_value): Update.
9126         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
9127         (ia64_secondary_reload_class): Update.
9128         * config/m68k/m68k.c (m68k_save_reg): Update.
9129         (m68k_expand_prologue): Update.
9130         (m68k_expand_epilogue): Update.
9131         (legitimize_pic_address): Update.
9132         * config/rs6000/rs6000.c (rs6000_got_register): Update.
9133         (first_reg_to_save): Update.
9134         (first_altivec_reg_to_save): Update.
9135         (compute_vrsave_mask): Update.
9136         (compute_save_world_info): Update.
9137         (rs6000_stack_info): Update.
9138         (spe_func_has_64bit_regs_p): Update.
9139         (rs6000_ra_ever_killed): Update.
9140         (rs6000_emit_eh_reg_restore): Update.
9141         (rs6000_emit_allocate_stack): Update.
9142         (rs6000_emit_prologue): Update.
9143         (rs6000_emit_epilogue): Update.
9144         (rs6000_output_function_epilogue): Update.
9145         (output_profile_hook): Update.
9146         (rs6000_elf_declare_function_name): Update.
9147         * config/rs6000/rs6000.h (rs6000_args): Update.
9148         * config/rs6000/rs6000.md: Update.
9149         * config/mcore/mcore.c (mcore_expand_prolog): Update.
9150         * config/arc/arc.c (arc_output_function_epilogue): Update.
9151         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
9152         * config/darwin.c (machopic_function_base_name): Update.
9153         * config/score/score3.c (score3_compute_frame_size): Update.
9154         (rpush): Update.
9155         (rpop): Update.
9156         (score3_epilogue): Update.
9157         * config/score/score7.c (score7_compute_frame_size): Update.
9158         (score7_prologue): Update.
9159         (score7_epilogue): Update.
9160         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
9161         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
9162         * config/arm/arm.c (use_return_insn): Update.
9163         (require_pic_register): Update.
9164         (arm_load_pic_register): Update.
9165         (arm_compute_save_reg0_reg12_mask): Update.
9166         (arm_compute_save_reg_mask): Update.
9167         (thumb1_compute_save_reg_mask): Update.
9168         (output_return_instruction): Update.
9169         (arm_output_function_prologue): Update.
9170         (arm_output_epilogue): Update.
9171         (arm_get_frame_offsets): Update.
9172         (arm_expand_prologue): Update.
9173         (thumb_pushpop): Update.
9174         (thumb_exit): Update.
9175         (thumb1_expand_prologue): Update.
9176         (thumb1_expand_epilogue): Update.
9177         (arm_unwind_emit): Update.
9178         (arm_output_fn_unwind): Update.
9179         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
9180         * config/arm/arm.md: Update.
9181         * config/pa/pa.md: Update.
9182         * config/pa/pa.c (legitimize_pic_address): Update.
9183         (compute_frame_size): Update.
9184         (hppa_expand_prologue): Update.
9185         (hppa_expand_epilogue): Update.
9186         (borx_reg_operand): Update.
9187         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
9188         (HARD_REGNO_RENAME_OK): Update.
9189         * config/mips/mips.c (mips_global_pointer): Update.
9190         (mips_save_reg_p): Update.
9191         (mips_compute_frame_info): Update.
9192         (mips_frame_pointer_required): Update.
9193         (mips_expand_prologue): Update.
9194         (mips_expand_epilogue): Update.
9195         (mips_can_use_return_insn): Update.
9196         (mips_reorg_process_insns): Update.
9197         * config/v850/v850.c (compute_register_save_size): Update.
9198         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
9199         * config/mmix/mmix.c (along): Update.
9200         (mmix_expand_epilogue): Update.
9201         * config/bfin/bfin.c (legitimize_pic_address): Update.
9202         (must_save_p): Update.
9203         (stack_frame_needed_p): Update.
9204         (add_to_reg): Update.
9205         (bfin_expand_prologue): Update.
9206         * stmt.c (expand_asm_operands): Update.
9207         * reload1.c (reload): Update.
9208         (init_elim_table): Update.
9209
9210 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
9211         
9212         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
9213         
9214 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
9215
9216         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
9217         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
9218         (mov<mode>): Removed.
9219         (*movv4sf_internal): Likewise.
9220         (*movv2df_internal): Likewise.
9221
9222 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
9223
9224         * config.gcc (crx-*-elf): Remove deprecation.
9225
9226 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
9227
9228         * config/i386/cygming-crtend.c (register_frame_ctor): Register
9229         __gcc_deregister_frame with atexit.
9230         (deregister_frame_dtor): Remove.
9231
9232 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
9233             Nathan Sidwell  <nathan@codesourcery.com>
9234
9235         * config/rs6000/rs6000.opt (mspe): Remove Var property.
9236         (misel): Likewise.
9237         * config/rs6000/rs6000.h (rs6000_spe): Declare.
9238         (rs6000_isel): Likewise.
9239         * config/rs6000/rs6000.c (rs6000_spe): New variable.
9240         (rs6000_isel): New variable.
9241         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
9242
9243 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9244
9245         PR c++/35758
9246         * c-common.c (handle_vector_size_attribute): Call
9247         lang_hooks.types.reconstruct_complex_type instead of
9248         reconstruct_complex_type.
9249         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
9250         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
9251         * langhooks.h (struct lang_hooks_for_types): Add
9252         reconstruct_complex_type hook.
9253         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
9254         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
9255
9256 2008-04-24  Richard Guenther  <rguenther@suse.de>
9257
9258         * c-common.h (check_builtin_function_arguments): Declare.
9259         * c-common.c (validate_nargs): New function.
9260         (check_builtin_function_arguments): Likewise.
9261         * c-typeck.c (build_function_call): Call
9262         check_builtin_function_arguments.
9263         * builtins.c (fold_builtin_classify): Remove error reporting code.
9264         (fold_builtin_unordered_cmp): Likewise.
9265         (fold_builtin_1): Likewise.
9266         (fold_builtin_n): Likewise.
9267
9268 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9269
9270         PR tree-optimization/36008
9271         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
9272         the original op1, rather than delta by step.
9273
9274 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
9275             Sebastian Pop  <sebastian.pop@amd.com>
9276
9277         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
9278         eliminate_local_variables_stmt, eliminate_local_variables,
9279         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
9280         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
9281         of code delimited by two edges in the CFG.
9282         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
9283         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
9284         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
9285         the case of parallelisation of reductions.
9286         (expr_invariant_in_region_p): New.
9287
9288         * tree-flow.h (gather_blocks_in_sese_region): Declared.
9289         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
9290
9291 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9292             Richard Guenther  <rguenther@suse.de>
9293
9294         PR tree-optimization/36034
9295         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
9296         incapable of dealing with loads with gaps.
9297
9298 2008-04-24  Rafael Espindola  <espindola@google.com>
9299
9300         * tree-flow.h (vrp_evaluate_conditional): Change signature.
9301         * tree-ssa-propagate.c (fold_predicate_in): Update call to
9302         vrp_evaluate_conditional.
9303         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
9304         (vrp_evaluate_conditional): Split the cond argument.
9305         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
9306         (simplify_stmt_for_jump_threading): Update call to
9307         vrp_evaluate_conditional.
9308
9309 2008-04-24  Ira Rosen  <irar@il.ibm.com>
9310
9311         PR tree-optimization/35982
9312         * tree-vect-analyze.c (vect_check_interleaving): Check that the
9313         interleaved data-refs are of the same type.
9314
9315 2008-04-24  Danny Smith  <dannysmith@users.net>
9316
9317         * c-format.c (check_format_info_main): Use strncmp rather than a
9318         magic prefix to handle multichar length specs.
9319         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
9320         Don't prefix "I64" and "I32" with '\0'.
9321
9322 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
9323
9324         PR target/36015
9325         * config/i386/i386.c (init_cumulative_args): Don't pass anything
9326         in registers for -m32 only if stdarg_p (fntype).
9327
9328 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
9329
9330         PR rtl-optimization/36006
9331         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
9332         temp to op0 in order to avoid invalid rtx sharing.
9333
9334 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
9335
9336         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
9337         check TREE_INVARIANT.
9338         * tree-gimple.c (is_gimple_address): New.
9339         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
9340         * tree-gimple.h (is_gimple_address): New.
9341         * tree.h (decl_address_invariant_p): New.
9342         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
9343         (build_string): Likewise.
9344         (decl_address_invariant_p): New, from is_gimple_invariant_address.
9345         (tree_invariant_p_1): Likewise.
9346         (save_expr): Use it.
9347         (tree_invariant_p): New.
9348         (skip_simple_arithmetic): Use it.
9349         (stabilize_reference_1): Use it.
9350         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
9351         simplify.
9352         (build1_stat): Drop code to compute TREE_INVARIANT.
9353         (build2_stat): Drop code to compute TREE_INVARIANT.
9354         (build3_stat): Drop code to compute TREE_INVARIANT.
9355         (build4_stat): Drop code to compute TREE_INVARIANT.
9356         (build5_stat): Drop code to compute TREE_INVARIANT.
9357         (build7_stat): Drop code to compute TREE_INVARIANT.
9358         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
9359         * tree.h (struct tree_base): Remove invariant_flag.
9360         (TREE_INVARIANT): Remove.
9361         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
9362         (fold_builtin_expect): Check TREE_CONSTANT.
9363         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
9364         * c-tree.h (c_expr_to_decl): Drop third parameter.
9365         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
9366         (build_c_cast): Don't set TREE_INVARIANT.
9367         (pop_init_level): Don't set TREE_INVARIANT.
9368         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
9369         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
9370         TREE_CONSTANT.
9371         (gimplify_init_constructor): Don't set TREE_INVARIANT.
9372         (gimplify_addr_expr): Adjust comment.
9373         * tree-mudflap.c (mf_build_string):
9374         * print-tree.c (print_node): Don't print TREE_INVARIANT.
9375         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
9376         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
9377         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
9378         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
9379         * langhooks.h (struct lang_hooks): Drop third parameter from
9380         expr_to_decl.
9381
9382 2008-04-23  Richard Guenther  <rguenther@suse.de>
9383
9384         PR tree-optimization/27799
9385         PR tree-optimization/32921
9386         PR tree-optimization/32624
9387         * tree-ssa-structalias.c (merge_smts_into): Only merge the
9388         SMTs aliases and the tag itself into the solution.
9389         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
9390         merge the points-to solution back into the SMT aliases.
9391         (may_alias_p): Use alias_set_subset_of instead of
9392         aliases_conflict_p.  A pointer which points to
9393         memory with alias set zero may access any variable.
9394
9395 2008-04-23  Richard Guenther  <rguenther@suse.de>
9396
9397         * alias.c (alias_set_subset_of): Correctly handle asking
9398         if zero is a subset of an alias set with zero child.
9399         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
9400         (compute_flow_insensitive_aliasing): Correctly walk all
9401         pointers.  Do not unnecessarily union sets.
9402
9403 2008-04-23  Richard Guenther  <rguenther@suse.de>
9404
9405         PR middle-end/36021
9406         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
9407
9408 2008-04-22  Tomas Bily  <tbily@suse.cz>
9409
9410         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
9411         unreachable case.
9412         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
9413         NON_LVALUE_EXPR.
9414         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9415         * tree-ssa-structalias.c (get_constraint_for): Likewise.
9416         * tree-inline.c (estimate_num_insns_1): Likewise.
9417         * varasm.c (const_hash_1, compare_constant, copy_constant)
9418         (compute_reloc_for_constant, output_addressed_constants): Likewise.
9419         * emit-rtl.c (component_ref_for_mem_expr)
9420         (set_mem_attributes_minus_bitpos): Likewise.
9421         * expr.c (highest_pow2_factor, expand_expr_real_1, )
9422         (is_aligning_offset): Likewise.
9423         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
9424         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
9425         * dojump.c (do_jump): Likewise.
9426         * builtins.c (get_pointer_alignment, get_memory_rtx)
9427         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
9428         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
9429
9430 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
9431
9432         PR rtl-optimization/36017
9433         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
9434         expanding the library call.
9435
9436 2008-04-22  Ian Lance Taylor  <iant@google.com>
9437
9438         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
9439         than size_in_bytes.
9440
9441 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
9442
9443         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
9444         of LR/CTR moves for Power6.
9445
9446 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9447
9448         PR middle-end/36003
9449         * passes.c (init_optimization_passes): Remove
9450         pass_fast_rtl_byte_dce.
9451         
9452 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
9453
9454         PR target/29096
9455         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
9456         builtin functions to generate faster code.
9457         (_mm_cvtpu16_ps): Ditto.
9458         (_mm_cvtpi32x2_ps): Ditto.
9459
9460 2008-04-22  Nick Clifton  <nickc@redhat.com>
9461
9462         * common.opt (ftree-loop-distribution): Add Optimization
9463         attribute.
9464
9465         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
9466         (frv_expand_builtin_va_start): Likewise.
9467
9468         * config/arm/arm.c (thumb_find_work_register): Fix location of
9469         argument register count.
9470
9471 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9472
9473         Support scheduling for ColdFire V1 and V3 microarchitecture.
9474         Improve scheduling of multiplication instructions.
9475
9476         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
9477         (mac): New instruction attribute.
9478         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
9479         (m68k_sched_mac): New variable.
9480         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
9481         Handle cfv1 and cfv3.
9482         (max_insn_size): New static variable.
9483         (struct _sched_ib): New type.
9484         (sched_ib): New static variable.
9485         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
9486         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
9487         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
9488         Update.
9489         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
9490         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
9491         new variables.  Update.
9492         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
9493         Add modeling of cfv3 instruction buffer.  Update.
9494         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
9495         * config/m68k/m68k.h (TUNE_CFV3): New macro.
9496         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
9497         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
9498         a particular reservation applies to.
9499         (type2): Reorganize attribute values.  Rename alu to alu_reg,
9500         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
9501         to mul_l and mul_w.
9502         (cf_ib_*): Simplify description of instruction buffer.
9503         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
9504         (cf_mem): Split into cf_mem1 and cf_mem2.
9505         (cf_v2_move_??): Rename to cfv12_alu_??.
9506         (cf_v2_move_l_??): Rename to cfv12_omove_??.
9507         (cf_v2_mul_??): Remove reservations.
9508         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
9509         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
9510         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
9511         appropriate place.
9512         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
9513         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
9514         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
9515         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
9516         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
9517         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
9518         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
9519         expansions of the above reservations for instructions of sizes
9520         1, 2 and 3 words.
9521
9522 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
9523
9524         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
9525
9526 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
9527
9528         * coverage.c: Include tree-pass.h.
9529         (coverage_counter_alloc): Print da_file_name to the dump file.
9530
9531 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
9532
9533         * sbitmap.c (sbitmap_range_empty_p): New function.
9534         * sbitmap.h (sbitmap_range_empty_p): New function.
9535         * bitmap.h: Now includes obstack.h.
9536
9537 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
9538             Kenneth Zadeck  <zadeck@naturalbridge.com>
9539
9540         * dbgcnt.def (ra_byte_scan): Added.
9541         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
9542         when the last hit happens for a counter.  
9543         * timevar.def (TV_DF_BYTE_LR): New variable.
9544         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
9545         * passes.c (pass_fast_rtl_byte_dce): New pass.
9546         * fwprop.c (update_df): Added mode to call df_ref_create.
9547         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9548         DF_REF_EXTRACT_OFFSET.
9549         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
9550         DF_BYTE_LR_OUT, df_byte_lr): New macro.
9551         (df_mm): New enum.
9552         (df_ref_extract): Added mode field.
9553         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
9554         DF_REF_EXTRACT_OFFSET.
9555         (DF_REF_EXTRACT_MODE): New macro.
9556         (df_byte_lr_bb_info): New structure.
9557         (df_print_byte_regset, df_compute_accessed_bytes, 
9558         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
9559         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
9560         df_byte_lr_simulate_uses,
9561         df_byte_lr_simulate_artificial_refs_at_top,
9562         df_byte_lr_simulate_artificial_refs_at_end,
9563         df_compute_accessed_bytes): New function.
9564         (df_ref_create): Add parameter.
9565         (df_byte_lr_get_bb_info): New inline function.
9566         * df-scan.c (df_ref_record, df_uses_record,
9567         df_ref_create_structure): Added mode parameter.
9568         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
9569         df_defs_record, df_uses_record, df_get_conditional_uses,
9570         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
9571         df_entry_block_defs_collect, df_exit_block_uses_collect):
9572         Added mode parameter to calls to df_ref_record, df_uses_record,
9573         df_ref_create_structure.
9574         (df_ref_equal_p, df_ref_compare): Added test for modes.
9575         (df_ref_create_structure): Added code to set mode.  Renamed
9576         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
9577         DF_REF_EXTRACT_OFFSET.
9578         * df-core.c (df_print_byte_regset): New function.
9579         * df-byte-scan.c: New file.
9580         * df-problems.c (df_rd_transfer_function): Removed unnecessary
9581         calls to BITMAP_FREE.  
9582         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
9583         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
9584         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
9585         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
9586         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
9587         df_byte_lr_local_compute, df_byte_lr_init,
9588         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
9589         df_byte_lr_transfer_function, df_byte_lr_free, 
9590         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
9591         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
9592         df_byte_lr_simulate_uses,
9593         df_byte_lr_simulate_artificial_refs_at_top,
9594         df_byte_lr_simulate_artificial_refs_at_end): New function.
9595         * dce.c (byte_dce_process_block): New function.
9596         (dce_process_block): au is now passed in rather than computed
9597         locally.  Changed loops that look at artificial defs to not look
9598         for conditional or partial ones, because there never are any.  
9599         (fast_dce): Now is able to drive byte_dce_process_block or 
9600         dce_process_block depending on the kind of dce being done.
9601         (rest_of_handle_fast_dce): Add parameter to fast_dce.
9602         (rest_of_handle_fast_byte_dce): New function.
9603         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
9604         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
9605
9606 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
9607
9608         PR fortran/35019
9609         * gcc.h: Added fortran options that take arguments to
9610         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
9611         macros.
9612
9613 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
9614
9615         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
9616         scalarization if on the LHS and not a full access.
9617
9618 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9619
9620         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
9621
9622 2008-04-18  Rafael Espindola  <espindola@google.com>
9623
9624         * tree-vrp.c (find_case_label_index): Fix the binary search.
9625         (find_case_label_range): New.
9626         (vrp_visit_switch_stmt): Use find_case_label_range.
9627         (simplify_switch_using_ranges): Use find_case_label_range.
9628
9629 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
9630
9631         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
9632         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
9633
9634 2008-04-18  Tom Tromey  <tromey@redhat.com>
9635
9636         PR libcpp/15500:
9637         * doc/cpp.texi (Implementation-defined behavior): Mention
9638         -finput-charset.
9639
9640 2008-04-18  Ian Lance Taylor  <iant@google.com>
9641
9642         * fold-const.c (pointer_may_wrap_p): New static function.
9643         (fold_comparison): Add another test for pointer overflow.  Use
9644         pointer_may_wrap_p to disable some false positives.
9645
9646 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
9647           
9648         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
9649         (fname_as_string): Match updated cpp_interpret_string prototype.
9650         (fix_string_type): Support char16_t* and char32_t*.
9651         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
9652         derivative) nodes.  Register as builtin if C++0x.
9653         (c_parse_error): Support CPP_CHAR{16,32}.
9654         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
9655         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
9656         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
9657         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
9658         CTI_CHAR32_ARRAY_TYPE>: New elements.
9659         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
9660         char32_type_node, signed_char32_type_node, char16_array_type_node,
9661         char32_array_type_node): New defines.
9662         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
9663         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
9664         (lex_string): Support CPP_STRING{16,32}, match updated
9665         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
9666         (lex_charconst): Support CPP_CHAR{16,32}.
9667         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
9668         and CPP_STRING{16,32}.
9669
9670 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
9671
9672         PR bootstrap/35457
9673         * aclocal.m4: Regenerate.
9674         * configure: Regenerate.
9675
9676 2008-04-18  Jan Hubicka  <jh@suse.cz>
9677
9678         * except.c (dw2_size_of_call_site_table,
9679         sjlj_size_of_call_site_table): Use vector API for call_site_record.
9680
9681         * cgraphbuild.c (build_cgraph_edges): Update.
9682         * tree-pass.h: Update comment.
9683         * final.c (leaf_function_p): Update.
9684         (leaf_renumber_regs): Update.
9685         (rest_of_clean_state): Update.
9686         * omp-low.c (expand_omp_parallel): Update.
9687         * ipa-reference.c (analyze_function): Update.
9688         * reorg.c (find_end_label): Update.
9689         (optimize_skip): Update.
9690         (fill_simple_delay_slots): Update.
9691         (fill_simple_delay_slots): Update.
9692         (make_return_insns): Update.
9693         (dbr_schedule): Update.
9694         * gimple-low.c (record_vars_into): Update.
9695         * cfgbuild.c (make_edges): Update.
9696         * function.c (assign_stack_local): Update.
9697         (assign_parm_adjust_stack_rtl): Update.
9698         (locate_and_pad_parm): Update.
9699         (allocate_struct_function): Do not initialize stack_alignment_needed
9700         and preferred_stack_boundary here.
9701         (stack_protect_prologue): Update.
9702         (stack_protect_epilogue): Update.
9703         (expand_function_start): Initialize stack_alignment_needed,
9704         preferred_stack_boundary and max_jumptable_ents.
9705         (expand_function_end): Update.
9706         (free_after_compilation): Do not NULLify epilogue_delay_list.
9707         * function.h (struct rtl_data): Add stack_protect_guard,
9708         stack_alignment_needed,
9709         preferred_stack_boundary, epilogue_delay_list.
9710         (struct function): Remove value_histograms, stack_alignment_needed,
9711         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
9712         last_label_uid,
9713         unexpanded_var_list, stack_protect_guard.
9714         (current_function_epilogue_delay_list): Remove.
9715         * ipa-type-escape.c (analyze_function): Update.
9716         * gimplify.c (pop_gimplify_context): Update comment.
9717         * calls.c (expand_call): Update.
9718         (emit_library_call_value_1): Update.
9719         * except.c (set_nothrow_function_flags): Update.
9720         * cfgexpand.c (get_decl_align_unit): Update.
9721         (create_stack_guard): Update.
9722         (estimated_stack_frame_size): Update.
9723         (expand_used_vars): Update.
9724         (tree_expand_cfg): Free histogram earliers, init expansion variables.
9725         * explow.c (allocate_dynamic_stack_space): Update.
9726         * tree-ssa-live.c (remove_unused_locals): Update.
9727         * varasm.c (mark_constant_pool): Update.
9728         * tree-inline.c (remap_decls): Update.
9729         (initialize_cfun): Update.
9730         (declare_return_variable): Update.
9731         (inline_forbidden_p): Update.
9732         (expand_call_inline): Update.
9733         (declare_inline_vars): Update.
9734         (tree_function_versioning): Update.
9735         * tree-flow.h (value_histograms): New.
9736         (VALUE_HISTOGRAMS): New macro.
9737         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
9738         last_label_uid.
9739         * tree-cfg.c (set_bb_for_stmt): Update.
9740         (replace_by_duplicate_decl): Update.
9741         (move_block_to_fn): Update.
9742         (new_label_mapper): Update.
9743         (dump_function_to_file): Update.
9744         * ipa-struct-reorg.c (build_data_structure): Update.
9745         * cfgrtl.c (print_rtl_with_bb): Update.
9746         * reload1.c (reload): Update.
9747         (reload): Update.
9748         * config/i386/i386.c (setup_incoming_varargs_64,
9749         ix86_compute_frame_layout): Update.
9750         * config/arc/arc.c (arc_output_function_epilogue): Update.
9751
9752 2008-04-18  Marius Strobl <marius@FreeBSD.org>
9753
9754         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
9755         for FreeBSD as well.
9756         * gthr-posix95.h: Likewise.
9757
9758 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
9759
9760         PR rtl-optimization/35838
9761         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
9762         out the byte offset of the first subreg.
9763
9764 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
9765
9766         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
9767         to split_ti instead of three separate calls with single member arrays.
9768         (subti3 splitter): Ditto.
9769         (adddi3 splitter): Ditto with split_di.
9770         (subdi3 splitter): Ditto.
9771         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
9772         two separate calls with single member arrays.  Swap match_dup
9773         operands 1 and 2 to better fit into the array.
9774         (negdi2 splitter): Ditto with split_di.
9775         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
9776         two separate calls with single member arrays.  Swap match_dup operands
9777         6 and 7 to better fit into the array.
9778
9779 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9780
9781         * config/i386/i386.c (sse_builtin_type): New.
9782         (bdesc_sse_args): Likewise.
9783         (bdesc_sse_3arg): Removed.
9784         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9785         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
9786         IX86_BUILTIN_ROUNDPS.
9787         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
9788         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
9789         IX86_BUILTIN_ROUNDPS.
9790         (ix86_expand_sse_4_operands_builtin): Removed.
9791         (ix86_expand_sse_operands_builtin): New.
9792         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
9793         and CODE_FOR_sse4_1_roundps.
9794         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
9795         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
9796
9797 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
9798
9799         PR target/35907
9800         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
9801         regs before frame pop when needed.  If use_backchain_to_restore_sp
9802         then load backchain into a temp reg to restore vr and vrsave.  Add
9803         code to restore vr after frame pop if possible.
9804
9805 2008-04-17  Richard Guenther  <rguenther@suse.de>
9806
9807         * tree-vn.c (expressions_equal_p): Do not check type
9808         equality or compatibility before calling operand_equal_p.
9809         * fold-const.c (operand_equal_p): Check equivalence of
9810         integer constants before bailing out due to signedness or
9811         precision differences.
9812         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
9813         spurious differences in type qualification.  Ignore types
9814         for COMPONENT_REFs at all.
9815
9816 2008-04-17  Christian Bruel  <christian.bruel@st.com>
9817
9818         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
9819         msw_skip comparison.
9820         
9821 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
9822
9823         PR c/35739
9824         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
9825         reg type.
9826
9827         PR tree-optimization/35899
9828         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
9829         rather than TREE_OPERAND.
9830
9831 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
9832
9833         PR target/35944
9834         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
9835         temporary registers.  Change operand predicate to general_operand.
9836         (remainderxf3): Ditto.
9837
9838 2008-04-16  Richard Guenther  <rguenther@suse.de>
9839
9840         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
9841         * tree-affine.c (aff_combination_expand): Look through some
9842         conversions.
9843
9844 2008-04-15  Doug Kwan  <dougkwan@google.com>
9845
9846         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
9847         for hex printing.
9848         * tree-pretty-print.c (dump_generic_node): Ditto.
9849         * final.c (output_addr_const): Ditto.
9850         * dwarf2out.c (output_cfi): Ditto.
9851         * c-pretty-print.c (pp_c_integer_constant): Ditto.
9852         * print-rtl.c (print_rtx): Ditto.
9853         * print-tree.c (print_node_brief, print_node): Ditto.
9854         * c-common.c (match_case_to_enum_1): Ditto.
9855         * sched-vis.c (print_value): Ditto.
9856         * config/i386/i386.c (print_operand): Cast to long unsigned int
9857         for hex printing.
9858
9859 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
9860         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
9861         MS Windows VirtualProtect function.
9862
9863 2008-04-15  Jan Hubicka  <jh@suse.cz>
9864
9865         * gengtype.c (write_root): Param_is argument is OK.
9866         * expr.c (expand_expr_real_1): Update call of get_exception_*.
9867         * function.h: Include varray.h
9868         (rtl_eh): New stucture based on except.c one.
9869         (call_site_record): New forward declaration and vector type.
9870         * calls.c (emit_call_1): Do not call
9871         note_current_region_may_contain_throw.
9872         * except.c (eh_status): Remove cur_region, try_region since they are
9873         unused.
9874         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
9875         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
9876         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
9877         Remove call_site_data_used, call_site_data_size.
9878         Turn call_site_record into vector in function.h.
9879         (note_current_region_may_contain_throw): Remove.
9880         (get_exception_pointer, get_exception_filter): Do not take struct
9881         function argument; update.
9882         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
9883         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
9884         build_post_landing_pads, dw2_build_landing_pads,
9885         sjlj_assign_call_site_values, sjlj_mark_call_sites,
9886         sjlj_emit_function_enter, sjlj_emit_function_enter, 
9887         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9888         sjlj_build_landing_pads, finish_eh_generation,
9889         remove_exception_handler_label, remove_eh_handler,
9890         maybe_remove_eh_handler, add_reachable_handler,
9891         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
9892         add_action_record, collect_one_action_chain, add_call_site,
9893         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
9894         sjlj_output_call_site_table, output_function_exception_table,
9895         * except.h (note_current_region_may_contain_throw): Remove
9896         (get_exception_pointer, get_exception_filter): Do not take struct
9897         function argument.
9898         * Makefile.in (GTFILES): Put varargs before struct function.
9899
9900 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9901
9902         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
9903         punt for STRING_CST.
9904         (get_constraint_for): Deal with STRING_CST here instead.
9905
9906 2008-04-15  Richard Guenther  <rguenther@suse.de>
9907
9908         * tree-ssa-propagate.c (substitute_and_fold): Substitute
9909         statements in a basic-block with a backward walk.  Do not
9910         substitute into dead statements but instead remove those.
9911
9912 2008-04-15  Richard Guenther  <rguenther@suse.de>
9913
9914         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
9915         to zero, thus disable creation of SFTs.
9916
9917 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
9918
9919         * tree-predcom.c (suitable_reference_p): Return false if the
9920         reference can throw.
9921
9922 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
9923
9924         PR c/35751
9925         * c-decl.c (finish_decl): If extern or static var has variable
9926         size, set TREE_TYPE (decl) to error_mark_node.
9927
9928 2008-04-15  Rafael Espindola  <espindola@google.com>
9929
9930         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
9931         variable arg1.
9932
9933 2008-04-15  Richard Guenther  <rguenther@suse.de>
9934
9935         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9936         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
9937         (visit_reference_op_load): Do walk vuse-vdef chains on
9938         vn_reference_lookup.
9939         (visit_reference_op_store): But do not here.
9940         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
9941         vn_reference_lookup.
9942         (vn_lookup_with_vuses): But do so here.
9943
9944 2008-04-14  Ian Lance Taylor  <iant@google.com>
9945
9946         * fold-const.c (fold_overflow_warning): Remove assertion.
9947
9948 2008-04-15  Ben Elliston  <bje@au.ibm.com>
9949
9950         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
9951         temp1 local variables.
9952
9953 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
9954
9955         PR target/35661
9956         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
9957         ".text.unlikely" section as executable.
9958
9959 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
9960
9961         * config/ia64/ia64.c (rtx_needs_barrier): Handle
9962         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
9963         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
9964         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
9965         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
9966         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
9967         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
9968
9969 2008-04-14  Ian Lance Taylor  <iant@google.com>
9970
9971         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
9972         * fold-const.c (fold_comparison): If appropriate, test
9973         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
9974         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
9975         reassociating a pointer type.
9976         * doc/invoke.texi (Optimize Options): Document that
9977         -fstrict-overflow applies to pointer wraparound.
9978
9979 2008-04-13  Jan Hubicka  <jh@suse.cz>
9980
9981         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
9982
9983 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
9984
9985         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
9986         we are going to "save the world".
9987
9988 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
9989
9990         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
9991         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
9992         operand 0 constraint, not "=".
9993
9994 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
9995
9996         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
9997
9998 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
9999
10000         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
10001         of size of positions_needed * CHAR_BIT.
10002
10003 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
10004
10005         PR middle-end/35897
10006         * dse.c (store_info): Change positions_needed to unsigned
10007         HOST_WIDE_INT.
10008         (lowpart_bitmask): New.
10009         (record_store): Cast to unsigned HOST_WIDE_INT for
10010         positions_needed.  Assert width <= size of positions_needed *
10011         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
10012         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
10013         lowpart_bitmask to set mask.
10014
10015 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
10016
10017         * config/bfin/constraints.md: New file.
10018         * config/bfin/bfin.md: Include it.
10019         (adddi3): Use satisfies_constraint functions instead of the old macros.
10020         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
10021         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
10022         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
10023         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
10024         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
10025         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
10026         EXTRA_CONSTRAINT): Delete.
10027         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
10028         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
10029         of the old macros.
10030         * config/bfin/bfin.c: Include "tm-constrs.h".
10031         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
10032         Use satisfies_constraint functions instead of the old macros.
10033         * doc/md.texi (Blackfin Constraints): Update file name reference.
10034
10035 2008-04-11  Richard Guenther  <rguenther@suse.de>
10036
10037         PR tree-optimization/35869
10038         * tree-vrp.c (execute_vrp): Move switch statement update after
10039         jump threading.  Schedule another cfg cleanup run.
10040
10041 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
10042
10043         PR c/35744
10044         * attribs.c (decl_attributes): Return early on errorneous node.
10045
10046 2008-04-10  Oleg Ryjkov  <olegr@google.com>
10047
10048         * tree.h (struct tree_base): Added a new flag default_def_flag.
10049         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
10050
10051 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
10052
10053         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
10054
10055 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10056
10057         PR target/35768
10058         * pa.md: Define mode iterator P.  Define mode attribute dwc.
10059         (dcacheflush): Update pattern to use iterator P and attribute dwc.
10060         (icacheflush): Likewise.
10061         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
10062         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
10063
10064 2008-04-11  Ben Elliston  <bje@au.ibm.com>
10065
10066         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
10067
10068 2008-04-10  Rafael Espindola  <espindola@google.com>
10069
10070         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
10071         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
10072         (extract_range_from_expr): The same.
10073
10074 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
10075
10076         * config/mips/mips.md (GPR2): New mode iterator.
10077         (seq): Add comment.
10078         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
10079         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
10080         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
10081         Rewrite these to take two modes, the mode of comparison and the
10082         mode of the destination.
10083         * config/mips/mips.c (mips_expand_scc): Instead of having
10084         paradoxical subreg as destination, expand "narrowing" scc if mode
10085         of comparison is SI and target is requested in DI mode.
10086         (mips_emit_int_order_test): Update comment.  Make mode of
10087         comparison match CMP0 rather than TARGET.  When creating inverse
10088         target use mode of TARGET.
10089
10090 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
10091
10092         * gcov-dump.c (tag_summary): Only print summaries for the first
10093         GCOV_COUNTERS_SUMMABLE counters.
10094
10095 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
10096
10097         * config/i386/i386.md (absneg): New code iterator.
10098         (absnegprefix): New code attribute.
10099         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
10100         patterns using absneg code iterator.
10101         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
10102         using absneg code iterator.
10103         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
10104         *neg<mode>2 patterns using absneg code iterator.
10105         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
10106         *negextendsfdf2 patterns using absneg code iterator.
10107         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
10108         *negextendsfxf2 patterns using absneg code iterator.
10109         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
10110         *negextendsfdf2 patterns using absneg code iterator.
10111         * config/i386/sse.md (<code><mode>2): Macroize expander from
10112         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
10113
10114 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10115
10116         * config/s390/s390.h: Remove the remains of the recent search
10117         & replace action of current_function_outgoing_args_size.
10118
10119 2008-04-10  Ira Rosen  <irar@il.ibm.com>
10120
10121         PR tree-optimization/35821
10122         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
10123         NEW_STMT_LIST is not NULL.
10124
10125 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
10126
10127         PR libstdc++/35597
10128         * toplev.c (process_options): Remove -ffunction-sections debugging
10129         warning.
10130
10131 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
10132
10133         PR middle-end/PR28690
10134         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
10135         than gen_rtx_fmt_ee to perform more canonicalizations.
10136
10137 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10138
10139         PR driver/35665
10140         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
10141
10142 2008-04-09  Richard Guenther  <rguenther@suse.de>
10143
10144         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
10145         (dump_function_to_file): Dump function arguments with types.
10146
10147 2008-04-08  Richard Guenther  <rguenther@suse.de>
10148
10149         * fold-const.c (fold_widened_comparison): Do not allow
10150         sign-changes that change the result.
10151
10152 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
10153
10154         PR target/35839
10155         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
10156         kinds of indirect references.
10157
10158 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
10159
10160         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
10161         GNU Fortran language string.
10162
10163 2008-04-08  Rafael Espindola  <espindola@google.com>
10164
10165         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
10166         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
10167         * tree.h (tree_call_nonnegative_warnv_p): New.
10168
10169 2008-04-08  Jan Hubicka  <jh@suse.cz>
10170
10171         * function.c (free_after_compilation): Clear out regno_reg_rtx
10172         pointer.
10173
10174 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
10175
10176         Revert
10177         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
10178
10179         PR middle-end/PR28690
10180         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
10181         same precedence as REG_POINTER and MEM_POINTER operands.
10182
10183 2008-04-08  Richard Guenther  <rguenther@suse.de>
10184
10185         PR middle-end/35834
10186         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
10187         for adding index to base.
10188
10189 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
10190
10191         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
10192         (MINGW_ENABLE_EXECUTE_STACK): New.
10193         (IN_LIBGCC2): For libgcc include windows.h file for
10194         function declarations.
10195
10196 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
10197
10198         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
10199         and tem2 if tem1 is not a REG or MULT.
10200
10201 2008-04-08  Jan Hubicka  <jh@suse.cz>
10202
10203         * function.h (incomming_args): Break out of struct function.
10204         (function_subsections): Break out of struct function.
10205         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
10206         return_rtx and hard_reg_initial_vals from struct function.
10207         Kill inl_max_label_num.
10208         (current_function_pops_args, current_function_args_info,
10209         current_function_args_size, current_function_args_size,
10210         current_function_pretend_args_size,
10211         current_function_outgoing_args_size,
10212         current_function_internal_arg_pointer, current_function_return_rtx):
10213         Kill compatibility accestor macros.
10214         * builtins.c (expand_builtin_apply_args_1): Update.
10215         (expand_builtin_next_arg): Update.
10216         * df-scan.c (df_get_call_refs): Update.
10217         * dbxout.c (dbxout_function_end): Update.
10218         * dwarf2out.c (dwarf2out_switch_text_section): Update.
10219         (output_line_info): Update.
10220         (secname_for_decl): Update.
10221         (dwarf2out_var_location): Update.
10222         * function.c (free_after_compilation): Update.
10223         (assign_parm_find_stack_rtl): Update.
10224         (assign_parms): Update.
10225         (expand_dummy_function_end): Update.
10226         (expand_function_end): Update.
10227         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
10228         (expand_call): Update.
10229         (emit_library_call_value_1): Update.
10230         (store_one_arg): Update.
10231         * varasm.c (initialize_cold_section_name): Update.
10232         (unlikely_text_section): Update.
10233         (unlikely_text_section_p): Update.
10234         (assemble_start_function): Update.
10235         (assemble_end_function): Update.
10236         (default_section_type_flags): Update.
10237         (switch_to_section): Update.
10238         * integrate.c (set_decl_abstract_flags): Update.
10239         (get_hard_reg_initial_val): Update.
10240         (has_hard_reg_initial_val): Update.
10241         (allocate_initial_values): Update.
10242         * resource.c (init_resource_info): Update.
10243         * config/alpha/alpha.c (NUM_ARGS): Update.
10244         (direct_return): Update.
10245         (alpha_va_start): Update.
10246         (alpha_sa_size): Update.
10247         (alpha_initial_elimination_offset): Update.
10248         (alpha_expand_prologue): Update.
10249         (alpha_start_function): Update.
10250         (alpha_expand_epilogue): Update.
10251         (unicosmk_initial_elimination_offset):
10252         * config/alpha/alpha.md (call expander): Update.
10253         * config/s390/s390.c (s390_register_info): Update.
10254         (s390_register_info): Update.
10255         (s390_frame_info): Update.
10256         (s390_initial_elimination_offset): Update.
10257         (s390_build_builtin_va_list): Update.
10258         (s390_va_start): Update.
10259         * config/spu/spu.c (direct_return): Update.
10260         (spu_expand_prologue): Update.
10261         (spu_initial_elimination_offset): Update.
10262         (spu_build_builtin_va_list): Update.
10263         (spu_va_start): Update.
10264         * config/sparc/sparc.c (sparc_init_modes): Update.
10265         (sparc_compute_frame_size): Update.
10266         (function_value): Update.
10267         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
10268         * config/i386/i386.md (return expander): Update.
10269         * config/i386/i386.c (ix86_va_start): Update.
10270         (ix86_can_use_return_insn_p): Update.
10271         (ix86_compute_frame_layout): Update.
10272         (ix86_expand_epilogue): Update.
10273         * config/sh/sh.c (output_stack_adjust): Update.
10274         (calc_live_regs): Update.
10275         (sh_expand_prologue): Update.
10276         (sh_builtin_saveregs): Update.
10277         (sh_va_start): Update.
10278         (initial_elimination_offset): Update.
10279         (sh_allocate_initial_value): Update.
10280         (sh_function_ok_for_sibcall): Update.
10281         (sh_get_pr_initial_val): Update.
10282         * config/sh/sh.md (return expander): Update.
10283         * config/avr/avr.c (frame_pointer_required_p): UPdate.
10284         * config/crx/crx.c (crx_compute_frame): UPdate.
10285         (crx_initial_elimination_offset): UPdate.
10286         * config/xtensa/xtensa.c (compute_frame_size): Update
10287         (xtensa_builtin_saveregs): Update.
10288         (xtensa_va_start): Update.
10289         (order_regs_for_local_alloc): Update.
10290         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
10291         (xstormy16_expand_builtin_va_start): Update.
10292         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
10293         * config/m68hc11/m68hc11.md (return expanders): Update.
10294         * config/m68hc11/m68hc11.c (expand_prologue): Update.
10295         (expand_epilogue): Update.
10296         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
10297         (cris_simple_epilogue): Update.
10298         (cris_expand_prologue): Update.
10299         (cris_expand_epilogue): Update.
10300         * config/iq2000/iq2000.c (iq2000_va_start): Update.
10301         (compute_frame_size): Update.
10302         * config/mt/mt.c (mt_compute_frame_size): Update.
10303         * config/mn10300/mn10300.c (expand_prologue): Update.
10304         (expand_epilogue): Update.
10305         (initial_offset): Update.
10306         (mn10300_builtin_saveregs):
10307         * config/mn10300/mn10300.md (return expander): Update.
10308         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
10309         (ia64_initial_elimination_offset): Update.
10310         (ia64_initial_elimination_offset): Update.
10311         (ia64_expand_prologue): Update.
10312         * config/m68k/m68k.md (return expander): Update.
10313         * config/rs6000/rs6000.c (rs6000_va_start): Update.
10314         (rs6000_stack_info): Update.
10315         * config/mcore/mcore.c (layout_mcore_frame): Update.
10316         (mcore_expand_prolog): Update.
10317         * config/arc/arc.c (arc_compute_frame_size): Update.
10318         * config/score/score3.c (score3_compute_frame_size): Update.
10319         * config/score/score7.c (score7_compute_frame_size): Update.
10320         * config/arm/arm.c (use_return_insn): Update.
10321         (thumb_find_work_register): Update.
10322         (arm_compute_save_reg_mask): Update.
10323         (arm_output_function_prologue): Update.
10324         (arm_output_epilogue): Update.
10325         (arm_size_return_regs): Update.
10326         (arm_get_frame_offsets): Update.
10327         (arm_expand_prologue): Update.
10328         (thumb_exit): Update.
10329         (thumb_unexpanded_epilogue): Update.
10330         (thumb1_output_function_prologue): Update.
10331         * config/pa/pa.md (return expander): Update.
10332         * config/pa/pa.c (compute_frame_size): Update.
10333         (hppa_builtin_saveregs): Update.
10334         * config/mips/mips.c (mips_va_start): Update.
10335         (mips16_build_function_stub): Update.
10336         (mips_compute_frame_info): Update.
10337         (mips_restore_gp): Update.
10338         (mips_output_function_prologue): Update.
10339         (mips_expand_prologue): Update.
10340         * config/v850/v850.c (compute_frame_size): Update.
10341         (expand_prologue): * config/mmix/mmix.c (along): update.
10342         (mmix_initial_elimination_offset): update.
10343         (mmix_reorg): update.
10344         (mmix_use_simple_return): update.
10345         (mmix_expand_prologue): update.
10346         (mmix_expand_epilogue): Update.
10347         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
10348         (emit_link_insn): Update.
10349
10350 2008-04-08  Anatoly Sokolov <aesok@post.ru>
10351
10352         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
10353         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
10354         instructions.
10355         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
10356         atmega103 device.
10357
10358 2008-04-07  Jan Hubicka  <jh@suse.cz>
10359
10360         * function.h (rtl): Rename to x_rtl.
10361         (crtl): New define.
10362         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
10363         frame_offset, stack_check_probe_note, arg_pointer_save_area,
10364         used_temp_slots avail_temp_slots, temp_slot_level,
10365         nonlocal_goto_handler_labels): Update accesstors.
10366         (rtl): New global variable.
10367         (struct function): Move some fileds to rtl_data.
10368         (get_arg_pointer_save_area): Update prototype.
10369         * builtins.c (expand_builtin_setjmp_receiver): Update call of
10370         get_arg_pointer_save_area.
10371         * expr.c (init_expr): Update
10372         * function.c (get_frame_size): Update
10373         (assign_stack_local): Update
10374         (expand_function_end): Update.
10375         (get_art_pointer_save_area): Update
10376         * function.h 
10377         * emit-rtl.c (rtl): Declare.
10378         (regno_reg_rtx): Declare.
10379         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
10380         Update.
10381         (gen_reg_rtx): Update.
10382         * varasm.c (n_deferred_constatns): Update accestor.
10383         (init_varasm_status): Do not allocate varasm_status.
10384         (force_const_mem, get_pool_size, output_constant_pool): Update.
10385         * stmt.c (force_label_rtx): Do not use x_ prefixes.
10386         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
10387         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
10388         * sparc/sparc.h (INIT_EXPANDERS): Update.
10389         * ia64/ia64.h (INIT_EXPANDERS): Update.
10390
10391 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
10392
10393         * reload.c (push_secondary_reload): Add missing break to for loop.
10394
10395 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
10396
10397         PR middle-end/PR28690
10398         * rtlanal.c: Update copyright years.
10399         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
10400         as REG_POINTER and MEM_POINTER operands.
10401         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
10402         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
10403         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
10404         * gcse.c: Update copyright years.
10405         (pre_delete): Call gen_reg_rtx_and_attrs.
10406         (hoist_code): Likewise.
10407         (build_store_vectors): Likewise.
10408         (delete_store): Likewise.
10409         * loop-invariant.c (move_invariant_reg): Likewise.
10410         Update copyright years.
10411
10412 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
10413
10414         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
10415         control string instead of quoted.
10416
10417 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
10418
10419         * doc/rtl.texi: Rewrite of subreg section.
10420
10421 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
10422
10423         PR/35842
10424         * config/i386/i386.c (legitimize_pic_address): Add treating
10425         of dllimport SYM_REF's.
10426         (legitimize_dllimport_symbol): Add prototype.
10427
10428 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10429
10430         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
10431         reference in constructor with non self-referential type.
10432
10433 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
10434
10435         Removal of Return with Depressed Stack Pointer support
10436         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
10437         (ECF_SP_DEPRESSED): Likewise.
10438         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
10439         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
10440         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10441         (expand_call): Do not test ECF_SP_DEPRESSED.
10442         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10443         * function.c (keep_stack_depressed): Delete.
10444         (handle_epilogue_set): Likewise.
10445         (update_epilogue_consts): Likewise.
10446         (emit_equiv_load): Likewise.
10447         (thread_prologue_and_epilogue_insns): Remove support for Return with
10448         Depressed Stack Pointer.
10449         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
10450
10451 2008-04-06  Richard Guenther  <rguenther@suse.de>
10452
10453         PR tree-optimization/35400
10454         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
10455         information from SSA_NAMEs.
10456
10457 2008-04-06  Anatoly Sokolov <aesok@post.ru>
10458
10459         * config/avr/avr.h (avr_mega_p): Remove declaration.
10460         (AVR_MEGA): Remove macro.
10461         * config/avr/avr.c (avr_mega_p): Remove variable.
10462         (avr_override_options): Remove inicializion of avr_mega_p.
10463         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10464         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
10465         (avr_jump_mode): (Ditto.).
10466         (avr_output_progmem_section_asm_op): (Ditto.).
10467         (avr_asm_init_sections): (Ditto.).
10468         (avr_asm_init_sections): (Ditto.).
10469         (avr_rtx_costs): (Ditto.).
10470         * config/avr/avr.md: (Ditto.).
10471         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
10472         '__AVR_MEGA__'.
10473
10474 2008-04-06  Richard Guenther  <rguenther@suse.de>
10475
10476         PR tree-optimization/35842
10477         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
10478         is_gimple_invariant_address.
10479
10480 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10481
10482         * gcc.c (default_compilers): Sync Fortran extensions list with
10483         that in fortran/lang-specs.h.
10484         * doc/invoke.texi: Likewise.
10485         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
10486         * dwarf2out.c (gen_compile_unit_die): Likewise.
10487
10488 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
10489
10490         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
10491
10492 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
10493
10494         PR target/12329
10495         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
10496         attribute is used for nested functions.
10497
10498 2008-04-05  Jan Hubicka  <jh@suse.cz>
10499
10500         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
10501
10502         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
10503         letter argument.
10504         (dump_files): Update.
10505         (enable_rtl_dump_file): Do not accept letter argument.
10506         * tree-pass.h (dump_file_info): Remove letter argument.
10507         * toplev.c (decode_d_option): Update -da handling.
10508         * toplev.h (enable_rtl_dump_file): Update prototype.
10509         * passes.c (register_one_dump_file): Do not accept IPA argument; work
10510         it out based on pass type.
10511         (register_dump_files_1): Likewise.
10512         (init_optimization_passes): Update register_one_dump_file calls.
10513         (execute_one_pass): Sanity check that IPA passes are called at IPA
10514         level and RTL passes at RTL level.
10515         (execute_pass_list): IPA pass can not be after or subpass of
10516         GIMPLE/RTL pass.
10517         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
10518         disallov RTL subpasses of IPA subpasses.
10519
10520 2008-04-05  Ben Elliston  <bje@au.ibm.com>
10521
10522         * tree-cfg.c (need_fake_edge_p): Return false for calls to
10523         builtins that return exactly once and do not throw. Cache call to
10524         call_expr_flags.
10525
10526 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
10527
10528         PR rtl-optimization/34916
10529         PR middle-end/35519
10530         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
10531         between instruction pairs.
10532
10533 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
10534
10535         * doc/invoke.texi: Document -mbitops for SH.
10536         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
10537         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
10538         * config/sh/sh.c (print_operand): Add %t operand code.
10539         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
10540         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
10541         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
10542         (extendqihi2): Likewise.
10543         (movqi_i): Likewise.
10544         (insv): Use bset, bclr and bst instructions for SH2A if possible.
10545         (extv): Use bld instruction for SH2A if possible.
10546         (extzv): Likewise.
10547         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
10548         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
10549         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
10550         (bset.b, bclr.b): Define peepholes.
10551         * config/sh/sh.opt (mbitops): New option.
10552
10553 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
10554
10555         PR target/35620
10556         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
10557         and view convert expression.
10558
10559 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10560
10561         PR target/35364
10562         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
10563
10564 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
10565
10566         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
10567
10568         * config/i386/cpuid.h (bit_AES): New.
10569         (bit_PCLMUL): Likewise.
10570
10571         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
10572         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
10573         SSE2 if AES or PCLMUL is enabled.
10574         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
10575         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10576         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
10577         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
10578         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
10579         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
10580         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
10581         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
10582         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
10583         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
10584         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
10585         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
10586         __builtin_ia32_aeskeygenassist128 and
10587         __builtin_ia32_pclmulqdq128.
10588         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
10589         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
10590         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
10591
10592         * config/i386/i386.h (TARGET_AES): New.
10593         (TARGET_PCLMUL): Likewise.
10594         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
10595
10596         * config/i386/i386.md (UNSPEC_AESENC): New.
10597         (UNSPEC_AESENCLAST): Likewise.
10598         (UNSPEC_AESDEC): Likewise.
10599         (UNSPEC_AESDECLAST): Likewise.
10600         (UNSPEC_AESIMC): Likewise.
10601         (UNSPEC_AESKEYGENASSIST): Likewise.
10602         (UNSPEC_PCLMUL): Likewise.
10603
10604         * config/i386/i386.opt (maes): New.
10605         (mpclmul): Likewise.
10606
10607         * config/i386/sse.md (aesenc): New pattern.
10608         (aesenclast): Likewise.
10609         (aesdec): Likewise.
10610         (aesdeclast): Likewise.
10611         (aesimc): Likewise.
10612         (aeskeygenassist): Likewise.
10613         (pclmulqdq): Likewise.
10614
10615         * config/i386/wmmintrin.h: New.
10616
10617         * doc/extend.texi: Document AES and PCLMUL built-in function.
10618
10619         * doc/invoke.texi: Document -maes and -mpclmul.
10620
10621 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
10622
10623         * function.c (free_after_parsing): Replace with
10624         cxx_push_function_context from C++ front-end.
10625         (allocate_struct_function): Don't call langhook.
10626         * langhooks.h (struct lang_hooks_for_functions): Delete.
10627         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
10628         member "function".
10629         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
10630         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
10631         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
10632         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
10633         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
10634         remove LANG_HOOKS_FUNCTION_INITIALIZER.
10635         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
10636
10637         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
10638         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
10639         
10640 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
10641
10642         PR c/35440
10643         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
10644         for all types.
10645
10646 2008-04-04  Richard Guenther  <rguenther@suse.de>
10647
10648         PR middle-end/35823
10649         * fold-const.c (optimize_minmax_comparison): Use the correct
10650         type for the constant in the simplified comparison.
10651
10652 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
10653
10654         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
10655         Pass L2 size as "--param l2-cache-size" to the compiler.
10656         (decode_l2_cache): New function to decode L2 cache parameters using
10657         0x8000006 extended cpuid function.
10658         (detect_caches_amd): Determine parameters of L2 cache using
10659         decode_l2_caches function.
10660         (decode_caches_intel): Decode L2 cache parameters.
10661         (detect_caches_intel): Determine L2 cache parameters using
10662         decode_caches_intel and decode_l2_caches functions.
10663
10664 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
10665
10666         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
10667         secondary input reload for subword loads from the constant pool.
10668
10669 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
10670
10671         PR target/35713
10672         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
10673           constants of the appropriate size for runtime calculations.
10674
10675         PR c/35712
10676         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
10677           decimal-float literal constant zero.
10678
10679 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
10680
10681         PR c/35738
10682         * c-parser.c (c_parser_omp_atomic): Call
10683         default_function_array_conversion on the RHS.
10684
10685         PR middle-end/35818
10686         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
10687         call is_variable_sized if decl has incomplete type.
10688
10689 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
10690
10691         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
10692
10693 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
10694
10695         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
10696         iterators.
10697         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
10698         (sgt<u>): Merge sgt and sgtu into new expander.
10699         (sgt, sgtu): Remove expanders.
10700         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
10701         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
10702         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
10703         *sgtu_<mode>_mips16 into new pattern.
10704         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
10705         (sge<u>): Merge sge and sgeu into new expander.
10706         (sge, sgeu): Remove expanders.
10707         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
10708         new pattern.
10709         (*sge_<mode>, second *sge_<mode>): Remove patterns.
10710         (slt<u>): Merge slt and sltu into new expander.
10711         (slt, sltu): Remove expanders.
10712         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
10713         (*slt_<mode>, *sltu_<mode>): Remove patterns.
10714         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
10715         *sltu_<mode>_mips16 into new pattern.
10716         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
10717         (sle<u>): Merge sle and sleu into new expander.
10718         (sle, sleu): Remove expanders.
10719         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
10720         (*sle_<mode>, *sleu_<mode>): Remove patterns.
10721         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
10722         *sleu_<mode>_mips16 into new pattern.
10723         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
10724
10725 2008-04-03  Jan Hubicka  <jh@suse.cz>
10726
10727         PR tree-optimization/35795
10728         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
10729         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10730         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
10731         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
10732         * score/score3.c (score3_output_mi_thunk): Likewise.
10733         * score/score7.c (score7_output_mi_thunk): Likewise.
10734         * mips/mips.c (mips_output_mi_thunk): Likewise.
10735
10736 2008-04-03  Richard Guenther  <rguenther@suse.de>
10737
10738         * tree-vrp.c (extract_range_from_unary_expr): Handle all
10739         conversions.  Simplify code.
10740
10741 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
10742
10743         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
10744
10745 2008-04-03  Tom Tromey  <tromey@redhat.com>
10746             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10747
10748         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
10749         * config/bfin/t-bfin-linux (generated_files): Add
10750         linux-sysroot-suffix.h.
10751         * doc/install.texi (Prerequisites): Require make 3.80.
10752         * doc/sourcebuild.texi (Front End Directory): Document new
10753         variable.
10754         * Makefile.in (generated_files): New variable.
10755         (ALL_HOST_OBJS): New variable.
10756         ($(ALL_HOST_OBJS)): New target.
10757
10758 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10759
10760         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
10761         (remap_block): Call id->transform_lang_insert_block instead
10762         of langhook.
10763         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
10764         Set id.transform_lang_insert_block to NULL.
10765         (clone_body): Move to cp/optimize.c
10766         * tree-inline.h (struct copy_body_data): Change
10767         transform_lang_insert_block to function pointer.
10768         (copy_generic_body, copy_decl_no_change): Export.
10769         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
10770         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
10771         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
10772
10773         * c-tree.h (insert_block): Kill.
10774         * c-decl.c (insert_block): Kill.
10775
10776 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
10777
10778         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10779         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10780         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
10781         argument.
10782         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
10783         argument, call {push,pop}_function_context from here.
10784         * c-parser.c: Use c_{push,pop}_function_context.
10785
10786         * function.c (push_function_context_to): Move meat ...
10787         (push_function_context): ... here.  Simplify.
10788         * function.c (pop_function_context_from): Move meat ...
10789         (pop_function_context): ... here.  Simplify.
10790         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
10791         leave_nested).
10792         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
10793         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
10794         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
10795         * tree.h (push_function_context_to, pop_function_context_from): Remove.
10796
10797 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10798
10799         * expmed.c (extract_force_align_mem_bit_field): Remove.
10800
10801 2008-04-03  Richard Guenther  <rguenther@suse.de>
10802
10803         PR middle-end/35800
10804         * expr.h (try_casesi): Adjust prototype.
10805         * expr.c (try_casesi): Take fallback label as extra parameter.
10806         Use that for gen_casesi if default_label is NULL.
10807         * stmt.c (expand_case): Pass fallback label to try_casesi,
10808         make sure to fill gaps with a fallback label if default_label
10809         is not present.
10810
10811 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
10812
10813         PR target/35801
10814         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
10815
10816 2008-04-03  Ben Elliston  <bje@au.ibm.com>
10817
10818         * expmed.c (extract_split_bit_field): Remove if (0) code.
10819         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
10820         (do_ds_constraint): Likewise.
10821
10822 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
10823
10824         * doc/cppopts.texi (-dU): Document.
10825         * c-common.h (flag_dump_macros): Update comment.
10826         * c-opts.c (handle_OPT_d): Handle -dU.
10827         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
10828         dump_queued_macros, cb_used_define, cb_used_undef): New.
10829         (init_pp_output): Handle -dU.
10830         (cb_line_change): Call dump_queued_macros.
10831         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
10832
10833 2008-04-02  Anatoly Sokolov <aesok@post.ru>
10834
10835         * config/avr/predicates.md (io_address_operand): New predicate. 
10836         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
10837         * config/avr/avr.c (avr_io_address_p): Remove function.
10838         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
10839         'avr_io_address_p' function.
10840         (out_movhi_r_mr): (Ditto.).
10841         (out_movqi_mr_r): (Ditto.).
10842         (out_movhi_mr_r): (Ditto.).
10843         (avr_address_cost): (Ditto.).
10844
10845 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
10846
10847         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
10848         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
10849         in 32bit mode when XMM registers are available to avoid store
10850         forwarding stalls.
10851         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
10852         corresponding post-reload splitters.
10853
10854 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10855
10856         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
10857         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
10858         __builtin_ia32_roundss.
10859         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
10860         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
10861         __builtin_ia32_roundss.
10862         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
10863         IX86_BUILTIN_SHUFPD here.
10864
10865 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10866
10867         * config/i386/i386.md (plogic): New.
10868         (plogicprefix): Likewise.
10869
10870         * config/i386/mmx.md (mmx_<code><mode>3): New.
10871         (mmx_and<mode>3): Removed.
10872         (mmx_ior<mode>3): Likewise.
10873         (mmx_xor<mode>3): Likewise.
10874
10875         * config/i386/sse.md (<code><mode>3): New.
10876         (*<code><mode>3): Likewise.
10877         (*<code><mode>3): Likewise.
10878         (<code><mode>3): Likewise.
10879         (*sse_<code><mode>3): Likewise.
10880         (*sse2_<code><mode>3): Likewise.
10881         (<code>tf3): Likewise.
10882         (*<code>tf3): Likewise.
10883         (and<mode>3): Likewise.
10884         (*and<mode>3): Likewise.
10885         (ior<mode>3): Removed.
10886         (*ior<mode>3): Likewise.
10887         (xor<mode>3): Likewise.
10888         (*xor<mode>3): Likewise.
10889         (*and<mode>3): Likewise.
10890         (*ior<mode>3): Likewise.
10891         (*xor<mode>3): Likewise.
10892         (and<mode>3): Likewise.
10893         (*sse_and<mode>3): Likewise.
10894         (*sse2_and<mode>3): Likewise.
10895         (andtf3): Likewise.
10896         (*andtf3): Likewise.
10897         (ior<mode>3): Likewise.
10898         (*sse_ior<mode>3): Likewise.
10899         (*sse2_ior<mode>3): Likewise.
10900         (iortf3): Likewise.
10901         (*iortf3): Likewise.
10902         (xor<mode>3): Likewise.
10903         (*sse_xor<mode>3): Likewise.
10904         (*sse2_xor<mode>3): Likewise.
10905         (xortf3): Likewise.
10906         (*xortf3): Likewise.
10907
10908 2008-04-02  Richard Guenther  <rguenther@suse.de>
10909
10910         PR tree-optimization/14495
10911         PR tree-optimization/34793
10912         * tree-vrp.c (struct switch_update): New structure.
10913         (to_remove_edges, to_update_switch_stmts): New VECs.
10914         (simplify_switch_using_ranges): New function.  Remove not taken
10915         case labels and edges.
10916         (simplify_stmt_using_ranges): Call it.
10917         (identify_jump_threads): Mark edges we have queued for removal
10918         so we don't thread them.
10919         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
10920         case label vector.
10921         * tree-cfg.c (group_case_labels): Deal with missing default label.
10922         (tree_verify_flow_info): Allow missing default label.
10923         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
10924         (emit_case_nodes): Likewise.
10925         (expand_case): Do not rely on the default label to be present.
10926         * expr.c (try_casesi): Deal with NULL default_label.
10927         (do_tablejump): Likewise.
10928
10929 2008-04-02  Richard Guenther  <rguenther@suse.de>
10930
10931         PR tree-optimization/14495
10932         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
10933         SWITCH_EXPR here ...
10934         (vrp_visit_switch_stmt): ... but here (new function).
10935         (find_case_label_index): New helper function.
10936         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
10937
10938 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10939
10940         * fwprop.c: Fix ISO-C99ism.
10941
10942 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10943
10944         PR bootstrap/35752
10945         * Makefile.in (objdir): Set it here.
10946         * configure.ac: Not here.  Find dynamic linker characteristics.
10947         * exec-tool.in: Use them.
10948         * aclocal.m4: Regenerate.
10949         * configure: Regenerate.
10950
10951 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10952
10953         * expr.c (expand_var): Delete it.
10954         * expr.h (expand_var): Delete prototype.
10955         * function.c (expand_function_start): Use expand_decl instead.
10956         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
10957         langhook.
10958
10959 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
10960
10961         PR rtl-optimization/35542
10962         * fwprop.c (forward_propagate_and_simplify): Replace
10963         loc_reg_mentioned_in_p with reg_mentioned_p.
10964
10965 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
10966
10967         PR rtl-optimization/35281
10968         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
10969         (propagate_rtx_1): Handle PR_HANDLE_MEM.
10970         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
10971         (varying_mem_p): Move above propagate_rtx.
10972         (all_uses_available_at): Do not check MEMs.
10973
10974 2008-04-02  Rafael Espindola  <espindola@google.com>
10975
10976         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
10977         (register_edge_assert_for_2): Split the cond argument.
10978         (register_edge_assert_for_1): Adjust for the change in
10979         register_edge_assert_for_2.
10980         (register_edge_assert_for): Split the cond argument.
10981         (find_switch_asserts): Adjust for the change in
10982         register_edge_assert_for.
10983
10984 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
10985
10986         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
10987         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
10988         offsets for 64-bit mingw.
10989         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
10990         abi for x86_64-pc-mingw.
10991
10992 2008-04-02  Richard Guenther  <rguenther@suse.de>
10993
10994         * tree-vrp.c (extract_range_from_assert): Make sure to not
10995         produce range min/max with TREE_OVERFOW set.
10996         If merging a anti-range and a range keep the anti-range if
10997         the range covers all values of the type.
10998         (register_edge_assert_for_2): Only allow sign-changing
10999         conversions in detecting canonical range checks.  Also
11000         register an assert for the unsigned name if useful.
11001
11002         PR tree-optimization/35787
11003         * tree-vrp.c (vrp_val_max): New function.
11004         (vrp_val_min): Likewise.
11005         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
11006         (vrp_val_is_min): Likewise.
11007         (supports_overflow_infinity): Use vrp_val_{min,max}.
11008         (negative_overflow_infinity): Likewise.
11009         (positive_overflow_infinity): Likewise.
11010         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
11011         (is_positive_overflow_infinity): Likewise.
11012         (is_overflow_infinity): Likewise.
11013         (avoid_overflow_infinity): Use vrp_val_{min,max} and
11014         vrp_val_is_{min,max}.
11015         (set_and_canonicalize_value_range): Canonicalize anti-ranges
11016         to ranges if possible.  Avoid empty ranges.
11017
11018 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11019
11020         PR middle-end/35705
11021         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
11022         the expression is a function address.
11023
11024 2008-04-01  George Helffrich  <george@gcc.gnu.org>
11025
11026         PR fortran/35154, fortran/23057
11027         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
11028         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
11029         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
11030         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
11031         in common.
11032         (dbxout_syms): Check for COMMON-based symbol and wrap in
11033         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
11034         in bracket for efficiency.
11035
11036         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
11037         using DW_TAG_common_block + member offset.
11038         (add_pubname_string): New function.
11039         (dw_expand_expr): New function to find block name and offset for
11040         COMMON var.
11041         (common_check): New function to check whether symbol in Fortran COMMON.
11042         (gen_variable_die): If COMMON, use DW_TAG_common_block.
11043
11044 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
11045
11046         PR c/35436
11047         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
11048
11049 2008-04-02  Ben Elliston  <bje@au.ibm.com>
11050
11051         * config/v850/v850.md (casesi): Remove if (0) code.
11052         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
11053         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
11054
11055 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
11056
11057         * config/i386/i386.md (rex64suffix): New mode attribute.
11058         (floathi<mode>2): Disable expander for SSE math.
11059         (*floathi<mode>2_1): New insn insn_and_split pattern.
11060         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
11061         corresponding post-reload splitters.
11062         (*floathi<mode>2_i387): New macroized insn pattern.
11063         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
11064         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
11065         insn_and_split pattern.
11066         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
11067         New macroized instruction patterns and corresponding post-reload
11068         splitters.
11069         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
11070         and corresponding post-reload splitters.
11071         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
11072         New macroized instruction patterns.
11073         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
11074         macroized instruction patterns and corresponding post-reload splitters.
11075         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
11076         corresponding post-reload splitters.
11077         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
11078         New macroized instruction patterns.
11079         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
11080         corresponding post-reload splitters.
11081         (*floatsi<mode>2_i387): New macroized instruction patterns.
11082
11083 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
11084
11085         * config/i386/i386.md (smaxmin): New.
11086         (umaxmin): Likewise.
11087         (maxminiprefix): Likewise.
11088         (maxminfprefix): Likewise.
11089         (<code><mode>3): Likewise.
11090         (smin<mode>3): Removed.
11091         (smax<mode>3): Likewise.
11092
11093         * config/i386/mmx.md (mmx_<code>v2sf3): New.
11094         (mmx_<code>v4hi3): Likewise.
11095         (mmx_<code>v8qi3): Likewise.
11096         (mmx_smaxv2sf3): Removed.
11097         (mmx_sminv2sf3): Likewise.
11098         (mmx_umaxv8qi3): Likewise.
11099         (mmx_smaxv4hi3): Likewise.
11100         (mmx_uminv8qi3): Likewise.
11101         (mmx_sminv4hi3): Likewise.
11102
11103         * config/i386/sse.md (<addsub><mode>3): New.
11104         (*<addsub><mode>3): Likewise.
11105         (<sse>_vm<addsub><mode>3): Likewise.
11106         (<maxmin><mode>3): Likewise.
11107         (*<maxmin><mode>3_finite): Likewise.
11108         (*<maxmin><mode>3): Likewise.
11109         (<sse>_vm<maxmin><mode>3): Likewise.
11110         (sse3_h<addsub>v4sf3): Likewise.
11111         (sse3_h<addsub>v2df3): Likewise.
11112         (<maxmin>v16qi3): Likewise.
11113         (*<maxmin>v16qi3): Likewise.
11114         (<maxmin>v8hi3): Likewise.
11115         (*<maxmin>v8hi3): Likewise.
11116         (*sse4_1_<maxmin><mode>3): Likewise.
11117         (*sse4_1_<maxmin><mode>3): Likewise.
11118         (add<mode>3): Removed.
11119         (*add<mode>3): Likewise.
11120         (<sse>_vmadd<mode>3): Likewise.
11121         (sub<mode>3): Likewise.
11122         (*sub<mode>3): Likewise.
11123         (<sse>_vmsub<mode>3): Likewise.
11124         (smin<mode>3): Likewise.
11125         (*smin<mode>3_finite): Likewise.
11126         (*smin<mode>3): Likewise.
11127         (<sse>_vmsmin<mode>3): Likewise.
11128         (smax<mode>3): Likewise.
11129         (*smax<mode>3_finite): Likewise.
11130         (*smax<mode>3): Likewise.
11131         (<sse>_vmsmax<mode>3): Likewise.
11132         (sse3_haddv4sf3): Likewise.
11133         (sse3_haddv2df3): Likewise.
11134         (sse3_hsubv4sf3): Likewise.
11135         (sse3_hsubv2df3): Likewise.
11136         (umaxv16qi3): Likewise.
11137         (*umaxv16qi3): Likewise.
11138         (smaxv8hi3): Likewise.
11139         (*smaxv8hi3): Likewise.
11140         (*sse4_1_smax<mode>3): Likewise.
11141         (*sse4_1_umax<mode>3): Likewise.
11142         (uminv16qi3): Likewise.
11143         (*uminv16qi3): Likewise.
11144         (sminv8hi3): Likewise.
11145         (*sminv8hi3): Likewise.
11146         (*sse4_1_smin<mode>3): Likewise.
11147         (*sse4_1_umin<mode>3): Likewise.
11148
11149 2008-04-01  Rafael Espindola  <espindola@google.com>
11150
11151         * tree-cfg.c (verify_expr): remove in_phi.
11152         (verify_stmt): Don't call walk_tree with verify_expr. Use
11153         is_gimple_min_invariant instead of is_gimple_val.
11154
11155 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
11156
11157         * doc/include/gpl_v3.texi: Update for manpage generation.
11158         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
11159         gpl.texi.
11160         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
11161         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
11162         gpl_v3.texi instead of gpl.texi.
11163         (gpl.pod): New.
11164
11165 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
11166
11167         PR pch/13675
11168         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
11169
11170 2008-04-01  Rafael Espindola  <espindola@google.com>
11171
11172         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
11173         (extract_code_and_val_from_cond): Use
11174         extract_code_and_val_from_cond_with_ops.
11175
11176 2008-04-01  Jan Hubicka  <jh@suse.cz>
11177
11178         * function.c (free_after_compilation): Free epilogue_delay_list.
11179         (prepare_function_start): Assert that previous compilation was freed.
11180
11181 2008-04-01  Jan Hubicka  <jh@suse.cz>
11182             Jim Wilson  <wilson@tuliptree.org>
11183             Andreas Tobler <andreast@gcc.gnu.org>
11184
11185         PR middle-end/35781
11186         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
11187         rtl.emit instead cfun->emit.
11188         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
11189         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
11190
11191 2008-04-01  Ben Elliston  <bje@au.ibm.com>
11192
11193         * doc/c-tree.texi (Function Basics): Fix grammatical error.
11194
11195 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
11196
11197         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
11198         New options
11199         (fprofile-use): Add var flag_profile_use
11200         * coverage.c (coverage_begin_output): Do not open a gcno file for
11201         output only if -ftest-coverage is set.
11202         Do not add getpwd() to gcda file path.
11203         (build_gcov_info): Check the new flag
11204         flag_profile_datafile_relative_path.
11205         (coverage_init): Use profile_data_prefix.
11206         Read profile counter only if flag_profile_use is set.
11207         * opts.c (common_handle_option): New option fprofile-use=,
11208         fprofile-dir=, fprofile-generate=.
11209         * toplev.c (profile_data_prefix): New variable definition.
11210         * toplev.h (profile_data_prefix): New declaration.
11211         * doc/invoke.tex (Option Summary, Optimization Options):
11212         Add new options.
11213
11214 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
11215
11216         * varasm.c (output_constant_pool_1): In LABEL_REF check,
11217         use tmp consistently.
11218
11219         PR target/35695
11220         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
11221         * config/ia64/ia64.c (rtx_needs_barrier): Handle
11222         UNSPEC_FR_RECIP_APPROX_RES.
11223         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
11224
11225 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
11226
11227         PR c/35750
11228         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
11229
11230 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11231
11232         PR middle-end/30186
11233         * fold-const.c (fold_indirect_ref_1): Support accessing non first
11234         element of the vector via a pointer.
11235
11236 2008-03-31  Ian Lance Taylor  <iant@google.com>
11237
11238         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
11239
11240 2008-03-31  Jan Hubicka  <jh@suse.cz>
11241
11242         * builtins.c (expand_builtin_setjmp_receiver): Update call of
11243         get_arg_pointer_save_area.
11244         * expr.c (init_expr): Just clear out rtl.expr.
11245         * function.c (free_after_compilation): Clear out whole RTL structure.
11246         (get_func_frame_size): Merge into ...
11247         (get_frame_size): ... this one.
11248         (assign_stack_local_1): Merge into ...
11249         (assign_stack_local): ... this one.
11250         (expand_function_end): Update call of get_arg_pointer_save_area.
11251         (get_art_pointer_save_area): Remove cfun argument.
11252         * function.h (emit_status): regno_pointer_align does not need length
11253         attribute. Move x_regno_reg_rtx to ...
11254         (regno_reg_rtx): ... new global array.
11255         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
11256         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
11257         apply_args_value, forced_labels, stack_pointer_delta):
11258         Update accestors.
11259         (struct varasm_status): Move here from varasm.c
11260         (struct rtl_data): New. Move here some fields from struct function.
11261         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
11262         frame_offset, stack_check_probe_note, arg_pointer_save_area,
11263         used_temp_slots avail_temp_slots, temp_slot_level,
11264         nonlocal_goto_handler_labels): Update accesstors.
11265         (rtl): New global variable.
11266         (struct function): Move some fileds to rtl_data.
11267         (get_arg_pointer_save_area): Update prototype.
11268         * emit-rtl.c (rtl): Declare.
11269         (regno_reg_rtx): Declare.
11270         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
11271         Update.
11272         (gen_reg_rtx): Update.
11273         (init_virtual_regs): Do not tate emit_status argument.
11274         (init_emit): Do not allocate emit.
11275         * varasm.c (varasm_statuc): Move to function.h.
11276         (n_deferred_constatns): Update accestor.
11277         (init_varasm_status): Do not allocate varasm_status.
11278         (force_const_mem, get_pool_size, output_constant_pool): Update.
11279         * stmt.c (force_label_rtx): Do not use x_ prefixes.
11280         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
11281
11282 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
11283
11284         PR rtl-optimization/35729
11285         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
11286         references.
11287
11288 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
11289
11290         PR target/32000
11291         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
11292         load/store if memory is unaligned.
11293         (*movti_rex64): Likewise.
11294
11295         * config/i386/predicates.md (misaligned_operand): New.
11296
11297 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
11298
11299         PR tree-opt/35431
11300         * tree-ssa-phiopt.c (conditional_replacement): Return early for
11301         complex types.
11302
11303 2008-03-31  Jan Beulich  <jbeulich@novell.com>
11304
11305         * config/ia64/constraints.md: Add 'j' constraint.
11306         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
11307         (movdi_internal): Likewise.
11308
11309 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
11310
11311         PR c/35748
11312         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
11313
11314 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11315
11316         PR target/35757
11317         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
11318         proper error message for the third argument on blendpd and
11319         blendps.
11320
11321         * config/i386/sse.md (blendbits): New.
11322         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
11323
11324 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
11325
11326         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
11327
11328 2008-03-30  Richard Guenther  <rguenther@suse.de>
11329
11330         PR middle-end/31023
11331         * fold-const.c (fold_sign_changed_comparison): Do leave
11332         conversions to base-types alone.
11333
11334 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11335
11336         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
11337         the link register if one altivec register is be saved.
11338
11339 2008-03-30  Ben Elliston  <bje@au.ibm.com>
11340
11341         * final.c (final_scan_insn): Remove if (0) code.
11342
11343 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
11344
11345         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
11346
11347 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
11348
11349         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
11350         of V4SFmode to ix86_binary_operator_ok.
11351
11352 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
11353
11354         * config/i386/i386.c (override_options): Initialize
11355         ix86_veclib_handler to ix86_veclibabi_svml when
11356         -mveclibabi=svml is used.
11357         (ix86_veclibabi_svml): New function for SVML ABI style
11358         vectorization support.
11359         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
11360
11361 2008-03-28  Rafael Espindola  <espindola@google.com>
11362
11363         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
11364         (tree_binary_nonnegative_warnv_p): Make it public.
11365         (tree_single_nonnegative_warnv_p): Make it public.
11366         (tree_invalid_nonnegative_warnv_p): Make it public.
11367         (tree_unary_nonzero_warnv_p): Make it public.
11368         (tree_binary_nonzero_warnv_p): Make it public
11369         (tree_single_nonzero_warnv_p): Make it public.
11370         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
11371         (extract_range_from_binary_expr): Split the expr argument.
11372         (extract_range_from_unary_expr): Split the expr argument.
11373         (extract_range_from_comparison): Split the expr argument.
11374         (extract_range_from_expr): Use the new aux functions.
11375         (vrp_evaluate_conditional_warnv): Use
11376         vrp_evaluate_conditional_warnv_with_ops.
11377         * tree.h (tree_unary_nonzero_warnv_p): Declare.
11378         (tree_binary_nonzero_warnv_p): Declare.
11379         (tree_single_nonzero_warnv_p): Declare.
11380         (tree_expr_nonzero_warnv_p): Declare.
11381         (tree_unary_nonnegative_warnv_p): Declare.
11382         (tree_binary_nonnegative_warnv_p): Declare.
11383         (tree_single_nonnegative_warnv_p): Declare.
11384         (tree_invalid_nonnegative_warnv_p): Declare.
11385
11386 2008-03-28  Richard Guenther  <rguenther@suse.de>
11387
11388         PR tree-optimization/30317
11389         PR tree-optimization/30911
11390         PR tree-optimization/34793
11391         * tree-vrp.c (set_and_canonicalize_value_range): New function.
11392         (struct assert_locus_d): New member EXPR.
11393         (register_new_assert_for): Add EXPR parameter to support
11394         ASSERT_EXPR <name, expr OP limit>.
11395         (register_edge_assert_for_1): Adjust callers.
11396         (find_assert_locations): Likewise.
11397         (process_assert_insertions_for): Build condition from expression.
11398         (extract_range_from_assert): Handle ASSERT_EXPRs
11399         of the form ASSERT_EXPR <name, expr OP limit>.
11400         (register_edge_assert_for_2): New helper registering
11401         asserts for comparisons.  Recognize range tests of the form
11402         (unsigned)i - CST1 OP CST2.
11403         (register_edge_assert_for_1): Use it.
11404         (register_edge_assert_for): Likewise.
11405         (needs_overflow_infinity): Integer sub-types
11406         do not need overflow infinities.
11407         (vrp_val_is_max): The extreme values of integer sub-types
11408         are those of the base type.
11409         (vrp_val_is_min): Likewise.
11410         * tree.def (ASSERT_EXPR): Document extra allowed conditional
11411         expressions.
11412
11413 2008-03-28  Nick Clifton  <nickc@redhat.com>
11414
11415         PR target/31110
11416         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
11417         Return GENERAL_REGS for stack adjustment reloads.
11418
11419 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11420
11421         PR target/31334
11422         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
11423         const_vector when all the vectors are constant.
11424
11425 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
11426
11427         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
11428         comparisons.
11429         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
11430         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
11431         (scc_sf): New.
11432         (s<code>_sf): Use new scc_sf attribute for opcode names.
11433
11434 2008-03-27  Tom Tromey  <tromey@redhat.com>
11435
11436         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
11437         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
11438         config/spu/t-spu-elf, config/i386/t-interix,
11439         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
11440         config/i386/x-darwin, config/i386/x-mingw32,
11441         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
11442         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
11443         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
11444         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
11445         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
11446         config/rs6000/x-darwin, config/rs6000/t-rs6000,
11447         config/score/t-score-elf, config/arm/t-strongarm-pe,
11448         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
11449         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
11450         Revert automatic dependency patch.
11451
11452 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
11453
11454         PR target/35657
11455         * config/i386/i386.c (ix86_function_arg_boundary): Align
11456         decimal floating point to its natural boundary.
11457
11458 2008-03-27  Richard Guenther  <rguenther@suse.de>
11459
11460         PR middle-end/35716
11461         * fold-const.c (fold_comparison): Restrict distinct decl
11462         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
11463         solely rely on operand_equal_p.
11464
11465 2008-03-27  Richard Guenther  <rguenther@suse.de>
11466
11467         PR c/32511
11468         * c-common.c (handle_weak_attribute): Reject combination of
11469         weak and inline.
11470
11471 2008-03-27  Richard Guenther  <rguenther@suse.de>
11472
11473         PR tree-optimization/32810
11474         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
11475         conversions from DECL_INITIAL.
11476         (fold_const_aggregate_ref): Likewise from constructor elements.
11477
11478 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
11479
11480         * tree-affine.h (aff_combination_expand): Declare.
11481         (get_inner_reference_aff): Likewise.
11482         * tree-affine.c (aff_combination_expand): Split out from
11483         tree_to_aff_combination_expand.
11484         (get_inner_reference_aff): New function.
11485         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
11486         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
11487         (struct lim_aux_data): sm_done field removed.
11488         (mem_ref_loc_p, mem_ref_locs_p): New types.
11489         (struct mem_ref): Added id, stored, accesses_in_loop,
11490         indep_loop, dep_loop, indep_ref, dep_ref fields.
11491         Removed is_stored, locs and next fields.
11492         (memory_accesses): New variable.
11493         (movement_possibility): Do not allow moving statements
11494         that store to memory.
11495         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
11496         New functions.
11497         (determine_max_movement): For statements with memory references,
11498         find the outermost loop in that the reference is independent.
11499         (move_computations_stmt): Mark the virtual operands for renaming.
11500         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
11501         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
11502         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
11503         add_vop_ref_mapping, create_vop_ref_mapping_loop,
11504         create_vop_ref_mapping, analyze_memory_references,
11505         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
11506         get_all_locs_in_loop, ref_always_accessed_p,
11507         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
11508         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
11509         store_motion_loop, store_motion): New functions.
11510         (struct vop_to_refs_elt): New type.
11511         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
11512         memref_hash, memref_eq, hoist_memory_references): Rewritten.
11513         (schedule_sm): Replaced by...
11514         (execute_sm): ... this.
11515         (determine_lsm_ref, hoist_memory_references,
11516         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
11517         find_more_ref_vops, free_mem_ref, free_mem_refs,
11518         determine_lsm_loop, determine_lsm): Removed.
11519         (tree_ssa_lim_finalize): Free data structures used by store motion.
11520         (tree_ssa_lim): Call analyze_memory_references.  Use
11521         store_motion instead of determine_lsm.
11522
11523 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11524
11525         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
11526         rename tmake_file to m68hc11/t-m68hc11.
11527         (mcore): Set inhibit_libc to true.
11528         * config.host (alpha*-dec-*vms*): Set extra_programs.
11529         (interix3*): Don't use host_xmake_file.
11530         * configure.ac: Let config.gcc override inhibit_libc.
11531         * configure: Regenerate.
11532
11533         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
11534         * config/t-openbsd-thread: Remove commented out lines.
11535         
11536         * config/x-interix: Remove.
11537
11538         * config/m68hc11/t-m68hc11-gas: Rename to...
11539         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
11540
11541         * config/mcore/t-mcore: Remove T_CFLAGS.
11542         * config/mcore/t-mcore-pe: Likewise.
11543
11544 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
11545
11546         * configure.ac: Replace custom __GNU_SOURCE test with
11547         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
11548         * aclocal.m4: Regenerate.
11549         * configure: Regenerate.
11550         * config.in: Regenerate.
11551
11552 2008-03-27  Richard Guenther  <rguenther@suse.de>
11553
11554         * fold-const.c (target.h): Include.
11555         (fold_comparison): Fold comparison of addresses of decls
11556         that bind locally or of constants.  Consolidate address folding code.
11557         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
11558         results from fold_binary_to_constant.
11559         (compare_values_warnv): Likewise.
11560
11561 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
11562
11563         PR middle-end/35429
11564         * fold-const.c (fold_truthop): Check for integeral types when folding
11565         a == 0 && b == 0 and a != 0 || b != 0 .
11566
11567 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
11568
11569         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
11570
11571 2008-03-26  Andreas Schwab  <schwab@suse.de>
11572
11573         * doc/invoke.texi: Fix use of @item vs. @itemx.
11574
11575 2008-03-26  Tom Tromey  <tromey@redhat.com>
11576
11577         * Makefile.in (build/gensupport.o, build/print-rtl.o,
11578         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
11579         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
11580         build/gencodes.o, build/genconditions.o, build/genconfig.o,
11581         build/genconstants.o, build/genemit.o, build/genextract.o,
11582         build/genflags.o, build/genmddeps.o, build/genopinit.o,
11583         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
11584         options.h.
11585
11586 2008-03-26  Richard Guenther  <rguenther@suse.de>
11587
11588         Revert
11589         2008-03-26  Richard Guenther  <rguenther@suse.de>
11590
11591         * fold-const.c (target.h): Include.
11592         (fold_comparison): Fold comparison of addresses of two decls
11593         that bind locally.  Consolidate address folding code.
11594
11595 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11596
11597         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
11598         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
11599         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
11600         dconstsqrt2, dconstthird, dconste and/or dconst10.
11601         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
11602         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
11603         dconstsqrt2, dconste): Delete.
11604         (init_emit_once): Likewise.  Simplify initializing dconstm1.
11605         Constify variable.
11606         * real.c (get_real_const): New.
11607         * real.h (dconst3, dconst10, dconstm2, dconstthird,
11608         dconstsqrt2, dconste): Delete.
11609         (real_value_const, get_real_const): New.
11610
11611 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
11612
11613         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
11614
11615         * config/i386/i386.c (ix86_function_arg_boundary): Check
11616         BIGGEST_ALIGNMENT instead of 128.
11617         (setup_incoming_varargs_64): Likewise.
11618
11619 2008-03-26  Tom Tromey  <tromey@redhat.com>
11620
11621         * Makefile.in (DEPFILES): Add missing '/'.
11622
11623 2008-03-26  Richard Guenther  <rguenther@suse.de>
11624
11625         * fold-const.c (target.h): Include.
11626         (fold_comparison): Fold comparison of addresses of two decls
11627         that bind locally.  Consolidate address folding code.
11628
11629 2008-03-26  Nick Clifton  <nickc@redhat.com>
11630
11631         PR target/31232
11632         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
11633         not allow INT+INT as a legitimate addressing mode.
11634
11635 2008-03-26  Richard Guenther  <rguenther@suse.de>
11636
11637         * tree-flow.h (widen_bitfield): Remove declaration.
11638         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
11639         (widen_bitfield): Remove function.
11640         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
11641         code.
11642
11643 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11644
11645         PR target/31558
11646         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
11647         error_mark_node's.
11648
11649 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
11650
11651         PR rtl-optimization/35232
11652         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
11653         (forget_old_reloads_1, forget_marked_reloads): Don't clear
11654         reg_reloaded_call_part_clobbered here.
11655         (reload_regs_reach_end_p): New function.
11656         (reload_reg_rtx_for_input): New variable.
11657         (reload_reg_rtx_for_output): Likewise.
11658         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
11659         when reassigning a pseudo register.  Load reloadreg from 
11660         reload_reg_rtx_for_input, moving the mode and register
11661         calculation to...
11662         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
11663         instead of the original when deciding whether an input reload
11664         would be a no-op or whether an output reload can be deleted.
11665         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
11666         when setting up new_spill_reg_store.  Load it from
11667         reload_reg_rtx_for_output, moving the mode and register
11668         calculation to...
11669         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
11670         instead of the original when deciding whether an output reload
11671         would be a no-op.  Do the same when modifying insn notes.
11672         Use rtx_equal_p instead of == to compare the registers.
11673         (inherit_piecemeal_p): Take a mode and two register numbers
11674         as argument.
11675         (emit_reload_insns): Clear new_spill_reg_store for every hard
11676         register in the reload register.  Remove spill registers
11677         from reg_reloaded_valid before considering whether to record
11678         inheritance information for them.  Use reload_reg_rtx_for_output
11679         instead of reg_rtx when recording output reloads.  Use
11680         reload_reg_rtx_for_input instead of reg_rtx when recording
11681         input reloads.  Set or clear reg_reloaded_call_part_clobbered
11682         at the same time as setting reg_reloaded_valid.
11683         (delete_output_reload): Add a new_reload_reg parameter and use it
11684         instead of rld[j].reg_rtx.
11685         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
11686         calls accordingly.
11687
11688 2008-03-25  Tom Tromey  <tromey@redhat.com>
11689
11690         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
11691         (build/genattr.o): Likewise.
11692         (build/genattrtab.o): Likewise.
11693         (build/gencodes.o): Likewise.
11694         (build/genconfig.o): Likewise.
11695         (build/genconstants.o): Likewise.
11696         (build/genemit.o): Likewise.
11697         (build/genextract.o): Likewise.
11698         (build/genflags.o): Likewise.
11699
11700 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
11701         
11702         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
11703         instead of size_int for integer types.
11704         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
11705         to match type of MINUS_EXPR.
11706         
11707 2008-03-25  Tom Tromey  <tromey@redhat.com>
11708
11709         * configure: Rebuilt.
11710         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
11711         Makefile.
11712
11713 2008-03-25  Tom Tromey  <tromey@redhat.com>
11714
11715         * config/x-solaris (host-solaris.o): Update.
11716         * config/x-linux (host-linux.o): Update.
11717         * config/x-hpux (host-hpux.o): Update.
11718         * config/x-darwin (host-darwin.o): Update.
11719         * config/v850/t-v850e (v850-c.o): Update.
11720         * config/v850/t-v850 (v850-c.o): Update.
11721         * config/t-vxworks (vxworks.o): Update.
11722         * config/t-sol2 (sol2-c.o, sol2.o): Update.
11723         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
11724         * config/spu/t-spu-elf (spu-c.o): Update.
11725         (spu.o): Remove.
11726         * config/sh/t-symbian (sh-c.o): Update.
11727         (symbian.o): Update.
11728         * config/sh/t-sh (sh-c.o): Update.
11729         * config/score/t-score-elf (score7.o, score3.o): Update.
11730         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
11731         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
11732         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
11733         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
11734         (rs6000.o): Remove.
11735         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
11736         * config/m32c/t-m32c (m32c-pragma.o): Update.
11737         * config/ia64/t-ia64 (ia64-c.o): Update.
11738         * config/i386/x-mingw32 (host-mingw32.o): Update.
11739         * config/i386/x-i386 (driver-i386.o): Update.
11740         * config/i386/x-darwin (host-i386-darwin.o): Update.
11741         * config/i386/x-cygwin (host-cygwin.o): Update.
11742         * config/i386/t-nwld (nwld.o): Update.
11743         * config/i386/t-netware (netware.o): Update.
11744         * config/i386/t-interix (winnt.o): Update.
11745         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
11746         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
11747         msformat-c.o): Update.
11748         * config/bfin/t-bfin-linux (generated_files): Add
11749         linux-sysroot-suffix.h.
11750         * config/arm/t-wince-pe (pe.o): Update.
11751         * config/arm/t-strongarm-pe (pe.o): Update.
11752         * config/arm/t-pe (pe.o): Update.
11753         * config/arm/t-arm (arm-c.o): Update.
11754         * doc/install.texi (Prerequisites): Require make 3.80.
11755         * Makefile.in: Remove .o targets.
11756         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
11757         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
11758         (simple_generated_h, simple_generated_c): Move earlier.
11759         (generated_files): New variable.
11760         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
11761         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
11762         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
11763         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
11764         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
11765         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
11766         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
11767         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
11768         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
11769         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
11770         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
11771         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
11772         (.c.o): Remove.
11773         (COMPILE.base, COMPILE): New variables.
11774         (%.o): New pattern rule.
11775         (ALL_HOST_OBJS): New variable.
11776         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
11777         (dummy-checksum.o, cc1-checksum.o): Remove.
11778         (DRIVER_SHLIB): New variable.
11779         (DRIVER_DEFINES): Use it.
11780         (gencondmd.c): Move out of build/.
11781         (s-conditions): Update.
11782         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
11783         (ALL_BUILD_OBJS): Likewise.
11784         (build/%.o): Use BUILDCOMPILE.
11785         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
11786         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
11787         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
11788         build/gencheck.o, build/gencodes.o, build/genconditions.o,
11789         build/genconfig.o, build/genconstants.o, build/genemit.o,
11790         build/genextract.o, build/genflags.o, build/genmddeps.o,
11791         build/genopinit.o, build/genoutput.o, build/genpeep.o,
11792         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
11793         build/gen-protos.o, build/scan.o, build/fix-header.o,
11794         build/scan-decls.o): Simplify.
11795         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
11796         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
11797         prefix.o, toplev.o): Reduce to variable setting.
11798         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
11799         ($(out_object_file), gcc-options.o): New targets.
11800         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
11801         * configure: Rebuilt.
11802         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
11803         * doc/sourcebuild.texi (Front End Directory): Document new variable.
11804
11805 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
11806
11807         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
11808         complain when we hit an error, return ERROR_MARK_NODE.
11809
11810 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11811
11812         * config/sh/constraints.md (Pso, Psz): New constraints.
11813         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
11814         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
11815
11816 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11817
11818         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
11819         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
11820
11821 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
11822
11823         * config/sh/sh.md (prefetch): Add condition for SH2A target.
11824         (prefetch_sh2a): New.   
11825
11826 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11827             Naveen.H.S  <naveen.hs@kpitcummins.com>
11828
11829         * config/sh/constraints.md (I28): New constraint.
11830         * config/sh/sh.c (broken_move): Add support for movi20s.
11831         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
11832
11833 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
11834             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
11835             Naveen.H.S  <naveen.hs@kpitcummins.com>
11836
11837         * config/sh/sh.c (SH_ATTRIBUTES): Define.
11838         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
11839         (print_operand): Handle resbank in %@ operand code.
11840         (sh_encode_section_info): New.
11841         (push_regs): Add conditions for resbank.
11842         (sh_expand_epilogue): Likewise.
11843         (sh_insert_attributes): Likewise.
11844         (sh_attribute_table): Likewise.
11845         (sh_handle_resbank_handler_attribute): New.
11846         (sh2a_handle_function_vector_handler_attribute): New.
11847         (sh2a_is_function_vector_call): New.
11848         (sh2a_get_function_vector_number): New.
11849         (sh2a_function_vector_p): New.
11850         (sh_cfun_resbank_handler_p): New.
11851         * config/sh/sh.md (calli): Emit jsr/n if possible.
11852         (calli_tbr_rel): New.
11853         (calli_pcrel): Emit jsr/n if possible.
11854         (return_i): Emit rts/n if possible.
11855         (call_valuei_tbr_rel): New.
11856         (call_valuei_pcrel): Add condition for SH2A target.
11857         (call_value): Likewise.
11858         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
11859         (sh2a_get_function_vector_number): Likewise.
11860         (sh2a_is_function_vector_call): Likewise.
11861         * doc/extend.texi: Document TBR relative addressing of SH2A.
11862         (resbank): Add description for SH2A.
11863
11864 2008-03-24  Richard Guenther  <rguenther@suse.de>
11865
11866         PR c/22371
11867         * gimplify.c (gimplify_modify_expr): For frontend type-correct
11868         pointer assignments change conversions according to middle-end rules.
11869         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
11870         * configure.ac: Include type checking in yes.
11871         * configure: Regenerate.
11872
11873 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11874
11875         * diagnostic.c (diagnostic_count_diagnostic): Delete.
11876         (diagnostic_report_diagnostic): Update. Handle ICEs here.
11877         
11878 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
11879
11880         * gthr-vxworks.h (UNUSED): Define.
11881
11882 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
11883
11884         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
11885
11886 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
11887
11888         * doc/extend.texi (Function Attributes): Add missing comma in the
11889         example of the "alloc_size" attribute.
11890         
11891 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
11892
11893         Revert:
11894         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
11895
11896         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
11897         32bit host.
11898
11899         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
11900
11901         PR target/35496
11902         * stor-layout.c (update_alignment_for_field): Set minimum alignment
11903         of the underlying type of a MS bitfield layout to the natural
11904         alignment of the type.
11905
11906         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11907
11908         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11909         to their natural alignment to avoid store forwarding stalls.
11910
11911 2008-03-22  Richard Guenther  <rguenther@suse.de>
11912
11913         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
11914         For PHI nodes verify the address is invariant.
11915         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
11916         (get_symbol_constant_value): Use is_gimple_min_invariant.
11917         (maybe_fold_stmt_indirect): Likewise.
11918
11919 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
11920
11921         PR rtl-optimization/33927
11922         * Makefile.in (dse.o): Depend on $(TM_P_H).
11923         * expr.h (extract_low_bits): Declare.
11924         * expmed.c (extract_low_bits): New function.
11925         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
11926         * dse.c: Include tm_p.h.
11927         (find_shift_sequence): Remove the read_reg argument and return the
11928         read value.  Emit the instructions instead of returning them.
11929         Iterate on new_mode rather than calculating it each time.
11930         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
11931         source to NEW_MODE and extract_low_bits to convert the shifted
11932         value to READ_MODE.
11933         (replace_read): Allow the load and store to have different mode
11934         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
11935         or extraction instructions before trying the replacement.  Update
11936         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
11937
11938 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
11939
11940         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
11941         to their natural alignment to avoid store forwarding stalls.
11942
11943 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11944
11945         PR target/27946
11946         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
11947         encouraging but not allowing gprs for input;
11948         change the input constraint to !f#r.
11949         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
11950         gprs for output;
11951         change the output constraint to !f#r.
11952
11953 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
11954
11955         PR target/13958
11956         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
11957         corresponding post-reload splitters.
11958         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
11959         when x87 FP math is selected.
11960         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
11961         New function prototype.
11962         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
11963         unreachable function to ease macroization of insn patterns.
11964
11965 2008-03-21  Martin Jambor  <mjambor@suse.cz>
11966
11967         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
11968         reference dumps if ddr is NULL or dependence is unknown.
11969
11970 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11971
11972         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
11973         unsigned extension into account.
11974         (ATOMIC_COMPARE_AND_SWAP): Likewise.
11975         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
11976         Do computations on a scratch register.
11977
11978 2008-03-21  Richard Guenther  <rguenther@suse.de>
11979
11980         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11981         Use is_gimple_min_invariant instead of TREE_INVARIANT.
11982         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
11983         * tree-ssa-dom.c (record_equality): Likewise.
11984         * tree-inline.c (copy_body_r): Likewise.
11985         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
11986         TREE_INVARIANT.
11987
11988 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11989
11990         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
11991         as 'delete_unused' argument.
11992
11993 2008-03-20  Richard Guenther  <rguenther@suse.de>
11994
11995         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
11996         special casing of constant qualifiers.
11997         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
11998         care about them in general.
11999         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
12000         regardless of their type.
12001         (fold_stmt_r): Forcefully fold *& if we end up with that.
12002
12003 2008-03-20  Paul Brook  <paul@codesourcery.com>
12004
12005         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
12006         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
12007         linker flags.
12008         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
12009         definition.
12010         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
12011         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
12012
12013 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
12014
12015         * common.opt (Wmudflap): New option.
12016         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
12017         (mx_register_decls): Likewise.
12018         (mudflap_finish_file): Likewise.
12019         * doc/invoke.texi: Document -Wno-mudflap.
12020
12021 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
12022
12023         * c-format.c (replace_format_name_to_system_name): New.
12024         (cmp_attribs): New.
12025         (convert_format_name_to_system_name): New.
12026         (decode_format_attr): Add use of convert_format_name_to_system_name.
12027         (format_types_orig): Add gnu_ prefix to names.
12028         (check_format_info_main): Special treating of \0 escaped names for
12029         supporting multi-character format specifiers as I32, I64.
12030         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
12031         (gnu_target_overrides_format_attributes): New.
12032         * c-format.h: Add structure target_ovr_attr to hold
12033         system specific formatter names.
12034         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
12035         msformat-c.o file to c_target_objs and cxx_target_objs.
12036         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
12037         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
12038         (TARGET_N_FORMAT_TYPES): New.
12039         * config/i386/msformat-c.c: New.
12040         * config/i386/t-cygming: Add build rule for msformat-c.o.
12041         * doc/extend.texi: Add new format names gnu_* and ms_* and
12042         further details.
12043         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
12044
12045 2008-03-20  Ira Rosen  <irar@il.ibm.com>
12046
12047         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
12048         optimizations turned on under -O3.
12049         (ftree-vectorize): Add that the flag is turned on with -O3.
12050
12051 2008-03-20  Ben Elliston  <bje@au.ibm.com>
12052
12053         * regmove.c (try_auto_increment): Fix spelling error in comment.
12054         * final.c (final_scan_insn): Likewise.
12055
12056 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
12057
12058         PR target/14552
12059         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
12060         allocator preferences for "y" and "r" class registers.
12061         ("*mov<mode>_internal"): Ditto.
12062         ("*movv2sf_internal_rex64"): Ditto.
12063         ("*movv2sf_internal"): Ditto.
12064
12065 2008-03-19  Michael Matz  <matz@suse.de>
12066
12067         PR middle-end/35616
12068         * calls.c (expand_call): Check overlap of arguments with call
12069         address for sibcalls.
12070
12071 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
12072
12073         PR target/35496
12074         * stor-layout.c (update_alignment_for_field): Set minimum alignment
12075         of the underlying type of a MS bitfield layout to the natural
12076         alignment of the type.
12077
12078 2008-03-19  Jan Hubicka  <jh@suse.cz>
12079
12080         PR other/35094
12081         * toplev.c (decode_d_option): Handle all CPP flags.
12082         * tree-vrp.c: Update tree_pass descriptors.
12083         * regrename.c: Update tree_pass descriptors.
12084         * fwprop.c: Update tree_pass descriptors.
12085         * doc/invoke.texi: Remove documentation of dropped -d? flags.
12086         * tree-into-ssa.c: Update tree_pass descriptors.
12087         * tree-dump.c: Update tree_pass descriptors.
12088         * tree-complex.c: Update tree_pass descriptors.
12089         * tree-dump.h: Update tree_pass descriptors.
12090         * see.c: Update tree_pass descriptors.
12091         * cgraphbuild.c: Update tree_pass descriptors.
12092         * tracer.c: Update tree_pass descriptors.
12093         * tree-loop-distribution.c: Update tree_pass descriptors.
12094         * cgraph.c: Update tree_pass descriptors.
12095         * postreload-gcse.c: Update tree_pass descriptors.
12096         * postreload.c: Update tree_pass descriptors.
12097         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
12098         * tree-tailcall.c: Update tree_pass descriptors.
12099         * tree-pass.h (tree_opt_pass): Rename to ...
12100         (opt_pass) ... this one; add "type" field and remove letter field.
12101         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
12102         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
12103         all_lowering_passes): Update declaration.
12104         * ipa-cp.c: Update tree_pass descriptors.
12105         * final.c: Update tree_pass descriptors.
12106         * omp-low.c: Update tree_pass descriptors.
12107         * tree-ssa-dse.c: Update tree_pass descriptors.
12108         * ipa-reference.c: Update tree_pass descriptors.
12109         * tree-ssa-uncprop.c: Update tree_pass descriptors.
12110         * auto-inc-dec.c: Update tree_pass descriptors.
12111         * reorg.c: Update tree_pass descriptors.
12112         * cgraphunit.c: Update tree_pass descriptors.
12113         * tree-ssa-copyrename.c: Update tree_pass descriptors.
12114         * tree-ssa-ccp.c: Update tree_pass descriptors.
12115         * df-core.c: Update tree_pass descriptors.
12116         * mode-switching.c: Update tree_pass descriptors.
12117         * tree-nomudflap.c: Update tree_pass descriptors.
12118         * modulo-sched.c: Update tree_pass descriptors.
12119         * ipa-pure-const.c: Update tree_pass descriptors.
12120         * cse.c: Update tree_pass descriptors.
12121         * web.c: Update tree_pass descriptors.
12122         * tree-stdarg.c: Update tree_pass descriptors.
12123         * tree-ssa-math-opts.c: Update tree_pass descriptors.
12124         * tree-ssa-dom.c: Update tree_pass descriptors.
12125         * tree-nrv.c: Update tree_pass descriptors.
12126         * tree-ssa-alias.c: Update tree_pass descriptors.
12127         * loop-init.c: Update tree_pass descriptors.
12128         * gimple-low.c: Update tree_pass descriptors.
12129         * ipa-inline.c: Update tree_pass descriptors.
12130         * tree-ssa-sink.c: Update tree_pass descriptors.
12131         * global.c: Update tree_pass descriptors.
12132         * ifcvt.c: Update tree_pass descriptors.
12133         * jump.c: Update tree_pass descriptors.
12134         * predict.c: Update tree_pass descriptors.
12135         * tree-ssa-loop.c: Update tree_pass descriptors.
12136         * recog.c: Update tree_pass descriptors.
12137         * dse.c: Update tree_pass descriptors.
12138         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
12139         * tree-eh.c: Update tree_pass descriptors.
12140         * regmove.c: Update tree_pass descriptors.
12141         * local-alloc.c
12142         * function.c: Update tree_pass descriptors.
12143         * tree-vectorizer.c: Update tree_pass descriptors.
12144         * gcse.c: Update tree_pass descriptors.
12145         * ipa-type-escape.c: Update tree_pass descriptors.
12146         * tree-if-conv.c: Update tree_pass descriptors.
12147         * init-regs.c: Update tree_pass descriptors.
12148         * ipa.c: Update tree_pass descriptors.
12149         * tree-ssa-phiopt.c: Update tree_pass descriptors.
12150         * rtl-factoring.c: Update tree_pass descriptors.
12151         * lower-subreg.c: Update tree_pass descriptors.
12152         * bt-load.c: Update tree_pass descriptors.
12153         * tree-dfa.c: Update tree_pass descriptors.
12154         * except.c: Update tree_pass descriptors.
12155         * emit-rtl.c: Update tree_pass descriptors.
12156         * cfgexpand.c: Update tree_pass descriptors.
12157         * tree-cfgcleanup.c: Update tree_pass descriptors.
12158         * cfgcleanup.c: Update tree_pass descriptors.
12159         * tree-ssa-pre.c: Update tree_pass descriptors.
12160         * tree-sra.c: Update tree_pass descriptors.
12161         * tree-mudflap.c: Update tree_pass descriptors.
12162         * tree-ssa-copy.c: Update tree_pass descriptors.
12163         * cfglayout.c: Update tree_pass descriptors.
12164         * tree-ssa-forwprop.c: Update tree_pass descriptors.
12165         * tree-ssa-dce.c: Update tree_pass descriptors.
12166         * tree-ssa.c: Update tree_pass descriptors.
12167         * regclass.c: Update tree_pass descriptors.
12168         * integrate.c: Update tree_pass descriptors.
12169         * tree-optimize.c: Update tree_pass descriptors.
12170         * tree-ssa-phiprop.c: Update tree_pass descriptors.
12171         * tree-object-size.c: Update tree_pass descriptors.
12172         * combine.c: Update tree_pass descriptors.
12173         * tree-outof-ssa.c: Update tree_pass descriptors.
12174         * bb-reorder.c: Update tree_pass descriptors.
12175         * stack-ptr-mod.c: Update tree_pass descriptors.
12176         * var-tracking.c: Update tree_pass descriptors.
12177         * tree-profile.c: Update tree_pass descriptors.
12178         * tree-vect-generic.c: Update tree_pass descriptors.
12179         * reg-stack.c: Update tree_pass descriptors.
12180         * sched-rgn.c: Update tree_pass descriptors.
12181         * tree-ssa-structalias.c: Update tree_pass descriptors.
12182         * tree-cfg.c: Update tree_pass descriptors.
12183         * passes.c (current_pass): Update declaration.
12184         (finish_optimization_passes): Update.
12185         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
12186         (register_one_dump_file, register_dump_files_1, next_pass_1):
12187         Update arguments.
12188         (init_optimization_passes): Update handling of new types.
12189         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
12190         * ipa-struct-reorg.c: Update tree_pass descriptors.
12191         * tree-ssa-reassoc.c: Update tree_pass descriptors.
12192         * combine-stack-adj.c: Update tree_pass descriptors.
12193         * cfgrtl.c: Update tree_pass descriptors.
12194         * dce.c: Update tree_pass descriptors.
12195         * tree-ssanames.c: Update tree_pass descriptors.
12196
12197 2008-03-19  Richard Guenther  <rguenther@suse.de>
12198
12199         PR middle-end/35609
12200         * tree-ssa.c (walk_data): New structure.
12201         (warn_uninitialized_var): If not always_executed warn with "maybe"
12202         instead of "is".
12203         (execute_early_warn_uninitialized): Compute post-dominators.
12204         Initialize always_executed before processing each basic block.
12205
12206 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
12207
12208         PR target/35504
12209         * config/i386/i386.c (x86_this_parameter): Calculate correct location
12210         of "this" pointer when "regparm = N" or "fastcall" is in effect.
12211
12212 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12213
12214         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
12215
12216 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
12217
12218         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
12219         is true.
12220         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
12221         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
12222         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
12223         target after ignore has been set, and move there also the commputation
12224         of subtarget and original_target.
12225         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
12226         (LANG_HOOKS_INITIALIZER): Remove it.
12227         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
12228
12229 2008-03-18  Richard Guenther  <rguenther@suse.de>
12230
12231         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
12232         found an expression with constants, note that in the VN for the lhs.
12233         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
12234         fold them to constants if possible.  Run cleanup_cfg if done so.
12235         (execute_pre): Return todo.
12236         (do_pre): Likewise.
12237         (execute_fre): Likewise.
12238         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
12239         of constants.
12240         (get_prop_source_stmt): Look through pointer conversions.
12241
12242 2008-03-18  Jan Hubicka  <jh@suse.cz>
12243
12244         * tree-pretty-print.c: Include predict.h.
12245         (dump_generic_node): Dump predictor.
12246         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
12247         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
12248         * gimple-low.c (lower_stmt): Likewise.
12249         * expr.c (expand_expr_real): Likewise.
12250         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
12251         them.
12252         (build_predict_expr, build_predict_expr): New.
12253         * predict.h (predictor_name, build_predict_expr): Update.
12254         * c-typeck.c (c_finish_bc_stmt): Add prediction.
12255         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
12256         * predict.def (PRED_CONTINUE): Update hitrate.
12257         * tree.def (PREDICT_EXPR): Define.
12258         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
12259         do not handle BIND_EXPR.
12260         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
12261         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
12262         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
12263         operands.
12264
12265 2008-03-18  Michael Matz  <matz@suse.de>
12266
12267         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
12268
12269 2008-03-18  Richard Guenther  <rguenther@suse.de>
12270
12271         * tree-gimple.h (is_gimple_invariant_address): Declare.
12272         (is_gimple_constant): Likewise.
12273         * tree-gimple.c (is_gimple_constant): New function.
12274         (is_gimple_invariant_address): Likewise.
12275         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
12276         and is_gimple_invariant_address.
12277         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
12278         previous change.
12279         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
12280         an addressable base.
12281
12282 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
12283
12284         PR middle-end/35611
12285         * gimplify.c (gimplify_expr): Gimplify second operand of
12286         OMP_ATOMIC_LOAD.
12287
12288 2008-03-17  Richard Guenther  <rguenther@suse.de>
12289
12290         PR tree-optimization/19637
12291         * fold-const.c (fold_unary): Remove restrictions of removing
12292         intermediate pointer-conversions (P2)(P1)P0.
12293         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
12294         conversion to void pointer.
12295         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
12296
12297 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
12298
12299         PR debug/31510
12300         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
12301         emulated thread local variables.
12302
12303 2008-03-16  Richard Guenther  <rguenther@suse.de>
12304
12305         PR middle-end/35607
12306         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
12307         expand TREE_INVARIANT operations that are not gimple invariant.
12308
12309 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
12310
12311         * doc/extend.texi (Alignment): Say that the ABI controls
12312         the __alignof__ for non-strict-alignment targets rather
12313         than being a recommendation.
12314
12315 2008-03-15  Paul Brook  <paul@codesourcery.com>
12316
12317         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
12318         annotations.
12319         (arm_output_fn_unwind): Mark functions that can not be unwound.
12320
12321 2008-03-15  Paul Brook  <paul@codesourcery.com>
12322
12323         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
12324         extension instructions.
12325
12326 2008-03-15  Richard Guenther  <rguenther@suse.de>
12327
12328         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
12329         and fold constant aggregate refs.
12330         (fold_const_aggregate_ref): Handle string constants
12331         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
12332         (evaluate_stmt): Simplify now that ccp_fold folds constant
12333         aggregate refs.
12334
12335 2008-03-15  Paul Brook  <paul@codesourcery.com>
12336
12337         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
12338         (extzv): Use gen_extzv_t2.
12339         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
12340
12341 2008-03-15  Richard Guenther  <rguenther@suse.de>
12342
12343         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
12344         (fold_const_aggregate_ref): Likewise.
12345         (get_value): Return NULL if we don't have any values.
12346         (ccp_finalize): Set const_val to NULL after freeing it.
12347         * tree-flow.h (get_symbol_constant_value): Declare.
12348         (fold_const_aggregate_ref): Likewise.
12349         * tree-ssa-sccvn.c (try_to_simplify): Use them.
12350
12351 2008-03-15  Richard Guenther  <rguenther@suse.de>
12352
12353         PR middle-end/35593
12354         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
12355         to not produce negative array indices if not allowed.  Add
12356         parameter to indicate that.
12357         (maybe_fold_offset_to_component_ref): Allow negative array
12358         indices only for the first member of a structure.
12359         (maybe_fold_offset_to_reference): Allow negative array indices.
12360         (maybe_fold_stmt_addition): Likewise.
12361
12362 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
12363             Anatoly Sokolov <aesok@post.ru>
12364
12365         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
12366         (avr_arch): Add ARCH_AVR6.
12367         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
12368         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
12369         instead of fixed value 2.
12370         (print_operand_address): Use gs() asm specifier instead of pm().
12371         (avr_assemble_integer): (Ditto.).
12372         (avr_output_addr_vec_elt): (Ditto.).
12373         (print_operand): Handle "!" code.
12374         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
12375         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
12376         (AVR_HAVE_EIJMP_EICALL): Define.
12377         (AVR_3_BYTE_PC): Redefine.
12378         (AVR_2_BYTE_PC): (Ditto.).
12379         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
12380         (LINK_SPEC): Add atmega2560 and atmega2561.
12381         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
12382         (crtm2561.o).
12383         * config/avr/avr.md (call_insn): Use eicall instead of icall 
12384         for 3 byte PC devices.
12385         (call_value_insn): (Ditto.).
12386         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
12387         (indirect_jump): Use only for for 2 byte PC devices.
12388         (*tablejump): (Ditto.).
12389         (*indirect_jump_avr6): Add insn.
12390         (*tablejump_rjmp): Don't use for 3 byte PC devices.
12391         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
12392         instead of ijmp for 3 byte PC devices.
12393         (__tablejump2__): (Ditto.).
12394         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
12395         (MULITLIB_DIRNAMES): (Ditto.). 
12396         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
12397
12398 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
12399
12400         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
12401         "sse2_umulsidi3".  Use V1DI mode for operand 0.
12402         ("mmx_psadbw"): Use V1DI mode for operand 0.
12403         * config/i386/i386-modes.def (V1SI): New vector mode.
12404         * config/i386/i386.c (struct builtin_description)
12405         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
12406         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
12407         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
12408         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
12409         v1di_ftype_v8qi_v8qi type.
12410         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
12411
12412         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
12413         __builtin_ia32_pmuludq]: Fix the mode of return value.
12414
12415 2008-03-15  Richard Guenther  <rguenther@suse.de>
12416
12417         PR middle-end/35595
12418         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
12419         being a PHI_NODE.
12420
12421 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
12422         
12423         * doc/invoke.texi (Option Summary, Xtensa Options): Document
12424         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
12425         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
12426         unless TARGET_SERIALIZE_VOLATILE is enabled.
12427         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
12428         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
12429         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
12430
12431 2008-03-14  Richard Guenther  <rguenther@suse.de>
12432
12433         PR tree-optimization/34172
12434         * tree-flow.h (refs_may_alias_p): Declare.
12435         (get_single_def_stmt): Likewise.
12436         (get_single_def_stmt_from_phi): Likewise.
12437         (get_single_def_stmt_with_phi): Likewise.
12438         * tree-dfa.c (refs_may_alias_p): New function.
12439         (get_single_def_stmt): Likewise.
12440         (get_single_def_stmt_from_phi): Likewise.
12441         (get_single_def_stmt_with_phi): Likewise.
12442         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
12443         (vn_reference_lookup_1): New helper function.
12444         (vn_reference_lookup): Walk the virtual use-def chain to
12445         continue searching for a match if the def does not alias the
12446         reference we are looking for.
12447
12448 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
12449
12450         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
12451         archive and Perzl.  Update The Written Word listing.
12452
12453 2008-03-14  Richard Guenther  <rguenther@suse.de>
12454
12455         PR tree-optimization/34043
12456         PR tree-optimization/33989
12457         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
12458         when doing FRE.
12459         (bitmap_find_leader): Use extra argument to verify dominance
12460         relationship inside a basic-block.
12461         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
12462         (find_leader_in_sets): Adjust.
12463         (create_component_ref_by_pieces): Take extra argument for
12464         dominance check, handle lookup failures.
12465         (find_or_generate_expression): Likewise.
12466         (create_expression_by_pieces): Likewise.
12467         (insert_into_preds_of_block): Adjust.
12468         (create_value_expr_from): If asked for, verify all operands
12469         are in the blocks AVAIL_OUT set.
12470         (make_values_for_stmt): Check for SSA_NAMEs that are life
12471         over an abnormal edge.
12472         (compute_avail): Remove such check.
12473         (do_SCCVN_insertion): New function.
12474         (eliminate): If we do not find a leader suitable for replacement
12475         insert a replacement expression from SCCVN if available.
12476         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
12477         (struct vn_ssa_aux): Add needs_insertion flag.
12478         * tree-ssa-sccvn.c (may_insert): New global flag.
12479         (copy_reference_ops_from_ref): Value-number union member access
12480         based on its size, not type and member if insertion is allowed.
12481         (visit_reference_op_load): For a weak match from union type
12482         punning lookup a view-converted value and insert a SSA_NAME
12483         for that value if that is not found.
12484         (visit_use): Make dumps shorter.  Do not disallow value numbering
12485         SSA_NAMEs that are life over an abnormal edge to constants.
12486         (free_scc_vn): Release inserted SSA_NAMEs.
12487         (run_scc_vn): New flag to specify whether insertion is allowed.
12488         Process SSA_NAMEs in forward order.
12489         * tree-ssa-loop-im.c (for_each_index): Handle invariant
12490         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
12491         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
12492         pointer type to/from integral types that do not change the
12493         precision to regular conversions.
12494
12495 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12496
12497         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12498         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12499         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
12500         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
12501         input arguments and the mode of return value.  Built-in functions
12502         that operate on whole 64-bit MMX register now use V1DI mode.
12503
12504 2008-03-13  Alon Dayan  <alond@il.ibm.com>
12505             Olga Golovanevsky  <olga@il.ibm.com>
12506
12507         PR tree-optimization/35041
12508         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
12509         to locate the right position in a statement.
12510
12511 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
12512
12513         PR target/34000
12514         PR target/35553
12515         * config/i386/xmmintrin.h:  Change all static inline functions to
12516         extern inline and add __gnu_inline__ attribute.
12517         * config/i386/bmintrin.h: Ditto.
12518         * config/i386/smmintrin.h: Ditto.
12519         * config/i386/tmmintrin.h: Ditto.
12520         * config/i386/mmintrin-common.h: Ditto.
12521         * config/i386/ammintrin.h: Ditto.
12522         * config/i386/emmintrin.h: Ditto.
12523         * config/i386/pmmintrin.h: Ditto.
12524         * config/i386/mmintrin.h: Ditto.
12525         * config/i386/mm3dnow.h: Ditto.
12526
12527 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
12528
12529         PR middle-end/35185
12530         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
12531         (lower_omp_2): New function.
12532         (lower_omp_1, lower_omp): Rewritten.
12533
12534 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
12535
12536         PR 35054
12537         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
12538         with the phrase "Microsoft Windows compilers".
12539         (Push/Pop Macro Pragmas): New subsection. Document
12540         #pragma push_macro and pragma pop_macro.
12541
12542 2008-03-12  Paul Brook  <paul@codesourcery.com>
12543
12544         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
12545
12546 2008-03-12  Paul Brook  <paul@codesourcery.com>
12547
12548         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
12549         (thumb2_alusi3_short): Exclude PLUS and MINUS.
12550         (thumb2_addsi_shortim): Rename ...
12551         (thumb2_addsi_short): ... to this.  Allow register operands.
12552         (thumb2_subsi_short): New pattern.
12553         (thumb2_one_cmplsi2_short,
12554         thumb2_negsi2_short): New patterns and peepholes.
12555
12556 2008-03-12  Paul Brook  <paul@codesourcery.com>
12557
12558         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
12559
12560 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
12561
12562         * config/i386/i386.md (int_cond): New code iterator.
12563         (fp_cond): Ditto.
12564         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
12565         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
12566         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
12567         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
12568         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
12569         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
12570         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
12571         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
12572
12573 2008-03-12  Paul Brook  <paul@codesourcery.com>
12574
12575         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
12576         instead of {arm,thumb}_compute_save_reg_mask.
12577         (output_return_instruction): Ditto.
12578         (thumb_unexpanded_epilogue): Ditto.
12579         (thumb1_expand_prologue): Ditto.
12580         (thumb1_output_function_prologue): Ditto.
12581         (arm_set_return_address): Ditto.
12582         (thumb_set_return_address): Ditto.
12583         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
12584         regs to achieve stack alignment.
12585         (thumb1_compute_save_reg_mask): Fix compiler warning.
12586         (arm_output_epilogue): Use offsets->saved_regs_mask.
12587         Adjust stack pointer by poping call clobered registers.
12588         (arm_expand_prologue): Use offsets->saved_regs_mask.
12589         Adjust stack pointer by pushing extra registers.
12590         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
12591
12592 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
12593
12594         PR tree-opt/35422
12595         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
12596         conversion to the operands of a multiplication.
12597
12598 2008-03-12  Richard Guenther  <rguenther@suse.de>
12599
12600         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
12601         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
12602         * timevar.def (TV_TREE_PHIPROP): Add.
12603         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
12604         pass description.  Use TV_TREE_PHIPROP.
12605         * tree-ssa-forwprop.c: Remove phiprop code.
12606
12607 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
12608
12609         PR middle-end/35549
12610         * omp-low.c (maybe_lookup_decl): Constify first argument.
12611         (use_pointer_for_field): Change last argument from bool to
12612         omp_context *.  Disallow shared copy-in/out in nested
12613         parallel if decl is shared in outer parallel too.
12614         (build_outer_var_ref, scan_sharing_clauses,
12615         lower_rec_input_clauses, lower_copyprivate_clauses,
12616         lower_send_clauses, lower_send_shared_vars): Adjust callers.
12617
12618 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
12619             Ira Rosen  <irar@il.ibm.com>
12620
12621         * tree-vectorizer.c (free_stmt_vec_info): New function.
12622         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
12623         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
12624         * tree-vectorizer.h (free_stmt_vec_info): Declare.
12625         * tree-vect-transform.c (vectorizable_conversion): Free
12626         vec_oprnds0 if it was allocated.
12627         (vect_permute_store_chain): Remove unused VECs.
12628         (vectorizable_store): Free VECs that are allocated in the..
12629         function.
12630         (vect_transform_strided_load, vectorizable_load): Likewise.
12631         (vect_remove_stores): Simplify the code.
12632         (vect_transform_loop): Move code to vect_remove_stores().
12633         Call vect_remove_stores() and free_stmt_vec_info().
12634
12635 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12636
12637         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
12638         TARGET_HPUX.  Revise comment.
12639         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
12640         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
12641         Use sr4 variant of `be' instruction when not generating PIC code.
12642         (attr_length_call): Adjust for above change.
12643
12644 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12645
12646         * ipa-reference.c (static_execute): Remove module_statics_const and
12647         associated setting code.
12648
12649 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12650
12651         PR target/35540
12652         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
12653         predicate for operand 1.
12654         (paritysi2_cmp): Use register_operand predicate for operand 2.
12655         Use earlyclobber modifier for operand 1.  Remove support for
12656         memory operands.
12657         (paritydi2_cmp): Use register_operand predicate for operand 3.
12658         Use earlyclobber modifier for operand 1.  Remove support for
12659         memory operands.
12660
12661 2008-03-11  Paul Brook  <paul@codesourcery.com>
12662             Vladimir Prus  <vladimir@codesourcery.com>
12663
12664         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
12665         (arm_compute_save_reg0_reg12_mask): Always
12666         check if register 11 must be saved.  Always safe hard frame pointer
12667         when frame_pointer_needeed.
12668         (arm_compute_save_reg_mask): Save IP and PC
12669         only with apcs frames.
12670         (arm_output_epilogue): Adjust Thumb2 codepath to
12671         be also invoked and work for ARM non-apcs frames.
12672         (arm_expand_prologue): Don't bother saving IP
12673         for non-apcs frame, since it's not clobbered by
12674         prologue code.  Implement non-apcs frame
12675         layout.
12676
12677 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12678
12679         PR rtl-optimization/35281
12680         * expr.c (convert_move): Use a new pseudo for the intermediate
12681         from_mode->word_mode result.
12682
12683 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
12684
12685         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
12686         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
12687         * toplev.c (compile_file): Don't call it.
12688
12689 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
12690
12691         PR middle-end/35526
12692         * expr.c (store_expr): Call emit_block_move if the mode
12693         of "temp" RTX is BLKmode.
12694
12695 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12696             Richard Guenther  <rguenther@suse.de>
12697
12698         PR tree-optimization/31358
12699         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
12700         the step with a NULL_TREE.
12701         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
12702         to sizetype if type is a pointer type.
12703         (add_candidate_1): Don't convert the base and step to
12704         the generic type if the orginal type is a pointer type.
12705         (add_iv_value_candidates): Use sizetype for the step
12706         if type is a pointer type.
12707         (cand_value_at): Likewise.
12708         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
12709         for pointer types.
12710         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
12711         Don't convert the tem affine to the type.
12712         (add_elt_to_tree): Use sizetype for the step if a pointer.
12713         Use POINTER_PLUS_EXPR for pointers.
12714         (aff_combination_to_tree): Use sizetype for the step if a
12715         pointer.
12716
12717 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
12718
12719         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
12720         Remove commutativity hint.
12721
12722 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
12723
12724         PR c/35438
12725         PR c/35439
12726         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
12727         errorneous type.  Check that v is a VAR_DECL.
12728
12729         PR middle-end/35099
12730         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
12731
12732 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
12733
12734         PR tree-optimization/35494
12735         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
12736         may be overriden at link and run time.
12737
12738 2008-03-10  Richard Guenther  <rguenther@suse.de>
12739
12740         PR tree-optimization/34677
12741         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
12742         (poolify_tree): Likewise.
12743         (modify_expr_template): Likewise.
12744         (poolify_modify_stmt): Likewise.
12745         (insert_fake_stores): Handle all component-ref style stores
12746         in addition to INDIRECT_REF.  Also handle complex types.
12747         Do not poolify the inserted load.
12748         (realify_fake_stores): Do not rebuild the tree but only
12749         make it a SSA_NAME copy.
12750         (init_pre): Remove initialzation of modify_expr_template.
12751         Do not allocate modify_expr_node_pool.
12752         (fini_pre): Do not free modify_expr_node_pool.
12753
12754 2008-03-10  Paul Brook  <paul@codesourcery.com>
12755
12756         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
12757         to avoid conflicts.
12758
12759 2008-03-10  Paul Brook  <paul@codesourcery.com>
12760             Mark Shinwell  <shinwell@codesourcery.com>
12761
12762         * config/arm/cortex-r4.md: New.
12763         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
12764         insn attributes.
12765         * config/arm/arm.md: Include cortex-r4.md.
12766         (insn): Add smmls, sdiv and udiv values.
12767         (generic_sched): Don't use generic scheduling for Cortex-R4.
12768         (arm_issue_rate): New function.
12769         (TARGET_SCHED_ISSUE_RATE): Define.
12770
12771 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
12772
12773         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
12774
12775 2008-03-10  Richard Guenther  <rguenther@suse.de>
12776
12777         * tree-ssa-pre.c (get_sccvn_value): Simplify.
12778         (compute_avail): Do not add stmt uses to AVAIL_OUT.
12779
12780 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
12781
12782         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
12783         Set default to true.
12784
12785 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12786
12787         * c.opt (Wsynth): Deprecate.
12788         * doc/invoke.texi (Option Summary, Warning Options): Document
12789         -Wno-format-contains-nul.
12790
12791 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
12792
12793         PR target/35496
12794         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
12795         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
12796
12797 2008-03-09  Ira Rosen  <irar@il.ibm.com>
12798
12799         * config/rs6000/rs6000.c (builtin_description): Rename vector
12800         left shift operations.
12801         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
12802         (altivec_vsl<VI_char>): Rename to ...
12803         (ashl<mode>3): ... new name.
12804         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
12805         gen_ashlv4si3.
12806         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
12807
12808 2008-03-08  Richard Guenther  <rguenther@suse.de>
12809
12810         * coverage.h (tree_coverage_counter_addr): Declare.
12811         * coverage.c (tree_coverage_counter_addr): New function.
12812         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
12813         before using again.
12814         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
12815         (tree_gen_one_value_profiler): Likewise.
12816         (tree_gen_ic_profiler): Likewise.
12817         (tree_gen_average_profiler): Likewise.
12818         (tree_gen_ior_profiler): Likewise.
12819
12820 2008-03-08  Richard Guenther  <rguenther@suse.de>
12821
12822         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
12823         (vn_binary_op_insert): Likewise.
12824         (vn_unary_op_lookup): Likewise.
12825         (vn_unary_op_insert): Likewise.
12826         (vn_nary_op_lookup): Declare.
12827         (vn_nary_op_insert): Likewise.
12828         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
12829         and binary hashes, use a single obstack for unary_op_pool
12830         and binary_op_pool.
12831         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
12832         a single struct vn_nary_op_s.  Store tree code length and
12833         a variable number of operands.
12834         (struct vn_reference_op_struct): Remove unused op2.
12835         (vn_reference_op_eq): Do not compare op2.
12836         (vn_reference_op_compute_hash): Do not compute hash of op2.
12837         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
12838         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
12839         with vn_nary_op_compute_hash.
12840         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
12841         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
12842         vn_nary_op_lookup.
12843         (vn_unary_op_insert, vn_binary_op_insert): Replace with
12844         vn_nary_op_insert.
12845         (visit_unary_op): Call nary functions.
12846         (visit_binary_op): Likewise.
12847         (process_scc): Adjust for struct vn_tables_s changes.
12848         (allocate_vn_table): Likewise.
12849         (free_vn_table): Likewise.
12850         * tree-vn.c (vn_add): Call nary functions.
12851         (vn_lookup): Likewise.
12852
12853 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
12854
12855         PR target/35498
12856         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
12857         wdst back after sync_compare_and_swapqhi_internal.
12858
12859 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
12860
12861         PR target/22152
12862         * config/i386/i386-modes.def (V1DI): New vector mode.
12863         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
12864         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
12865         (MMXMODE248): Ditto.
12866         (MMXMODE): Add V1DI mode.
12867         (mmxvecsize): Change DI mode to V1DI mode.
12868         ("mov<mode>): Use MMXMODEI8 mode iterator.
12869         ("*mov<mode>_internal_rex64"): Ditto.
12870         ("*mov<mode>_internal"): Ditto.
12871         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
12872         ("mmx_sub<mode>3"): Ditto.
12873         ("mmx_adddi3"): Remove insn pattern.
12874         ("mmx_subdi3"): Ditto.
12875         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
12876         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
12877         ("mmx_ashl<mode>3"): Ditto.
12878         ("mmx_lshrdi3"): Remove insn pattern.
12879         ("mmx_ashldi3"): Ditto.
12880         * config/i386/i386.c (classify_argument): Handle V1DImode.
12881         (function_arg_advance_32): Ditto.
12882         (function_arg_32): Ditto.
12883         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
12884         mmx_addv1di3 insn pattern.
12885         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
12886         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
12887         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
12888         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
12889         Remove definitions of built-in functions.
12890         (V1DI_type_node): New node.
12891         (v1di_ftype_v1di_int): Ditto.
12892         (v1di_ftype_v1di_v1di): Ditto.
12893         (v2si_ftype_v2si_si): Ditto.
12894         (v4hi_ftype_v4hi_di): Remove node.
12895         (v2si_ftype_v2si_di): Ditto.
12896         (ix86_init_mmx_sse_builtins): Handle V1DImode.
12897         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
12898         Redefine builtins using def_builtin_const with *_ftype_*_int node.
12899         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
12900         Add new builtins using def_builtin_const.
12901         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
12902         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
12903         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
12904         * config/i386/mmintrin.h (__v1di): New typedef.
12905         (_mm_add_si64): Cast arguments to __v1di type.
12906         (_mm_sub_si64): Ditto.
12907         (_mm_sll_pi16): Cast __count to __v4hi type.
12908         (_mm_sll_pi32): Cast __count to __v2si type.
12909         (_mm_sll_si64): Cast arguments to __v1di type.
12910         (_mm_srl_pi16): Cast __count to __v4hi type.
12911         (_mm_srl_pi32): Cast __count to __v2si type.
12912         (_mm_srl_si64): Cast arguments to __v1di type.
12913         (_mm_sra_pi16): Cast __count to __v4hi type.
12914         (_mm_sra_pi32): Cast __count to __v2si type.
12915         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
12916         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
12917         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
12918         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
12919         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
12920         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
12921         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
12922         (_mm_srai_pi32): Use __builtin_ia32_psradi.
12923         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
12924         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
12925         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
12926         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
12927
12928 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
12929
12930         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
12931
12932 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
12933
12934         PR target/35373
12935         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
12936         reg+const addressing for Altivec modes.  Don't generate reg+reg
12937         addressing for TFmode or TDmode quantities.
12938
12939 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
12940
12941         * c-common.c (vector_types_convertible_p): Call langhook
12942         instead of comptypes.
12943
12944 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12945
12946         PR tree-opt/35402
12947         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
12948         integral and scalar float variables which have a
12949         NULL DECL_INITIAL.
12950
12951 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
12952
12953         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
12954         dwarf_register_span hook when emitting unwind information for
12955         register-to-memory saves.
12956         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
12957         (rs6000_frame_related): Remove call to spe_synthesize_frame.
12958
12959 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
12960
12961         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
12962         for the same VAR_DECL.
12963
12964 2008-03-06  Tom Tromey  <tromey@redhat.com>
12965
12966         * treelang: Delete.
12967         * doc/standards.texi (Standards): Don't mention treelang.
12968         * doc/invoke.texi (Overall Options): Don't mention treelang.
12969         * doc/install.texi (Prerequisites): Don't mention bison or
12970         treelang.
12971         (Configuration): Don't mention treelang.
12972         (Building): Likewise.
12973         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
12974
12975 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
12976
12977         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
12978         word-extractions out of a multi-word object.
12979
12980 2008-03-06  Richard Guenther  <rguenther@suse.de>
12981
12982         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
12983         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
12984         result type and precision.
12985         * expr.c (get_inner_reference): Set unsignedp based on the result
12986         type of BIT_FIELD_REF.
12987         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
12988         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
12989         (try_instantiate_multiple_fields): Likewise.  Use the correct type
12990         for BIT_FIELD_REF.
12991         (sra_build_assignment): Likewise.
12992         (sra_build_elt_assignment): Likewise.
12993         (sra_explode_bitfield_assignment): Likewise.
12994         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
12995         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
12996         set BIT_FIELD_REF_UNSIGNED.
12997         (vectorizable_load): Likewise.
12998
12999 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
13000
13001         * cse.c (cse_extended_basic_block): Invalidate artificial defs
13002         at bb start.
13003
13004 2008-03-06  Richard Guenther  <rguenther@suse.de>
13005
13006         * alias.c (struct alias_set_entry): Move has_zero_child field
13007         to pack with alias_set.
13008
13009 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
13010
13011         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
13012         32bit host.
13013
13014 2008-03-05  Ian Lance Taylor  <iant@google.com>
13015
13016         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
13017
13018 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
13019
13020         * fwprop.c (update_df): Support width and offset parameters of
13021         df_ref_create.
13022         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
13023         global_conflicts): Change DF_REF_EXTRACT to either
13024         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
13025         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
13026         * df-scan.c (df_ref_record, df_defs_record,
13027         df_ref_create_structure, df_def_record_1, df_uses_record,
13028         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
13029         df_bb_refs_collect, df_entry_block_defs_collect,
13030         df_exit_block_uses_collect): Support new width and offset fields.
13031         (ref_extract_pool): New storage pool.
13032         (df_free_ref): New function.
13033         (df_reg_chain_unlink, df_free_collection_rec,
13034         df_sort_and_compress_refs): Call df_free_ref.
13035         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
13036         of df_ref_extract.
13037         (df_ref_create_structure): Allocate df_ref_extract if offset and
13038         width fields are used.
13039         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
13040         (df_uses_record): Get offset and width from ZERO_EXTRACT 
13041         and SIGN_EXTRACT.
13042         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
13043         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
13044         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
13045         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
13046         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
13047         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
13048         (df_ref_extract): New structure.
13049         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
13050         (df_ref_create): Add width and offset parameters.
13051         
13052 2008-03-05  Richard Guenther  <rguenther@suse.de>
13053
13054         * tree-ssa-structalias.c (get_constraint_for_component_ref):
13055         Use ranges_overlap_p.
13056         (offset_overlaps_with_access): Rename
13057         to ranges_overlap_p and move ...
13058         * tree-flow-inline.h (ranges_overlap_p): ... here.
13059
13060         * tree.h (get_inner_reference, handled_component_p): Update
13061         comments.
13062
13063         * tree.h (record_component_aliases, get_alias_set,
13064         alias_sets_conflict_p, alias_sets_must_conflict_p,
13065         objects_must_conflict_p): Move declarations ...
13066         * alias.h (record_component_aliases, get_alias_set,
13067         alias_sets_conflict_p, alias_sets_must_conflict_p,
13068         objects_must_conflict_p): ... here.
13069         Include coretypes.h.
13070         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
13071
13072 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
13073
13074         * cfg.c: Include tree-flow.h.
13075         (remove_edge_raw): Call redirect_edge_var_map_clear.
13076         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
13077         * tree-flow-inline.h (redirect_edge_var_map_def): New.
13078         (redirect_edge_var_map_result): New.
13079         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
13080         PENDING_STMT use with redirect_edge_var_map_*.
13081         * tree-ssa.c (edge_var_maps): New definition.
13082         (redirect_edge_var_map_add): New.
13083         (redirect_edge_var_map_clear): New.
13084         (redirect_edge_var_map_dup): New.
13085         (redirect_edge_var_map_vector): New.
13086         (redirect_edge_var_map_destroy): New.
13087         (ssa_redirect_edge): Replace PENDING_STMT use with
13088         redirect_edge_var_map_*.
13089         (flush_pending_stmts): Same.
13090         (delete_tree_ssa): Destroy edge var map.
13091         * tree-flow.h (struct _edge_var_map): New.
13092         Define edge_var_map vector type.
13093         Declare redirect_edge_var_map_* prototypes.
13094         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
13095         * tree-cfg.c (reinstall_phi_args): Replace
13096         PENDING_STMT use with redirect_edge_var_map_*.
13097
13098 2008-03-05  Richard Guenther  <rguenther@suse.de>
13099
13100         PR tree-optimization/35472
13101         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
13102         whose single use_stmt has a overlapping set of loaded and
13103         stored symbols as that use_stmt might be a noop assignment then.
13104
13105 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
13106
13107         * gthr-rtems.h: Implement __gthread_mutex_destroy.
13108
13109 2008-03-05  Richard Guenther  <rguenther@suse.de>
13110
13111         PR c++/35336
13112         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
13113         should be constants.
13114         * tree-cfg.c (verify_expr): Verify it.
13115         * fold-const.c (fold_truthop): Remove code generating
13116         BIT_FIELD_REFs of structure bases.
13117         (fold_binary): Likewise.
13118         (fold_ternary): Position and size of BIT_FIELD_REFs are
13119         always host integers.
13120         (make_bit_field_ref): Remove.
13121         (optimize_bit_field_compare): Remove.
13122         (all_ones_mask_p): Remove.
13123
13124 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
13125
13126         PR gcc/33009
13127         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
13128         (split_block_and_df_analyze): New. Split basic block and rebuild
13129         dataflow.
13130         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
13131         SPLIT_BLOCK.
13132         (split_pattern_seq): Likewise.
13133         (erase_matching_seqs): Likewise.
13134         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
13135
13136 2008-03-04  Geoff Keating  <geoffk@apple.com>
13137
13138         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
13139         declaration and code.
13140         (tree_invalid_nonnegative_warnv_p): Likewise.
13141
13142 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
13143
13144         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
13145         examples.  Truncate option-names then causing overfull hbox.
13146
13147 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13148
13149         PR target/35222
13150         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
13151         on hpux10.
13152         * configure: Rebuilt.
13153
13154 2008-03-04  Rafael Espindola  <espindola@google.com>
13155
13156         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
13157         (tree_unary_nonnegative_warnv_p): New.
13158         (tree_binary_nonnegative_warnv_p): New.
13159         (tree_single_nonnegative_warnv_p): New.
13160         (tree_invalid_nonnegative_warnv_p): New.
13161         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
13162
13163 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13164
13165         PR 28322
13166         * opts.c (handle_option): Postpone 'unknown option' errors only for
13167         warning options.
13168
13169 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
13170
13171         PR target/35453
13172         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
13173         (_SIDD_XXX): This.
13174
13175 2008-03-04  Rafael Espindola  <espindola@google.com>
13176
13177         * fold-const.c (tree_unary_nonzero_warnv_p): New.
13178         (tree_binary_nonzero_warnv_p): New.
13179         (tree_single_nonzero_warnv_p): New.
13180         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
13181
13182 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
13183
13184         PR middle-end/35456
13185         * fold-const.c (fold_cond_expr_with_comparison): Prevent
13186         transformations for modes that have signed zeros.
13187         * ifcvt.c (noce_try_abs): Ditto.
13188
13189 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
13190
13191         * config/i386/i386.c (override_options): Force
13192         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
13193
13194 2008-03-04  Jan Hubicka  <jh@suse.cz>
13195
13196         PR c++/35262
13197         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
13198         in last commit.
13199
13200 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
13201
13202         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
13203         label to probe the stack.
13204
13205 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
13206
13207         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
13208         (__gthr_win32_mutex_destroy): Declare.
13209         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
13210         __gthr_win32_mutex_destroy.
13211         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
13212
13213 2008-03-03  Jan Hubicka  <jh@suse.cz>
13214
13215         PR c++/35262
13216         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
13217         aggressive on inlining cold calls.
13218
13219 2008-03-03  Richard Guenther  <rguenther@suse.de>
13220
13221         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
13222         struct copies into the expression table.
13223         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
13224         (try_to_simplify): Likewise.
13225         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
13226         integral and pointer arguments which do not change the
13227         precision to NOP_EXPRs.
13228         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
13229         VIEW_CONVERT_EXPR case.
13230
13231 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
13232
13233         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
13234         defined in a loop at depth 0 is invariant.
13235         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
13236         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
13237         be called at loop depth 0.
13238
13239 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
13240
13241         PR driver/35420
13242         * gcc.c (process_command): Update copyright notice dates.
13243         * gcov.c (print_version): Likewise.
13244         * gcov-dump.c (print_version): Likewise.
13245         * mips-tfile.c (main): Likewise.
13246         * mips-tdump.c (main): Likewise.
13247
13248 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13249
13250         PR 24924
13251         * c-common.c (flag_permissive): Delete.
13252         (constant_expression_warnings): Check flags first.
13253         (constant_expression_error): New.
13254         * c-common.h (flag_permissive): Delete.
13255         (constant_expression_error): Declare.
13256         * flags.h (flag_permissive): Declare. Update description.
13257         * diagnostic.c (pedwarn): Update.
13258         (permerror): New.
13259         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
13260         (permissive_error_kind): New.
13261         * toplev.c (flag_permissive): Define. Update description.
13262         * toplev.h (permissive_error_kind): Declare.
13263         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
13264         (pedwarn_c90): Use pedantic_warning_kind.
13265         * c-opts.c (c_common_post_options): flag_permissive does not affect
13266         flag_pedantic_errors.
13267
13268 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
13269
13270         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
13271         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
13272         __absvsi2, __absvDI2): Use unsigned arithmetic.
13273
13274 2008-03-02  Andi Kleen  <ak@suse.de>
13275             Richard Guenther  <rguenther@suse.de>
13276
13277         * struct-equiv.c: Remove file.
13278         * cfg_cleanup.c (condjump_equiv_p): Remove.
13279         * Makefile.in (OBJS-common): Remove struct-equiv.o.
13280         (struct-equiv.o): Remove rule.
13281         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
13282         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
13283         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
13284
13285 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13286
13287         * ifcvt.c (noce_process_if_block): Try to handle only the then
13288         block if the else block exists but isn't suitable.
13289
13290 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13291
13292         PR gcc/35063
13293         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
13294         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
13295         regression from previous patch.
13296
13297 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
13298
13299         PR gcc/35063
13300         * gthr.h: Add __gthread_mutex_destroy as a function that must be
13301         implemented.
13302         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
13303         * gthr-single.h (__gthread_mutex_destroy): Likewise.
13304         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
13305         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
13306         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
13307         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
13308         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
13309         (__gthread_mutex_destroy_function): Rename to
13310         __gthread_mutex_destroy.
13311         * gthr-dce.h (__gthread_mutex_destroy): Call
13312         pthread_mutex_destroy.
13313         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
13314         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
13315         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
13316
13317 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13318
13319         * df-scan.c (df_ref_chain_change_bb): Simplify.
13320         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
13321         set_block_for_insn if there's any change.
13322         * df.h ((df_insn_change_bb): Fix prototype.
13323         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
13324         df_insn_change_bb, don't call set_block_for_insn.
13325         * emit-rtl.c (reorder_insns): Likewise.
13326         * haifa-sched.c (move_insn): Likewise.
13327
13328 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13329
13330         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
13331
13332 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
13333
13334         * tree-flow-inline.h (next_readonly_imm_use): Return
13335         NULL_USE_OPERAND_P after the end.
13336
13337 2008-03-01  Richard Guenther  <rguenther@suse.de>
13338
13339         PR tree-optimization/35411
13340         * tree-sra.c (sra_build_assignment): Split conversion to
13341         final type to a separate statement if we are not assigning
13342         to a register.
13343
13344 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
13345
13346         * fold-const.c (fold_convertible_p): Correct the logic to follow
13347         that in fold_convert().
13348
13349 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
13350
13351         PR c++/35315
13352         * tree-inline.c (build_duplicate_type): When we make a
13353         duplicate type, make it unique in the canonical types system.
13354
13355 2008-02-29  Tom Tromey  <tromey@redhat.com>
13356
13357         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
13358         input_file_stack_history, input_file_stack_restored): Remove.
13359         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13360         * input.h (struct file_stack): Remove.
13361         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
13362         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
13363         Likewise.
13364         * diagnostic.h (struct diagnostic_context) <last_module>: Change
13365         type.
13366         (diagnostic_last_module_changed): Add 'map' argument.
13367         (diagnostic_set_last_function): Likewise.
13368         * diagnostic.c (undiagnostic_report_current_module): Iterate using
13369         line map, not input_file_stack.
13370         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
13371
13372 2008-02-29  Paul Brook  <paul@codesourcery.com>
13373
13374         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
13375
13376 2008-02-29  Paul Brook  <paul@codesourcery.com>
13377
13378         * config/arm/ieee754-df.S (muldf3): Use RET macros.
13379
13380 2008-02-29  Richard Guenther  <rguenther@suse.de>
13381
13382         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
13383         vn_lookup_or_add.
13384         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
13385         value for comparing for a store match.
13386         (simplify_unary_expression): Do nothing for SSA_NAMEs.
13387         (try_to_simplify): Do not do a full-blown reference lookup.
13388
13389 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13390
13391         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
13392         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
13393
13394         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
13395
13396 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
13397
13398         * tree-loop-linear.c (try_interchange_loops): Compare memory access
13399         strides against cache sizes.
13400
13401 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
13402
13403         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
13404         constant to fpul.
13405
13406 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
13407
13408         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
13409         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
13410         is smaller than the original promoted value.
13411         (simplify_subreg): If OP is a SUBREG, try to preserve its
13412         SUBREG_PROMOTED_VAR_P information.
13413
13414 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
13415
13416         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
13417         (VN_INFO_GET): Allocate new objects on the obstack.
13418         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
13419         for rpo_numbers_temp, for consistency.
13420         (free_scc_vn): Free the obstack.
13421
13422 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
13423
13424         * doc/invoke.texi: Document -ftree-loop-distribution.
13425         * tree-loop-distribution.c: New.
13426         * tree-pass.h (pass_loop_distribution): New.
13427         * graphds.h (struct graph): Add htab_t indices.
13428         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
13429         * tree-vectorizer.c (rename_variables_in_loop): Extern.
13430         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
13431         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
13432         * tree-data-ref.c (debug_data_dependence_relations): New.
13433         (dump_data_dependence_relation): Also print data references.
13434         (free_data_ref): Extern.
13435         (same_access_functions): Moved...
13436         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
13437         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13438         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
13439         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
13440         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
13441         (stmts_from_loop): Skip LABEL_EXPR.
13442         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
13443         New.
13444         (build_rdg): Initialize rdg->indices htab.
13445         (free_rdg, stores_from_loop, ref_base_address,
13446         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
13447         have_similar_memory_accesses_1, ref_base_address_1,
13448         remove_similar_memory_refs): New.
13449         * tree-data-ref.h: Depend on tree-chrec.h.
13450         (debug_data_dependence_relations, free_data_ref): Declared.
13451         (same_access_functions): ... here.
13452         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
13453         New.
13454         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
13455         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
13456         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
13457         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
13458         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
13459         rdg_vertex_for_stmt): Declared.
13460         (struct rdg_edge): Add level.
13461         (RDGE_LEVEL): New.
13462         (free_rdg, stores_from_loop, remove_similar_memory_refs,
13463         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
13464         Declared.
13465         (rdg_has_similar_memory_accesses): New.
13466         * tree-vect-analyze.c: Remove unused static decls.
13467         * lambda.h (dependence_level): New.
13468         * common.opt (ftree-loop-distribution): New.
13469         * tree-flow.h (mark_virtual_ops_in_bb, 
13470         slpeel_tree_duplicate_loop_to_edge_cfg,
13471         rename_variables_in_loop): Declared.
13472         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
13473         (OBJS-common): Add tree-loop-distribution.o.
13474         (tree-loop-distribution.o): New rule.
13475         * tree-cfg.c (mark_virtual_ops_in_bb): New.
13476         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
13477         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
13478
13479 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
13480
13481         PR target/33963
13482         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
13483         other than structures and unions.
13484
13485 2008-02-28  Richard Guenther  <rguenther@suse.de>
13486
13487         Revert:
13488         2008-02-26  Richard Guenther  <rguenther@suse.de>
13489
13490         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13491         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13492         (lookup_decl_from_uid): Declare.
13493         (remove_decl_from_map): Likewise.
13494         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13495         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13496         (decl_for_uid_map): New global hashtable mapping DECL_UID
13497         to the decl tree.
13498         (init_ttree): Allocate it.
13499         (insert_decl_to_uid_decl_map): New helper function.
13500         (make_node_stat): Insert new decls into the map.
13501         (copy_node_stat): Likewise.
13502         (lookup_decl_from_uid): New function.
13503         (remove_decl_from_map): Likewise.
13504         (print_decl_for_uid_map_statistics): New helper.
13505         (dump_tree_statistics): Call it.
13506
13507         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13508         (referenced_var_iterator): Adjust.
13509         (FOR_EACH_REFERENCED_VAR): Adjust.
13510         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13511         (num_referenced_vars): Adjust.
13512         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13513         (first_referenced_var): Remove.
13514         (end_referenced_vars_p): Likewise.
13515         (next_referenced_var): Likewise.
13516         (referenced_var_iterator_set): New helper function.
13517         * tree-dfa.c (referenced_var_lookup): Adjust.
13518         (referenced_var_check_and_insert): Likewise.
13519         (remove_referenced_var): Likewise.
13520         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13521         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13522         (verify_call_clobbering): Likewise.
13523         (verify_memory_partitions): Likewise.
13524         (init_tree_ssa): Allocate bitmap instead of hashtable for
13525         referenced_vars.
13526         (delete_tree_ssa): Adjust.
13527         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13528         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13529         (compute_tag_properties): Likewise.
13530         (set_initial_properties): Likewise.
13531         (find_partition_for): Likewise.
13532         (update_reference_counts): Likewise.
13533         (dump_may_aliases_for): Likewise.
13534         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13535         (add_call_clobber_ops): Likewise.
13536         (add_call_read_ops): Likewise.
13537         (get_asm_expr_operands): Likewise.
13538         * tree-into-ssa.c (dump_decl_set): Likewise.
13539         (update_ssa): Likewise.
13540         * tree-sra.c (scan_function): Likewise.
13541         (decide_instantiations): Likewise.
13542         (scalarize_parms): Likewise.
13543         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13544         (dsa_named_for): Likewise.
13545         * tree-ssa-structalias.c (update_alias_info): Likewise.
13546         (merge_smts_into): Likewise.
13547
13548 2008-02-27  David Daney  <ddaney@avtrex.com>
13549
13550         PR target/34409
13551         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
13552         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
13553         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
13554         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
13555         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
13556
13557 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
13558
13559         PR target/25477
13560         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
13561         (BUILT_IN_NEXTTOWARD): Remove.
13562         (BUILT_IN_NEXTTOWARDF): Ditto.
13563         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
13564         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
13565
13566 2008-02-27  Tom Tromey  <tromey@redhat.com>
13567
13568         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
13569         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
13570
13571 2008-02-27  Jan Beulich  <jbeulich@novell.com>
13572
13573         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
13574         update the respective field on newdecl.
13575
13576 2008-02-27  Revital Eres  <eres@il.ibm.com>
13577
13578         PR rtl-optimization/34999
13579         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
13580         crossing edges that ends with a call insn.
13581         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
13582         call insn and clear the EDGE_CROSSING flag of the crossing edge
13583         when fixing fallthru edges.
13584
13585 2008-02-27  Richard Guenther  <rguenther@suse.de>
13586
13587         PR middle-end/35390
13588         * fold-const.c (fold_unary): Return the correct argument,
13589         converted to the result type.
13590
13591 2008-02-27  Richard Guenther  <rguenther@suse.de>
13592
13593         PR middle-end/34971
13594         * expr.c (expand_expr_real_1): Assert on rotates that operate
13595         on partial modes.
13596         * fold-const.c (fold_binary): Use the types precision, not the
13597         bitsize of the mode if folding rotate expressions.  Build rotates
13598         only for full modes.
13599
13600 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
13601
13602         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
13603         and CPP_PRAGMA_EOL.
13604         * c-pragma.c (pragma_ns_name): New typedef.
13605         (registered_pp_pragmas): New variable.
13606         (c_pp_lookup_pragma): New function.
13607         (c_register_pragma_1): If flag_preprocess_only, do nothing
13608         for non-expanded pragmas, for expanded ones push pragma's
13609         namespace and name into registered_pp_pragmas vector.
13610         (c_invoke_pragma_handler): Register OpenMP pragmas even when
13611         flag_preprocess_only, don't register GCC pch_preprocess
13612         pragma if flag_preprocess_only.
13613         * c-opts.c (c_common_init): Call init_pragma even if
13614         flag_preprocess_only.
13615         * c-pragma.c (c_pp_lookup_pragma): New prototype.
13616         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
13617         cpp_register_pragma if flag_preprocess_only.
13618
13619 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13620
13621         PR c/28800
13622         * c-parser.c (c_parser_translation_unit): Warn for empty
13623         translation unit, not empty source file.
13624
13625 2008-02-26  Paul Brook  <paul@codesourcery.com>
13626
13627         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
13628         operand for Thumb-2.
13629         * config/arm/arm.h (reg_class): Add CORE_REGS.
13630         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
13631         (BASE_REG_CLASS): Use CORE_REGS.
13632         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
13633         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
13634         (REGNO_OK_FOR_INDEX_P): Exclude SP.
13635         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
13636         ARM_REGNO_OK_FOR_INDEX_P.
13637         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
13638         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
13639         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
13640         (ldm/stm peepholes): Ditto.
13641         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
13642         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
13643         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
13644         * config/arm/constraints.md: Enable "k" constraint on ARM.
13645
13646 2008-02-27  Ben Elliston  <bje@au.ibm.com>
13647
13648         * config/rs6000/rs6000.c: Annotate cache line size field in all
13649         instances of struct processor_costs.
13650
13651 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
13652
13653         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
13654         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
13655         jump_bypass): New counters.
13656         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
13657         * dce.c (gate_ud_dce): Same.
13658         (gate_fast_dce): Same.
13659         * dse.c (gate_dse1): New function.
13660         (gate_dse2): New function.
13661         (gate_dse): Merge results of new gate functions.
13662         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
13663         (gate_handle_jump_bypass): Add dbg_cnt.
13664         (gate_handle_gcse): Add dbg_cnt.
13665         * ifcvt.c (gate_handle_if_conversion): Same.
13666         (gate_handle_if_after_combine): Same.
13667         (gate_handle_if_after_reload): Same.
13668         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
13669
13670 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
13671
13672         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
13673         line sizes.
13674         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
13675
13676 2008-02-26  Jason Merrill  <jason@redhat.com>
13677
13678         PR c++/35315
13679         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
13680         alone if it's the naming decl for the type's main variant.
13681
13682 2008-02-26  Tom Tromey  <tromey@redhat.com>
13683
13684         * system.h (USE_MAPPED_LOCATION): Poison.
13685         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
13686         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
13687         (make_goto_expr_edges): Likewise.
13688         (remove_bb): Likewise.
13689         (execute_warn_function_return): Likewise.
13690         * basic-block.h (struct edge_def) <goto_locus>: Change type to
13691         location_t.
13692         * c-common.c (fname_decl): Remove old location code.
13693         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
13694         location code.
13695         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
13696         variant.
13697         (ASM_INPUT_SOURCE_LOCATION): Likewise.
13698         (gen_rtx_ASM_INPUT): Likewise.
13699         (gen_rtx_ASM_INPUT_loc): Likewise.
13700         (get_rtx_asm_OPERANDS): Remove.
13701         * cfglayout.c (insn_locators_alloc): Remove old location code.
13702         (set_curr_insn_source_location): Likewise.
13703         (curr_insn_locator): Likewise.
13704         * print-tree.c (print_node): Remove old location code.
13705         * tree-mudflap.c (mf_varname_tree): Remove old location code.
13706         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
13707         * cfgexpand.c (expand_gimple_cond_expr): Don't use
13708         location_from_locus.
13709         (construct_exit_block): Remove old location code.
13710         * emit-rtl.c (force_next_line_note): Remove old location code.
13711         * profile.c (branch_prob): Remove old location code.
13712         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
13713         LOC_LINE): Remove old-location variants.
13714         * langhooks.c (lhd_print_error_function): Remove old location
13715         code.
13716         * configure, config.in: Rebuilt.
13717         * configure.ac (--enable-mapped-location): Remove.
13718         * c-decl.c (c_init_decl_processing): Remove old location code.
13719         (finish_function): Likewise.
13720         * recog.c (decode_asm_operands): Remove old location code.
13721         * c-pch.c (c_common_read_pch): Remove old location code.
13722         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
13723         variants.
13724         * gimple-low.c (lower_function_body): Remove old location code.
13725         * toplev.c (unknown_location): Remove.
13726         (push_srcloc): Remove old-location variant.
13727         (process_options): Remove old location code.
13728         (lang_dependent_init): Likewise.
13729         * input.h (UNKNOWN_LOCATION): Move definition.
13730         (location_t): Undeprecate.
13731         (source_locus): Remove.
13732         (location_from_locus): Remove.
13733         (struct location_s): Remove.
13734         Remove all old-location code.
13735         (input_line, input_filename): Remove.
13736         * final.c (final_scan_insn): Remove old location code.
13737         * diagnostic.c (diagnostic_build_prefix): Remove
13738         USE_MAPPED_LOCATION test.
13739         * tree.h (gimple_stmt) <locus>: Now a location_t.
13740         (tree_exp) <locus>: Likewise.
13741         (DECL_IS_BUILTIN): Remove old-location variant.
13742         (annotate_with_file_line, annotate_with_locus): Likewise.
13743         (expr_locus, set_expr_locus): Update.
13744         * tree.c (build1_stat): Remove old location code.
13745         (last_annotated_node): Remove.
13746         (annotate_with_file_line): Remove old-location variant.
13747         (annotate_with_locus): Likewise.
13748         (expr_location): Remove old location code.
13749         (set_expr_location): Likewise.
13750         (expr_has_location): Likewise.
13751         (expr_locus): Likewise.
13752         (set_expr_locus): Likewise.
13753         (expr_filename): Don't use location_from_locus.
13754         (expr_lineno): Likewise.
13755         * rtl-error.c (location_for_asm): Remove old location code.
13756         * c-lex.c (cb_line_change): Remove old location code.
13757         (fe_file_change): Likewise.
13758         (cb_def_pragma): Likewise.
13759         (c_lex_with_flags): Likewise.
13760         * gengtype.c (do_typedef): Don't special-case location types.
13761         (define_location_structures): Remove.
13762         (main): Don't call define_location_structures.
13763         * tree-pretty-print.c (dump_implicit_edges): Remove old location
13764         code.
13765
13766 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13767
13768         PR 26264
13769         * builtins.def (BUILT_IN_STDARG_START): Remove.
13770         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
13771         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
13772         * tree-inline.c (inline_forbidden_p_1): Likewise.
13773         
13774 2008-02-26  Richard Guenther  <rguenther@suse.de>
13775
13776         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13777         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13778         (lookup_decl_from_uid): Declare.
13779         (remove_decl_from_map): Likewise.
13780         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13781         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13782         (decl_for_uid_map): New global hashtable mapping DECL_UID
13783         to the decl tree.
13784         (init_ttree): Allocate it.
13785         (insert_decl_to_uid_decl_map): New helper function.
13786         (make_node_stat): Insert new decls into the map.
13787         (copy_node_stat): Likewise.
13788         (lookup_decl_from_uid): New function.
13789         (remove_decl_from_map): Likewise.
13790         (print_decl_for_uid_map_statistics): New helper.
13791         (dump_tree_statistics): Call it.
13792
13793         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13794         (referenced_var_iterator): Adjust.
13795         (FOR_EACH_REFERENCED_VAR): Adjust.
13796         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13797         (num_referenced_vars): Adjust.
13798         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13799         (first_referenced_var): Remove.
13800         (end_referenced_vars_p): Likewise.
13801         (next_referenced_var): Likewise.
13802         (referenced_var_iterator_set): New helper function.
13803         * tree-dfa.c (referenced_var_lookup): Adjust.
13804         (referenced_var_check_and_insert): Likewise.
13805         (remove_referenced_var): Likewise.
13806         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13807         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13808         (verify_call_clobbering): Likewise.
13809         (verify_memory_partitions): Likewise.
13810         (init_tree_ssa): Allocate bitmap instead of hashtable for
13811         referenced_vars.
13812         (delete_tree_ssa): Adjust.
13813         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13814         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13815         (compute_tag_properties): Likewise.
13816         (set_initial_properties): Likewise.
13817         (find_partition_for): Likewise.
13818         (update_reference_counts): Likewise.
13819         (dump_may_aliases_for): Likewise.
13820         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13821         (add_call_clobber_ops): Likewise.
13822         (add_call_read_ops): Likewise.
13823         (get_asm_expr_operands): Likewise.
13824         * tree-into-ssa.c (dump_decl_set): Likewise.
13825         (update_ssa): Likewise.
13826         * tree-sra.c (scan_function): Likewise.
13827         (decide_instantiations): Likewise.
13828         (scalarize_parms): Likewise.
13829         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13830         (dsa_named_for): Likewise.
13831         * tree-ssa-structalias.c (update_alias_info): Likewise.
13832         (merge_smts_into): Likewise.
13833
13834 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13835
13836         PR 34351
13837         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
13838         * c-opts.c (c_common_handle_option): Wall enables
13839         Wvolatile-register-var.
13840         * common.opt: Move Wvolatile-register-var to...
13841         * c.opt: ...here.
13842         
13843 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13844
13845         * common.opt (Wlarger-than=): New.
13846         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
13847         -Wlarger-than=.
13848         * opts.c (common_handle_option): Handle -Wlarger-than=.
13849         * optc-gen.awk: Likewise.
13850         * opth-gen.awk: Likewise.
13851         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
13852         * tree-optimize.c (tree_rest_of_compilation): Likewise.
13853         
13854 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13855
13856         * c-common.c (match_case_to_enum_1): Add appropriate
13857         OPT_W* parameter to warning.
13858         (c_do_switch_warnings): Likewise.
13859         * c-typeck.c (warning_init): Add one more parameter following
13860         'warning' function.
13861         (push_init_level): Update call to warning_init.
13862         (pop_init_level): Likewise.
13863         (add_pending_init): Likewise.
13864         (output_init_element: Likewise.
13865
13866 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13867
13868         PR 28322
13869         * toplev.c (toplev_main): If there are warnings or error, print
13870         errors for ignored options.
13871         * opts.c (ignored_options): New static variable.
13872         (postpone_unknown_option_error): New.
13873         (print_ignored_options): New.
13874         (handle_option): Postpone errors for unknown -Wno-* options.
13875         * opts.h (print_ignored_options): Declare.
13876         
13877 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
13878
13879         * config/mips/mips.md (loadgp_blockage, blockage): Change type
13880         to "ghost".
13881
13882 2008-02-25  Richard Guenther  <rguenther@suse.de>
13883
13884         Revert:
13885         2008-02-25  Richard Guenther  <rguenther@suse.de>
13886
13887         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13888         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13889         (lookup_decl_from_uid): Declare.
13890         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13891         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13892         (decl_for_uid_map): New global hashtable mapping DECL_UID
13893         to the decl tree.
13894         (init_ttree): Allocate it.
13895         (insert_decl_to_uid_decl_map): New helper function.
13896         (make_node_stat): Insert new decls into the map.
13897         (copy_node_stat): Likewise.
13898         (lookup_decl_from_uid): New function.
13899         (print_decl_for_uid_map_statistics): New helper.
13900         (dump_tree_statistics): Call it.
13901
13902         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13903         (referenced_var_iterator): Adjust.
13904         (FOR_EACH_REFERENCED_VAR): Adjust.
13905         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13906         (num_referenced_vars): Adjust.
13907         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13908         (first_referenced_var): Remove.
13909         (end_referenced_vars_p): Likewise.
13910         (next_referenced_var): Likewise.
13911         (referenced_var_iterator_set): New helper function.
13912         * tree-dfa.c (referenced_var_lookup): Adjust.
13913         (referenced_var_check_and_insert): Likewise.
13914         (remove_referenced_var): Likewise.
13915         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13916         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13917         (verify_call_clobbering): Likewise.
13918         (verify_memory_partitions): Likewise.
13919         (init_tree_ssa): Allocate bitmap instead of hashtable for
13920         referenced_vars.
13921         (delete_tree_ssa): Adjust.
13922         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
13923         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13924         (compute_tag_properties): Likewise.
13925         (set_initial_properties): Likewise.
13926         (find_partition_for): Likewise.
13927         (update_reference_counts): Likewise.
13928         (dump_may_aliases_for): Likewise.
13929         * tree-ssa-operands.c (add_virtual_operand): Likewise.
13930         (add_call_clobber_ops): Likewise.
13931         (add_call_read_ops): Likewise.
13932         (get_asm_expr_operands): Likewise.
13933         * tree-into-ssa.c (dump_decl_set): Likewise.
13934         (update_ssa): Likewise.
13935         * tree-sra.c (scan_function): Likewise.
13936         (decide_instantiations): Likewise.
13937         (scalarize_parms): Likewise.
13938         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
13939         (dsa_named_for): Likewise.
13940         * tree-ssa-structalias.c (update_alias_info): Likewise.
13941         (merge_smts_into): Likewise.
13942
13943 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13944
13945         PR fortran/29549
13946         * doc/invoke.texi (-fcx-limited-range): Document new option.
13947         * toplev.c (process_options): Handle -fcx-fortran-rules.
13948         * common.opt: Add documentation for -fcx-fortran-rules.
13949
13950 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
13951
13952         PR c/35162
13953         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
13954         actual behaviour and C99.
13955         
13956 2008-02-26  Ben Elliston  <bje@au.ibm.com>
13957
13958         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
13959         (ASM_CPU_POWER6_SPEC): Likewise.
13960         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
13961         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
13962         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
13963
13964 2008-02-25  Richard Guenther  <rguenther@suse.de>
13965
13966         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
13967         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
13968         (lookup_decl_from_uid): Declare.
13969         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
13970         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
13971         (decl_for_uid_map): New global hashtable mapping DECL_UID
13972         to the decl tree.
13973         (init_ttree): Allocate it.
13974         (insert_decl_to_uid_decl_map): New helper function.
13975         (make_node_stat): Insert new decls into the map.
13976         (copy_node_stat): Likewise.
13977         (lookup_decl_from_uid): New function.
13978         (print_decl_for_uid_map_statistics): New helper.
13979         (dump_tree_statistics): Call it.
13980
13981         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
13982         (referenced_var_iterator): Adjust.
13983         (FOR_EACH_REFERENCED_VAR): Adjust.
13984         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
13985         (num_referenced_vars): Adjust.
13986         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
13987         (first_referenced_var): Remove.
13988         (end_referenced_vars_p): Likewise.
13989         (next_referenced_var): Likewise.
13990         (referenced_var_iterator_set): New helper function.
13991         * tree-dfa.c (referenced_var_lookup): Adjust.
13992         (referenced_var_check_and_insert): Likewise.
13993         (remove_referenced_var): Likewise.
13994         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
13995         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
13996         (verify_call_clobbering): Likewise.
13997         (verify_memory_partitions): Likewise.
13998         (init_tree_ssa): Allocate bitmap instead of hashtable for
13999         referenced_vars.
14000         (delete_tree_ssa): Adjust.
14001         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
14002         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
14003         (compute_tag_properties): Likewise.
14004         (set_initial_properties): Likewise.
14005         (find_partition_for): Likewise.
14006         (update_reference_counts): Likewise.
14007         (dump_may_aliases_for): Likewise.
14008         * tree-ssa-operands.c (add_virtual_operand): Likewise.
14009         (add_call_clobber_ops): Likewise.
14010         (add_call_read_ops): Likewise.
14011         (get_asm_expr_operands): Likewise.
14012         * tree-into-ssa.c (dump_decl_set): Likewise.
14013         (update_ssa): Likewise.
14014         * tree-sra.c (scan_function): Likewise.
14015         (decide_instantiations): Likewise.
14016         (scalarize_parms): Likewise.
14017         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
14018         (dsa_named_for): Likewise.
14019         * tree-ssa-structalias.c (update_alias_info): Likewise.
14020         (merge_smts_into): Likewise.
14021
14022 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
14023
14024         PR target/35258
14025         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
14026         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
14027         * alias.h (nonoverlapping_memrefs_p): Likewise.
14028
14029 2008-02-25  Jan Beulich  <jbeulich@novell.com>
14030
14031         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
14032         * config/i386/netware-libgcc.exp: Add __bswap?i2,
14033         __emultls_get_address, __emultls_register_common,
14034         __floatundi?f, and _Unwind_GetIPInfo.
14035         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
14036         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
14037         (gen_regparm_prefix): Likewise.
14038         (i386_nlm_encode_section_info): Sync with
14039         config/i386/winnt.c:i386_pe_encode_section_info().
14040         (i386_nlm_maybe_mangle_decl_assembler_name): New.
14041         i386_nlm_mangle_decl_assembler_name): New.
14042         (netware_override_options): New.
14043         * config/i386/netware.h (netware_override_options): Declare.
14044         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
14045         (i386_nlm_mangle_decl_assembler_name): Declare.
14046         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
14047
14048 2008-02-25  Ben Elliston  <bje@au.ibm.com>
14049
14050         PR other/32948
14051         * c-decl.c (grokdeclarator): Remove unused local variables
14052         `typedef_type' and `type_as_written'.
14053         * bb-reorder.c
14054         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
14055         unused local variable `has_hot_blocks'.
14056         (fix_crossing_conditional_branches): Remove unused local variable
14057         `prev_bb'.
14058         
14059 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
14060
14061         PR middle-end/19984
14062         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
14063         using DEF_C99_BUILTIN.
14064         (BUILT_IN_NANF): Ditto.
14065         (BUILT_IN_NANL): Ditto.
14066
14067 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
14068             Revital Eres  <eres@il.ibm.com>
14069
14070         * modulo-sched.c (calculate_must_precede_follow): Address TODO
14071         regarding the order of two dependent insns in the same row.
14072
14073 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
14074
14075         * stor-layout.c (layout_decl): Do not bump the alignment of a
14076         bit-field to more than byte alignment if it is packed.
14077
14078 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
14079
14080         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
14081         e300c2 and e300c3.
14082
14083 2008-02-24  Diego Novillo  <dnovillo@google.com>
14084
14085         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
14086
14087         PR 33738
14088         * tree-vrp.c (vrp_evaluate_conditional): With
14089         -Wtype-limits, emit a warning when comparing against a
14090         constant outside the natural range of OP0's type.
14091         * c.opt (Wtype-limits): Move ...
14092         * common.opt (Wtype-limits): ... here.
14093
14094 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
14095
14096         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
14097         * config/rs6000/e300c2c3.md: New file.
14098         * config/rs6000/rs6000.c (processor_costs): Add new costs for
14099         e300c2 and e300c3.
14100         (rs6000_override_options): Add e300c2 and e300c3 cases to
14101         processor_target_table. Do not allow usage of Altivec or Spe
14102         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
14103         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
14104         * config/rs6000/rs6000.h (processor_type): Add
14105         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
14106         (ASM_CPU_SPEC): Add e300c2 and e300c3.
14107         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
14108         and ppce300c3. Include e300c2c3.md.
14109
14110 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
14111
14112         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
14113         instead of TARGET_STRICT_ALIGN.
14114
14115 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
14116
14117         * explow.c (memory_address): Assert that the generated address is
14118         valid.
14119
14120 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
14121
14122         PR target/25477
14123         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
14124         * config/darwin-ppc-ldouble-patch.def: New file.
14125         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
14126         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
14127         SUBTARGET_INIT_BUILTINS if defined.
14128         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
14129         New functions.
14130
14131 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14132
14133         PR rtl-opt/33512
14134         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
14135         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
14136
14137 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14138
14139         PR pch/35027
14140         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
14141         file" warning condtional on -Winvalid-PCH.
14142
14143 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
14144
14145         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
14146
14147 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
14148
14149         PR target/22076
14150         PR target/34256 
14151         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
14152         prevent reload from using MMX registers.
14153         (*mov<mode>_internal): Ditto.
14154         (*movv2sf_internal_rex64): Ditto.
14155         (*movv2sf_internal): Ditto.
14156
14157 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14158
14159         PR documentation/31569
14160         * doc/install.texi2html: Use makeinfo --no-number-sections.
14161
14162 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
14163
14164         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
14165         ensure that we can address an entire entity > 8 bytes.  Don't
14166         generate reg+reg addressing for such data.
14167
14168 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
14169
14170         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
14171         strings when optimizing for size, unless the target cares about
14172         alignment.
14173
14174 2008-02-22  Tom Tromey  <tromey@redhat.com>
14175
14176         * regclass.c (current_pass): Remove declaration.
14177
14178 2008-02-22  Anatoly Sokolov <aesok@post.ru>
14179
14180         * config/avr/libgcc.S (__RAMPZ__): Define.
14181         (__do_copy_data): Add for devices with 128KB code memory.
14182
14183 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
14184
14185         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
14186         Use spe_abi.
14187         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
14188
14189 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
14190
14191         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
14192         GENNONACR_REGS.
14193
14194 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14195
14196         PR c/19999
14197         * c-typeck.c (build_binary_op): Warn about floating point
14198         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
14199
14200 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
14201
14202         PR target/34526
14203         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
14204         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
14205         add vrsave.
14206         (rs6000_override_options): Set altivec_abi as default, not override,
14207         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
14208         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
14209         is used; use new member spe_abi.
14210         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
14211         spe_abi and altivec_abi.
14212
14213 2008-02-22  Tomas Bily  <tbily@suse.cz>
14214
14215         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
14216
14217 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14218
14219         PR bootstrap/35273
14220         * config.build (build_file_translate): Set to `CMD //c' only if
14221         it works.
14222         * Makefile.in (build_file_translate): Improve comment.
14223
14224 2008-02-21  Jan Hubicka  <jh@suse.cz>
14225
14226         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
14227         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
14228         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
14229
14230 2008-02-21  Michael Matz  <matz@suse.de>
14231
14232         PR target/35264
14233         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
14234
14235 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
14236
14237         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
14238         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
14239         as insn constraint.
14240         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
14241         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
14242         SSE_VEC_FLOAT_MODE_P as insn constraint.
14243         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
14244         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
14245         sse4a_movntdf using MODEF mode iterator.
14246         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
14247         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
14248         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
14249         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
14250         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
14251         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
14252         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
14253
14254 2008-02-21  Richard Guenther  <rguenther@suse.de>
14255
14256         * tree.def (PAREN_EXPR): New tree code.
14257         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
14258         and PAREN_EXPR.
14259         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
14260         * expr.c (expand_expr_real_1): Likewise.
14261         * tree-inline.c (estimate_num_insns_1): Likewise.
14262         * tree-complex.c (expand_complex_move): Likewise.
14263         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
14264         as plain x.
14265
14266 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14267
14268         PR target/35225
14269         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
14270
14271 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14272
14273         PR target/35190
14274         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
14275
14276         * config/sh/sh.c (find_barrier): Don't go past
14277         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
14278
14279 2008-02-20  DJ Delorie  <dj@redhat.com>
14280
14281         * config/h8300/h8300.md (insv): Force source operand to be a register.
14282
14283         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
14284         as a jump, not as a plain insn.
14285         
14286 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
14287
14288         * doc/invoke.texi (Warning Options): Add new option
14289         -Wframe-larger-than=.
14290         (-Wframe-larger-than): Document.
14291
14292         * flags.h (warn_frame_larger_than, frame_larger_than_size):
14293         Add declarations for new option variables.
14294
14295         * final.c (final_start_function): Check the frame size
14296         before emission and issue a Wframe-larger-than warning.
14297
14298         * opts.c (warn_frame_larger_than, frame_larger_than_size):
14299         Add definitions for new option variables.
14300         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
14301
14302         * common.opt (Wframe-larger-than=): New option.
14303
14304 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14305
14306         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
14307         (<sse>_div<mode>3): Ditto.
14308         (<sse>_vmdiv<mode>3): Ditto.
14309         (<sse>_vmsqrt<mode>2): Ditto.
14310         (*smax<mode>3): Ditto.
14311         (sse5_frcz<mode>2): Ditto.
14312         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
14313         as insn constraint.
14314
14315 2008-02-20  Richard Guenther  <rguenther@suse.de>
14316
14317         PR middle-end/35265
14318         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
14319         be happy with INTEGRAL_TYPE_P.
14320
14321 2008-02-20  Richard Guenther  <rguenther@suse.de>
14322
14323         * fold-const.c (split_tree): Associate floatig-point expressions
14324         if flag_associative_math is set.
14325
14326 2008-02-20  Richard Guenther  <rguenther@suse.de>
14327
14328         * tree.h (fold_real_zero_addition_p): Declare.
14329         * fold-const.c (fold_real_zero_addition_p): Export.
14330         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
14331         floating-point operations with zero and one.
14332
14333 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
14334
14335         * doc/install.texi: Correct references to CFLAGS, replacing them
14336         with BOOT_CFLAGS.  Document flags used during bootstrap for
14337         target libraries.
14338                                 
14339 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
14340
14341         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
14342         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
14343         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
14344         insn constraint.
14345         (smin<mode>3): Ditto from similar patterns.
14346         (smax<mode>3): Ditto.
14347         (*ieee_smin<mode>3): Ditto.
14348         (*ieee_smax<mode>3): Ditto.
14349         * config/i386/sse.md (sse): New mode attribute.
14350         (mov<mode>): Macroize expander from movv4sf and movv2df using
14351         SSEMODEF2P mode iterator.
14352         (<sse>_movnt<mode>): Ditto from similar patterns. Use
14353         SSE_VEC_FLOAT_MODE_P as insn constraint.
14354         (storent<mode>): Ditto.
14355         (storent<mode>): Macroize expander from storentsf and storentdf using
14356         MODEF mode iterator.
14357         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
14358         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
14359         (abs<mode>2): Ditto from similar patterns.
14360         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
14361         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
14362         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
14363         (<sse>_vmsqrt<mode>2): Ditto.
14364         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
14365         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
14366         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
14367         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
14368         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
14369         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
14370         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
14371         insn constraint.
14372         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
14373         iterator and SSE_FLOAT_MODE_P as insn constraint.
14374         (<sse>_ucomi): Ditto from similar patterns.
14375         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
14376         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
14377         SSE_VEC_FLOAT_MODE_P as insn constraint.
14378         (vcond<mode>): Ditto from similar patterns.
14379         (and<mode>3, *and<mode>3): Ditto.
14380         (<sse>_nand<mode>3): Ditto.
14381         (ior<mode>3, *ior<mode>3): Ditto.
14382         (xor<mode>3, *xor<mode>3): Ditto.
14383         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
14384         iterator and SSE_FLOAT_MODE_P as insn constraint.
14385         (*nand<mode>3): Ditto from similar patterns.
14386         (*ior<mode>3): Ditto.
14387         (*xor<mode>3): Ditto.
14388
14389 2008-02-20  Ira Rosen  <irar@il.ibm.com>
14390
14391         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
14392         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
14393         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
14394
14395 2008-02-19  Jan Hubicka  <jh@suse.cz>
14396
14397         * predict.c (tree_bb_level_predictions): Remove variable next
14398         mistakely introduced by previous commit.
14399
14400 2008-02-19  Jan Hubicka  <jh@suse.cz>
14401
14402         * predict.c (predict_paths_leading_to): Rewrite.
14403         (predict_paths_for_bb): New.
14404         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
14405
14406 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14407
14408         PR bootstrap/35218
14409         * Makefile.in (build_file_translate): New.
14410         (gcc-vers.texi): Use it for translating $(abs_srcdir).
14411         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
14412         * configure.ac (build_file_translate): Substitute it.
14413         * configure: Regenerate.
14414
14415 2008-02-19  Jan Hubicka  <jh@suse.cz>
14416
14417         PR rtl-optimization/34408
14418         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
14419         invalid sharing.
14420
14421 2008-02-19  Jan Hubicka  <jh@suse.cz>
14422
14423         PR middle-end/28779
14424         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
14425         call_expr.
14426
14427 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14428
14429         PR Ada/35186
14430         * config/i386/i386-modes.def: Revert the last DI alignment
14431         change until Ada people can look into it.
14432
14433 2008-02-19  Nick Clifton  <nickc@redhat.com>
14434
14435         * opts.c (print_specific_help): Fix typo in --help text.
14436
14437 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
14438
14439         PR target/35239
14440         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
14441         32-bit inline asm without asm alternatives for host GCC < 3.0.
14442
14443 2008-02-19  Richard Guenther  <rguenther@suse.de>
14444
14445         PR tree-optimization/34989
14446         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
14447         Allow propagation to INDIRECT_REF if we can simplify only.
14448
14449 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14450
14451         * c-common.c (warn_for_collisions_1): Use appropriate option when
14452         warning.
14453
14454 2008-02-19  Nick Clifton  <nickc@redhat.com>
14455
14456         PR other/31349
14457         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
14458         (handle_options): Fix indentation.
14459         (print_filtered_help): If no language-specific options were
14460         displayed tell the user how to list all the options supported by
14461         the language's front-end.
14462         (print_specific_help): Fix indentation and remove duplicate line.
14463         (common_handle_option): Handle the -v option.
14464         For --help enable the display of undocumented options if the -v
14465         switch has been included on the command line.
14466         For --help= check for overlaps in the arguments between the option
14467         classes and the language names and issue a warning when they
14468         cannot be disambiguated.
14469         * c.opt (v): Pass on to the common option handler.
14470
14471 2008-02-19  Revital Eres  <eres@il.ibm.com> 
14472
14473         * modulo-sched.c (sms_schedule): Change dump message when
14474         create_ddg function fails.
14475         (try_scheduling_node_in_cycle): Rename row to cycle.
14476         (print_partial_schedule): Rename CYCLE to ROW.
14477
14478 2008-02-19  Christian Bruel  <christian.bruel@st.com>
14479             Zdenek Dvorak  <ook@ucw.cz>
14480
14481         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
14482
14483 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14484
14485         PR target/33555
14486         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
14487         (*x86_movdicc_0_m1_se): Ditto.
14488
14489 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
14490
14491         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
14492         (CMPtype): Define as __gcc_CMPtype.
14493         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
14494         (CMPtype): Define as __gcc_CMPtype.
14495
14496 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
14497
14498         Support valgrind 3.3 for --enable-checking=valgrind.
14499         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
14500         here.
14501         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
14502         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
14503         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
14504         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
14505         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
14506         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
14507         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
14508         respectively.
14509         * ggc-zone.c: Similar.
14510         * ggc-page.c: Similar.
14511
14512 2008-02-19  Paul Brook  <paul@codesourcery.com>
14513
14514         PR target/35071
14515         * config/arm/ieee754-df.S: Fix do_it typo.
14516         * config/arm/ieee754-sf.S: Fix do_it typo.
14517
14518 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14519
14520         PR target/35189
14521         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
14522         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
14523         (OPTION_MASK_ISA_SSE_SET): Likewise.
14524         (OPTION_MASK_ISA_SSE2_SET): Likewise.
14525         (OPTION_MASK_ISA_SSE3_SET): Likewise.
14526         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
14527         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
14528         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
14529         (OPTION_MASK_ISA_SSE4_SET): Likewise.
14530         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
14531         (OPTION_MASK_ISA_SSE5_SET): Likewise.
14532         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
14533         (OPTION_MASK_ISA_MMX_UNSET): Updated.
14534         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
14535         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
14536         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
14537         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
14538         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
14539         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
14540         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
14541         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
14542         (OPTION_MASK_ISA_SSE4): Removed.
14543         (ix86_handle_option): Turn on bits in ix86_isa_flags and
14544         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
14545         (override_options): Don't turn on implied SSE/MMX bits in
14546         ix86_isa_flags.
14547
14548 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14549
14550         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
14551         32bit host.
14552
14553 2008-02-18  Joey Ye  <joey.ye@intel.com>
14554
14555         PR middle-end/34921
14556         * tree-nested.c (insert_field_into_struct): Set type alignment
14557         to field alignment if the former is less than the latter.
14558
14559 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
14560
14561         * BASE-VER: Set to 4.4.0.
14562
14563 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14564
14565         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
14566         * doc/cfg.texi: Likewise.
14567         * doc/extend.texi: Likewise.
14568         * doc/gty.texi: Likewise.
14569         * doc/invoke.texi: Likewise.
14570         * doc/loop.texi: Likewise.
14571         * doc/md.texi: Likewise.
14572         * doc/passes.texi: Likewise.
14573         * doc/rtl.texi: Likewise.
14574         * doc/sourcebuild.texi: Likewise.
14575         * doc/tm.texi: Likewise.
14576         * doc/tree-ssa.texi: Likewise.
14577
14578 2008-02-17  Richard Guenther  <rguenther@suse.de>
14579
14580         PR middle-end/35227
14581         * tree-complex.c (init_parameter_lattice_values): Handle parameters
14582         without default definition.
14583
14584 2008-02-17  Richard Guenther  <rguenther@suse.de>
14585
14586         PR tree-optimization/35231
14587         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
14588         if A | B != 1.
14589
14590 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
14591
14592         Revert:
14593         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
14594         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14595         libgcc_cmp_return mode.
14596
14597 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14598
14599         PR c/28368
14600         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
14601
14602 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
14603
14604         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
14605         multilibs.
14606
14607 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14608
14609         * doc/c-tree.texi: Use `@.' where appropriate.
14610         * doc/extend.texi: Likewise.
14611         * doc/install.texi: Likewise.
14612         * doc/invoke.texi: Likewise.
14613         * doc/loop.texi: Likewise.
14614         * doc/makefile.texi: Likewise.
14615         * doc/md.texi: Likewise.
14616         * doc/passes.texi: Likewise.
14617         * doc/standards.texi: Likewise.
14618         * doc/tm.texi: Likewise.
14619
14620 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14621
14622         PR middle-end/35196
14623         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
14624         in entry_bb.
14625         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
14626         rather than in entry_bb.
14627
14628 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14629
14630         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
14631         libgcc_cmp_return mode.
14632
14633 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
14634
14635         PR middle-end/35130
14636         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
14637         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
14638
14639 2008-02-15  Richard Guenther  <rguenther@suse.de>
14640             Zdenek Dvorak  <ook@ucw.cz>
14641
14642         PR tree-optimization/35164
14643         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
14644         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
14645         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14646         Only propagate addresses which do not have abnormal SSA_NAMEs
14647         in their operands.
14648
14649 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
14650
14651         PR target/35088
14652         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
14653
14654 2008-02-15  Jan Hubicka  <jh@suse.cz>
14655
14656         PR middle-end/35149
14657         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
14658
14659 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14660
14661         PR middle-end/34621
14662         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
14663         when calculating alignment_pad.
14664
14665 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
14666
14667         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
14668         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
14669         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
14670         and STACK_BOUNDARY define.
14671
14672 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
14673
14674         PR preprocessor/35061
14675         * c-pragma.c (handle_pragma_pop_macro): Check that
14676         pushed_macro_table has been allocated.
14677
14678 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
14679
14680         PR middle-end/35136
14681         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
14682         (force_gimple_operand): Likewise.
14683         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
14684         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
14685         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
14686         (find_interesting_uses_address): Check addressability and alignment
14687         of the base expression only after substituting bases of IVs into it.
14688
14689 2008-02-14  Michael Matz  <matz@suse.de>
14690
14691         PR target/34930
14692         * function.c (instantiate_virtual_regs_in_insn): Reload address
14693         before falling back to reloading the whole operand.
14694
14695 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
14696
14697         * config/s390/s390.c (s390_mainpool_start): Emit the pool
14698         before the first section switch note.
14699
14700 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14701
14702         * doc/bugreport.texi: Update copyright years.
14703         * doc/c-tree.texi: Likewise.
14704         * doc/cfg.texi: Likewise.
14705         * doc/cpp.texi: Likewise.
14706         * doc/cppinternals.texi: Likewise.
14707         * doc/fragments.texi: Likewise.
14708         * doc/frontends.texi: Likewise.
14709         * doc/gcc.texi: Likewise.
14710         * doc/gty.texi: Likewise.
14711         * doc/hostconfig.texi: Likewise.
14712         * doc/implement-c.texi: Likewise.
14713         * doc/libgcc.texi: Likewise.
14714         * doc/loop.texi: Likewise.
14715         * doc/makefile.texi: Likewise.
14716         * doc/options.texi: Likewise.
14717         * doc/passes.texi: Likewise.
14718         * doc/rtl.texi: Likewise.
14719         * doc/sourcebuild.texi: Likewise.
14720         * doc/standards.texi: Likewise.
14721         * doc/tree-ssa.texi: Likewise.
14722         * doc/trouble.texi: Likewise.
14723
14724         * doc/extend.texi: Use @: or add comma where appropriate.
14725         * doc/invoke.texi: Likewise.
14726         * doc/tm.texi: Likewise.
14727
14728 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
14729
14730         PR target/34393
14731         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
14732         to a reg.
14733
14734 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
14735
14736         * doc/md.texi (clz, ctz): Add reference.
14737         * doc/rtl.texi (clz, ctz): Likewise.
14738
14739 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14740
14741         PR other/35148
14742         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
14743         srcdir.
14744
14745 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
14746
14747         * config/s390/s390.c (struct constant_pool): New field
14748         emit_pool_after added.
14749         (s390_mainpool_start): Set the emit_pool_after flag according
14750         to the section switch notes.
14751         (s390_mainpool_finish): Consider emit_pool_after when emitting
14752         the literal pool at the end of the function.
14753         (s390_chunkify_start): Force literal pool splits at section
14754         switch notes.
14755
14756 2008-02-13  Michael Matz  <matz@suse.de>
14757
14758         PR debug/35065
14759         * var-tracking.c (clobber_variable_part): Correctly traverse the
14760         list.
14761
14762 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14763
14764         PR 29673
14765         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
14766         Add -fdump-ipa-inline.
14767         * tree-dump.c (dump_files): Remove tree-inlined dump.
14768         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
14769         
14770 2008-02-12  Richard Guenther  <rguenther@suse.de>
14771
14772         PR tree-optimization/35171
14773         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
14774         default defs.
14775
14776 2008-02-12  Richard Guenther  <rguenther@suse.de>
14777
14778         PR middle-end/35163
14779         * fold-const.c (fold_widened_comparison): Use get_unwidened in
14780         value-preserving mode.  Disallow final truncation.
14781
14782 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
14783
14784         PR middle-end/35136
14785         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
14786         code from here to...
14787         (force_gimple_operand): ...here.
14788
14789 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
14790
14791         PR c++/35144
14792         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
14793         non-compatible pointers.
14794         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
14795         different FIELD_DECLs, try harder by comparing field offsets, sizes
14796         and types.
14797
14798         PR inline-asm/35160
14799         * function.c (match_asm_constraints_1): Don't replace the same input
14800         multiple times.
14801
14802 2008-02-12  Anatoly Sokolov <aesok@post.ru>
14803
14804         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
14805         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
14806         (expand_epilogue): Restore RAMPZ register.
14807         * config/avr/avr.md (RAMPZ_ADDR): New constant.
14808
14809 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
14810
14811         * config/i386/cygwin.asm: (__alloca): Correct calling
14812         convention and alignment.
14813         (__chkstk): Force 8 byte stack alignment.
14814
14815 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
14816             Richard Guenther  <rguenther@suse.de>
14817
14818         PR tree-optimization/33992
14819         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
14820         the zero we compare against.
14821
14822 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
14823
14824         PR libfortran/35063
14825         * gthr-win32.h (__gthread_mutex_destroy_function): New function
14826         to CloseHandle after unlocking to prevent accumulation of handle
14827         count.
14828
14829 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14830
14831         PR middle_end/34150
14832         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
14833         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
14834         and update LABEL_NUSES during and after reload.
14835
14836 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
14837
14838         PR middle-end/34627
14839         * combine.c (simplify_if_then_else): Make sure the comparison is
14840         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
14841
14842 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
14843
14844         PR bootstrap/35051
14845         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
14846         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
14847         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
14848         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
14849         * tree.h (get_type_static_bounds): Likewise.
14850
14851 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14852
14853         * doc/invoke.texi (Option Summary, C++ Dialect Options)
14854         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14855         Make -Wfoo language annotations match what the compiler outputs.
14856
14857 2008-02-08  Sa Liu  <saliu@de.ibm.com>
14858
14859         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
14860         intrinsics spu_convts, spu_convtu, spu_convtf.
14861
14862 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
14863
14864         * doc/extend.texi (Function Attributes) <noinline>: Mention
14865         asm ("") as method to keep calls.
14866
14867 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14868
14869         PR other/32754
14870         * doc/options.texi (Options): Replace references to opts.sh with
14871         optc-gen.awk.
14872         * opts-common.c: Likewise.
14873         * optc-gen.awk: Likewise.
14874         
14875 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
14876
14877         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
14878
14879 2008-02-07  Richard Henderson  <rth@redhat.com>
14880
14881         PR rtl-opt/33410
14882         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
14883         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
14884         funny mode.
14885
14886 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
14887
14888         PR tree-optimization/35085
14889         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
14890         for operand entry oe2 in addition to operand entry oe3 in order to
14891         expose more opportunities for vectorizer sum reduction.
14892
14893 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14894
14895         PR other/35107
14896         * Makefile.in (LIBS): Remove $(GMPLIBS).
14897         (cc1-dummy, cc1): Add $(GMPLIBS).
14898
14899 2008-02-06  Jan Hubicka  <jh@suse.cz>
14900
14901         PR target/23322
14902         * i386.md (moddf_integer): Do not produce partial memory stalls for
14903         targets where it hurts.
14904
14905 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
14906
14907         PR target/35083
14908         * optabs.c (expand_float): Do not check for decimal modes when
14909         expanding unsigned integer through signed conversion.
14910
14911 2008-02-06  Nick Clifton  <nickc@redhat.com>
14912
14913         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
14914         inside the clobber with a match_operand and duplicated operand
14915         number in the constraint.
14916         (ineqbranchsi): Delete redundant comment.
14917
14918 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
14919
14920         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
14921         builtin_define ("__USE_INIT_FINI__").
14922         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
14923         -msx multilibs.
14924         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
14925
14926 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14927
14928         PR documentation/30330
14929         * doc/invoke.texi (C++ Dialect Options)
14930         (Objective-C and Objective-C++ Dialect Options, Warning Options):
14931         For each warning option -Wfoo that allows -Wno-foo, ensure both
14932         -Wfoo and -Wno-foo are listed in the option index.  Fix index
14933         entry of -Wswitch-default, index -Wnormalized= including the
14934         `=', and -Wlarger-than-@var{len} including @var{len}.
14935
14936 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14937
14938         * config/i386/i386.md (floatunssisf2): Use
14939         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
14940         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
14941         Macroize expander using MODEF mode iterator.
14942
14943 2008-02-05  Diego Novillo  <dnovillo@google.com>
14944
14945         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
14946
14947         PR 33738
14948         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
14949
14950 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14951
14952         PR other/35070
14953         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
14954
14955 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
14956
14957         PR target/35084
14958         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
14959         to indicate if a message should be generated.
14960         (init_cumulative_args): Updated.
14961         (function_value_32): Likewise.
14962
14963 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
14964
14965         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
14966
14967 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
14968
14969         PR target/35083
14970         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
14971         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
14972
14973 2008-02-04  Diego Novillo  <dnovillo@google.com>
14974
14975         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
14976
14977         PR 33738
14978         * tree-vrp.c (vrp_evaluate_conditional): With
14979         -Wtype-limits, emit a warning when comparing against a
14980         constant outside the natural range of OP0's type.
14981
14982 2008-02-04  Richard Guenther  <rguenther@suse.de>
14983
14984         PR middle-end/33631
14985         * expr.c (count_type_elements): Give for unions instead of
14986         guessing.
14987
14988 2008-02-04  Richard Guenther  <rguenther@suse.de>
14989
14990         PR middle-end/35043
14991         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
14992         to TYPE_DOMAINs base type instead of using bitsizetype here.
14993
14994 2008-02-03  Jason Merrill  <jason@redhat.com>
14995
14996         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
14997
14998 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14999
15000         PR other/29972
15001         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
15002         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
15003         (RS/6000 and PowerPC Options): Fix typos and markup.
15004         * doc/passes.texi (Tree-SSA passes): Likewise.
15005
15006 2008-02-02  Michael Matz  <matz@suse.de>
15007
15008         PR target/35045
15009         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
15010         from record_last_reg_set_info.
15011         (record_last_reg_set_info): Take an RTX argument, iterate over all
15012         constituent hardregs.
15013         (record_last_set_info, record_opr_changes): Change calls to
15014         new signature or to record_last_reg_set_info_regno.
15015
15016 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
15017
15018         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
15019
15020 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
15021
15022         PR rtl-optimization/34773
15023         * reg-notes.def (EQUAL): Mention significance of combination of
15024         REG_EQUAL and REG_RETVAL.
15025         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
15026         insn that has a REG_RETVAL.
15027
15028 2008-02-01  Roger Sayle  <roger@eyesopen.com>
15029
15030         PR bootstrap/33781
15031         * configure.ac (--enable-fixed-point): Disable unless explicitly
15032         requested on IRIX.
15033         * configure: Regenerate.
15034
15035 2008-02-01  Richard Guenther  <rguenther@suse.de>
15036
15037         PR other/35042
15038         * invoke.texi (-finline-limit): Remove no longer true parts
15039         of the documentation.  Note that there is no default value.
15040
15041 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
15042             Mark Mitchell  <mark@codesourcery.com>
15043             Ben Elliston  <bje@au.ibm.com>
15044
15045         PR c/29326
15046         * doc/extend.texi (Other Builtins): Document.
15047
15048 2008-01-31  Tom Browder <tom.browder@gmail.com>
15049
15050         * doc/c-tree.texi (Types): Fix grammar.
15051         (Expression trees): Ditto.
15052         * doc/passes.texi (Tree-SSA passes): Ditto.
15053         
15054         * doc/configterms.texi (Configure Terms): Fix typo.
15055         * doc/cpp.texi (Common Predefined Macros): Ditto.
15056         * doc/md.texi (Machine Constraints): Ditto.
15057         
15058         * doc/makefile.texi (Makefile): Add comma.
15059
15060 2008-01-31  Tom Browder  <tom.browder@gmail.com>
15061             Gerald Pfeifer  <gerald@pfeifer.com>
15062         
15063         * doc/sourcebuild.texi (Front End): Remove references to CVS
15064         and CVSROOT/modules.
15065         (Texinfo Manuals): Replace reference to CVS by one to SVN.
15066         (Back End): Remove reference to CVS.
15067
15068 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
15069
15070         PR target/34900
15071         * config/mips/mips.c (gen_load_const_gp): New function, taking a
15072         comment from...
15073         (mips16_gp_pseudo_reg): ...here.
15074         * config/mips/mips.md (load_const_gp): Replace with...
15075         (load_const_gp_<mode>): ...this :P-based insn.
15076
15077 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15078
15079         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
15080         options. Minor fixes.
15081         (-std): Move reference to standards closer to where language
15082         standards are first mentioned.
15083         
15084 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
15085
15086         PR rtl-optimization/34995
15087         * reload.c (alternative_allows_const_pool_ref): Take an rtx
15088         parameter and return a bool.  If the rtx parameter is nonnull,
15089         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
15090         (find_reloads): Update call accordingly.  Pass the new operand
15091         if it needed no address reloads, otherwise pass null.
15092
15093 2008-01-30  Richard Henderson  <rth@redhat.com>
15094
15095         PR c/34993
15096         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
15097         for unbounded arrays.
15098
15099 2008-01-30  Silvius Rus  <rus@google.com>
15100
15101         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
15102
15103 2008-01-30  Jan Hubicka  <jh@suse.cz>
15104
15105         PR target/34982
15106         * i386.c (init_cumulative_args): Use real function declaration when
15107         calling locally.
15108
15109 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
15110
15111         PR rtl-optimization/34998
15112         * global.c (build_insn_chain): Treat non-subreg_lowpart
15113         SUBREGs of pseudos as clobbering all the words covered by the
15114         SUBREG, not just all the bytes.
15115         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
15116         original df_ref rather than an extract parameter.
15117         (global_conflicts): Update call accordingly.
15118
15119 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
15120
15121         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
15122         the overflow check to make it easier to read.
15123         (__fixtfdi): Change the type of the ll member in union
15124         long_double to UDItype_x.
15125
15126 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
15127
15128         PR middle-end/34969
15129         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
15130         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
15131         * tree-inline.c (fold_marked_statements): Call
15132         cgraph_update_edges_for_call_stmt if folding a call statement.
15133         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
15134         debug_generic_stmt calls, reset it back afterwards.
15135
15136         PR c/35017
15137         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
15138         static decls.
15139         * c-typeck.c (build_external_ref): Don't pedwarn about
15140         static vars in current function's scope.
15141
15142 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
15143
15144         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
15145
15146 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
15147
15148         PR c/35002
15149         * ipa-struct-reorg.c: Fix spelling.
15150         * params.def: Ditto.
15151
15152 2008-01-29  Richard Guenther  <rguenther@suse.de>
15153
15154         PR middle-end/35006
15155         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
15156         field.
15157         * tree-inline.c (remap_type): Increment remapping_type_depth
15158         around remapping types.
15159         (copy_body_r): Only add referenced variables if they are referenced
15160         from code, not types.
15161
15162 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
15163
15164         PR c++/34055
15165         PR c++/34103
15166         PR c++/34219
15167         PR c++/34606
15168         PR c++/34753
15169         PR c++/34754
15170         PR c++/34755
15171         PR c++/34919
15172         PR c++/34961
15173         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
15174         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
15175
15176 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
15177
15178         PR target/34412
15179         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
15180         pointer for tiny stack.
15181
15182 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
15183
15184         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
15185
15186 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
15187
15188         * config/vx-common.h: Fix typo in comment.
15189
15190 2008-01-28  Ian Lance Taylor  <iant@google.com>
15191
15192         PR c++/34862
15193         PR c++/33407
15194         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
15195         coalesce pointers if they have different DECL_NO_TBAA_P values.
15196         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
15197         between variables with different DECL_NO_TBAA_P values.
15198
15199 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
15200
15201         PR 31535
15202         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
15203         are not legitimate small data references on SPE targets.
15204
15205 2008-01-28  David Daney  <ddaney@avtrex.com>
15206
15207         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
15208
15209 2008-01-28  David Daney  <ddaney@avtrex.com>
15210
15211         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
15212
15213 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
15214
15215         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
15216         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
15217         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
15218         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
15219         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
15220         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
15221         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
15222         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
15223
15224 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
15225
15226         * basic-block.h (condjump_equiv_p): Fix comment.
15227
15228 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
15229
15230         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
15231         print_generic_stmt_indented): Fix comment.
15232
15233 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
15234
15235         * configure.ac (__stack_chk_fail): Add detecion for availability
15236         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
15237         * configure: Regenerate.
15238
15239 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
15240
15241         PR middle-end/34688
15242         * final.c (output_addr_const): Handle TRUNCATE.
15243
15244 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
15245
15246         PR target/34711
15247         * tree-ssa-loop-ivopts.c (comp_cost): New type.
15248         (zero_cost, infinite_cost): New constants.
15249         (struct cost_pair): Change type of cost to comp_cost.
15250         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
15251         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
15252         New functions.
15253         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
15254         split_address_cost, ptr_difference_cost, difference_cost,
15255         get_computation_cost_at, get_computation_cost,
15256         determine_use_iv_cost_generic, determine_use_iv_cost_address,
15257         determine_use_iv_cost_condition, determine_use_iv_costs,
15258         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
15259         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
15260         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
15261         Change type of cost to comp_cost.
15262         (determine_iv_cost): Increase cost of non-original ivs, instead
15263         of decreasing the cost of original ones.
15264         (get_address_cost): Indicate the complexity of the addressing mode 
15265         in comp_cost.
15266         (try_add_cand_for): Prefer using ivs not specific to some object.
15267         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
15268
15269 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
15270             Janis Johnson  <janis187@us.ibm.com>
15271
15272         PR target/34814
15273         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
15274         (TARGET_INSTANTIATE_DECLS): Likewise.
15275         * target.h (expand_to_rtl_hook): New target hook.
15276         (instantiate_decls): Likewise.
15277         * function.c (instantiate_decl): Make non-static.  Rename to...
15278         (instantiate_decl_rtl): ... this.
15279         (instantiate_expr): Use instantiate_decl_rtl.
15280         (instantiate_decls_1): Likewise.
15281         (instantiate_decls): Likewise.
15282         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
15283         * function.h (instantiate_decl_rtl): Add prototype.
15284         * cfgexpand.c (target.h): New include.
15285         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
15286         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
15287         (TARGET_INSTANTIATE_DECLS): Likewise.
15288         (TARGET_INITIALIZER): New target hooks added.
15289         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
15290         New prototype.
15291         * config/rs6000/rs6000.c (tree-flow.h): New include.
15292         (machine_function): Add sdmode_stack_slot field.
15293         (rs6000_alloc_sdmode_stack_slot): New function.
15294         (rs6000_instantiate_decls): Likewise.
15295         (rs6000_secondary_memory_needed_rtx): Likewise.
15296         (rs6000_check_sdmode): Likewise.
15297         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
15298         (TARGET_INSTANTIATE_DECLS): Likewise.
15299         (rs6000_hard_regno_mode_ok): Allow SDmode.
15300         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
15301         (rs6000_emit_move): Handle SDmode.
15302         (function_arg_advance): Likewise.
15303         (function_arg): Likewise.
15304         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
15305         SDmode var args for 32-bit compiles.
15306         (rs6000_secondary_reload_class): Handle SDmode.
15307         (rs6000_output_function_epilogue): Likewise.
15308         (rs6000_function_value): Simplify if statement.
15309         (rs6000_libcall_value): Likewise.
15310         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
15311         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
15312         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
15313         (movsd_hardfloat): New define_insn.
15314         (movsd_softfloat): Likewise.
15315         (movsd_store): Likewise.
15316         (movsd_load): Likewise.
15317         (extendsddd2): Likewise.
15318         (extendsdtd2): Likewise.
15319         (truncddsd2): Likewise.
15320         (movdd_hardfloat64): Fixup comment.
15321         (UNSPEC_MOVSD_LOAD): New constant.
15322         (UNSPEC_MOVSD_STORE): Likewise.
15323
15324 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
15325
15326         PR c++/34965
15327         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
15328         TRUTH_XOR_EXPR.
15329         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
15330         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
15331         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
15332         and TRUTH_XOR_EXPR.
15333
15334 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
15335
15336         PR target/34794
15337         * config.gcc: Separate AIX 5.3 from AIX 6.1.
15338         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
15339         __LONGDOUBLE128 too.
15340         * config/rs6000/aix61.h: New file.
15341
15342 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15343
15344         PR rtl-optimization/34959
15345         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
15346         popcount and parity rtxes the same mode as their operand.
15347         Truncate or extend the result to the return value's mode
15348         if necessary.
15349
15350 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
15351
15352         PR target/34981
15353         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
15354         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
15355         to GOT_VERSION_REGNUM.
15356         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
15357         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
15358         * config/mips/mips.c (mips_emit_call_insn): New function.
15359         (mips_call_tls_get_addr): Call mips_expand_call directly.
15360         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
15361         emit_call_insn.
15362         (mips16_build_call_stub): Likewise.  Return the call insn or null.
15363         (mips_expand_call): Update the call to mips16_build_call_stub
15364         accordingly and a remove redundant condition.  Assert that MIPS16
15365         stubs do not use lazy binding.  Use mips_emit_call_insn and return
15366         the call insn.
15367         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
15368         TARGET_USE_GOT.
15369         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
15370         (mips_avoid_hazard): Remove hazard_set handling.
15371         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
15372         (UNSPEC_RESTORE_GP): ...this.
15373         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
15374         (FAKE_CALL_REGNO): Rename to...
15375         (GOT_VERSION_REGNUM): ...this.
15376         (type): Add "ghost" value.  Add an associated insn reservation.
15377         (hazard_set): Remove.
15378         (exception_receiver): Rename to...
15379         (restore_gp): ...this and update the unspec identifier accordingly.
15380         (exception_receiver, nonlocal_got_receiver): New expanders.
15381         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
15382         FAKE_CALL_REGNO.  Remove hazard_set attribute.
15383         (set_got_version, update_got_version): New patterns.
15384
15385 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
15386
15387         PR target/34970
15388         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
15389
15390 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15391
15392         PR other/31955
15393         * doc/install.texi2html: Generate gcc-vers.texi.
15394
15395 2008-01-25  DJ Delorie  <dj@redhat.com>
15396
15397         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
15398
15399 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
15400
15401         * config/c4x: Remove directory.
15402         * config.gcc (crx-*, mt-*): Mark obsolete.
15403         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
15404         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
15405         sh-*-rtemscoff*): Remove cases.
15406         * defaults.h (C4X_FLOAT_FORMAT): Remove.
15407         * real.c (encode_c4x_single, decode_c4x_single,
15408         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
15409         c4x_extended_format): Remove.
15410         * real.h (c4x_single_format, c4x_extended_format): Remove.
15411         * doc/extend.texi (interrupt, naked): Remove mention of attributes
15412         on C4x.
15413         (Pragmas): Remove comment about c4x pragmas.
15414         * doc/install.texi (c4x): Remove target-specific instructions.
15415         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
15416         * doc/md.texi (Machine Constraints): Remove C4x documentation.
15417         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
15418         refer to C4x source files as examples.
15419         (C4X_FLOAT_FORMAT): Remove documentation.
15420
15421 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
15422
15423         * config/bfin/bfin.c (override_options): Reorder tests so that
15424         flag_pic gets enabled for -msep-data.
15425
15426 2008-01-25  Richard Guenther  <rguenther@suse.de>
15427
15428         PR middle-end/32244
15429         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
15430         to its bitfield precision if required.
15431
15432 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15433
15434         PR middle-end/33880
15435         * tree-nested.c (walk_omp_for): New function.
15436         (convert_nonlocal_reference, convert_local_reference): Call
15437         walk_omp_for on OMP_FOR.
15438         (convert_call_expr): Call walk_body on OMP_FOR's
15439         OMP_FOR_PRE_INIT_BODY.
15440
15441 2008-01-25  Richard Guenther  <rguenther@suse.de>
15442
15443         PR tree-optimization/34966
15444         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
15445         default defs and PHI_NODEs we have to insert after the
15446         defining statement.
15447
15448 2008-01-24  Nick Clifton  <nickc@redhat.com>
15449
15450         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
15451         Provide a default definition.
15452         (LIBGCC2_UNITS_PER_WORD): Likewise.
15453
15454         * config/stormy16/stormy16.c: Include df.h for the prototype
15455         for df_regs_ever_live_p.
15456         (xstormy16_expand_builtin_va_start): Convert the stack offset
15457         into a component_ref and then use POINTER_PLUS_EXPR to add it
15458         to the incoming_virtual_args_rtx.
15459         (xstormy16_gimplify_va_arg_expr): Rename to
15460         xstormy16_gimplify_va_arg_expr.
15461         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
15462         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
15463         xstormy16_gimplify_va_arg_expr.
15464         Fix up some formatting issues.
15465
15466         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
15467         Move to predicates.md.
15468         (xs_hi_general_operand): Likewise.
15469         (xs_hi_nonmemory_operand): Likewise.
15470         * config/stormy16/predicates.md:
15471         (xstormy16_carry_plus_operand): New predicate.
15472         (xs_hi_general_operand): New predicate.
15473         (xs_hi_nonmemory_operand): New predicate.
15474         * config/stormy16/stormy16-protos.h:
15475         (xstormy16_carry_plus_operand): Delete prototype.
15476         (xs_hi_general_operand): Likewise.
15477         (xs_hi_nonmemory_operand): Likewise.
15478
15479         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
15480         modifiers as they are no longer needed and they can trigger
15481         reload spill failures.
15482
15483         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
15484         with a match_operand in order to help reload.
15485
15486         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
15487         constraint with 'e' for the 8th alternative as this version of
15488         the mov.w instruction only accepts the lower 8 registers.
15489
15490 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
15491
15492         PR target/34856
15493         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
15494         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
15495         vector elements.
15496
15497 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
15498
15499         PR middle-end/33333
15500         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
15501
15502 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15503
15504         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
15505         New functions.
15506         (remove_structure): Update allocations list before removing structure.
15507         
15508 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
15509
15510         * ipa-struct-reorg.c (is_safe_cond_expr, 
15511         create_new_stmts_for_cond_expr): Use integer_zerop function,
15512         that recognize not only zero-pointer, but zero-integer too.
15513
15514 2008-01-25  Ben Elliston  <bje@au.ibm.com>
15515
15516         PR other/22232
15517         * fixproto: Escape "." in sed expression that strips leading "./".
15518
15519 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15520
15521         PR driver/34904
15522         * gcc.c (SWITCH_OK): Removed.
15523         (SWITCH_LIVE): Changed to bit.
15524         (SWITCH_FALSE): Likewise.
15525         (SWITCH_IGNORE): Likewise.
15526         (switchstr): Change live_cond to unsigned int.
15527         (process_command): Replace SWITCH_OK with 0.
15528         (do_self_spec): Likewise.
15529         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
15530         (give_switch): Likewise.
15531         (used_arg): Likewise.
15532         (do_spec_1): Set the SWITCH_IGNORE bit.
15533         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
15534         bits.  Set the SWITCH_LIVE bit.
15535
15536 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15537
15538         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
15539
15540 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
15541
15542         PR tree-optimization/34472
15543         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
15544         parameter to a "bool *" and set *DATA to false if there is
15545         an unsafe access.  Do not delete the structure here.
15546         (check_cond_exprs): Delete it here instead.
15547         (check_cond_exprs, exclude_cold_structs): Do not increase
15548         I when removing a structure.
15549
15550 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
15551
15552         PR target/34856
15553         * config/i386/i386.c (ix86_expand_vector_init): Consider only
15554         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
15555
15556 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
15557
15558         PR middle-end/34934
15559         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
15560         a fixed vector for stack.
15561
15562 2008-01-24  Ben Elliston  <bje@au.ibm.com>
15563
15564         PR c++/25701
15565         * doc/gcc.texi (Software development): Add a direntry for g++.
15566         
15567 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
15568
15569         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
15570         stale and straggling -fforce-addr comments above.
15571
15572         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
15573         define.
15574         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
15575         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
15576
15577 2008-01-23  Michael Matz  <matz@suse.de>
15578
15579         PR debug/34895
15580         * dwarf2out.c (force_type_die): Use modified_type_die instead of
15581         gen_type_die.
15582
15583 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
15584
15585         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
15586         malloc result type.
15587
15588 2008-01-23 Anatoly Sokolov <aesok@post.ru>
15589
15590         * config/avr/avr.c (avr_current_arch): New variable.
15591         (avr_arch_types): Add 'avr31' and 'avr51' entries.
15592         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
15593         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
15594         (avr_override_options): Init 'avr_current_arch'. 
15595         (base_arch_s): Move from here...
15596         * config/avr/avr.h (base_arch_s): ... here. Add new members 
15597         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
15598         'mega' to 'have_jmp_call'.
15599         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
15600         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
15601         macros.
15602         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
15603         architectures.
15604         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
15605         MULTILIB_MATCHES): (Ditto.).
15606
15607 2008-01-23  Richard Guenther  <rguenther@suse.de>
15608
15609         PR middle-end/31529
15610         * cgraphunit.c (cgraph_reset_node): Always mark the node
15611         not reachable if it is not queued already.
15612
15613 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
15614
15615         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
15616         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
15617         (cputype_selected): New static variable.
15618         (bfin_handle_option): Set it if -mcpu is used.
15619         (override_option): Select default set of workarounds if no cpu type
15620         selected on the command line.
15621         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
15622
15623         From  Michael Frysinger  <michael.frysinger@analog.com>
15624         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
15625         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
15626
15627         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
15628         for bf547, bf523, bf524, and bf526.
15629         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
15630         bf526.
15631         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
15632         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
15633         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
15634         __ADSPBF547__ and __ADSPBF54x__ for bf547.
15635         * doc/invoke.texi (Blackfin Options): Document that
15636         -mcpu now accept bf547, bf523, bf524, and bf526.
15637
15638 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15639
15640         PR rtl-optimization/34628
15641         * combine.c (try_combine): Stop and undo after the first combination
15642         if an autoincrement side-effect on the first insn has effectively
15643         been lost.
15644
15645 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
15646
15647         PR target/34529
15648         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
15649         Offset addresses are not valid for Altivec or paired float modes.
15650
15651 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
15652
15653         PR c++/34607
15654         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
15655         if DECL_INITIAL (decl) is error_mark_node.
15656
15657         PR c++/34914
15658         * c-common.c (handle_vector_size_attribute): Only allow
15659         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
15660         the same way as pointer, array etc. types.
15661         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
15662
15663         PR c++/34917
15664         * tree.c (build_type_attribute_qual_variant): Call
15665         build_qualified_type if attributes are equal, but quals are not.
15666
15667 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15668
15669         PR 32102
15670         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
15671         * flags.h (warn_strict_aliasing): Remove.
15672         (warn_strict_overflow): Remove.
15673         * opts.c (warn_strict_aliasing): Remove.
15674         (warn_strict_overflow): Remove.
15675         * c-opts.c (c_common_handle_option): -Wall only sets
15676         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
15677         (c_common_post_options): Give default values to -Wstrict-aliasing
15678         and -Wstrict-overflow if they are uninitialized.
15679         * common.opt (Wstrict-aliasing): Specify Var and Init.
15680         (Wstrict-overflow): Likewise.
15681
15682 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
15683
15684         PR rtl-optimization/26854
15685         PR rtl-optimization/34400
15686         PR rtl-optimization/34884
15687         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
15688         DF_RD->gen.
15689         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
15690         (df_rd_bb_info.expanded_lr_out): Deleted
15691         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
15692         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
15693         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15694         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15695         Removed code to allocate, initialize or free expanded_lr_out.
15696         (df_rd_bb_local_compute_process_def): Restructured to make more
15697         understandable.
15698         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
15699         sets if the sets are being trimmed.
15700
15701 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
15702
15703         PR bootstrap/32287
15704         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
15705         (as_vers): Likewise.
15706         * configure: Regenerated.
15707
15708 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15709
15710         PR middle-end/33092
15711         * tree-pass.h (pass_build_alias): New pass.
15712         * tree-ssa-alias.c (gate_build_alias): New.
15713         (pass_build_alias): New.
15714         * passes.c (init_optimization_passes): Add pass_build_alias after
15715         pass_create_structure_vars.
15716
15717 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
15718
15719         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
15720         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
15721         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
15722         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
15723         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
15724         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
15725         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
15726         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
15727         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
15728         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
15729         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
15730         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
15731         * config/s390/s390.md (FP_ALL): New mode iterator.
15732         (_d): New mode attribute.
15733         ("*signbit<mode>2>"): Changed mode of first operand.
15734         ("isinf<mode>2"): Changed mode of first operand.
15735         ("*TDC_insn"): Adaptation for DFP modes.
15736
15737 2008-01-22  Ben Elliston  <bje@au.ibm.com>
15738
15739         * tree.c (check_qualified_type): Improve function description.
15740
15741 2008-01-21  Jason Merrill  <jason@redhat.com>
15742
15743         PR c++/34196
15744         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
15745         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
15746         if it is set.
15747
15748 2008-01-21  DJ Delorie  <dj@redhat.com>
15749
15750         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
15751         return zero.
15752
15753 2008-01-21  Richard Guenther  <rguenther@suse.de>
15754
15755         PR middle-end/34856
15756         * tree-cfg.c (verify_expr): Allow all invariant expressions
15757         instead of just constant class ones as reference argument.
15758         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
15759         like any other constant.
15760         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15761
15762 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
15763
15764         * regmove.c (fixup_match_1): Update call crossed frequencies.
15765
15766 2008-01-21  Richard Guenther  <rguenther@suse.de>
15767
15768         PR c/34885
15769         * tree-inline.c (setup_one_parameter): Deal with mismatched
15770         types using a VIEW_CONVERT_EXPR.
15771
15772 2008-01-21  Alon Dayan  <alond@il.ibm.com>
15773             Olga Golovanevsky  <olga@il.ibm.com>
15774         
15775         PR tree-optimization/34701
15776         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
15777         when the structure size is not a power of 2.
15778
15779 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
15780
15781         * doc/install.texi: Add doc for --enable-checking=df.
15782         
15783 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15784
15785         PR rtl-optimization/34808
15786         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
15787
15788 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15789
15790         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
15791         input.
15792
15793 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
15794
15795         PR rtl-optimization/26854
15796         PR rtl-optimization/34400
15797         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
15798         DF_RD->gen.
15799         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
15800         (df_rd_bb_info.expanded_lr_out): New.
15801         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
15802         * loop_iv.c (iv_analysis_loop_init): Ditto.
15803         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
15804         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
15805         Added code to allocate, initialize or free expanded_lr_out.
15806         (df_rd_bb_local_compute_process_def): Restructured to make
15807         more understandable.
15808         (df_rd_confluence_n): Add code to do nothing with fake edges and
15809         code to no apply invalidate_by_call sets if the sets are being trimmed.
15810         (df_lr_local_finalize): Renamed to df_lr_finalize.
15811         (df_live_local_finalize): Renamed to df_live_finalize.
15812
15813 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
15814
15815         PR target/34831
15816         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
15817         deciding whether to use reciprocal instructions.
15818
15819 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
15820
15821         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
15822         dwarf2out_note_section_used if cold_text_section is NULL.
15823
15824 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
15825
15826         PR gcov-profile/34610
15827         * tree-cfg.c (make_edges): Mark both outgoing edges from
15828         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
15829         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
15830         from OMP_FOR and OMP_CONTINUE outgoing edges.
15831
15832         * tree-profile.c (tree_profiling): Return early if
15833         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
15834         at the end.
15835         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
15836         from cfun to child_cfun.
15837         * function.h (struct function): Add after_tree_profile bit.
15838
15839 2008-01-19 Anatoly Sokolov <aesok@post.ru>
15840
15841         * config/avr/avr.S (_exit): Disable interrupt.
15842
15843 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
15844             Steven Bosscher  <stevenb.gcc@gmail.com>
15845
15846         PR rtl-optimization/26854
15847         PR rtl-optimization/34400
15848         * df-problems.c (df_live_scratch): New scratch bitmap.
15849         (df_live_alloc): Allocate df_live_scratch when doing df_live.
15850         (df_live_reset): Clear the proper bitmaps.
15851         (df_live_bb_local_compute): Only process the artificial defs once
15852         since the order is not important.
15853         (df_live_init): Init the df_live sets only with the variables
15854         found live by df_lr.
15855         (df_live_transfer_function): Use the df_lr sets to prune the
15856         df_live sets as they are being computed.  
15857         (df_live_free): Free df_live_scratch.
15858
15859 2008-01-18  Ian Lance Taylor  <iant@google.com>
15860
15861         * common.opt: Add fmerge-debug-strings.
15862         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
15863         flag_merge_debug_strings rather than flag_merge_constants.
15864         * doc/invoke.texi (Option Summary): Mention
15865         -fmerge-debug-strings.
15866         (Debugging Options): Document -fmerge-debug-strings.
15867
15868 2008-01-18  Ian Lance Taylor  <iant@google.com>
15869
15870         PR c++/33407
15871         * tree.h (DECL_IS_OPERATOR_NEW): Define.
15872         (struct tree_function_decl): Add new field operator_new_flag.
15873         * tree-inline.c (expand_call_inline): When inlining a call to
15874         operator new, force the return value to go into a variable, and
15875         set DECL_NO_TBAA_P on that variable.
15876         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
15877
15878 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
15879
15880         PR debug/34484
15881         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
15882         DWARF2_DEBUGGING_INFO.
15883         (dwarf2out_note_section_used): Ditto.  Add prototype.
15884         (have_multiple_function_sections, text_section_used,
15885         cold_text_section_used, *cold_text_sections): Move declarations
15886         before their uses.
15887
15888 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
15889
15890         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
15891         field and add signal_ra.
15892         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
15893         assignments to frame state pc.  Move end of stack check after
15894         MD_FALLBACK_FRAME_STATE_FOR.
15895         (uw_update_context_1): Use frame state signal_regs if set, instead
15896         of checking signal_frame flag.
15897         (uw_update_context): Use frame state signal_ra if set.
15898         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
15899         * config/xtensa/linux-unwind.h: New file.
15900
15901 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
15902
15903         * modulo-sched.c (get_sched_window): Fix comment typo.
15904
15905 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
15906
15907         PR tree-optimization/34648
15908         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
15909
15910 2008-01-17  Anatoly Sokolov <aesok@post.ru>
15911
15912         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
15913         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
15914
15915 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
15916
15917         PR rtl-optimization/34400
15918         * df-core.c (df_worklist_dataflow_overeager,
15919         df_worklist_dataflow_doublequeue): New functions.
15920         (df_worklist_dataflow): Two different worklist solvers.
15921         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
15922         New param.
15923
15924 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15925
15926         PR testsuite/34821
15927         * doc/invoke.texi: Document the dependence on pthread for fopenmp
15928         and ftree-parallelize-loops.
15929
15930 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
15931
15932         PR rtl-optimization/34826
15933         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
15934
15935 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15936
15937         * global.c (find_reg): Mark the eh regs as used if necessary.
15938         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
15939         * ra.h (struct allocno): no_eh_reg field added.  Changed
15940         no_stack_reg type to bitfield.
15941
15942 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
15943
15944         * tree.c (substitute_in_expr): Add missing 'break'.
15945
15946 2008-01-17  Richard Guenther  <rguenther@suse.de>
15947
15948         PR tree-optimization/34825
15949         * tree-ssa-math-opts.c (is_division_by): Do not recognize
15950         x / x as division to handle.
15951
15952 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15953
15954         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
15955         "-pthread" is specified.
15956         * pa-hpux11.h (LIB_SPEC): Likewise.
15957
15958 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
15959             Peter Bergner  <bergner@vnet.ibm.com>
15960
15961         PR rtl-optimization/33796
15962         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
15963
15964 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15965
15966         PR libgfortran/34699
15967         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
15968         static links.
15969         * pa-hpux10.h (LINK_SPEC): Likewise.
15970         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
15971
15972 2008-01-16  Richard Guenther  <rguenther@suse.de>
15973
15974         PR middle-end/32628
15975         * fold-const.c (fold_convert_const_int_from_int): Do not
15976         set overflow if that occured only because of a sign extension
15977         change when converting from/to a sizetype with the same
15978         precision and signedness.
15979
15980 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
15981
15982         PR debug/34249
15983         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
15984         location address to the correct place.  Update copyright year.
15985
15986 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
15987
15988         * lambda-code.c (lambda_transform_legal_p): Handle the case of
15989         no dependences in the dependence_relations vector.
15990
15991 2008-01-16  Jan Hubicka  <jh@suse.cz>
15992
15993         PR rtl-optimization/31396
15994         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
15995         * cfg.c (dump_reg_info): Print it.
15996         * regs.h (struct reg_info_t): add freq_calls_crossed.
15997         (REG_FREQ_CALLS_CROSSED): New macro.
15998         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
15999         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
16000         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
16001         regmove_optimize): Update call crossed frequencies.
16002         * local-alloc.c (struct qty): Add freq_calls_crossed.
16003         (alloc_qty): Copute freq_calls_crossed.
16004         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
16005         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
16006         * ra.h (struct allocno): Add freq_calls_crossed.
16007
16008 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16009
16010         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
16011         libgomp when compiling with ftree-parallelize-loops.
16012         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
16013
16014 2008-01-16  Richard Guenther  <rguenther@suse.de>
16015
16016         PR tree-optimization/34769
16017         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
16018         * tree.c (int_cst_value): Instead make this function more
16019         permissive in what it accepts as valid input.  Document this
16020         function always sign-extends the value.
16021
16022 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
16023             Richard Guenther  <rguenther@suse.de>
16024
16025         PR c/34668
16026         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
16027         (gimple_fold_indirect_ref_rhs): ... this.
16028         (gimple_fold_indirect_ref): New function with foldings
16029         that preserve lvalueness.
16030         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
16031         * tree-flow.h (gimple_fold_indirect_ref): Declare.
16032         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
16033         to fold an INDIRECT_REF, fall back to the old use of
16034         fold_indirect_ref_1.
16035
16036 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16037
16038         * tree-data-ref.c (subscript_dependence_tester_1): Call 
16039         free_conflict_function.
16040         (compute_self_dependence): Same.
16041
16042 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
16043
16044         PR debug/34249
16045         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
16046         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
16047         function global.
16048         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
16049         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
16050         for DWARF2_UNWIND_INFO targets.
16051
16052 2008-01-16  Richard Guenther  <rguenther@suse.de>
16053
16054         PR c/34768
16055         * c-typeck.c (common_pointer_type): Do not merge inconsistent
16056         type qualifiers for function types.
16057
16058 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
16059
16060         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
16061         loop_iterator li from previous commit.
16062
16063 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
16064
16065         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
16066
16067 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
16068
16069         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
16070         (parallelize_loops): Don't parallelize irreducible components.
16071
16072 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16073
16074         PR c++/24924
16075         * c-opts (c_common_post_options): Do not enable CPP
16076         flag_pedantic_errors by default.
16077         
16078 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
16079
16080         PR rtl-optimization/31944
16081         * cse.c (remove_pseudo_from_table): New function.
16082         (merge_equiv_classes): Use above function to remove pseudo-registers.
16083         (invalidate): Likewise.
16084
16085 2008-01-13  Richard Guenther  <rguenther@suse.de>
16086
16087         PR middle-end/34601
16088         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
16089         instead of TYPE_MODE to deal with calls from expand_one_error_var.
16090
16091 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
16092
16093         * gcse.c (cprop_jump): Call validate_unshare_change instead of
16094         validate_change to unshare the source of the PC set.
16095
16096 2008-01-12  Jan Hubicka  <jh@suse.cz>
16097
16098         PR middle-end/32135
16099         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
16100         references above array bounds.  This might trigger bounds checks for
16101         pointers to arrays.
16102
16103 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
16104
16105         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
16106         new_replaceable_dependencies.
16107
16108 2008-01-12  Doug Kwan  <dougkwan@google.com>
16109
16110         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
16111         instead of OPT_Wreturn_type in warning due to ignored return type
16112         qualifiers.
16113         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
16114         options included in -Wextra.
16115         * c.opt: New option -Wignored_qualifiers.
16116         * doc/invoke.texi (Warning Options, -Wextra): Add new option
16117         -Wignore_qualifiers.
16118         (-Wignored-qualifiers): Document.
16119         (-Wreturn-type): Remove description of functionality now handled
16120         by -Wignored-qualifiers.
16121
16122 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
16123
16124         PR ada/33788
16125         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
16126         NOP_EXPR if it is between integral types with the same precision.
16127
16128 2008-01-12  Jan Hubicka  <jh@suse.cz>
16129
16130         PR other/28023
16131         * invoke.texi (max-inline-recursive-depth): Fix default value.
16132
16133 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
16134
16135         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
16136         correct type.
16137
16138 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
16139         
16140         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
16141         
16142 2008-01-11  James E. Wilson  <wilson@specifix.com>
16143
16144         PR target/26015
16145         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
16146
16147 2008-01-11  Anatoly Sokolov <aesok@post.ru>
16148
16149         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
16150         save/restore frame pointer register and don't use 'call-prologues' 
16151         optimization in function with "OS_task" attribute.
16152
16153 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
16154
16155         PR middle-end/31309
16156         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
16157         when copying to memory.
16158
16159 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
16160
16161         PR rtl-optimization/30905
16162         * cfgcleanup.c: Include dce.h
16163         (crossjumps_occured): New global variable.
16164         (try_crossjump_bb): Exit loop after finding a fallthru edge.
16165         If something changed, set crossjumps_occured to true.
16166         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
16167         Don't add/remove fake edges to exit here...
16168         (cleanup_cfg): ...but do it here, when crossjumping.
16169         Run a fast DCE when successful crossjumps occured in the latest
16170         iteration of try_optimize_cfg.
16171
16172 2008-01-11  Richard Guenther  <rguenther@suse.de>
16173
16174         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
16175         (struct vn_unary_op_s): Likewise.
16176         (vn_reference_insert): Free old reference on hash collision.
16177
16178 2008-01-10  Raksit Ashok  <raksit@google.com>
16179
16180         PR rtl-optimization/27971
16181         * combine.c (find_split_point): Split PLUS expressions which are
16182         inside a MEM rtx, and whose first operand is complex.
16183
16184 2008-01-10  DJ Delorie  <dj@redhat.com>
16185
16186         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
16187         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
16188         (m32c_hard_regno_ok): Call the underlying function.
16189
16190 2008-01-10  Richard Guenther  <rguenther@suse.de>
16191
16192         PR middle-end/34683
16193         * tree-cfg.c (tree_merge_blocks): Do not go through the
16194         full-blown folding and stmt updating path if we just deal
16195         with virtual operands.
16196         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
16197         test for abnormal SSA_NAMEs.
16198
16199 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
16200
16201         PR middle-end/34641
16202         * reload.c (push_reload): Add assertions.  All constants from
16203         reg_equiv_constant should have been used for replacing the respective
16204         pseudo earlier.
16205         (find_reloads_address): Invoke find_reloads_address_part for
16206         constant taken from the reg_equiv_constant array.
16207
16208 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
16209
16210         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
16211         field (valnum) the first in the struct.  Replace bools with
16212         unit bit fields.
16213
16214 2008-01-10  Richard Guenther  <rguenther@suse.de>
16215
16216         PR tree-optimization/34651
16217         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
16218         types and ordering for masking and converting.
16219
16220 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
16221
16222         PR tree-optimization/34017
16223         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
16224         also for PHI_NODE expressions.
16225
16226 2008-01-09  Jan Hubicka  <jh@suse.cz>
16227
16228         PR tree-optimization/34708
16229         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
16230         based on number of case labels.
16231         (init_inline_once): Remove switch_cost.
16232         * tree-inline.h (eni_weights_d): Remove switch_cost.
16233
16234 2008-01-09  Richard Guenther  <rguenther@suse.de>
16235         Andrew Pinski  <andrew_pinski@playstation.sony.com>
16236
16237         PR middle-end/30132
16238         * gimplify.c (gimplify_cond_expr): Do not create an addressable
16239         temporary if an rvalue is ok or an lvalue is not required.
16240
16241 2008-01-09  Richard Guenther  <rguenther@suse.de>
16242
16243         PR middle-end/34458
16244         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
16245         adjust return type.
16246
16247 2008-01-09  Richard Guenther  <rguenther@suse.de>
16248
16249         PR middle-end/34679
16250         * tree.c (host_integerp): Check for sizetype only if the
16251         type is an integer type.
16252
16253 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
16254
16255         PR debug/26364
16256         * opts.c (decode_options): Disable inlining of functions called
16257         once if not in unit-at-a-time mode.
16258
16259 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
16260
16261         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
16262
16263 2008-01-08  Richard Guenther  <rguenther@suse.de>
16264
16265         PR middle-end/31863
16266         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
16267         out early if the result will be unused.
16268
16269 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16270
16271         PR target/34709
16272         Revert:
16273
16274         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16275         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16276         for TARGET_RECIP.       
16277         
16278 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
16279         
16280         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
16281         for vectorization tuned.
16282         
16283 2008-01-08  Richard Guenther  <rguenther@suse.de>
16284
16285         PR tree-optimization/34683
16286         * tree-ssa-operands.c (operand_build_cmp): Export.
16287         * tree-ssa-operands.h (operand_build_cmp): Declare.
16288         * tree-vn.c (vuses_compare): Remove.
16289         (sort_vuses): Use operand_build_cmp.
16290         (sort_vuses_heap): Likewise.
16291         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
16292         to re-use old VEC if available.  Do not sort already sorted VUSEs.
16293         (vdefs_to_vec): Do not sort already sorted VDEFs.
16294
16295 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
16296
16297         PR middle-end/34694
16298         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
16299
16300 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
16301
16302         PR target/34702
16303         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
16304         limitations of reciprocal sequences on x86 targets.
16305
16306 2008-01-08  Richard Guenther  <rguenther@suse.de>
16307
16308         PR tree-optimization/34683
16309         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
16310
16311 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
16312
16313         PR target/34622
16314         * config/darwin.c (darwin_mergeable_string_section): Don't use
16315         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
16316
16317 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
16318
16319         PR target/34682
16320         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
16321         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
16322         predicates of op0 and op1 to register_operand.
16323         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
16324         expander using X87MODEF mode iterator.  Change predicates of
16325         op0 and op1 to register_operand.
16326         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
16327         corresponding patterns and macroize using MODEF macro.  Change
16328         predicates of op0 and op1 to register_operand and remove
16329         "m" constraint. Disparage "r" alternative with "!".
16330         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
16331         macroize using X87MODEF macro.  Change predicates of op0 and op1
16332         to register_operand and remove "m" constraint.  Disparage "r"
16333         alternative with "!".
16334         (absneg splitter with memory operands): Remove.
16335         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
16336         patterns and macroize using X87MODEF mode iterator.
16337         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
16338         Change predicate of op1 to register_operand.
16339         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
16340         for memory operands.
16341
16342 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
16343
16344         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
16345
16346 2008-01-07  Richard Guenther  <rguenther@suse.de>
16347
16348         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
16349         fields.
16350
16351 2008-01-07  Richard Guenther  <rguenther@suse.de>
16352
16353         PR tree-optimization/34683
16354         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
16355         VOPs of the needed size to save memory.  Use VEC_quick_push
16356         to save compile-time.
16357         (vdefs_to_vec): Likewise.
16358
16359 2008-01-07  Sa Liu  <saliu@de.ibm.com>
16360
16361         * config/spu/spu.md (divdf3): Genetate inline code for double
16362         division.  The implementation doesn't handle INF or NAN, therefore it
16363         only applies when -ffinite-math-only is given.
16364
16365 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
16366
16367         PR libstdc++/34680
16368         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
16369         * doc/cpp.texi ([Common Predefined Macros]): Document.
16370
16371 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
16372
16373         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
16374         order to use commutative addition instead of subtraction.
16375
16376 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16377             Mircea Namolaru  <namolaru@il.ibm.com>
16378             Vladimir Yanovsky  <yanov@il.ibm.com>
16379             Revital Eres  <eres@il.ibm.com>
16380
16381         PR tree-optimization/34263
16382         * tree-outof-ssa.c (process_single_block_loop_latch,
16383         contains_tree_r): New functions.
16384         (analyze_edges_for_bb): Call process_single_block_loop_latch
16385         function to empty single-basic-block latch block if possible.
16386
16387 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16388
16389         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
16390         for TARGET_RECIP.
16391         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
16392
16393 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16394
16395         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
16396
16397 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
16398
16399         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
16400
16401 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
16402
16403         PR tree-optimization/34618
16404         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
16405         flag from T.
16406
16407 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
16408
16409         PR target/34673
16410         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
16411         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
16412         Update copyright year.
16413
16414         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
16415         Update copyright year.
16416         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
16417         using NR fixup.
16418
16419 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
16420
16421         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
16422         edge does not point to current bb before changing need_assert.
16423
16424 2008-01-04  Richard Guenther  <rguenther@suse.de>
16425
16426         PR middle-end/34029
16427         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
16428         for verifying purposes if they are is_gimple_min_invariant.
16429
16430 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
16431
16432         PR tree-optimization/34448
16433         PR tree-optimization/34465
16434         * gimplify.c (gimplify_init_constructor): Add new parameter
16435         notify_temp_creation.  Use it.
16436         (gimplify_modify_expr_rhs): Take volatiles into account when
16437         optimizing constructors.
16438         Do not optimize constructors if gimplify_init_constructor will dump to
16439         memory.
16440         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
16441         * gcc.c-torture/compile/pr34448.c: New.
16442
16443 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
16444
16445         PR gcov-profile/34609
16446         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
16447         return_slot if result is TREE_ADDRESSABLE.
16448
16449 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
16450
16451         * config/mips/mips.md (sqrt_condition): Tweak comment.
16452         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
16453
16454 2008-01-03  Tom Tromey  <tromey@redhat.com>
16455
16456         PR c/34457
16457         * c-common.c (c_type_hash): Handle VLAs.
16458
16459 2008-01-03  Jan Hubicka  <jh@suse.cz>
16460
16461         PR tree-optimization/31081
16462         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
16463         0 when inlining and not inlining to first basic block.
16464         (remap_decl): When var is initialized to 0, don't set default_def.
16465         (expand_call_inline): Set entry_bb.
16466         * tree-inline.h (copy_body_data): Add entry_bb.
16467
16468 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16469
16470         PR c++/34619
16471         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
16472         before returning.
16473
16474         PR tree-optimization/29484
16475         * tree-inline.c (inline_forbidden_p_2): New function.
16476         (inline_forbidden_p): Disallow inlining if some static var
16477         has an address of a local LABEL_DECL in its initializer.
16478         * doc/extend.texi (Labels as Values): Document &&foo behaviour
16479         vs. inlining.
16480
16481 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
16482
16483         PR tree-optimization/34635
16484         * tree-data-ref.c (add_other_self_distances): Make sure that the
16485         evolution step is constant.
16486
16487 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
16488
16489         PR middle-end/34608
16490         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
16491
16492 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
16493
16494         * tree-sra.c (scalarize_init): Insert the generate_element_init
16495         statements after the generate_element_zero statements.
16496
16497 2008-01-02  Richard Guenther  <rguenther@suse.de>
16498
16499         PR middle-end/34093
16500         PR middle-end/31976
16501         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
16502         for very large number of operands instead of ICEing.
16503
16504 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
16505
16506         PR target/34013
16507         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
16508         while stack probing.
16509
16510 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
16511
16512         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
16513         in C++0x mode.
16514
16515 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
16516
16517         PR libmudflap/26442
16518         * tree-mudflap.c (mx_register_decls): Guard warning by
16519         !DECL_ARTIFICIAL check.
16520
16521 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
16522
16523         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
16524         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
16525         sse5_perm<mode>): Fix constraints.